彭偉康, 陳愛軍, 吳東明, 朱利森
(1. 中國計量大學(xué)計量測試工程學(xué)院,浙江 杭州 310018; 2. 東精集團(tuán)有限公司,浙江 金華 321015)
水平尺是一種用于對物體或平面進(jìn)行水平度或垂直度檢測的計量器具。氣泡水平尺由于其成本低、體積小、重量輕、操作簡單等優(yōu)點使用最為廣泛。氣泡水平尺最核心的部件是水準(zhǔn)泡,水準(zhǔn)泡中的氣泡與參考刻線之間的偏移程度可以衡量物體或平面的水平度和垂直度。水準(zhǔn)泡的質(zhì)量決定了水平尺的精準(zhǔn)性和穩(wěn)定性,因此在水準(zhǔn)泡生產(chǎn)完成后對其進(jìn)行質(zhì)量檢測尤為重要。
國內(nèi)水平尺生產(chǎn)廠家大多采用人工的方式對水準(zhǔn)泡進(jìn)行缺陷檢測,受到光線、人眼疲勞等因素的影響,人工檢測方式的正確率和檢測效率都非常有限。而采用計算機(jī)視覺檢測的方法能有效地克服這些缺點。目前水平尺工業(yè)檢測多采用的是邊緣檢測和輪廓跟蹤等圖像處理方法。魏煜等[1]采用最優(yōu)閾值變換和輪廓跟蹤的方法實現(xiàn)了水準(zhǔn)泡氣泡的精準(zhǔn)檢測。盛偉等[2]引入了Canny邊緣提取時自適應(yīng)選取閾值的方法,并結(jié)合二分搜索算法和加權(quán)最小二乘法,設(shè)計了一種魯棒性較強(qiáng)的水準(zhǔn)泡氣泡端點定位方法。喻婷等[3]利用模糊最小化形態(tài)學(xué)梯度得到水準(zhǔn)泡氣泡的邊緣信息,根據(jù)氣泡邊緣圖像的灰度剖面特性得到參考刻線位置,結(jié)合目標(biāo)鄰域法搜索氣泡端點,提出了一種快速準(zhǔn)確的氣泡水平尺偏移量計算方法。此類方法實現(xiàn)了工裝于水平尺中水準(zhǔn)泡氣泡和刻線目標(biāo)的檢測,而水準(zhǔn)泡生產(chǎn)過程產(chǎn)生的缺陷,根據(jù)產(chǎn)生原因不同產(chǎn)生的缺陷類別不同,且同種缺陷的形態(tài)也不相同,上述方法均無法滿足水準(zhǔn)泡缺陷檢測這樣種類和形態(tài)多樣的情況。
近年來,伴隨著GPU性能的不斷提升,深度學(xué)習(xí)發(fā)展迅速。其通過采用神經(jīng)網(wǎng)絡(luò)自動對特征進(jìn)行提取,能夠挖掘出所需檢測目標(biāo)的深層次特征,具有強(qiáng)大的泛化能力,已經(jīng)在工業(yè)缺陷檢測領(lǐng)域有了廣泛的應(yīng)用。王慶等[4]采用深度殘差網(wǎng)絡(luò)(deep residual network, ResNet)代替 Faster R-CNN 網(wǎng)絡(luò)中的特征提取層進(jìn)行模擬計算,有效提高了排水管道缺陷檢測的識別正確率,均值平均精度(mean average precision,mAP)達(dá)到了 89%,鑒于 ResNet的優(yōu)點,本文將其應(yīng)用到水準(zhǔn)泡缺陷檢測方法中。徐守坤等[5]提出了一種基于改進(jìn)的 Faster R-CNN和多部件結(jié)合的安全帽佩戴檢測方法,運(yùn)用多尺度訓(xùn)練和增加錨點數(shù)量,并引入防止正負(fù)樣本不均衡的在線困難樣本挖掘策略,有效增強(qiáng)了不同尺寸目標(biāo)檢測的魯棒性,mAP達(dá)到94.23%。王超洋等[6]提出了一種基于融合FPN結(jié)構(gòu)的Faster RCNN配網(wǎng)架空線路異常狀態(tài)檢測系統(tǒng),mAP達(dá)到了94.8%。
目標(biāo)檢測網(wǎng)絡(luò)模型主要分為兩類,一類是基于區(qū)域的 two-stage 模型,如 R-CNN[7],F(xiàn)ast R-CNN[8],F(xiàn)aster R-CNN[9]等,該類方法精測精度較高但速度較慢;另一類是基于回歸的one-stage模型,如YOLO[10]、SSD[11]等,該類方法檢測速度較快但檢測精度較低,且對小目標(biāo)物體檢測效果較差。而水平尺水準(zhǔn)泡缺陷目標(biāo)大小和形態(tài)多樣,且采用工業(yè)流水線觸發(fā)式采集得到圖像后進(jìn)行檢測,對實時性要求不高。Faster R-CNN 采用區(qū)域提案網(wǎng)絡(luò)(region proposal network,RPN)提取特征,將特征提取、候選區(qū)域提取、位置精修、目標(biāo)分類整合到一個深度網(wǎng)絡(luò)框架中,實現(xiàn)了端到端的目標(biāo)檢測,檢測精度相較其他網(wǎng)絡(luò)都要高。因此,本文采用Faster R-CNN網(wǎng)絡(luò)作為水準(zhǔn)泡缺陷檢測的基礎(chǔ)框架。
針對水準(zhǔn)泡不同缺陷大小和形態(tài)多樣的問題,本文提出一種基于改進(jìn)Faster R-CNN的水準(zhǔn)泡缺陷檢測方法。
Faster R-CNN 使用了 RPN 網(wǎng)絡(luò)來代替 Fast RCNN中的Selective Search選擇性搜索方法,并與整個網(wǎng)絡(luò)共享卷積特征,減少了模型參數(shù)和訓(xùn)練時間。Faster R-CNN網(wǎng)絡(luò)模型主要由4部分組成:特征提取、候選區(qū)域生成、感興趣區(qū)域池化、分類和回歸。網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。首先,將水準(zhǔn)泡圖像進(jìn)行歸一化后輸入特征提取網(wǎng)絡(luò)進(jìn)行特征提取。然后,提取得到的Feature Maps傳入候選區(qū)域生成網(wǎng)絡(luò),生成一系列前景和背景候選區(qū)域。再經(jīng)過ROI Pooling層后得到大小相同的候選區(qū)域特征圖,最后進(jìn)行分類和邊界框回歸。
圖1 Faster R-CNN模型結(jié)構(gòu)
RPN網(wǎng)絡(luò)是Faster R-CNN模型的核心,其是全卷積網(wǎng)絡(luò),輸入為共享的卷積特征圖,經(jīng)過端到端的訓(xùn)練可以生成目標(biāo)候選框。RPN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。RPN網(wǎng)絡(luò)采用了滑動窗口和錨點機(jī)制,每一個滑窗都會通過中間層生成256維特征,滑窗中心的錨點生成k個錨框。生成的256維特征再分別經(jīng)過全連接層,結(jié)合生成的錨框進(jìn)行類別的判斷和位置的回歸。分類層得到前景和背景的得分,回歸層得到目標(biāo)框?qū)τ谠瓐D坐標(biāo)的偏移,故對于k個錨框,分類層輸出2k個得分,回歸層輸出4k個參數(shù)化坐標(biāo)。匯總分類層和回歸層的結(jié)果后進(jìn)行后處理,先對越界候選框的剔除,再根據(jù)分類得分通過非極大值抑制來對重疊候選框進(jìn)行篩除,最后對候選框進(jìn)行偏移可以得到目標(biāo)候選框。
圖2 RPN網(wǎng)絡(luò)結(jié)構(gòu)
本文提出了一種基于改進(jìn)Faster R-CNN的水準(zhǔn)泡缺陷檢測方法。該方法采用ResNet[12]替代VGGNet進(jìn)行圖像特征提取,并針對水準(zhǔn)泡樣本目標(biāo)特征來設(shè)計RPN錨框,同時在特征提取網(wǎng)絡(luò)和RPN網(wǎng)絡(luò)中間引入遞歸特征金字塔[13]來增強(qiáng)模型多尺度檢測能力,提高不同尺度水準(zhǔn)泡缺陷的檢測精度。
原Faster R-CNN模型采用vgg16作為特征提取網(wǎng)絡(luò),作為經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)VGGNet廣泛應(yīng)用于目標(biāo)檢測領(lǐng)域進(jìn)行特征提取,通常增加網(wǎng)絡(luò)的層數(shù)可以增加非線性表達(dá)能力,學(xué)習(xí)到更深層的特征,但隨著層數(shù)增加到一定程度,網(wǎng)絡(luò)性能反而會變差,出現(xiàn)網(wǎng)絡(luò)退化問題。
深度殘差網(wǎng)絡(luò)基于VGGNet進(jìn)行了修改,通過短路機(jī)制加入了殘差單元,使網(wǎng)絡(luò)可以進(jìn)行兩層到三層間的殘差學(xué)習(xí),很好的解決了網(wǎng)絡(luò)退化問題。ResNet中采用了兩種殘差單元,圖3(a)為基本殘差單元,包含兩個64通道的3×3卷積且輸入輸出通道數(shù)均為64,可直接相加,主要用于相對淺層的網(wǎng)絡(luò),圖3(b)為針對深度網(wǎng)絡(luò)的殘差單元,通過一個1×1卷積進(jìn)行了降維,最后通過256通道的1×1卷積恢復(fù),可以有效減少參數(shù)量和計算量。對于短路連接,當(dāng)輸入輸出的維度一致時,可直接將輸入加到輸出上,但當(dāng)維度不一致時(維度增加一倍),需要使用1×1卷積來調(diào)整輸入通道維度,使其可以相加。改進(jìn)的Faster R-CNN模型采用ResNet作為特征提取網(wǎng)絡(luò),深層的網(wǎng)絡(luò)可以學(xué)習(xí)到更復(fù)雜的特征,且當(dāng)網(wǎng)絡(luò)達(dá)到最優(yōu)時,短路機(jī)制確保網(wǎng)絡(luò)更深層的部分僅為恒等映射,使網(wǎng)絡(luò)性能不會隨深度增加而降低。
圖3 殘差單元
RPN采用了錨點(anchor)機(jī)制,對于共享特征圖上每個滑窗都會生成一組錨框,錨框的設(shè)計直接影響候選框的生成。原始的Faster R-CNN對于每個滑動窗口生成3種長寬比和3種縮放尺度的9個錨框,但是默認(rèn)的錨框參數(shù)很難覆蓋水準(zhǔn)泡目標(biāo)真值框范圍。因此,本文根據(jù)水準(zhǔn)泡數(shù)據(jù)集中標(biāo)注目標(biāo)的尺寸參數(shù)來設(shè)計錨框,數(shù)據(jù)集中標(biāo)注的檢測框?qū)挾群蛯捀弑冉y(tǒng)計情況如圖4所示。由于長寬比分布較為離散,不利于錨框參數(shù)設(shè)置取值,進(jìn)一步對長寬比進(jìn)行量化統(tǒng)計,統(tǒng)計結(jié)果如圖5所示。
圖4 數(shù)據(jù)集中標(biāo)注的檢測框?qū)挾群烷L寬比統(tǒng)計圖
圖5 數(shù)據(jù)集中標(biāo)注的檢測框長寬比量化統(tǒng)計圖
根據(jù)圖4和圖5,本文錨框參數(shù)設(shè)置如表1所示。根據(jù)設(shè)置參數(shù)生成錨框時,先保持錨框的面積不變,改變寬高比,再保持寬高比不變,改變縮放尺度,最終可生成數(shù)量為33的一組錨框。
表1 錨框參數(shù)
原Faster R-CNN模型采用頂層特征進(jìn)行預(yù)測,頂層特征含有豐富的語義信息,但相對于底層特征,其喪失了許多細(xì)節(jié)信息,不利于水平尺水準(zhǔn)泡劃痕、破損等小目標(biāo)對象的檢測且定位信息相對粗略。
目標(biāo)檢測領(lǐng)域常使用特征金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)[14]來提取多尺度特征信息并進(jìn)行融合,進(jìn)而提高目標(biāo)檢測的精度。FPN網(wǎng)絡(luò)結(jié)構(gòu)分為自底向上和自頂向下兩個部分,結(jié)構(gòu)示意圖如圖6(a)所示,F(xiàn)PN先自下向上通過卷積網(wǎng)絡(luò)對水準(zhǔn)泡圖像進(jìn)行特征提取得到深層特征圖,再自上向下對深層的特征進(jìn)行層層的上采樣,并采用橫向連接的方法將兩過程中各層生成的大小相同的特征圖進(jìn)行融合,然后在各個融合層中進(jìn)行獨立預(yù)測,實現(xiàn)目標(biāo)的多尺度檢測。FPN可以有效提高對水準(zhǔn)泡劃痕、破損等小目標(biāo)對象的檢測效果,但單次的上采樣融合特征過程,只提升了小尺寸目標(biāo)檢測的精度,對于大尺寸目標(biāo)檢測的精度沒有明顯的提升,且在逐級上采樣與低層特征融合的過程中,會產(chǎn)生一定的多層特征冗余,這對于水準(zhǔn)泡劃痕、破損等小目標(biāo)缺陷檢測是不利的。
圖6 特征金字塔結(jié)構(gòu)
遞歸特征金字塔在FPN的基礎(chǔ)上增加了反饋連接,通過將FPN上采樣融合特征重復(fù)連入自下向上的主干網(wǎng)絡(luò)進(jìn)行遞歸可以有效地增強(qiáng)FPN的特征表示能力,其網(wǎng)絡(luò)結(jié)構(gòu)如圖6(b)所示。將RFP展開為順序網(wǎng)絡(luò),如圖7所示,RFP采用空洞空間金字塔池化(atrous spatial pyramid pooling,ASPP)來實現(xiàn)反饋連接,并對相鄰次的遞歸特征通過融合模塊(Fusion)進(jìn)行融合。ASPP作為連接模塊,結(jié)構(gòu)如圖8所示,其有4個平行的分支,其中一個分支使用全局平均池化層來壓縮特征,再通過1×1卷積將壓縮特征轉(zhuǎn)換成通道數(shù)為輸入特征1/4的特征,另外3個分支通過空洞卷積輸出通道數(shù)同樣為輸入特征1/4的特征,3個分支里空洞卷積層的內(nèi)核大小為[1,3,3],空洞率為[1,3,6],然后對4個分支的輸出
圖7 RFP展開順序網(wǎng)絡(luò)
圖8 ASPP結(jié)構(gòu)
特征進(jìn)行連接后得到和輸入特征大小相同的特征圖。融合模塊結(jié)構(gòu)如圖9所示,其以當(dāng)前次得到的特征Fi和下一次遞歸計算得到的特征Fi+1作為輸入,通過一個卷積層和sigmoid操作計算特征Fi+1的權(quán)重,然后根據(jù)得到的權(quán)重計算Fi和Fi+1的加權(quán)和作為輸出。改進(jìn)的Faster R-CNN模型融合遞歸特征金字塔網(wǎng)絡(luò),通過反饋連接的方式將水準(zhǔn)泡缺陷檢測的錯誤信息回傳來調(diào)整主干網(wǎng)絡(luò)參數(shù),使主干網(wǎng)絡(luò)再訓(xùn)練得到的特征可以更好地適應(yīng)水準(zhǔn)泡缺陷檢測任務(wù),并且采用空洞空間金字塔池化的方式進(jìn)行特征連接可以有效增加獲得特征的感受野范圍,進(jìn)一步增強(qiáng)模型對于不同尺度水準(zhǔn)泡缺陷目標(biāo)的檢測能力。
圖9 融合模塊結(jié)構(gòu)
本實驗在 Windows 10×64系統(tǒng)下進(jìn)行,利用Google公司tensorflow深度學(xué)習(xí)框架在NVIDIA GTX1050Ti GPU硬件平臺上進(jìn)行訓(xùn)練。設(shè)置超參數(shù)批尺寸為1,學(xué)習(xí)率為0.001,權(quán)值衰減系數(shù)為0.0001,采用Momentum動量梯度下降方法,設(shè)置初始動量為0.9。
本文數(shù)據(jù)集圖像采集設(shè)備為Basler acA1600-20gm工業(yè)相機(jī),采用 Computar M7528-MP鏡頭,鏡頭到水準(zhǔn)泡高度36 mm,可達(dá)到視場寬度35 mm,水準(zhǔn)泡工件寬度約為30 mm,采集時采用lemons HF-HX12050R紅色環(huán)形光源輔助照明。水準(zhǔn)泡氣泡、刻線和缺陷數(shù)據(jù)集中含有6種檢測目標(biāo),分為兩類固有組成檢測目標(biāo)(氣泡類和刻線類)和47類缺陷檢測目標(biāo)(破損類、劃痕類、熔花類和塞斜類)。數(shù)據(jù)集包含1200張圖像,使用LabelImg軟件對數(shù)據(jù)集中所有圖像包含的六類檢測目標(biāo)進(jìn)行標(biāo)注,并按7∶1∶2的比例將數(shù)據(jù)集分為訓(xùn)練集、驗證集和測試集。圖10展示了本文數(shù)據(jù)集中的部分圖像,圖10(a)為有破損缺陷的水準(zhǔn)泡圖像,圖10(b)為有劃痕缺陷的水準(zhǔn)泡圖像,圖10(c)為有熔花缺陷的水準(zhǔn)泡圖像,圖10(d)為有塞斜缺陷的水準(zhǔn)泡圖像。
圖10 數(shù)據(jù)集部分圖像
為驗證本文模型的性能,模型訓(xùn)練結(jié)束后,對測試集的240幅水準(zhǔn)泡圖像進(jìn)行檢測。并選用平均值準(zhǔn)確度(mAP)作為評價指標(biāo),mAP是所有檢測目標(biāo)類別的平均精度(average precision,AP)的均值,能綜合考慮召回率和查準(zhǔn)率的影響,其公式為:
其中,c為檢測類別數(shù),AP是以召回率(recall)為橫軸,查準(zhǔn)率(precision)為縱軸得到的PR曲線上precision的均值,其計算公式為:
其中,P(R)是precision關(guān)于recall的PR曲線函數(shù),TP為正樣本被正確預(yù)測為正樣本的數(shù)量,F(xiàn)P為負(fù)樣本被錯誤預(yù)測為正樣本的數(shù)量,F(xiàn)N為正樣本被錯誤預(yù)測為負(fù)樣本的數(shù)量。
本文使用ResNet作為特征提取網(wǎng)絡(luò),為驗證ResNet性能并確定合適的網(wǎng)絡(luò)層數(shù),分別采用ResNet50、ResNet101、ResNet152和原模型使用的vgg16作為特征提取網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到檢測結(jié)果如表2所示。
表2 不同特征提取網(wǎng)絡(luò)對模型檢測結(jié)果的影響
從表2可以看出,ResNet有效提高了模型的檢測精度,其中采用ResNet101的模型的檢測精度最高,表明ResNet101較適合水準(zhǔn)泡缺陷檢測任務(wù)。相比于vgg16,模型采用ResNet101作為特征提取網(wǎng)絡(luò)后,對于刻線目標(biāo)的檢測精度提高了7.1%,對于破損目標(biāo)的檢測精度提高了5.0%,對于熔花目標(biāo)的檢測精度提高了9.7%,對于氣泡和塞斜目標(biāo)的檢測精度分別達(dá)到了99.9%和100%,而對于劃痕目標(biāo)的檢測精度沒有明顯提升。
為了驗證融合RFP網(wǎng)絡(luò)后模型對水準(zhǔn)泡缺陷目標(biāo)檢測的有效性,本文采用ResNet101作為特征提取網(wǎng)絡(luò),將融合RFP網(wǎng)絡(luò)后的模型、融合FPN網(wǎng)絡(luò)后的模型和未融合金字塔網(wǎng)絡(luò)的模型在測試集上的檢測效果進(jìn)行對比,得到結(jié)果如表3所示。
表3 RFP對模型檢測結(jié)果的影響
從表3可以看出,融合RFP網(wǎng)絡(luò)后模型的mAP較未融合多尺度網(wǎng)絡(luò)模型和融合FPN網(wǎng)絡(luò)模型分別提高了2.2%和1.4%,其中劃痕缺陷的檢測精度得到了明顯的提高,說明模型通過RFP網(wǎng)絡(luò)可以有效地強(qiáng)化對于小目標(biāo)缺陷的敏感度,提高檢測精度。結(jié)合表2,采用ResNet101并融合RFP的改進(jìn)Faster R-CNN模型相比采用vgg16的原Faster R-CNN模型的mAP提升了6.3%,有效提高了檢測精度。圖11為采用本文模型對水準(zhǔn)泡樣本進(jìn)行缺陷檢測的檢測結(jié)果示例圖,圖中紅框為帶有類別和概率信息的檢測結(jié)果框,可以看到氣泡、刻線和各類缺陷目標(biāo)均能被準(zhǔn)確檢測。
圖11 檢測結(jié)果示例
本文提出了一種基于融合RFP的Faster R-CNN水準(zhǔn)泡缺陷檢測方法。針對水準(zhǔn)泡的缺陷檢測,本文提出的改進(jìn)模型采用ResNet101作為特征提取網(wǎng)絡(luò),根據(jù)水準(zhǔn)泡缺陷特點設(shè)計anchor方案,通過遞歸方式強(qiáng)化特征金字塔的多尺度特征輸出,并通過空洞空間金字塔池化進(jìn)行遞歸特征連接進(jìn)一步增強(qiáng)模型多尺度檢測性能,有效提高了模型的檢測精度。在水準(zhǔn)泡缺陷數(shù)據(jù)集上的實驗證明,融合RFP的Faster R-CNN改進(jìn)模型的mAP達(dá)96.7%,相比采用 vgg16的原Faster R-CNN模型提升6.3%,有效地提升了檢測性能。本文提出的水準(zhǔn)泡缺陷檢測方法對企業(yè)工業(yè)缺陷自動化檢測有一定的借鑒意義,對推動我國工業(yè)生產(chǎn)方式變革有一定幫助。