朱文博, 夏林聰, 陳 龍, 吳晨睿, 陳紅光
(1. 上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093;2. 上海貝特威自動(dòng)化科技有限公司,上海 201109)
機(jī)器視覺檢測技術(shù)具有非接觸、可在線、客觀、自動(dòng)化等突出優(yōu)點(diǎn)[3-4],適合現(xiàn)代制造業(yè)的產(chǎn)品檢測[5]。但應(yīng)用到O 型圈缺陷檢測時(shí),由于其缺陷像素占比不到整張圖像像素的0.5%,造成模型可用的分辨率有限和特征不明顯,導(dǎo)致小缺陷檢測困難[6]。模板匹配法[7]通過計(jì)算缺陷的周長或面積來判斷缺陷是否在規(guī)定范圍內(nèi),從而確定其有無異常。文獻(xiàn)[8]使用面積法檢測表面缺陷,計(jì)算各個(gè)連通區(qū)域的面積,通過設(shè)定相應(yīng)閾值來判斷缺陷。文獻(xiàn)[9]將獲得的圖像進(jìn)行奇異值分解,通過奇異區(qū)域檢測缺陷。以上傳統(tǒng)圖像處理的方法主要適用于O 型圈的邊緣檢測或者對(duì)特定類型的缺陷進(jìn)行單獨(dú)檢測,其缺點(diǎn)是難以設(shè)計(jì)一種或多種算法來全面滿足各種缺陷同時(shí)檢測的要求。
近年來,基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法在檢測領(lǐng)域得到較多應(yīng)用[10],例如雙階段檢測算法中的Faster R-CNN[11]和R-FCN[12],單階段檢測算法中的SSD[13]和YOLO[14]。但是,對(duì)于具體實(shí)例,尤其是小特征缺陷檢測很難取得令人滿意的效果[15]。針對(duì)較小特征的檢測,文獻(xiàn)[16-17]圍繞圖像特定區(qū)域進(jìn)行處理,聚焦于雙階段檢測算法,以犧牲推理時(shí)間來實(shí)現(xiàn)更好的性能,因而難以滿足實(shí)時(shí)檢測要求。YOLOv5 是一種單階段檢測算法[18],結(jié)構(gòu)清晰靈活,計(jì)算量小,識(shí)別速度快,檢測性能好,但對(duì)于檢測較小的物體時(shí)精度較低。
本文提出一種基于改進(jìn)YOLOv5 的O 型圈缺陷檢測算法,相比上述傳統(tǒng)圖像處理算法,該算法可同時(shí)全面地檢測多種缺陷,通過在網(wǎng)絡(luò)的預(yù)測層嵌入標(biāo)簽平滑模塊[19]來解決模型對(duì)標(biāo)簽的過度依賴問題。在骨干網(wǎng)絡(luò)中添加卷積注意力機(jī)制[20]和在頸部結(jié)構(gòu)中引入剪枝的雙向特征金字塔網(wǎng)絡(luò)[21],能使該算法對(duì)相似缺陷和小特征缺陷進(jìn)行較高精度的檢測,滿足工廠對(duì)不同類型缺陷進(jìn)行分揀的要求。并且,該算法可隨時(shí)添加新的缺陷類型,有助于后續(xù)工作的展開,擁有較強(qiáng)的工藝柔性。
通過工業(yè)相機(jī)采集全部O 型圈圖像,數(shù)據(jù)采集裝置如圖1 所示,采集圖像的原始分辨率為1 256×1 080,將篩選出存在缺陷的5 000 張圖像中的2 000 張進(jìn)行人工標(biāo)注,其中1 500 張作為初始訓(xùn)練集,剩余500 張作為測試集,測試集中的缺陷類型和數(shù)量如表1 所示。測試集雖是人工標(biāo)出缺陷,但在測試過程中只需將預(yù)測結(jié)果與人工標(biāo)注的真實(shí)框?qū)Ρ扔?jì)算即可。

