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