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