郭蘭申,李 楊,黃鳳榮,錢 法
(河北工業(yè)大學(xué)機(jī)械工程學(xué)院,天津300131)
發(fā)動機(jī)零部件在制造中,由于加工工藝等問題很容易出現(xiàn)磕碰、刀痕等缺陷,缺陷零件一旦使用將存在嚴(yán)重的安全隱患。目前,大多數(shù)企業(yè)采用傳統(tǒng)的人工檢測的方式,檢測人員的經(jīng)驗(yàn)和主觀性會對檢測結(jié)果產(chǎn)生很大的影響,且長時(shí)間使用肉眼檢測會產(chǎn)生視覺疲勞影響檢測結(jié)果,難以保證檢測的準(zhǔn)確性和效率。因此,利用自動化檢測方法實(shí)現(xiàn)高準(zhǔn)確性和高效的零件表面缺陷檢測具有重要意義。
近年來,基于機(jī)器視覺的缺陷檢測方法在國內(nèi)外有大量的相關(guān)研究。文獻(xiàn)[1]提出一種基于形態(tài)學(xué)圖像分割算法的印刷電路板(PCBs)缺陷檢測與分類系統(tǒng);文獻(xiàn)[2]提出一種改進(jìn)的模糊c均值聚類算法(IFCM),可以更準(zhǔn)確地分割MPSG 中的表面缺陷;文獻(xiàn)[3]使用差影法對軸承外圈側(cè)面進(jìn)行缺陷檢測,實(shí)現(xiàn)高效高精度的軸承外圈側(cè)面缺陷。上述利用機(jī)器視覺缺陷檢測方法在缺陷特征提取時(shí),通常采用手工設(shè)計(jì)特征的方法,只能針對某種特定的缺陷特征,對于多種多樣的缺陷特征缺乏針對性,同時(shí)容易產(chǎn)生大量冗余特征,嚴(yán)重影響檢測結(jié)果的準(zhǔn)確性和效率。深度學(xué)習(xí)算法的出現(xiàn),解決了傳統(tǒng)機(jī)器視覺方法存在的問題。深度學(xué)習(xí)利用深層次的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[4]強(qiáng)大的表達(dá)能力,可以自主地完成特征提取任務(wù),使缺陷檢測的準(zhǔn)確率和效率得到大幅度的提升。文獻(xiàn)[5]提出R?CNN(Regions with CNN)算法,該算法先生成候選的區(qū)域再進(jìn)行下一步的檢測,大大降低圖像數(shù)據(jù)的冗余程度,從而提高檢測速度。文獻(xiàn)[6]提出了SPP Net算法,不僅減少計(jì)算冗余,而且能夠解決深度學(xué)習(xí)網(wǎng)絡(luò)必須輸入固定尺寸圖像的問題。之后Girshick和何愷明等團(tuán)隊(duì)相繼提出Fast R?CNN算法[7]和Faster R?CNN算法[8],前者將邊界框回歸和目標(biāo)分類的損失結(jié)合起來變成一個(gè)總體損失一起訓(xùn)練,后者在其基礎(chǔ)上又提出了區(qū)域建議網(wǎng)絡(luò)(Region Proposal Net‐work,RPN),利用神經(jīng)網(wǎng)絡(luò)自己學(xué)習(xí)去生成候選區(qū)域,不僅加快預(yù)測的速度,而且能夠提高識別的精度。
通過對應(yīng)用在零件缺陷檢測方面的深度學(xué)習(xí)算法進(jìn)行分析,進(jìn)行了如下工作:(1)針對提高缺陷檢測準(zhǔn)確性的首要任務(wù),確定將Faster?RCNN算法應(yīng)用于零件表面缺陷檢測,在建立的三種缺陷樣本數(shù)據(jù)集上進(jìn)行檢測實(shí)驗(yàn);(2)針對算法中anchor方案對本次檢測的缺陷目標(biāo)缺乏針對性,并且產(chǎn)生大量的冗余區(qū)域建議窗口的問題,提出融合引導(dǎo)錨框算法[9]生成anchor 方案的Faster?RCNN檢測方法;(3)對檢測結(jié)果的精確率和召回率進(jìn)行分析,通過調(diào)整進(jìn)行非極大值抑制時(shí)的交并比(Intersection Over Union,IOU)閾值,讓檢測的平均精度(Average Precision,AP)達(dá)到最優(yōu),最終實(shí)現(xiàn)高準(zhǔn)確性高效的零件表面缺陷檢測。
Faster?RCNN 的網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。Faster?RCNN 網(wǎng)絡(luò)主要由卷積特征提取網(wǎng)絡(luò)、RPN 和Fast?RCNN 網(wǎng)絡(luò)三部分組成[10]。其中卷積特征提取網(wǎng)絡(luò)完成對原始圖像的特征提取工作,得到特征圖;區(qū)域建議網(wǎng)絡(luò)在特征圖上生成區(qū)域建議窗口;最后將特征圖和生成的建議窗口送入Fast?RCNN網(wǎng)絡(luò)中進(jìn)行目標(biāo)分類和邊界框回歸任務(wù)。
圖1 Faster?RCNN算法網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Faster?RCNN Algorithm Network Structure
RPN的結(jié)構(gòu),如圖2所示。其作用是在特征圖上生成區(qū)域建議窗口,與傳統(tǒng)手工設(shè)計(jì)特征不同它可以利用神經(jīng)網(wǎng)絡(luò)自主地生成特征描述。RPN網(wǎng)絡(luò)利用K個(gè)不同尺寸的anchor窗口在特征圖上進(jìn)行滑動,并將提取到的特征映射到低維度特征,從低維特征中訓(xùn)練得到2K個(gè)類別參數(shù)和4K個(gè)平移縮放參數(shù),通過這6K個(gè)參數(shù)可以確定出區(qū)域建議窗口的類別和位置[8]。RPN作為全卷積網(wǎng)絡(luò),能夠通過端到端的方式,使用誤差反向傳播和隨機(jī)梯度下降方法進(jìn)行訓(xùn)練,并且可以和卷積特征提取網(wǎng)絡(luò)共享訓(xùn)練參數(shù),大大提高了訓(xùn)練的效率。其在訓(xùn)練時(shí)的損失(loss)函數(shù)如式(1)所示:
圖2 RPN結(jié)構(gòu)Fig.2 RPN Structure
式中:i—anchor 的序號;當(dāng)窗口有目標(biāo)時(shí)p*i=1,反之p*i=0;ti—預(yù)測窗口的四個(gè)坐標(biāo)參數(shù),t*i—真實(shí)窗口的坐標(biāo)參數(shù);參數(shù)Ncls、Nreg及λ是平衡權(quán)重歸一化參數(shù);Lcls—分類損失,如公式(2)所示;Lreg—回歸損失,如公式(3)所示;R—smooth函數(shù),如式(4)所示。
使用Faster?RCNN算法進(jìn)行缺陷檢測時(shí),RPN網(wǎng)絡(luò)的anchor方案對生成的區(qū)域建議窗口具有決定性的作用,合理的anchor方案應(yīng)當(dāng)與缺陷區(qū)域的尺寸相對應(yīng)。在基本的Faster?RCNN算法中,anchor方案具有密集性和固定性的特征。RPN網(wǎng)絡(luò)通過預(yù)先確定好尺寸大小和縱橫比的一系列anchor,文獻(xiàn)[8]中采用的9種不同尺寸的anchor,如表1所示。在特征圖各個(gè)像素上逐一滑動,從而產(chǎn)生數(shù)量龐大,密集分布的區(qū)域建議窗口。
表1 Faster-RCNN算法anchor方案Tab.1 Faster-RCNN Algorithm Anchor Scheme
由于預(yù)先確定的anchor 方案主要是對PASCAL VOC 數(shù)據(jù)集[11]中的檢測目標(biāo)而設(shè)定的,對本次檢測的缺陷目標(biāo)不具有針對性,并且會產(chǎn)生大量的冗余區(qū)域建議窗口。針對這一問題,提出使用引導(dǎo)錨框算法[9]來生成anchor方案,引導(dǎo)錨框算法主要包括anchor 位置預(yù)測、anchor 形狀預(yù)測以及特征圖適配三部分。an‐chor窗口通常由其中心點(diǎn)坐標(biāo)和窗口的寬高四個(gè)參數(shù)確定,因此引導(dǎo)錨框算法采用位置預(yù)測和形狀預(yù)測兩個(gè)神經(jīng)網(wǎng)絡(luò)分支,來確定anchor方案的四個(gè)參數(shù)大小。由于預(yù)測的各個(gè)位置的anchor形狀不同,其對應(yīng)的感受野理論上也應(yīng)當(dāng)隨anchor 形狀大小而變,所以要對特征圖進(jìn)行特征圖適配(feature adaptation),使an‐chor在特征圖上的感受野與其大小匹配,進(jìn)行特征圖適配時(shí),使用可變形卷積對各個(gè)位置對應(yīng)的特征圖區(qū)域進(jìn)行單獨(dú)的轉(zhuǎn)換。改進(jìn)后的檢測算法框架,如圖3所示。
圖3 改進(jìn)檢測算法框架Fig.3 Improved Detection Algorithm Framework
使用引導(dǎo)錨框算法生成anchor方案具體步驟如下:
(1)使用(1×1)卷積層對特征圖進(jìn)行卷積操作,并使用Sig‐moid函數(shù)生成對應(yīng)的概率圖,其中每個(gè)概率點(diǎn)在圖像中所對應(yīng)的坐標(biāo),如式(5)所示:
式中:i,j—特征圖的坐標(biāo);s—特征圖的步長。
(2)使用閾值篩選,過濾掉90%的區(qū)域,得到稀疏的anchor坐標(biāo)中心點(diǎn)。
(3)使用(1×1)卷積層對特征圖FI進(jìn)行卷積操作輸出位置預(yù)測參數(shù)dw,dh。
(4)將dw,dh轉(zhuǎn)化得到w,h參數(shù),轉(zhuǎn)化方法,如式(6)所示。
式中:s—特征圖的步長;σ—轉(zhuǎn)化的尺度因子。
(5)對各個(gè)位置對應(yīng)的特征圖區(qū)域進(jìn)行單獨(dú)的轉(zhuǎn)換,如式(7)所示。
式中:fi—第i個(gè)位置的特征;wi,hi—該位置anchor的形狀。NT—可變形卷積操作,使用(3×3)的變形卷積層。
(6)得到確定anchor方案的四個(gè)參數(shù),進(jìn)行后續(xù)Fast?RCNN檢測流程。融合引導(dǎo)錨框算法改進(jìn)Faster?RCNN 算法中anchor的生成方案,該方法能夠利用神經(jīng)網(wǎng)絡(luò)自主學(xué)習(xí)生成稀疏的且與所需檢測的缺陷目標(biāo)對應(yīng)anchor 方案,整個(gè)方法只需添加2 個(gè)(1×1)卷積層和1個(gè)(3×3)的變形卷積層,不會帶來大量的網(wǎng)絡(luò)訓(xùn)練參數(shù)。該方法對檢測對象具有更好的針對性,能夠生成更合理的anchor方案,提高生成的區(qū)域建議窗口的質(zhì)量,同時(shí)能夠大大減少窗口的數(shù)量,從而提高檢測的準(zhǔn)確性和效率。
為了進(jìn)一步提高檢測結(jié)果的準(zhǔn)確性,分析了測試時(shí)RPN網(wǎng)絡(luò)中非極大值抑制的IOU 閾值對檢測的準(zhǔn)確性指標(biāo)AP 值的影響。AP 值的計(jì)算包含了準(zhǔn)確率(Precision)和召回率(Recall)兩個(gè)角度,對于連續(xù)的PR曲線計(jì)算公式,如式(8)所示。
式中:P—準(zhǔn)確率;R—召回率;TP—分類正確的正樣本;FN—分類錯(cuò)誤的正樣本;FP—分類錯(cuò)誤的負(fù)樣本。
RPN 網(wǎng)絡(luò)一般會產(chǎn)生很多重疊的區(qū)域建議框,非極大值抑制NMS的作用是使質(zhì)量較差的建議框得到抑制,從而只保留指定數(shù)量的質(zhì)量高的建議框,而這些建議框又分為正負(fù)兩種樣本,通過設(shè)置IOU閾值,可以調(diào)整正負(fù)樣本數(shù)量,從而影響準(zhǔn)確率和召回率。因此合理的IOU閾值可以平衡這兩個(gè)指標(biāo)從而得到最優(yōu)的AP值。針對上述分析,進(jìn)行實(shí)驗(yàn)以驗(yàn)證IOU閾值對實(shí)驗(yàn)結(jié)果的影響并確定最優(yōu)閾值。在Faster?RCNN算法初始閾值的基礎(chǔ)上,確定出0.8、0.7、0.6和0.5四種IOU閾值參數(shù),通過修改算法網(wǎng)絡(luò)中的閾值進(jìn)行Faster?RCNN缺陷檢測實(shí)驗(yàn),對比實(shí)驗(yàn)結(jié)果確定最合適的IOU閾值。
為了驗(yàn)證本缺陷檢測方法的有效性,在建立的缺陷樣本數(shù)據(jù)集上對檢測方法進(jìn)行了實(shí)驗(yàn)驗(yàn)證。融合Faster?RCNN檢測方法進(jìn)行零件表面缺陷檢測,對比原始的anchor方案和融合引導(dǎo)錨框算法生成的anchor方案對檢測結(jié)果的影響,驗(yàn)證使用引導(dǎo)錨框算法生成的anchor 方案能夠有效提高檢測結(jié)果的準(zhǔn)確性和效率。同時(shí)對于不同的IOU閾值進(jìn)行檢測實(shí)驗(yàn),確定出使AP值最高的閾值。實(shí)驗(yàn)所采用的軟硬件環(huán)境及算法的參數(shù),如表2所示:
表2 實(shí)驗(yàn)軟硬件環(huán)境及算法的參數(shù)Tab.2 Experimental Hardware-Software Environment and Parameters of the Algorithm
選取發(fā)動機(jī)球形接頭零件作為檢測對象,選取表面的磕碰、刀痕以及內(nèi)孔里的雜質(zhì)為檢測的缺陷目標(biāo),建立缺陷樣本數(shù)據(jù)集,其中包含磕碰傷、車刀痕、雜質(zhì)三種缺陷圖片共9000 張,并將其按4:1的比例分為互斥的訓(xùn)練驗(yàn)證集和測試集,其中訓(xùn)練驗(yàn)證集7200 張,測試集1800 張。為了降低數(shù)據(jù)的復(fù)雜性,提高缺陷區(qū)域的局部對比度以及消除噪聲,對原始圖像進(jìn)行灰度化、直方圖均衡化以及高斯濾波等預(yù)處理,部分缺陷樣本,如圖4 所示。為了滿足算法程序運(yùn)行要求,還需將預(yù)處理后的圖像整理為VOC2007的數(shù)據(jù)集格式。
圖4 缺陷樣本圖片F(xiàn)ig.4 Defect Sample Picture
為了驗(yàn)證使用引導(dǎo)錨框算法生成anchor方案能夠有效提高檢測結(jié)果的準(zhǔn)確性,對比融合引導(dǎo)錨框算法的Faster?RCNN檢測方法和基本的Faster?RCNN檢測方法的檢測效果,得到的實(shí)驗(yàn)結(jié)果,如表3 所示。實(shí)驗(yàn)結(jié)果表明,融合引導(dǎo)錨框算法的Faster?RCNN檢測方法與基本的Faster?RCNN檢測方法相比,檢測結(jié)果的準(zhǔn)確性得到大幅度提高,其中磕碰傷檢測結(jié)果的AP 值提高32.0%,車刀痕檢測結(jié)果的AP值提高48.8%,雜質(zhì)檢測結(jié)果的AP值提高48.2%。
表3 各方案缺陷檢測實(shí)驗(yàn)結(jié)果Tab.3 Experimental Results of Each Program Defect Detection
為了驗(yàn)證使用引導(dǎo)錨框算法生成的anchor方案對檢測效率的提升,對Faster?RCNN算法在訓(xùn)練網(wǎng)絡(luò)模型時(shí)總體損失函數(shù)的收斂情況進(jìn)行分析,在訓(xùn)練網(wǎng)絡(luò)模型時(shí),使用不同anchor生成方案的各缺陷總體損失函數(shù)(total loss)的收斂圖,如圖5所示。通過對比可以定性分析出融合引導(dǎo)錨框算法的Faster?RCNN檢測方法與基本的Faster?RCNN檢測方法相比具有更快的收斂速度,能夠大大提高網(wǎng)絡(luò)訓(xùn)練效率,從而提高檢測的效率。
圖5 各缺陷總體損失函數(shù)收斂圖Fig.5 Convergence Graph of Total Loss Function of Each Defect
兩種方案的模型訓(xùn)練時(shí)間和檢測速度,如表4所示??梢远康贸鋈诤弦龑?dǎo)錨框算法生成anchor方案能夠有效提高檢測的效率,可將三種缺陷的平均模型訓(xùn)練時(shí)間縮短6個(gè)小時(shí),且平均檢測速度提高到4.3fps。
表4 各方案模型訓(xùn)練時(shí)間和檢測速度Tab.4 Training Time and Detection Speed of Each Program Model
為了驗(yàn)證不同IOU閾值對實(shí)驗(yàn)結(jié)果的影響并確定最優(yōu)閾值,對改進(jìn)的anchor方案得到的訓(xùn)練模型進(jìn)行測試,在Faster?RCNN算法初始閾值的基礎(chǔ)上,確定出0.8、0.7、0.6和0.5四種IOU閾值參數(shù),得到的檢測結(jié)果,如表5所示。表中數(shù)值為AP值。實(shí)驗(yàn)結(jié)果表明,IOU=0.6為最優(yōu)閾值,可以使檢測結(jié)果具有最高的準(zhǔn)確性。其中磕碰傷最優(yōu)檢測結(jié)果的AP值為98.2%,車刀痕最優(yōu)檢測結(jié)果的AP值為97.7%,雜質(zhì)最優(yōu)檢測結(jié)果的AP值為99.4%。
表5 不同IOU閾值的檢測結(jié)果(AP)Tab.5 Detection Results of Different IOU Thresholds(AP)
通過進(jìn)行檢測實(shí)驗(yàn)驗(yàn)證了融合引導(dǎo)錨框算法生成anchor方案的Faster?RCNN檢測方法,能夠使各缺陷檢測的準(zhǔn)確性和效率得到大幅度的提高。
與基礎(chǔ)算法相比該方法將各缺陷檢測的AP值從50%左右提高到96.2%以上。同時(shí)從定性和定量兩個(gè)角度得出融合引導(dǎo)錨框算法生成的anchor方案能夠有效提高檢測的效率,可將三種缺陷的平均模型訓(xùn)練時(shí)間縮短6個(gè)小時(shí),且平均檢測速度提高到4.3 fps。通過分析測試時(shí)RPN網(wǎng)絡(luò)中非極大值抑制NMS的IOU閾值對實(shí)驗(yàn)結(jié)果的影響,實(shí)驗(yàn)表明當(dāng)IOU閾值取0.6時(shí),檢測結(jié)果具有最高的AP值,各缺陷檢測的AP值可進(jìn)一步提高到97.7%以上,能夠滿足智能制造的需求。各缺陷檢測的部分結(jié)果,如圖6所示??梢钥闯霰緳z測方法能夠準(zhǔn)確的檢測出數(shù)據(jù)集圖像中的缺陷。
圖6 各缺陷部分檢測結(jié)果Fig.6 Detection Results of Each Defect
這里提出基于Faster?RCNN的缺陷檢測方法進(jìn)行零件表面缺陷檢測,并針對算法中anchor方案對本次檢測的缺陷目標(biāo)不具有針對性,并且會產(chǎn)生大量的冗余區(qū)域建議窗口的問題,提出融合引導(dǎo)錨框算法生成anchor方案的Faster?RCNN檢測方法,該方法能夠有效提高檢測的準(zhǔn)確性和效率。在此基礎(chǔ)上進(jìn)一步分析非極大值抑制NMS的IOU 閾值對實(shí)驗(yàn)結(jié)果的影響,確定最優(yōu)IOU閾值。在建立的缺陷樣本數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證檢測方法的有效性,該方法使各缺陷檢測結(jié)果的AP 值從50%左右提高到96.2%以上,平均檢測速度達(dá)到4.3 fps。當(dāng)RPN 網(wǎng)絡(luò)中非極大值抑制的IOU 閾值取0.6時(shí)可以使檢測結(jié)果具有最高的準(zhǔn)確性,可將各缺陷檢測結(jié)果的AP 值進(jìn)一步提升到97.7%以上,能夠?qū)崿F(xiàn)高準(zhǔn)確性高效的零件表面缺陷檢測工作。由于建立缺陷樣本數(shù)據(jù)集的復(fù)雜性,現(xiàn)階段數(shù)據(jù)集數(shù)量有限,在后續(xù)的研究中,將繼續(xù)獲取更多的數(shù)據(jù)集,同時(shí)不需要人工標(biāo)簽的無監(jiān)督深度學(xué)習(xí)算法能夠大大降低建立數(shù)據(jù)集的復(fù)雜性,將會是未來的研究方向。