yolov5的PCB缺陷檢測(cè),引入CVPR 2023 BiFormer

向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)??????
一、數(shù)據(jù)集介紹
印刷電路板(PCB)瑕疵數(shù)據(jù)集:數(shù)據(jù)下載鏈接,是一個(gè)公共的合成PCB數(shù)據(jù)集,由北京大學(xué)發(fā)布,其中包含1386張圖像以及6種缺陷(缺失孔,鼠標(biāo)咬傷,開路,短路,雜散,偽銅),用于檢測(cè),分類和配準(zhǔn)任務(wù)。選取其中445張圖像進(jìn)行了訓(xùn)練。
數(shù)據(jù)樣本示例:

1.PCB數(shù)據(jù)集介紹
PCB是最具競(jìng)爭(zhēng)力的產(chǎn)業(yè)之一,其產(chǎn)品的優(yōu)良則關(guān)系到企業(yè)的發(fā)展。由于產(chǎn)品外觀缺陷的種類非常廣泛,所以較一般電子零部件的缺陷檢測(cè)更加困難。PCB 板缺陷包括短路、多銅及少銅、斷路、缺口、毛刺等。利用深度學(xué)習(xí)技術(shù)采用人工智能學(xué)習(xí)PCB圖像,可以分析復(fù)雜的圖像,大幅提升自動(dòng)化視覺檢測(cè)的圖像判讀能力和準(zhǔn)確度,并可將缺陷進(jìn)行分類。針對(duì)不同產(chǎn)品不同的缺陷標(biāo)準(zhǔn),智能系統(tǒng)能夠靈活應(yīng)對(duì)。
PCB數(shù)據(jù)集共有六種缺陷,分別是"missing_hole","mouse_bite","open_circuit","short","spur","spurious_copper",缺陷屬于小目標(biāo)缺陷檢測(cè)
下圖為每個(gè)類別的數(shù)據(jù)量、標(biāo)簽,center xy, labels 標(biāo)簽的長和寬

1.1 通過split_train_val.py得到trainval.txt、val.txt、test.txt


1.2 通過voc_label.py得到適合yolov5訓(xùn)練需要的









3.實(shí)驗(yàn)結(jié)果分析

眾所周知,Transformer相比于CNNs的一大核心優(yōu)勢(shì)便是借助自注意力機(jī)制的優(yōu)勢(shì)捕捉長距離上下文依賴。正所謂物極必反,在原始的 Transformer 架構(gòu)設(shè)計(jì)中,這種結(jié)構(gòu)雖然在一定程度上帶來了性能上的提升,但卻會(huì)引起兩個(gè)老生常態(tài)的問題:
內(nèi)存占用大
計(jì)算代價(jià)高
因此,有許多研究也在致力于做一些這方面的優(yōu)化工作,包括但不僅限于將注意力操作限制在:


讓我們先簡(jiǎn)單的看下上圖:其中圖(a)是原始的注意力實(shí)現(xiàn),其直接在全局范圍內(nèi)操作,導(dǎo)致高計(jì)算復(fù)雜性和大量?jī)?nèi)存占用;而對(duì)于圖(b)-(d),這些方法通過引入具有不同手工模式的稀疏注意力來減輕復(fù)雜性,例如局部窗口、軸向條紋和擴(kuò)張窗口等;而圖(e)則是基于可變形注意力通過不規(guī)則網(wǎng)格來實(shí)現(xiàn)圖像自適應(yīng)稀疏性;
總的來說,作者認(rèn)為以上這些方法大都是通過將 手工制作和 與內(nèi)容無關(guān)
的稀疏性引入到注意力機(jī)制來試圖緩解這個(gè)問題。因此,本文通過雙層路由(bi-level routing)提出了一種新穎的動(dòng)態(tài)稀疏注意力(dynamic sparse attention ),以實(shí)現(xiàn)更靈活的計(jì)算分配和內(nèi)容感知,使其具備動(dòng)態(tài)的查詢感知稀疏性,如圖(f)所示。
此外,基于該基礎(chǔ)模塊,本文構(gòu)建了一個(gè)名為BiFormer的新型通用視覺網(wǎng)絡(luò)架構(gòu)。由于 BiFormer 以查詢自適應(yīng)的方式關(guān)注一小部分相關(guān)標(biāo)記,而不會(huì)分散其他不相關(guān)標(biāo)記的注意力,因此它具有良好的性能和高計(jì)算效率。最后,通過在圖像分類、目標(biāo)檢測(cè)和語義分割等多項(xiàng)計(jì)算機(jī)視覺任務(wù)的實(shí)證結(jié)果充分驗(yàn)證了所提方法的有效性。
方法
Bi-Level Routing Attention
Title: BiFormer: Vision Transformer with Bi-Level Routing Attention
Paper: https://arxiv.org/pdf/2303.08810.pdf
Code: https://github.com/rayleizhu/BiFormer
為了緩解多頭自注意力(Multi-Head Self-Attention, MHSA)的可擴(kuò)展性問題,先前的一些方法提出了不同的稀疏注意力機(jī)制,其中每個(gè)查詢只關(guān)注少量的鍵值對(duì),而非全部。然而,這些方法有兩個(gè)共性問題:
要么使用手工制作的靜態(tài)模式(無法自適應(yīng));
要么在所有查詢中共享鍵值對(duì)的采樣子集(無法做到互不干擾);
為此,作者探索了一種動(dòng)態(tài)的、查詢感知的稀疏注意力機(jī)制,其關(guān)鍵思想是在粗糙區(qū)域級(jí)別過濾掉大部分不相關(guān)的鍵值對(duì),以便只保留一小部分路由區(qū)域(這不就把冗余的信息干掉了嗎老鐵們)。其次,作者在這些路由區(qū)域的聯(lián)合中應(yīng)用細(xì)粒度的token-to-token注意力。
整個(gè)算法的偽代碼流程如下所示:

