蘭葉深,饒楚楚,呂云鵬
(1.衢州職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,衢州 324000;2.浙江工業(yè)大學(xué)機(jī)械工程學(xué)院,杭州 310023)
軸承是機(jī)械設(shè)備中最常見的基礎(chǔ)零件,受加工工藝和工作環(huán)境等方面的影響,軸承表面極易產(chǎn)生磕碰、污漬、壓痕和劃痕等缺陷[1],從而大幅度降低了其表面性能。對于軸承表面缺陷的檢測,人工檢測效率低[2],而基于機(jī)器視覺的軸承表面缺陷檢測方法,在一定程度上提高了檢測速度和精度,但需根據(jù)缺陷特點(diǎn)設(shè)計(jì)相應(yīng)的特征提取方法,還需采用圖像分割技術(shù)對缺陷目標(biāo)進(jìn)行分割[3-4]。
近年來,卷積神經(jīng)網(wǎng)絡(luò)因其具有穩(wěn)定的圖像特征表達(dá)和強(qiáng)特征自提取優(yōu)點(diǎn),被廣泛應(yīng)用在工件表面缺陷檢測中。DONG[5]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)帶鋼表面缺陷檢測算法,通過不同卷積核的上下文加權(quán)提取了帶鋼表面多尺度特征。徐鏹等[6]通過改進(jìn)的YOLOv3提高了鋼板表面缺陷檢測的算法,采用MobileNet和空洞卷積不僅將鋼板表面小目標(biāo)缺陷的檢測精度提高了23.3%,同時(shí)還滿足了實(shí)時(shí)檢測要求。楊凱等[7]采用改進(jìn)的RetinaNet檢測列車關(guān)鍵部件,通過提升特征層的感受野和特征金字塔的定位能力,提高了開口銷、閘片和U型鎖等列車小部件的檢測精度。李玉等[8]為解決鋼板表面缺陷檢測難的問題,對Faster R-CNN網(wǎng)絡(luò)進(jìn)行了改進(jìn),有效提高了鋼板表面各類缺陷的檢測精度,平均精度均值達(dá)到了98.44%。
然而,由于受軸承表面強(qiáng)反光特性的影響,采集的表面圖像中缺陷具有小、幾何形狀多變以及低對比度等特點(diǎn),原始Faster R-CNN網(wǎng)絡(luò)在軸承表面缺陷檢測中易丟失缺陷細(xì)節(jié)信息,導(dǎo)致檢測和分類精度不高。為此,本文根據(jù)軸承表面缺陷的特點(diǎn),選取殘差網(wǎng)絡(luò)ResNet-50融合特征金字塔改進(jìn)特征提取網(wǎng)絡(luò),引入可變形卷積和ROI Align,提出了一種改進(jìn)Faster R-CNN檢測方法,用以提高軸承表面缺陷檢測精度。
Faster R-CNN是在R-CNN和Fast R-CNN算法的基礎(chǔ)上擴(kuò)展而來[9],其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。特征提取網(wǎng)絡(luò)主要是用于提取輸入圖像的特征;候選區(qū)域生成網(wǎng)絡(luò)(region proposal network,RPN)是以特征提取網(wǎng)絡(luò)輸出特征圖為輸入,采用n×n的滑動窗口并結(jié)合不同的尺度和比例[10],生成目標(biāo)區(qū)域建議框;ROI Pooling層則是以特征提取網(wǎng)絡(luò)輸出特征圖和RPN生成的目標(biāo)區(qū)域建議框?yàn)檩斎?然后生成具有固定尺寸的特征圖;最后將ROI Pooling生成的特征圖通過全連接層,完成分類和位置回歸。
圖1 Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)
原始Faster R-CNN是以VGG16作為特征提取網(wǎng)絡(luò),但VGG16因其有限的卷積層數(shù)(13層),難以保證軸承表面缺陷特征被充分提取。但若為提高網(wǎng)絡(luò)特征提取能力而采用更深層次的網(wǎng)絡(luò)可能會出現(xiàn)梯度消失和過擬合等問題[11],而殘差網(wǎng)絡(luò)ResNet由于在堆疊卷積層中加入殘差模塊結(jié)構(gòu),可有效避免上述問題的發(fā)生。為此,本文在測試不同深度的ResNet網(wǎng)絡(luò)后,以ResNet-50為特征提取網(wǎng)絡(luò),并結(jié)合特征金字塔網(wǎng)絡(luò)(feature pyramid network,FPN)對軸承表面缺陷進(jìn)行多尺度特征提取,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)的特征提取網(wǎng)絡(luò)結(jié)構(gòu)
FPN主要由自下而上、自上而下與橫向連接2部分組成,其中輸入圖像自下而上經(jīng)ResNet-50網(wǎng)絡(luò)5個(gè)階段最后一層的卷積核輸出C1~C5不同尺度的特征圖。對C2~C5輸出特征圖進(jìn)行1×1的卷積降維處理,其中C5經(jīng)降維處理后生成特征圖M5,而經(jīng)降維處理后的C4則與M5自上而下進(jìn)行2倍上采樣生成的特征圖進(jìn)行橫向連接融合,生成特征圖M4,以此類推,分別生成M3和M2。為有效消除上采樣的混疊效應(yīng),對M5~M2進(jìn)行3×3卷積處理,生成特征圖P5、P4、P3和P2,P5經(jīng)最大池化下采樣得到P6,最后共獲得P2~P6特征圖。改進(jìn)后的特征提取網(wǎng)絡(luò)可以有效融合高層特征圖的強(qiáng)語義信息與低層特征圖的強(qiáng)空間位置信息,生成具有豐富位置和語義信息的多尺度特征圖。
在軸承表面缺陷目標(biāo)檢測中,需卷積神經(jīng)網(wǎng)絡(luò)對同一缺陷的不同姿態(tài)(位置偏移、角度旋轉(zhuǎn)和尺度變化等)具有相同的檢測能力。然而原始Faster R-CNN卷積操作受限于固定的矩形結(jié)構(gòu)[12],與軸承表面缺陷的幾何形狀多變匹配效果較差,易丟失缺陷細(xì)節(jié)信息。為此,引入可變形卷積,通過學(xué)習(xí)感受野采樣點(diǎn)的偏移,從而打破矩形結(jié)構(gòu)的束縛,使卷積核形狀更為精準(zhǔn)定位缺陷目標(biāo)所在位置。
在標(biāo)準(zhǔn)的普通卷積中,通常先采用規(guī)則窗口T對輸入特征圖x進(jìn)行采樣,然后對采樣值進(jìn)行ω加權(quán)。例如,對于一個(gè)3×3卷積,規(guī)則窗口T={(-1,-1),(-1,1),(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1)},T中的每個(gè)取值均代表一個(gè)采樣點(diǎn)位置。
對輸出特征圖y上任意位置P0,其標(biāo)準(zhǔn)的卷積過程可表述為:
y(P0)=∑Pn∈Tω(Pn)·x(P0+Pn)
(1)
式中:Pn是T中所有采樣點(diǎn)位置,P0+Pn是輸入特征圖的采樣點(diǎn)位置,ω(Pn)是卷積核中的權(quán)重參數(shù)。
而在可變形卷積中,對每個(gè)采樣點(diǎn)添加了一個(gè)偏移量ΔPn,其中{ΔPn|n=1,2,…,N},N=|T|。所以,輸入特征圖的采樣點(diǎn)位置變成了Pn+ΔPn。因此,式(1)則變成:
y(P0)=∑Pn∈Tω(Pn)·x(P0+Pn+ΔPn)
(2)
由于ΔPn為小數(shù),因此需采樣雙線性插值法計(jì)算偏移后采樣點(diǎn)位置的值[13]。圖3為可變形卷積的操作過程,采用普通卷積對輸入特征圖學(xué)習(xí)偏移量ΔPn,生成與輸入特征映射具有相同空間尺寸的偏移域,其中通道維度為2N(N為卷積核大小),即對應(yīng)N個(gè)的2維偏移量(即x與y方向的偏移量)。在偏移量ΔPn的約束下,輸入特征圖的感受野從固定矩形變成了一個(gè)不規(guī)則形狀。因此,采樣點(diǎn)可以提取軸承表面缺陷不規(guī)則的特征,最后輸出特征圖。
圖3 可變形卷積
為有效檢測軸承表面圖像中所有缺陷目標(biāo),引入可變形卷積替換ResNet-50中的第3~5階段的3×3卷積,通過可變形卷積學(xué)習(xí)偏移量,自適應(yīng)調(diào)整感受野,從而提取軸承表面幾何形狀多變的缺陷信息。
ROI Poolin是通過將感興趣的區(qū)域從特征圖上劃分出來,然后使其成為固定大小和尺寸的特征圖。但在特征映射和分塊處理過程中會因引入兩次量化操作進(jìn)行取整處理,導(dǎo)致出現(xiàn)區(qū)域不匹配的問題[14]。為此,本文采用ROI Align改進(jìn)ROI Pooling,用以解決區(qū)域不匹配的問題。ROI Align的操作流程如圖4所示,首先,遍歷每個(gè)候選區(qū)域,不量化映射后浮點(diǎn)數(shù)坐標(biāo);其次,將候選區(qū)域均分成k×k個(gè)單元(圖4中為2×2),不量化均分單元的邊界;最后,將每個(gè)單元等分成4個(gè)小單元,取其中心位置為采樣點(diǎn),在每個(gè)單元內(nèi)可確定4個(gè)采樣點(diǎn),采用雙線性插值法計(jì)算采樣點(diǎn)坐標(biāo)像素上的圖像值,然后對計(jì)算得到的4個(gè)采樣點(diǎn)進(jìn)行最大池化得到固定維度的ROI輸出[15]。ROI Align的改進(jìn)可以獲取軸承表面更為準(zhǔn)確的ROI位置信息,從而提高缺陷檢測精度。
由于目前沒有軸承圖像的公開測試圖像數(shù)據(jù)集,為此,本文選用從軸承生產(chǎn)線采集的真實(shí)軸承表面缺陷圖像作為訓(xùn)練集和測試集,主要有磕碰、污漬、壓痕和劃痕共4種常見的缺陷組成。采用labeling按照VOC2007數(shù)據(jù)集格式對軸承圖像中的缺陷類型和邊界框位置進(jìn)行標(biāo)注。由于采集數(shù)據(jù)樣本有限,為平衡各種類型缺陷的數(shù)據(jù)集樣本,通過數(shù)據(jù)增強(qiáng)方式[16]擴(kuò)充了軸承表面缺陷樣本數(shù)據(jù)集,得到1200張圖像,并在每種缺陷300張圖像中隨機(jī)選出85%作為訓(xùn)練集,15%作為測試集。
試驗(yàn)硬件環(huán)境為:Intel(R) Core(TM) i7-9700K CPU@3.6 GHz處理器、16 GB內(nèi)存、NVIDIA GeForce RTX 2080 Ti顯卡、11 GB顯存;軟件環(huán)境:Ubuntu18.04系統(tǒng)、Pytorch1.6.0深度學(xué)習(xí)框架、Python3.7編程語言,并采用CUDA10.2 GPU加速計(jì)算。
采用帶動量的隨機(jī)梯度下降優(yōu)化算法[17]訓(xùn)練Faster R-CNN的配置參數(shù),動態(tài)參數(shù)設(shè)為0.9,為防止模型過擬合,權(quán)重衰減系數(shù)設(shè)為0.000 5,總共訓(xùn)練25 000次迭代,前5000次學(xué)習(xí)率設(shè)置為0.05,5000~15 000次迭代學(xué)習(xí)率設(shè)置為0.005,15 000~25 000次迭代學(xué)習(xí)率設(shè)置為0.000 2。
以平均精度(average precision,AP)和平均精度均值(mean average precision,mAP)為評價(jià)指標(biāo)來評估軸承表面缺陷目標(biāo)檢測算法的性能,其中,AP和mAP的計(jì)算公式為:
(3)
(4)
式中:p(Precision)為精準(zhǔn)率,r(Recall)為召回率,C為類別數(shù)目。
為驗(yàn)證本文改進(jìn)Faster R-CNN算法的有效性,設(shè)計(jì)了4種不同方案在軸承表面缺陷數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn)。方案1是將原Faster R-CNN的特征提取網(wǎng)絡(luò)改成ResNet-50,其他不變;方案2是在方案1基礎(chǔ)上結(jié)合FPN,其他不變;方案3是在方案2基礎(chǔ)上在ResNet-50結(jié)構(gòu)中采用可變形卷積層替代改進(jìn),其他不變;方案4是在方案3基礎(chǔ)上,采用ROI Align改進(jìn)ROI Pooling,即本文改進(jìn)的Faster R-CNN算法,消融實(shí)驗(yàn)檢測結(jié)果如表1所示。
表1 消融實(shí)驗(yàn)檢測結(jié)果 (%)
由表1可知,在方案1中使用ResNet-50殘差網(wǎng)絡(luò)特征提取方案的mAP為74.27%,從每類缺陷的AP中,可以看出對污漬和壓痕缺陷的AP只有65.07%和70.46%;在方案1的基礎(chǔ)上添加FPN后,污漬和壓痕缺陷目標(biāo)識別的檢測精度的提高幅度較為明顯,分別提升了14.12%和6.84%,mAP為80.27%;在方案3中,在方案2特征提取網(wǎng)絡(luò)中引入可變形卷積,每種類型的缺陷檢測精度均得到了提高,mAP為89.62%,與引入前相比,提高了11.64%,表明引入可變形卷積,可以提高對軸承表面缺陷的檢測精度;而在本文改進(jìn)算法的方案4中,軸承表面缺陷檢測達(dá)到了最優(yōu)的檢測精度,mAP高達(dá)97.60%,其中磕碰、污漬、壓痕和劃痕的AP分別提高至96.42%、98.63%、97.85%和97.51%,表明了ROI Align的改進(jìn)對軸承表面缺陷目標(biāo)檢測的有效性。
除此之外,本文還將改進(jìn)的Faster R-CNN算法與YOLOv3、Retinanet、原始Faster R-CNN在軸承表面數(shù)據(jù)集上進(jìn)行訓(xùn)練測試并對比,結(jié)果如表2所示。
表2 不同算法的檢測結(jié)果 (%)
由表2可知,本文算法的mAP為97.60%,相較于YOLOv3、Retinanet、原始Faster R-CNN分別提高了23.45%、19.24%和11.76%。而且對于軸承表面4種常見缺陷,每種缺陷的平均精度都比其他算法高,表明本文改進(jìn)的Faster R-CNN算法能有效提高軸承表面缺陷的檢測精度。
不同算法的可視化結(jié)果如圖5所示,YOLOv3算法對軸承表面缺陷目標(biāo)檢測的效果較差,特別是在低對比度的壓痕缺陷目標(biāo)檢測中;與YOLOv3算法相比,Retinanet算法的檢測效果雖有所提升,但整體檢測效果一般;原始Faster R-CNN算法的分類精度較高,但是缺陷目標(biāo)位置定位精度不高,其中污漬和壓痕缺陷均未能準(zhǔn)確框選;相較前3種算法,本文算法的檢測效果最優(yōu),不僅能準(zhǔn)確標(biāo)記缺陷目標(biāo)位置,還具有更高的類別置信度,有效避免了漏檢和誤檢現(xiàn)象的發(fā)生。
為提高軸承表面缺陷檢測精度,本文提出了一種改進(jìn)的Faster R-CNN軸承表面缺陷檢測。在改進(jìn)算法中,以殘差網(wǎng)絡(luò)ResNet-50結(jié)合FPN融合生成具有豐富位置和語義信息的多尺度特征圖,引入可變形卷積改進(jìn)了缺陷特征提取能力,并采用ROI Align改進(jìn)ROI Pooling,解決了因二次量化導(dǎo)致的區(qū)域不匹配問題。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的Faster R-CNN不僅可以準(zhǔn)確提取軸承表面復(fù)雜多變的缺陷細(xì)節(jié)特征,還提高了對缺陷的幾何形變適應(yīng)能力和定位與分類精度,對軸承表面磕碰、污漬、壓痕與劃痕4種缺陷的mAP為97.6%,與YOLOv3、Retinanet以及原始Faster R-CNN相比分別提高了23.45%、19.24%和11.76%,在缺陷檢測精度上有了較大的提升,具有一定的工程應(yīng)用前景。在未來的研究工作中,將構(gòu)建種類更為齊全的軸承表面缺陷數(shù)據(jù)集,從而提高算法對不同缺陷的泛化性。