yolov5的PCB缺陷檢測,引入CVPR 2023 BiFormer

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

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

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


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

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

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

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

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

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

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

Yolov5/Yolov7 引入CVPR 2023 BiFormer


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