圖1 數(shù)據(jù)采集裝置Fig. 1 Data collection

表1 測試集中的缺陷類型及數(shù)量Tab.1 Number of defects in the test set
半自動(dòng)標(biāo)注示例如圖2(a)所示,利用初始權(quán)重自動(dòng)推理出孔洞和刮蹭的標(biāo)注信息,即自動(dòng)完成部分缺陷標(biāo)注。其中,孔洞邊界框不夠緊致,需要人工微調(diào),紅色框內(nèi)的凸起缺陷為漏檢情況,需要人工補(bǔ)充。同理,將待標(biāo)注的3 000 張圖像使用半自動(dòng)標(biāo)注方法進(jìn)行粗標(biāo)注。首先,通過YOLOv5 將3 000 張圖像進(jìn)行預(yù)測,得到預(yù)測框和類別,對(duì)預(yù)測模塊的功能進(jìn)行改進(jìn),將預(yù)測標(biāo)簽信息導(dǎo)入Labelimg 模塊中,即生成粗標(biāo)注數(shù)據(jù)。最后,在Labelimg 模塊中通過人工微調(diào)及補(bǔ)充標(biāo)簽的方法得到標(biāo)注數(shù)據(jù)集。數(shù)據(jù)標(biāo)注流程如圖2(b)所示。

圖2 半自動(dòng)標(biāo)注示例與數(shù)據(jù)標(biāo)注流程Fig.2 Semi-automatic annotation example and data annotation process
在實(shí)際情況中,數(shù)據(jù)標(biāo)注成本昂貴,創(chuàng)建虛擬數(shù)據(jù)并添加至訓(xùn)練集是減少標(biāo)注成本的最佳方法。YOLOv5 使用了Mosaic 數(shù)據(jù)增強(qiáng)方法,即4 張圖像進(jìn)行隨機(jī)裁剪、縮放等操作后隨機(jī)拼接成一張新的圖像,增加小目標(biāo)樣本的數(shù)量,在進(jìn)行歸一化操作時(shí),會(huì)一次性計(jì)算4 張圖片,提升網(wǎng)絡(luò)訓(xùn)練速度。
由于采集得到的O 型圈缺陷圖像有限,但實(shí)際制造中產(chǎn)生的缺陷千變?nèi)f化,并且其表面存在的缺陷通常不是單一類型的,可能存在多類型多數(shù)量的缺陷,因此提供給模型不同形態(tài)的缺陷數(shù)據(jù)越多,檢測結(jié)果越準(zhǔn)確。本文改進(jìn)Mosaic 方法,稱之為Mosaic-9,流程圖如圖3(a)所示。從數(shù)據(jù)集中隨機(jī)抽取9 張圖像作為Mosaic 數(shù)據(jù)增強(qiáng)原圖,9 張圖像拼接的方法采用隨機(jī)裁剪5%~25%;由于缺陷在原圖像的占比較小,對(duì)9 張?jiān)瓐D隨機(jī)縮放的程度不宜過高,避免小型缺陷的特征丟失,采用隨機(jī)縮放原圖像60%~110%。將9 張圖像隨機(jī)裁剪縮放后拼接成一張新的圖像,具體實(shí)現(xiàn)方法如圖3(b)所示。

圖3 Mosaic-9 數(shù)據(jù)增強(qiáng)方法Fig.3 Mosaic-9 data enhancement method
超參數(shù)優(yōu)化方法可分為兩類:一類為可視化優(yōu)化方法,比如Zeiler 等[22]利用反卷積可視化AlexNet 網(wǎng)絡(luò);另一類為自動(dòng)超參數(shù)優(yōu)化方法[23],其中,網(wǎng)格搜索通過窮舉的方式遍歷參數(shù)的取值范圍,具有簡單、直觀、全局優(yōu)化的特點(diǎn),適合低維度參數(shù)尋優(yōu),且不會(huì)陷入局部最優(yōu)。本文采用網(wǎng)格搜索的方法來尋找最優(yōu)的超參數(shù)數(shù)值。合適的超參數(shù)可以很快地達(dá)到訓(xùn)練效果,并且訓(xùn)練權(quán)重更加符合O 型圈表面缺陷的檢測。YOLOv5微調(diào)了29 個(gè)超參數(shù),與默認(rèn)超參數(shù)的模型相比,最終測試集上的檢測正確率提高了2.17%。超參數(shù)優(yōu)化結(jié)果如表2 所示。

