吳皓,沙玲
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車(chē)工程學(xué)院)
隨著中國(guó)“智能制造2025”的提出,工業(yè)界正在積極探討智能技術(shù)在行業(yè)中的應(yīng)用前景,智能化檢測(cè)與識(shí)別是備受關(guān)注的難點(diǎn)與重點(diǎn)。襯芯是汽車(chē)剎車(chē)系統(tǒng)中的一個(gè)重要零件,如圖1 所示,襯芯的法蘭面缺陷會(huì)影響剎車(chē)系統(tǒng)的密封性。
圖1 襯芯實(shí)物圖Fig.1 Physical drawing of brake liner
目前對(duì)襯芯的質(zhì)量檢測(cè)主要由人工完成,人的主觀因素會(huì)導(dǎo)致檢測(cè)準(zhǔn)確率不高。除了人工檢測(cè),零件的表面缺陷檢測(cè)還可以借助傳統(tǒng)算法、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)來(lái)完成[1]。其中,傳統(tǒng)算法對(duì)于缺陷特征固定的場(chǎng)景具有檢測(cè)速度快、運(yùn)行效率高的優(yōu)勢(shì),但當(dāng)缺陷特征形態(tài)復(fù)雜多變時(shí),其局限性便體現(xiàn)了出來(lái)[2];基于機(jī)器學(xué)習(xí)的檢測(cè)方法魯棒性有了提升,但是由于機(jī)器學(xué)習(xí)方法對(duì)特征的要求高,特征的質(zhì)量好壞在很大程度上影響著檢測(cè)效果;而深度學(xué)習(xí)利用實(shí)際生產(chǎn)中的大量數(shù)據(jù)擬合缺陷的特征進(jìn)行檢測(cè),可以明顯提升檢測(cè)缺陷的準(zhǔn)確性,并有效增強(qiáng)缺陷檢測(cè)模型的泛化能力。在數(shù)據(jù)充足的前提下,工件表面的缺陷檢測(cè)效果較為出色[3-4]。
基于深度學(xué)習(xí)的檢測(cè)算法主要包括一階段和二階段2 類(lèi)[5]。以Faster RCNN[6]為代表的二階段檢測(cè)算法先提取出候選框,再對(duì)候選框內(nèi)的目標(biāo)進(jìn)行識(shí)別;而以YOLO-V1[7]、SSD[8]為代表的一階段目標(biāo)檢測(cè)算法直接回歸出了目標(biāo)的位置和類(lèi)別。由于檢測(cè)原理的區(qū)別,二階段的檢測(cè)算法精度較高,但是速度不快;一階段的檢測(cè)算法精度略低,但是速度較快。
在實(shí)際生產(chǎn)中,檢測(cè)速度和檢測(cè)精度需要權(quán)衡考慮。YOLO-V3 在目標(biāo)識(shí)別檢測(cè)算法中表現(xiàn)優(yōu)異,兼顧高準(zhǔn)確率與檢測(cè)速度。在目標(biāo)檢測(cè)任務(wù)中,通常將微小型和細(xì)長(zhǎng)型待測(cè)物都?xì)w為小尺寸目標(biāo)[9]。由于襯芯的法蘭面缺陷較為微小,為提升檢測(cè)算法對(duì)于小目標(biāo)的檢測(cè)效果,本文選擇以YOLO-V3[10]為基礎(chǔ)的改進(jìn)網(wǎng)絡(luò)對(duì)襯芯進(jìn)行缺陷檢測(cè)。
REDMON 等人于2016 年提出一階段目標(biāo)檢測(cè)算法YOLO-V1,通過(guò)回歸將目標(biāo)定位和目標(biāo)識(shí)別一并完成。由于不用花費(fèi)大量時(shí)間在生成候選框上,YOLO-V1 算法的實(shí)時(shí)性較Faster RCNN有較大提升。YOLO-V3 于2018 年被提出,相比YOLO-V1,除了檢測(cè)精度有所提升,通過(guò)多尺度融合預(yù)測(cè),對(duì)于小目標(biāo)檢測(cè)的效果也得到了較大的提升。
YOLO 系列網(wǎng)絡(luò)的每一次迭代都伴隨著網(wǎng)絡(luò)結(jié)構(gòu)的調(diào)整,YOLO-V3 也不例外。YOLO-V3 的骨干網(wǎng)絡(luò)為Darknet53,其結(jié)構(gòu)如圖2 所示。一方面,相比YOLO -V2 的Darknet19 加深了網(wǎng)絡(luò)深度,使深層網(wǎng)絡(luò)特征圖的語(yǔ)義信息更為豐富;另一方面,為了減少因?yàn)榫W(wǎng)絡(luò)深度帶來(lái)的反向傳播過(guò)程中梯度消失的風(fēng)險(xiǎn),YOLO-V3 借鑒了殘差神經(jīng)網(wǎng)絡(luò)的思想,大量采用short cut[11]結(jié)構(gòu)。
圖2 YOLO-V3 結(jié)構(gòu)Fig.2 Structure of YOLO-V3
如圖3 所示,short cut 結(jié)構(gòu)將未經(jīng)卷積的特征圖直接與經(jīng)過(guò)3×3 卷積的特征圖融合,這樣的設(shè)計(jì)使得網(wǎng)絡(luò)在進(jìn)行反向傳播時(shí)可沿著未經(jīng)3×3 卷積的路徑,如此就避免了由于卷積層過(guò)多而帶來(lái)的訓(xùn)練誤差增大的風(fēng)險(xiǎn)。為了保證經(jīng)過(guò)3×3 卷積的特征圖與未經(jīng)卷積的特征圖維度一致,在short cut結(jié)構(gòu)中添加1×1 卷積核以調(diào)整特征圖維度。
圖3 Short Cut 結(jié)構(gòu)Fig.3 Structure of Short Cut
YOLO-V3 借鑒了FPN[12](特征金字塔)中的特征融合思想,將不同尺度的特征進(jìn)行融合。淺層網(wǎng)絡(luò)提取的特征比簡(jiǎn)單,但分辨率較高,適合用來(lái)預(yù)測(cè)較小目標(biāo);深層網(wǎng)絡(luò)提取的特征較為復(fù)雜,感受野較大,適合用來(lái)預(yù)測(cè)大目標(biāo)[13]。經(jīng)過(guò)卷積,YOLO-V3 網(wǎng)絡(luò)中提取的特征圖共有13×13、26×26、52×52 三種尺度。
如圖4 所示,首先將13×13 的特征圖Scale1與網(wǎng)絡(luò)第61 層輸出進(jìn)行concat(張量拼接),經(jīng)過(guò)卷積輸出26×26 的特征圖Scale2,然后與網(wǎng)絡(luò)第36 層輸出進(jìn)行concat,經(jīng)過(guò)卷積輸出52×52 的特征圖Scale3。YOLO-V3 通過(guò)聚類(lèi)得到9 個(gè)尺寸的anchor box,并包含(x,y,w,h,confidence)5 個(gè)參數(shù),在COCO 數(shù)據(jù)集中每個(gè)anchor box 需要預(yù)測(cè)80 個(gè)種類(lèi),因此特征圖的深度為255。YOLO-V3 將各種尺度的特征進(jìn)行融合,使得網(wǎng)絡(luò)能夠同時(shí)學(xué)習(xí)到深層與淺層的特征,從而提高了模型對(duì)于小目標(biāo)的檢測(cè)能力。
圖4 多尺度預(yù)測(cè)Fig.4 Multi-scale prediction
襯芯的法蘭面缺陷主要包括凹坑、缺口、裂紋、淺溝,而缺陷的尺寸不一,對(duì)于尺寸較小的缺陷檢測(cè)難度較大。為了提升網(wǎng)絡(luò)對(duì)于微小目標(biāo)的檢測(cè)能力,本文對(duì)YOLO-V3 進(jìn)行了改進(jìn),進(jìn)一步增強(qiáng)了網(wǎng)絡(luò)對(duì)于微小目標(biāo)的定位與識(shí)別能力。
為了提升網(wǎng)絡(luò)對(duì)于微小特征的檢測(cè)效果,在YOLO-V3 原有的FPN 結(jié)構(gòu)上增加一種尺度以提高對(duì)于淺層網(wǎng)絡(luò)特征的利用效率,最終將4 個(gè)尺度的特征圖融合并輸出預(yù)測(cè)。
經(jīng)過(guò)改進(jìn)的網(wǎng)絡(luò)如圖5 所示。本文增加了尺度為104×104 的特征圖Scale4,并通過(guò)K-Means 算法聚類(lèi)出12 種尺寸的anchor box。根據(jù)特征圖的尺度進(jìn)行分配,特征圖的尺度越大,分配到的anchor box 尺寸越小,并將尺度為104×104 的特征圖與已有的3 種尺度的特征圖融合,為最終輸出的特征圖增加了空間信息,這使得網(wǎng)絡(luò)能夠更為精準(zhǔn)地定位微小缺陷。
圖5 改進(jìn)YOLO-V3 結(jié)構(gòu)Fig.5 Structure of improved YOLO-V3
由于F'PN 結(jié)構(gòu)改進(jìn)引入了新的參數(shù),為加快檢測(cè)速度,本文借鑒MobileNet[14],引入深度可分離卷積取代short cut 結(jié)構(gòu)中的普通3×3 卷積,并添加一層1×1 卷積核的卷積層用來(lái)平滑特征。深度可分離卷積與普通卷積方式最大的區(qū)別是深度可分離卷積采用逐通道卷積加上逐點(diǎn)卷積的方式代替普通卷積,其分離之意是指對(duì)于通道廣度和特征空間的分離[15],相比普通卷積的參數(shù)量大大降低。圖6(a)所示是未經(jīng)變化的short cut 結(jié)構(gòu),圖6(b)所示是引入深度可分離卷積的short cut 結(jié)構(gòu)。
圖6 Short Cut 結(jié)構(gòu)改進(jìn)對(duì)比Fig.6 Comparison of Short Cut structure improvement
神經(jīng)網(wǎng)絡(luò)的效果一方面由其設(shè)計(jì)決定;另一方面,一個(gè)高質(zhì)量數(shù)據(jù)集也在很大程度上影響神經(jīng)網(wǎng)絡(luò)最終的性能表現(xiàn)。由于缺乏襯芯缺陷圖像數(shù)據(jù)集,本文采用工廠提供的襯芯圖像作為缺陷數(shù)據(jù)集。如圖7 所示,缺陷種類(lèi)包括凹坑、缺口、裂紋、淺溝。
圖7 襯芯法蘭面缺陷類(lèi)型Fig.7 Defects of brake liner
本文使用labelImg 軟件對(duì)缺陷區(qū)域進(jìn)行標(biāo)注,產(chǎn)生的標(biāo)注文件是XML 文件,XML 文件中包括缺陷區(qū)域的位置信息和種類(lèi)信息。如表1 所示,各種缺陷標(biāo)注的數(shù)量相近,為避免網(wǎng)絡(luò)訓(xùn)練陷入過(guò)擬合,也為了提升檢測(cè)網(wǎng)絡(luò)的泛化性能,本文對(duì)數(shù)據(jù)集進(jìn)行了擴(kuò)充。
表1 缺陷標(biāo)注數(shù)量分布Tab.1 Distribution of marked defects
神經(jīng)網(wǎng)絡(luò)的復(fù)雜性很大程度上決定了網(wǎng)絡(luò)的性能,而復(fù)雜性的提升如果沒(méi)有數(shù)據(jù)量作為支撐,神經(jīng)網(wǎng)絡(luò)很容易出現(xiàn)過(guò)擬合,因此,本文針對(duì)空間位置、角度、噪聲、分辨率這幾個(gè)方面對(duì)現(xiàn)有的數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充,最終的標(biāo)注缺陷區(qū)域數(shù)量達(dá)到了2 000 個(gè)。
實(shí)驗(yàn)均在同一臺(tái)主機(jī)上進(jìn)行,顯卡型號(hào)為GTX 2060 Super,CPU 型號(hào)為至強(qiáng)E3 1231 v3。在對(duì)參數(shù)進(jìn)行設(shè)置時(shí),通過(guò)多次實(shí)驗(yàn)對(duì)比,發(fā)現(xiàn)將本文的訓(xùn)練集與測(cè)試集的劃分比例設(shè)置為8:2,學(xué)習(xí)率設(shè)置為0.001 2,批量大小設(shè)置為1,衰減系數(shù)設(shè)置為0.000 5 時(shí),網(wǎng)絡(luò)收斂效果較好。
改進(jìn)的YOLO-V3 網(wǎng)絡(luò)在訓(xùn)練過(guò)程中得到損失函數(shù),如圖8 所示,橫軸為訓(xùn)練的圖片數(shù)量,縱軸為損失函數(shù)值??梢钥闯?,曲線在訓(xùn)練了12 500張之后損失函數(shù)趨于收斂,穩(wěn)定在0.079 529 到0.125 61 之間,這說(shuō)明了改進(jìn)網(wǎng)絡(luò)的損失函數(shù)趨于收斂,訓(xùn)練基本完成。
圖8 改進(jìn)網(wǎng)絡(luò)的loss 曲線Fig.8 Curve of improved network’s loss
3.4.1 評(píng)價(jià)指標(biāo)介紹
對(duì)于缺陷檢測(cè),通常使用FPS 和mAP 這2 個(gè)指標(biāo)來(lái)量化缺陷檢測(cè)算法的速度和精度性能[16]。FPS 意為算法每秒可以處理的圖像數(shù)量,mAP 意為均值平均精度,即所有類(lèi)別的平均精度(Average Precision,AP)的均值,而計(jì)算每個(gè)類(lèi)別的平均精度又涉及到精度(PRECISION)和召回率(RECALL)。精度的升高往往伴隨著召回率的降低,因此在評(píng)估模型對(duì)于某一類(lèi)的檢測(cè)性能時(shí)不能只參考其中的某一個(gè)指標(biāo),二者必須兼顧。
假設(shè)TP 代表正類(lèi)預(yù)測(cè)為正類(lèi),F(xiàn)P 代表把負(fù)類(lèi)預(yù)測(cè)為正類(lèi),F(xiàn)N 代表把正類(lèi)預(yù)測(cè)為負(fù)類(lèi)。通過(guò)式(1)、式(2)可以分別求得精度、召回率。
在計(jì)算平均精度時(shí),對(duì)于某一類(lèi)缺陷,需要根據(jù)置信度對(duì)預(yù)測(cè)框進(jìn)行排序,完成后獲得一組包含精度和召回率的數(shù)組。以該數(shù)組中的數(shù)據(jù)為基礎(chǔ),建立PRECISON-RECALL 坐標(biāo)系,P(r)代表某個(gè)RECALL值對(duì)應(yīng)的PRECISON值,平均精度可由式(3)求得:
在求出每一類(lèi)的平均精度之后,根據(jù)式(4)可求得均值平均精度。
式中:n——類(lèi)別的數(shù)量。
3.4.2 網(wǎng)絡(luò)性能對(duì)比
如圖9 所示,橫軸表示訓(xùn)練迭代次數(shù),縱軸表示mAP。每當(dāng)訓(xùn)練迭代一次,便對(duì)訓(xùn)練過(guò)程中的預(yù)測(cè)結(jié)果計(jì)算mAP 并記錄下來(lái),粗線為YOLO-V3的mAP 曲線,細(xì)線為改進(jìn)網(wǎng)絡(luò)的mAP 曲線。隨著訓(xùn)練的進(jìn)行,兩者的mAP 趨于收斂,最終改進(jìn)網(wǎng)絡(luò)的mAP 穩(wěn)定在0.860 6~0.903 2 之間,而YOLO-V3 穩(wěn)定在0.833 2~0.861 3 之間。由此可見(jiàn),在襯芯的缺陷檢測(cè)訓(xùn)練穩(wěn)定后,改進(jìn)網(wǎng)絡(luò)的mAP要高于YOLO-V3,說(shuō)明在訓(xùn)練趨于穩(wěn)定后,改進(jìn)網(wǎng)絡(luò)的分類(lèi)性能優(yōu)于YOLO-V3。
圖9 mAP 曲線對(duì)比圖Fig.9 mAP curve comparison chart
除了檢測(cè)質(zhì)量以外,檢測(cè)速度也需要被考慮。表2 對(duì)各算法的檢測(cè)速度進(jìn)行了對(duì)比。基于測(cè)試集,本文對(duì)所有網(wǎng)絡(luò)的預(yù)測(cè)進(jìn)行計(jì)時(shí),改進(jìn)網(wǎng)絡(luò)的FPS為2.381,原YOLO-V3 的FPS 為3.125,相差不大。相比YOLO-V3,改進(jìn)網(wǎng)絡(luò)的精度有所提高,但是檢測(cè)速度并沒(méi)有相差過(guò)大,說(shuō)明針對(duì)網(wǎng)絡(luò)卷積方式的改進(jìn)取得了一定的效果。
表2 檢測(cè)速度對(duì)比Tab.2 Comparison of detection speeds
如圖10 所示,本文隨機(jī)抽取一張襯芯采集圖像,使用訓(xùn)練過(guò)的YOLO-V3 和改進(jìn)網(wǎng)絡(luò)分別進(jìn)行測(cè)試,圖10(a)為YOLO-V3 檢測(cè)效果,圖10(b)為改進(jìn)網(wǎng)絡(luò)檢測(cè)效果??梢钥闯?,改進(jìn)后的網(wǎng)絡(luò)對(duì)于微小目標(biāo)檢測(cè)效果有較大的提升,說(shuō)明改進(jìn)后的網(wǎng)絡(luò)對(duì)于目標(biāo)尺度方面的檢測(cè),其魯棒性比YOLO-V3 強(qiáng)。
圖10 圖像檢測(cè)效果對(duì)比圖Fig.10 Comparison of image’s detection
本文是基于YOLO-V3 網(wǎng)絡(luò)進(jìn)行改進(jìn),一方面,針對(duì)YOLO-V3 網(wǎng)絡(luò)對(duì)于襯芯的小目標(biāo)檢測(cè)置信度不夠的問(wèn)題,對(duì)YOLO-V3 的FPN 結(jié)構(gòu)進(jìn)行改進(jìn),在原有的三層特征圖基礎(chǔ)上加上一層深度更淺的卷積層特征圖,為融合后的特征圖加入更多的淺層特征信息,達(dá)到提高網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)效果的目的。另一方面,針對(duì)改進(jìn)FPN 結(jié)構(gòu)引入大量參數(shù)導(dǎo)致訓(xùn)練成本上升的問(wèn)題,本文引入深度可分離卷積替代普通的卷積方式,減少了參數(shù)量,從而降低了網(wǎng)絡(luò)的訓(xùn)練成本并提高了網(wǎng)絡(luò)的檢測(cè)速度。
實(shí)驗(yàn)結(jié)果表明,相比原YOLO-V3 網(wǎng)絡(luò),改進(jìn)網(wǎng)絡(luò)對(duì)于小目標(biāo)的檢測(cè)效果更好,雖然檢測(cè)速度略有下降,但檢測(cè)精度較其他算法有較好表現(xiàn),能滿足工業(yè)現(xiàn)場(chǎng)對(duì)襯芯缺陷檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性要求。說(shuō)明本文的改進(jìn)網(wǎng)絡(luò)有一定的實(shí)際意義,并且在針對(duì)工件的小目標(biāo)檢測(cè)場(chǎng)景有一定的借鑒作用。