黃漢成,趙衛(wèi)東,夏 冰
(1.安徽工業(yè)大學(xué)電氣與信息工程學(xué)院,安徽馬鞍山243032;2.馬鞍山鋼鐵股份有限公司設(shè)備管理部,安徽馬鞍山243000)
在汽車儀表盤指針的實(shí)際生產(chǎn)過(guò)程中,由于生產(chǎn)線上機(jī)器作業(yè)及空氣中偶有污染物等,指針上難免會(huì)產(chǎn)生各種類型的缺陷,如沾上黑點(diǎn)狀、毛發(fā)狀異物等,及時(shí)發(fā)現(xiàn)指針表面的缺陷已成為指針產(chǎn)品質(zhì)量控制過(guò)程中的重要環(huán)節(jié)。傳統(tǒng)的目標(biāo)檢測(cè)方法分為三個(gè)步驟:區(qū)域選擇,特征提取,分類器。其中,區(qū)域選擇常用的方法為滑窗,滑窗的選擇往往沒(méi)有針對(duì)性、復(fù)雜度較高;特征提取的方法有尺度不變特征變換(SIFT)[1]、方向梯度直方圖(HOG)[2]等,但是這些方法的特征魯棒性較差;分類器則以支持向量機(jī)(SVM)[3]、AdaBoost等為主流方案,但是采用這些方案易出現(xiàn)欠擬合的情況,且分類精度低。近年來(lái),Yann等[4]提出的卷積神經(jīng)網(wǎng)絡(luò)(CNN)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了不錯(cuò)的效果,為了提升分類的準(zhǔn)確度,模型的復(fù)雜度逐漸提高,深度也越來(lái)越深[5-6],常見(jiàn)的網(wǎng)絡(luò)如深度殘差網(wǎng)絡(luò)(ResNet)的層數(shù)已達(dá)152層?,F(xiàn)實(shí)中,深度學(xué)習(xí)更多地將應(yīng)用在移動(dòng)端和嵌入式端,其龐大的模型若被直接應(yīng)用會(huì)面臨內(nèi)存不足、響應(yīng)速度慢等問(wèn)題。為了解決這一問(wèn)題,Howard等[7]提出MobileNet,MobileNet的設(shè)計(jì)思想,直接設(shè)計(jì)一個(gè)小模型進(jìn)行訓(xùn)練,不僅可保持模型的性能,還可提升模型的速度。由于指針表面缺陷極其細(xì)微,考慮到檢測(cè)精度,用分辨率為5 472×3 648的Balser相機(jī)采集圖片,若不對(duì)圖片進(jìn)行任何處理直接輸入RFCN 進(jìn)行檢測(cè),則計(jì)算量非常大,檢測(cè)精度也不高。為此,提出一種融合MobileNet 與ResNet 的網(wǎng)絡(luò)及SSD(single shot-multibox detector)與RFCN(region-based fully convelutional networks)模型的指針缺陷檢測(cè)算法,采用SSD算法分辨出燙印和未燙印的指針,將燙印的指針輸入RFCN模型再次進(jìn)行微小缺陷的檢測(cè)。
MobileNet v2采用深度可分離卷積[8](depthwise separable convolution)作為基本單元,針對(duì)每個(gè)輸入通道采用不同的卷積核,相比標(biāo)準(zhǔn)卷積,其計(jì)算量和參數(shù)量大大減少;同時(shí)引入shortcut結(jié)構(gòu),通過(guò)1×1的卷積操作來(lái)增加feature map(特征圖)的通道數(shù),在逐點(diǎn)卷積結(jié)束之后改用linear激活函數(shù)。
SSD算法可以直接回歸出物體的類別和位置,且使用了許多候選區(qū)域作為RoI(region of interest)。此外,SSD采用多尺度特征圖,用不同的特征圖對(duì)不同尺寸的候選框進(jìn)行回歸,其基本架構(gòu)如圖1。
圖1 SSD基本架構(gòu)Fig.1 Basic architecture of SSD
對(duì)于每個(gè)預(yù)測(cè)框,首先根據(jù)類別置信度的排序來(lái)確定每個(gè)預(yù)測(cè)框所屬類別;然后過(guò)濾掉置信度較低的預(yù)測(cè)框,對(duì)留下的預(yù)測(cè)框降序排列,使用非極大值抑制(NMS)[9]算法確定最后的檢測(cè)結(jié)果。置信度誤差采用softmax損失函數(shù),定義如下式
為了預(yù)測(cè)目標(biāo)的邊界框位置,采用回歸的方法預(yù)測(cè)邊界框的位置信息,位置誤差采用smooth L1 損失函數(shù),定義如下式:
迭代損失函數(shù)定義如下式
該損失函數(shù)定義為置信度誤差(confidence loss)與位置誤差(locatization loss)的加權(quán)和。其中:N 是先驗(yàn)框的正樣本數(shù)量;c 為類別置信度預(yù)測(cè)值;α 為加權(quán)參數(shù),取值范圍(0,1]。
夏季,天氣炎熱。中午,她從吳玉梅家里回到自己家后,生了滿肚子的氣,飯也不做,一頭倒在床上,只顧想她的心事。
一味增加神經(jīng)網(wǎng)絡(luò)的深度,可能會(huì)出現(xiàn)訓(xùn)練集準(zhǔn)確率下降的問(wèn)題,即“退化問(wèn)題”[10],對(duì)此,He等[11]提出了一種全新的網(wǎng)絡(luò),即深度殘差網(wǎng)絡(luò)(ResNet),允許加深網(wǎng)絡(luò)。其核心思想分為identity mapping(恒等映射),residual mapping(殘差映射)兩部分。若輸出y=F(x)+α,那么第一部分即為x,第二部分即為y-x,所以稱F(x)為殘差。只要y=0,就構(gòu)成了一個(gè)恒等映射F(x)=x,這樣擬合殘差會(huì)更容易,即使網(wǎng)絡(luò)深度增加,性能也不會(huì)降低,整個(gè)網(wǎng)絡(luò)會(huì)處于最優(yōu)狀態(tài)。
SPP[12],F(xiàn)aster R-CNN 等方法在RoI 池化之后,后面的網(wǎng)絡(luò)結(jié)構(gòu)就失去了平移不變性。RFCN 提出了position sensitive score map(位置敏感得分圖),把目標(biāo)的位置信息融入RoI pooling(RoI池化層)[13-14],從而可對(duì)目標(biāo)的平移準(zhǔn)確響應(yīng)。RFCN 的基礎(chǔ)網(wǎng)絡(luò)去掉了ResNet-101 的average pooling layer(平均池化層)和fully connection layer(全連接層),在網(wǎng)絡(luò)的最后接上一個(gè)1×1×1 024的全卷積層[15]。其網(wǎng)絡(luò)結(jié)構(gòu)如圖2。
圖2 RFCN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network architecture of RFCN
RFCN通過(guò)規(guī)則網(wǎng)格將每個(gè)RoI矩形劃分為k×k個(gè)區(qū)間。RFCN的最后一個(gè)卷積層為每個(gè)類別生成k2通道的得分圖。在第(i,j)個(gè)區(qū)間(0≤i,j≤k-1)定義一個(gè)位置敏感的RoI池化響應(yīng)操作:
為得到預(yù)測(cè)目標(biāo)的所屬類別,分類損失使用交叉熵?fù)p失,定義如下式:
其中:sc(θ)是一個(gè)函數(shù),定義為(11)式;θ 為函數(shù)的參數(shù);rc(θ)為對(duì)每一類所有相對(duì)空間位置的分?jǐn)?shù)的平均池化;c 為分類的個(gè)數(shù)。
為了得到預(yù)測(cè)目標(biāo)的邊界框的位置,回歸損失使用smooth L1損失,定義為下式:
其中:t 為預(yù)測(cè)邊框的參數(shù)化坐標(biāo);t*為坐標(biāo)向量;x 為函數(shù)的參數(shù)。
其中:tx,y,w,h為預(yù)測(cè)邊框的參數(shù)化坐標(biāo);t*為坐標(biāo)向量,若c*=0,說(shuō)明RoI的真實(shí)標(biāo)簽為背景;λ 為加權(quán)參數(shù),取值范圍(0,1];Lcls(sc*)為分類損失函數(shù);Lreg(t,t*)為邊界框回歸損失函數(shù)。
實(shí)驗(yàn)平臺(tái):CPU 為Intel Core i7-6800K@3.400 GHz,GPU 為NVIDIA GTX1080Ti,內(nèi)存為16 GB,操作系統(tǒng)為Ubuntu16.04、深度學(xué)習(xí)框架為Tensorflow-gpu,CUDA9.0。圖片采集用Basler ace Gige acA5472-5gm面陣工業(yè)相機(jī),分辨率為5 472×3 648,幀率為5 f/s。
使用LabelImg對(duì)現(xiàn)場(chǎng)采集的指針圖片進(jìn)行標(biāo)注,標(biāo)注類別為燙印指針(normal)和未燙印指針(abnormal),現(xiàn)場(chǎng)采集584張照片,其中燙印的指針有558張,未燙印的指針有26張。訓(xùn)練集中屬于(燙印)normal類別的有500張,屬于(未燙印)abnormal類別的有20張;測(cè)試集中屬于normal類別的有58張,屬于abnormal類別的有6張。未燙印指針和燙印指針的標(biāo)注如圖3。
圖3 未燙印指針和燙印指針的標(biāo)注Fig.3 Marking of no stamping pointer and stamping pointer
相機(jī)拍攝的分辨率為5 472×3 648,SSD的輸入尺寸不宜過(guò)大,否則會(huì)造成內(nèi)存溢出而訓(xùn)練終止。為保證訓(xùn)練過(guò)程的穩(wěn)定性,訓(xùn)練之前先將采集照片的尺寸重新設(shè)定,寬度為450、高度為300,然后輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。訓(xùn)練完成后隨機(jī)選取部分圖片作為測(cè)試,測(cè)試圖片中的指針均以不同的角度擺放,選取的燙印與未燙印指針的檢測(cè)結(jié)果分別如圖4,5。由圖4,5 可以看出,對(duì)于擺放不同位置的燙印和未燙印指針,采用SSD-MobileNet算法均可被檢測(cè)出,且置信度為99%,說(shuō)明以MobileNet作為SSD算法的特征提取網(wǎng)絡(luò)具有較高的準(zhǔn)確性。
圖4 燙印指針的檢測(cè)結(jié)果Fig.4 Detection results of stamping pointer
圖5 未燙印指針的檢測(cè)結(jié)果Fig.5 Detection results of no stamping pointer
測(cè)試完成后,記錄檢測(cè)燙印和未燙印指針的平均邊框精度、置信度、準(zhǔn)確率、召回率、漏檢率等評(píng)價(jià)指標(biāo),如表1。
由表1可知,無(wú)論是燙印還是未燙印的指針都沒(méi)有被漏檢,召回率均為100%。類別為燙印的邊框精度為97%,類別為未燙印的邊框精度為90%,由此說(shuō)明SSD-MobileNet 算法具有較高的檢測(cè)精度,對(duì)SSD-MobileNet算法檢測(cè)的邊框進(jìn)行裁剪,將其作為RFCN的輸入,進(jìn)行指針表面微小缺陷的檢測(cè)。
表1 SSD-MobileNet算法的實(shí)驗(yàn)數(shù)據(jù)Tab.1 Experimental data of SSD-MobileNet algorithm
將SSD算法輸出類別為燙印(normal)的圖片進(jìn)行裁剪,對(duì)這558張裁剪后的圖片進(jìn)行二次標(biāo)注,標(biāo)注的缺陷類別如圖6。由圖6可看出:第一類缺陷為邊緣不平整或有缺口,記為gap;第二類缺陷為毛發(fā)狀異物,記為hair;第三類缺陷為黑點(diǎn)狀異物,記為stain;第四類缺陷為白光區(qū)域,記為light。
圖6 4種缺陷的標(biāo)注Fig.6 Marking of four kinds of defects
采取隨機(jī)縮放、翻轉(zhuǎn)、裁剪的方法增強(qiáng)數(shù)據(jù),從中隨機(jī)選取4種缺陷的檢測(cè)結(jié)果,如圖7。由圖7可看出:gap類型缺陷置信度較低,為92%;而hair,stain,light等類型缺陷置信度較高,均為99%,說(shuō)明以ResNet作為RFCN的特征提取網(wǎng)絡(luò)具有較高的準(zhǔn)確性。隨機(jī)選取指針表面缺陷的檢測(cè)結(jié)果,如圖8。其中:圖8(a)為指針表面無(wú)缺陷,圖8(b)為指針表面一種類型缺陷;圖8(c),(d)為指針表面多種類型缺陷。由圖8 可看出,采用RFCN-ResNet算法可檢測(cè)出指針表面多種類型的缺陷。
圖7 4種缺陷檢測(cè)結(jié)果Fig.7 Detection results of four kinds of defects
圖8 指針表面缺陷的檢測(cè)結(jié)果Fig.8 Detection results of pointer surface defect
檢測(cè)完成后,記錄指針表面缺陷的檢測(cè)平均邊框精度、置信度、準(zhǔn)確率、召回率、漏檢率等評(píng)價(jià)指標(biāo),如表2。
由表2可知:邊緣缺口(gap)類型缺陷檢出的準(zhǔn)確率偏低,為91%,因人為標(biāo)注時(shí),部分gap 類型缺陷可能被誤判為stain 類型缺陷,導(dǎo)致部分gap 類型缺陷被檢測(cè)為stain類型缺陷;stain類型缺陷漏檢率偏高,為4%,因標(biāo)注時(shí)不同標(biāo)注者對(duì)黑點(diǎn)大小的判斷不一致,部分微小的黑點(diǎn)未被標(biāo)出,導(dǎo)致部分黑點(diǎn)未被檢出。由此說(shuō)明采用RFCN-ResNet算法可將指針表面微小缺陷準(zhǔn)確檢測(cè),且可準(zhǔn)確定位。
表2 RFCN-ResNet算法的實(shí)驗(yàn)數(shù)據(jù)Tab.2 Experimental data of RFCN-ResNet algorithm
綜上分析表明:采用RFCN-ResNet算法可檢測(cè)指針表面stain,hair,gap,light等四類缺陷,準(zhǔn)確率分別為94%,95%,91%,93%,因RFCN-ResNet算法中采用敏感位置得分圖可提高檢測(cè)準(zhǔn)確率;采用RFCN-ResNet算法僅極少數(shù)微小缺陷未被檢出,因?yàn)橹眯哦鹊投贿^(guò)濾掉?,F(xiàn)場(chǎng)要求指針表面缺陷檢測(cè)的準(zhǔn)確率在80%以上,故RFCN-ResNet算法的檢測(cè)準(zhǔn)確率可滿足現(xiàn)場(chǎng)生產(chǎn)要求。
設(shè)計(jì)一種融合SSD和RFCN的指針缺陷檢測(cè)算法。SSD-MobileNet算法采用多尺度特征圖和深度可分離卷積,可直接回歸出物體的類別和位置,進(jìn)而檢測(cè)出指針是否燙印。將燙印的指針檢出后進(jìn)行裁剪送入RFCN-ResNet 算法進(jìn)行二次檢測(cè),RFCN-ResNet 算法采用敏感位置得分圖可將指針表面細(xì)小的缺陷檢測(cè)出。實(shí)驗(yàn)結(jié)果表明,采用SSD-MobileNet和RFCN-ResNet融合的指針缺陷檢測(cè)算法可精準(zhǔn)識(shí)別指針表面微小缺陷,具有較高的精度、置信度、準(zhǔn)確率及召回率。