表2 超參數(shù)進(jìn)化結(jié)果Tab.2 Results of hyperparametric evolution

標(biāo)簽平滑最早應(yīng)用于分類算法中,之后才引入目標(biāo)檢測算法中,它們都在網(wǎng)絡(luò)預(yù)測層中使用交叉熵?fù)p失。對(duì)于每一個(gè)輸入樣本x,損失函數(shù)Li和yj的計(jì)算方式如下所示[19]:
193 Application of magnetic resonance imaging in diagnosis of breast cancer: an update

式中:yj表 示模型的輸出;n為 樣本數(shù)量;j和k為初始值為1 的兩個(gè)變量。
通過式(2) 可知,在交叉熵?fù)p失的計(jì)算過程中,模型會(huì)不斷調(diào)整權(quán)重,使預(yù)測結(jié)果盡可能地接近0 和1。除此之外,YOLOv5 在生成真實(shí)標(biāo)簽的時(shí)候,存在偏差,因此通過自動(dòng)標(biāo)注獲取的標(biāo)簽容易產(chǎn)生錯(cuò)標(biāo)。針對(duì)此問題,在計(jì)算交叉熵?fù)p失的過程中引入了標(biāo)簽平滑技術(shù)。交叉熵?fù)p失的計(jì)算公式為[19]

基于實(shí)驗(yàn)結(jié)果,將 ε值設(shè)置為0.1。通過引入標(biāo)簽平滑機(jī)制,模型在訓(xùn)練過程中不會(huì)擬合0 和1 這樣的極端值,避免了過擬合的現(xiàn)象,并在一定程度上提升了模型的泛化能力和學(xué)習(xí)速度,有益于O 型圈數(shù)據(jù)半自動(dòng)標(biāo)注的效果。
在實(shí)際O 型圈檢測場景中,由于光照環(huán)境、缺陷相似及缺陷尺寸范圍變化明顯的影響,常規(guī)的目標(biāo)檢測算法受到置信度的影響,易出現(xiàn)漏檢部分缺陷從而造成損失。為了讓骨干網(wǎng)絡(luò)學(xué)習(xí)到更加細(xì)致的局部特征信息,并融合全局信息作出更加準(zhǔn)確的判斷,避免誤檢測和漏檢測,本文對(duì)YOLOv5 的骨干網(wǎng)絡(luò)進(jìn)行改進(jìn),在每一個(gè)跨階段連接網(wǎng)絡(luò)(cross stage partial,CSP)結(jié)構(gòu)之后引入一個(gè)卷積注意力機(jī)制模板(convolution block attention module,CBAM),CBAM-Backbone模塊如圖4所示。

圖4 CBAM-Backbone 模塊Fig.4 Convolution block attention module-backbone module
卷積注意力機(jī)制模塊可以在通道維和空間維分別推斷出注意力的權(quán)重,使模型在訓(xùn)練過程中會(huì)重點(diǎn)關(guān)注缺陷區(qū)域,提取缺陷區(qū)域中更加全面的特征信息,加大特征提取網(wǎng)絡(luò)的全局感受野,增強(qiáng)特征提取能力,有效地減少環(huán)境背景和相似缺陷對(duì)O 型圈表面缺陷檢測的影響。
通道注意力模塊對(duì)輸入特征圖分別進(jìn)行全局平均池化和全局最大池化來聚合圖像的空間信息,經(jīng)過2 個(gè)多層感知機(jī)結(jié)構(gòu)構(gòu)建模型之間的相關(guān)性,最后經(jīng)過Sigmoid 激活函數(shù)獲得每一個(gè)通道的權(quán)重。其表示形式為[20]