可以看到,整個(gè)模塊主要包含三個(gè)組件,即:
Region partition and input projection
Region-to-region routing with directed graph
Token-to-token attention
簡(jiǎn)單梳理下。假設(shè)我們輸入一張?zhí)卣鲌D,通過線性映射獲得QKV;其次,我們通過領(lǐng)接矩陣構(gòu)建有向圖找到不同鍵值對(duì)對(duì)應(yīng)的參與關(guān)系,可以理解為每個(gè)給定區(qū)域應(yīng)該參與的區(qū)域;最后,有了區(qū)域到區(qū)域路由索引矩陣 ,我們便可以應(yīng)用細(xì)粒度的token-to-token注意力了。

基于BRA模塊,本文構(gòu)建了一種新穎的通用視覺轉(zhuǎn)換器BiFormer。如上圖所示,其遵循大多數(shù)的vision transformer架構(gòu)設(shè)計(jì),也是采用四級(jí)金字塔結(jié)構(gòu),即下采樣32倍。
具體來說,BiFormer在第一階段使用重疊塊嵌入,在第二到第四階段使用塊合并模塊來降低輸入空間分辨率,同時(shí)增加通道數(shù),然后是采用連續(xù)的BiFormer塊做特征變換。需要注意的是,在每個(gè)塊的開始均是使用 3 × 3 3\times33×3 的深度卷積來隱式編碼相對(duì)位置信息。隨后依次應(yīng)用BRA模塊和擴(kuò)展率為 e ee 的 2 層 多層感知機(jī)(Multi-Layer Perceptron, MLP)模塊,分別用于交叉位置關(guān)系建模和每個(gè)位置嵌入。

上表展示了不同模型變體的網(wǎng)絡(luò)寬度和深度。其中FLOP是基于 224 × 224 輸入計(jì)算的。

所有模型都在分辨率為 224 × 224 224 \times 224224×224 的圖像上進(jìn)行訓(xùn)練和評(píng)估。其中星號(hào)表示該模型是使用標(biāo)記標(biāo)簽進(jìn)行訓(xùn)練的。據(jù)筆者所知,這是在沒有額外訓(xùn)練數(shù)據(jù)或訓(xùn)練技巧所能取得的最佳結(jié)果。此外,使用基于標(biāo)記的蒸餾技術(shù),BiFormer-S的準(zhǔn)確率可以進(jìn)一步提高到 84.3 % !

可以看到,本文方法貌似對(duì)小目標(biāo)檢測(cè)效果比較好。這可能是因?yàn)?/span>BRA模塊是基于稀疏采樣而不是下采樣,一來可以保留細(xì)粒度的細(xì)節(jié)信息,二來同樣可以達(dá)到節(jié)省計(jì)算量的目的。

為了進(jìn)一步了解雙層路由注意力的工作原理,作者將路由區(qū)域和注意力響應(yīng)進(jìn)行可視化。從圖中我們可以清楚地觀察到語義相關(guān)區(qū)域已被成功定位。例如,在第一個(gè)場(chǎng)景中的街景所示,如果查詢位置在建筑物或樹上,則對(duì)應(yīng)的路由區(qū)域覆蓋相同或相似的實(shí)體。而在第二個(gè)室內(nèi)場(chǎng)景中,當(dāng)我們將查詢位置放在鼠標(biāo)上時(shí),路由區(qū)域包含主機(jī)、鍵盤和顯示器的一部分,即使這些區(qū)域彼此不相鄰。這意味著雙層路由注意力可以捕獲遠(yuǎn)距離對(duì)上下文依賴。

Yolov5/Yolov7 引入CVPR 2023 BiFormer


機(jī)器學(xué)習(xí)算法AI大數(shù)據(jù)技術(shù)
搜索公眾號(hào)添加: datanlp
長按圖片,識(shí)別二維碼
閱讀過本文的人還看了以下文章:
TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)
基于40萬表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測(cè)
《基于深度學(xué)習(xí)的自然語言處理》中/英PDF
Deep Learning 中文版初版-周志華團(tuán)隊(duì)
【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
《深度學(xué)習(xí):基于Keras的Python實(shí)踐》PDF和代碼
python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼
《深度學(xué)習(xí)之pytorch》pdf+附書源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目
特征工程(二) :文本數(shù)據(jù)的展開、過濾和分塊
如何利用全新的決策樹集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
全球AI挑戰(zhàn)-場(chǎng)景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站
中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
搜索公眾號(hào)添加: datayx