空間注意力模塊將通道注意力模塊中的輸出作為輸入特征圖。首先,對(duì)輸入特征圖做一個(gè)基于通道的全局平均池化和全局最大池化,將2 個(gè)單通道特征圖進(jìn)行拼接;然后,通過一個(gè)7×7 的卷積對(duì)特征圖進(jìn)行降維,獲得一個(gè)單通道特征圖,便于特征融合;最后,經(jīng)過Sigmoid 激活函數(shù)獲得圖像空間位置的每一個(gè)特征權(quán)重。對(duì)各個(gè)通道的特征進(jìn)行加權(quán)操作,增強(qiáng)各個(gè)通道的信息交互,強(qiáng)化有效信息,抑制無效信息。其表示形式為[20]

O 型圈表面不僅存在孔洞、亮斑和褶皺等尺度變化范圍大的缺陷,還存在斷裂和劃痕等特征相似的缺陷。為了更好地進(jìn)行不同尺寸的特征融合,捕捉小缺陷和相似缺陷的具體特征,提出剪枝的雙向特征金字塔網(wǎng)絡(luò)(bidirectional feature pyramid network,BiFPN)頸部結(jié)構(gòu),雙向特征金字塔網(wǎng)絡(luò)和剪枝的雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)如圖5(a)和(b)所示。

圖5 BiFPN 和剪枝的BiFPN 結(jié)構(gòu)對(duì)比Fig.5 BiFPN and pruning BiFPN structure comparison




圖6 改進(jìn)的頸部結(jié)構(gòu)Fig.6 Improved neck structure

改進(jìn)的YOLOv5 模型搭建完畢,通過計(jì)算機(jī)完成相應(yīng)實(shí)驗(yàn),計(jì)算機(jī)的具體配置如表3 所示。利用訓(xùn)練集對(duì)改進(jìn)的YOLOv5 作訓(xùn)練優(yōu)化,實(shí)驗(yàn)采用隨機(jī)梯度下降法,具體參數(shù)如表4 所示。準(zhǔn)備待測試的圖像數(shù)據(jù),將其全部放入改進(jìn)的YOLOv5 中,通過向前傳播過程獲取一個(gè)測試結(jié)果,將圖像標(biāo)簽與測試結(jié)果作比對(duì),計(jì)算出測試精度指標(biāo)。

表3 實(shí)驗(yàn)平臺(tái)相關(guān)配置表Tab.3 Configuration table of experimental platform

表4 模型訓(xùn)練參數(shù)Tab.4 Model training parameters
在完成一輪訓(xùn)練并更新參數(shù)后,都要完成相應(yīng)測試來檢驗(yàn)此模型的泛化性和穩(wěn)定性。如圖7所示,box_loss 表示標(biāo)簽中邊界框中心點(diǎn)橫縱坐標(biāo)x,y和寬高w,h帶來的誤差,class_loss 表示類別帶來的誤差,mAP_50 表示交并比取50%時(shí)的平均精度均值。

圖7 訓(xùn)練評(píng)價(jià)指標(biāo)Fig.7 Training evaluation index
不同算法實(shí)驗(yàn)結(jié)果對(duì)比如表5 所示,針對(duì)各個(gè)缺陷類型,分別使用SSD,YOLOv5 與改進(jìn)的YOLOv5 進(jìn)行對(duì)比,改進(jìn)的YOLOv5 檢測效果整體優(yōu)于SSD 算法和YOLOv5 算法,其平均精度均值比SSD 算法高出5.93%,比YOLOv5 高出4.26%。在實(shí)際檢測過程中,需要排查少數(shù)有缺陷的O 型圈,因此,將候選框閾值適當(dāng)降低來嚴(yán)格篩查有缺陷的O 型圈,可以接受將少數(shù)無缺陷的O 型圈誤檢測為有缺陷以保證實(shí)際應(yīng)用價(jià)值。經(jīng)測試,本文所述改進(jìn)的YOLOv5 召回率為94%,而SSD,YOLOv5 檢測召回率分別為83%和86%。YOLOv5與改進(jìn)的YOLOv5 檢測結(jié)果示例如圖8(a)和(b)所示,對(duì)于一些較小的缺陷,YOLOv5 出現(xiàn)漏檢情況,而改進(jìn)的YOLOv5 可以檢測出較小缺陷的種類且精度符合實(shí)際應(yīng)用要求,其推理時(shí)間由15 ms增加至24 ms。但在實(shí)際的轉(zhuǎn)盤機(jī)分揀系統(tǒng)中,當(dāng)檢測時(shí)間不超過30 ms 時(shí)滿足正常分揀要求。

表5 不同算法實(shí)驗(yàn)結(jié)果對(duì)比Tab.5 Comparison of experimental results of different algorithms

圖8 檢測結(jié)果圖Fig. 8 Test result diagram
為了更好地說明改進(jìn)的YOLOv5 中各個(gè)改進(jìn)模塊對(duì)檢測效果的影響,在自制的O 型圈數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn),結(jié)果如表6 所示。基于標(biāo)簽平滑方法的YOLOv5 網(wǎng)絡(luò)可以有效避免模型對(duì)半自動(dòng)標(biāo)注標(biāo)簽的過度依賴,與YOLOv5 相比,其平均精度均值提高了1.62%。通過添加CBAM 注意力機(jī)制訓(xùn)練,獲取更多重點(diǎn)關(guān)注目標(biāo)的細(xì)節(jié)信息,抑制其他無用信息,該模塊將平均精度均值從94.85% 提高到95.92%。將引入標(biāo)簽平滑方法和CBAM 注意力機(jī)制的YOLOv5 網(wǎng)絡(luò)融入剪枝的雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),平均精度均值從95.92%提高到97.49%。結(jié)果表明,改進(jìn)后的特征融合網(wǎng)絡(luò)結(jié)構(gòu)可以有效檢測O 型圈表面的各種缺陷,提高網(wǎng)絡(luò)的檢測精度。

表6 自制O 型圈數(shù)據(jù)集上的消融實(shí)驗(yàn)Tab.6 Ablation experiments on a self-made O-ring dataset
針對(duì)O 型圈表面缺陷檢測,提出一種改進(jìn)的YOLOv5 卷積神經(jīng)網(wǎng)絡(luò)模型,其性能優(yōu)于原YOLOv5網(wǎng)絡(luò)模型,有效地提升了檢測O 型圈表面缺陷的精度,為O 型圈的智能分揀提供了一種可行的方法。本文通過改進(jìn)Mosaic 數(shù)據(jù)增強(qiáng)算法增大了小目標(biāo)的數(shù)據(jù)量,減少批標(biāo)準(zhǔn)化計(jì)算的次數(shù)。在網(wǎng)絡(luò)預(yù)測層使用標(biāo)簽平滑方法進(jìn)行標(biāo)簽修正,有效提升了模型的泛化能力。針對(duì)原算法出現(xiàn)誤檢測和漏檢測的情況,提出骨干網(wǎng)絡(luò)中添加卷積注意力機(jī)制模塊的策略,捕捉更多缺陷細(xì)節(jié),融合全局信息對(duì)缺陷作出更加準(zhǔn)確的判斷。為了解決圖像中小缺陷在特征提取過程中特征丟失的問題,通過剪枝的雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)來加強(qiáng)對(duì)小缺陷的特征融合,將小缺陷的檢測率由89.46%提升至94.35%。在后續(xù)的研究中,將利用各種加速方法,在保證檢測精度的前提下,提高算法的運(yùn)行速度,以適應(yīng)更為嚴(yán)苛的工業(yè)應(yīng)用環(huán)境。