尚潔 吳觀茂









摘? 要:為了提升工業(yè)零件缺陷檢測(cè)的精度和速度,在Mask R-CNN的基礎(chǔ)上,引入了引導(dǎo)錨框的anchor生成方案提升檢測(cè)精度;在此基礎(chǔ)上對(duì)Mask R-CNN網(wǎng)絡(luò)框架進(jìn)行改進(jìn),去掉Mask分支,實(shí)現(xiàn)檢測(cè)速度的優(yōu)化。采用的數(shù)據(jù)集是DAGM工業(yè)缺陷數(shù)據(jù)集,并與先前的代表方法進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)表明,改進(jìn)后的算法在檢測(cè)精度方面對(duì)比原始算法提升了約1.94%,且速度也提升了1.2 frame/s,提升了工業(yè)零件缺陷檢測(cè)的速度和精度。
關(guān)鍵詞:工業(yè)缺陷檢測(cè);Mask R-CNN;引導(dǎo)錨框
中圖分類號(hào):TP391.4? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2022)03-0137-04
Industrial Parts Defect Detection Technology Based on Improved Mask R-CNN Algorithm
SHANG Jie, WU Guanmao
(College of Computer Science and Engineering, Anhui University of Science & Technology, Huainan? 232001, China)
Abstract: In order to improve the accuracy and speed of industrial parts defect detection, on the basis of Mask R-CNN, the anchor generation scheme of the guide anchor frame is introduced to improve the detection accuracy. on this basis, the Mask R-CNN network framework is improved and Mask branch is removed to realize the optimization of detection speed. The data set used is the DAGM industrial defect data set, and a comparison experiment with the previous representative method is carried out. Experiments show that the improved algorithm has improved by 1.94% in detection accuracy compared with the original algorithm, and the speed has also improved by 1.2 frame/s, the speed and accuracy of industrial parts defect detection are improved.
Keywords: industrial defect detection; Mask R-CNN; guide anchor frame
0? 引? 言
隨著計(jì)算機(jī)技術(shù)等信息產(chǎn)業(yè)在工業(yè)行業(yè)領(lǐng)域的廣泛應(yīng)用,工業(yè)制造大數(shù)據(jù)研究正成為幫助政府指導(dǎo)企業(yè)轉(zhuǎn)型升級(jí)的重要支撐。在工業(yè)生產(chǎn)鑄造的過(guò)程中,由于生產(chǎn)技術(shù)等問(wèn)題會(huì)不可避免的導(dǎo)致部分工業(yè)零件存在一些微小的表面缺陷。所以在工業(yè)零件缺陷檢測(cè)中,需要使用精確的目標(biāo)檢測(cè)技術(shù)來(lái)定位小的有缺陷的工業(yè)零件。但是現(xiàn)有的檢測(cè)技術(shù)受限于人工檢測(cè),十分費(fèi)力;而且傳統(tǒng)的機(jī)器識(shí)別算法也需要借助人工的方式來(lái)進(jìn)行圖像的處理,在實(shí)際的生產(chǎn)過(guò)程中往往很難達(dá)到機(jī)器視覺(jué)缺陷檢測(cè)系統(tǒng)所需的理想環(huán)境,使得無(wú)論是檢測(cè)的精度還是速度都無(wú)法得到保證。
近年來(lái),受益于卷積神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)領(lǐng)域發(fā)展迅速。Ross Girshick等[1]人基于深度學(xué)習(xí)技術(shù),開(kāi)創(chuàng)性地提出了R-CNN模型,使目標(biāo)檢測(cè)領(lǐng)域迎來(lái)了嶄新的篇章;基于此,Girshick等[2]又提出了Fast R-CNN模型,大大提高了特征提取的速度;Ross B.Girshick等[3]又基于此提出了Faster R-CNN模型,目標(biāo)檢測(cè)的精度大大提高。為了進(jìn)一步突破檢測(cè)模型的速度瓶頸,Redmon等[4]推出了基于one-stage的YOLO模型,丟棄候選框的提取步驟,直接在特征圖上進(jìn)行回歸操作;而后又出現(xiàn)了YOLO V4等[5],使得目標(biāo)檢測(cè)的速度更上一層樓。
雖然比起R-CNN系列檢測(cè)算法,YOLO系列的檢測(cè)算法效率更高速度更快,但其局限性在于檢測(cè)較小目標(biāo)時(shí),由于YOLO的單個(gè)網(wǎng)格單元可以同時(shí)對(duì)相同類型的兩個(gè)邊界框進(jìn)行回歸但是其局限性在于檢測(cè)小目標(biāo)時(shí),但是在工業(yè)零件的實(shí)際制造過(guò)程中,有缺陷的種類也很多,缺陷形成的可預(yù)見(jiàn)性差無(wú)規(guī)則。所以YOLO的檢測(cè)精度會(huì)低于R-CNN系列。
根據(jù)上述分析,本文將采用Mask R-CNN算法進(jìn)行工業(yè)零件的檢測(cè),以達(dá)到提升檢測(cè)精度和速度的目的。R-CNN算法問(wèn)世至今,之后又涌現(xiàn)出很多在其基礎(chǔ)上的創(chuàng)新算法,先后出現(xiàn)了Fast R-CNN、Faster R-CNN以及Mask R-CNN算法。本文對(duì)Mask R-CNN進(jìn)行改進(jìn),anchor生成策略引用融合引導(dǎo)錨框算法[6],來(lái)生成高質(zhì)量的anchor,提高檢測(cè)精度;同時(shí)去掉Mask掩碼分支,提升算法的檢測(cè)速度。
1? Mask R-CNN算法
2017年,何凱明等[7]提出Mask R-CNN算法。它在Faster R-CNN的基礎(chǔ)特征網(wǎng)絡(luò)之后增加了一個(gè)Mask分支,來(lái)對(duì)每個(gè)檢測(cè)出來(lái)的目標(biāo)進(jìn)行語(yǔ)義分割。之后又對(duì)ROI Pooling模塊進(jìn)行改進(jìn),引入興趣區(qū)域?qū)R層(Reigon of Internet Align layer, ROI Align)來(lái)解決Faster R-CNN中區(qū)域匹配不均的問(wèn)題,來(lái)使特征圖與輸入像素逐一對(duì)齊,改善分割精度。因此,Mask R-CNN同時(shí)兼?zhèn)浞诸悺⑦吔缈蚧貧w以及實(shí)例分割的特點(diǎn),大大改善了對(duì)小目標(biāo)檢測(cè)的缺陷分割。
Mask R-CNN網(wǎng)絡(luò)整體結(jié)構(gòu)主要分為這四個(gè)模塊:主干網(wǎng)絡(luò)(Backbone)、區(qū)域候選網(wǎng)絡(luò)(RPN)、ROI Align和R-CNN。Backbone通常包含殘差網(wǎng)絡(luò)(ResNet)和特征金字塔網(wǎng)絡(luò)(FPN)。FPN負(fù)責(zé)對(duì)ResNet輸出的5層特征圖進(jìn)行圖像融合,來(lái)獲得細(xì)節(jié)信息更豐富的特征圖并且輸出到RPN模塊和ROI Align模塊。RPN用來(lái)生成目標(biāo)候選區(qū)域,對(duì)獲取到的特征圖中的前景和后景部分進(jìn)行分類以及bbox的回歸,最終得到前景的一個(gè)大概位置。從Backbone得到了特征圖和從RPN得到了目標(biāo)候選區(qū)域之后輸入到ROI Align模塊,并且使用雙線性插值的方法[8]映射成固定維數(shù)的特征向量再經(jīng)過(guò)全連接層輸出到R-CNN模塊。
1.1? RPN
區(qū)域建議網(wǎng)絡(luò)(RPN)將一張圖像(任意大小)作為輸入和輸出一組矩形對(duì)象建議,其中每個(gè)對(duì)象建議都有一個(gè)對(duì)象評(píng)分。其具體流程圖如圖1所示。首先圖像經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)得到一張N×16×16的特征圖,接著經(jīng)過(guò)3×3的卷積得到一個(gè)256×16×16的特征圖,接著再次經(jīng)過(guò)兩次1×1的卷積分別得到18×16×16和36×16×16的特征圖,即16×16×9個(gè)結(jié)果,其中每個(gè)結(jié)果包含2個(gè)分?jǐn)?shù)和4個(gè)坐標(biāo)。再利用之前預(yù)先設(shè)定的anchors,經(jīng)過(guò)后處理就得到了目標(biāo)候選框。
1.2? ROI Align
RPN得到了目標(biāo)候選框之后,會(huì)傳入給ROI Align。ROI Align原理如圖2所示。虛線框是一個(gè)5×5的特征圖,實(shí)線框是ROI區(qū)域。接下來(lái)要對(duì)實(shí)線框部分做2×2的池化操作來(lái)獲取ROI區(qū)域的特征圖。首先將該ROI區(qū)域劃分為4個(gè)大小相同的2×2區(qū)域,接著在其每個(gè)小區(qū)域中設(shè)置四個(gè)采樣點(diǎn)和該采樣點(diǎn)最近的4個(gè)特征點(diǎn)的像素值;然后利用雙線性插值計(jì)算得到每個(gè)采樣點(diǎn)的像素值;最后計(jì)算每個(gè)小區(qū)域的池化值來(lái)生成ROI區(qū)域的大小為2×2的特征圖。
1.3? Mask分支
為了使預(yù)測(cè)的掩碼的準(zhǔn)確性更高,基于Faster R-CNN,Mask R-CNN增加了Mask分支,ROI Align操作之后得到的ROI會(huì)傳入此分支,來(lái)生成用于檢測(cè)目標(biāo)的掩碼。此時(shí),ROI Align會(huì)輸出14×14×256的特征圖;Mask分支會(huì)對(duì)其進(jìn)行4次卷積操作和一次反卷積操作,4次卷積操作得到的特征圖大小為14×14×256,反卷積操作得到的特征圖大小是28×28×256。使輸出的特征圖對(duì)齊輸入的特征圖尺寸,此時(shí)會(huì)得到輸入的特征圖中每個(gè)像素對(duì)應(yīng)的類別置信度,來(lái)實(shí)現(xiàn)實(shí)例分割的目的。
2? 錨框生成方法的改進(jìn)
2.1? Mask R-CNN錨框生成算法
由于在Mask R-CNN中的錨框生成策略是根據(jù)相應(yīng)的數(shù)據(jù)集事先預(yù)定好的尺寸,這種策略不適用于本文所使用的缺陷數(shù)據(jù)集,使得算法在生成ROI時(shí)需要進(jìn)行大量的回歸工作,網(wǎng)絡(luò)的訓(xùn)練時(shí)間也會(huì)大幅度增加,進(jìn)而影響到算法的檢測(cè)效率。
2.2? 生成錨框方案的改進(jìn)
針對(duì)上述問(wèn)題,我們提出引用引導(dǎo)錨框方案來(lái)生成anchor,通過(guò)圖的特征來(lái)指導(dǎo)anchor的生成。引導(dǎo)錨框算法包含的兩個(gè)主要模塊是anchor生成模塊以及自適應(yīng)特征模塊。
通常來(lái)說(shuō)中心點(diǎn)的坐標(biāo)和寬高能確定一個(gè)anchor,因此anchor生成模塊又分為兩個(gè)分支:anchor位置分支以及anchor的形狀分支,并且引入特征自適應(yīng)模塊來(lái)調(diào)節(jié)anchor的感受野與特征圖。如圖3所示。根據(jù)圖像特征先進(jìn)行anchor的坐標(biāo)(位置)預(yù)測(cè),接著再根據(jù)預(yù)測(cè)的anchor位置部分來(lái)預(yù)測(cè)相對(duì)應(yīng)位置的anchor的形狀。最后根據(jù)anchor的位置和形狀來(lái)進(jìn)行特征圖自適應(yīng)匹配,得到質(zhì)量高的anchor。引導(dǎo)錨框算法生成anchor方案具體步驟如下:
(1)對(duì)輸入的特征圖使用1×1的卷積操作,得到與特征圖相同的概率圖。概率圖上的位置對(duì)應(yīng)于原圖的位置如公式(1)所示:
(i’,j’)=((i+0.5)s,(j+0.5)s)(1)
式中:i,j為概率圖的坐標(biāo),s為卷積的步長(zhǎng);
(2)通過(guò)閾值來(lái)過(guò)濾掉大約90%的低召回率區(qū)域,來(lái)得到存在目標(biāo)的可能位置;
(3)使用1×1的卷積作用域特征圖FI,得到一個(gè)包含寬和高的雙通道映射圖:dw和dh;
(4)對(duì)dw和dh進(jìn)行轉(zhuǎn)換得到最終的w和h,轉(zhuǎn)換公式如(2)所示:
w=σ · s · edw,h=σ · s · edh(2)
式中:σ—轉(zhuǎn)化的尺度因子;
(5)根據(jù)基礎(chǔ)anchor的形狀在每個(gè)位置單獨(dú)的變換特征,公式如(3)所示:
fi’=NT(fi,wi,hi)(3)
式中:fi—第i個(gè)位置的特征,wi,hi—相應(yīng)位置的anchor形狀,NT—可變形卷積操作;
(6)得到用來(lái)確定anchor的四個(gè)參數(shù),進(jìn)行后續(xù)Mask R-CNN檢測(cè)流程。
所引用的方法首先通過(guò)識(shí)別有可能的目標(biāo)區(qū)域來(lái)確定anchor的形狀,最終生成稀疏的anchor坐標(biāo)。并設(shè)計(jì)一種自適應(yīng)特征模塊來(lái)解決anchor感受野大小匹配不均的問(wèn)題。我們只需要在模型中添加2個(gè)1×1的卷積層和1個(gè)3×3的可變形卷積,就能夠?qū)崿F(xiàn)更加合理的anchor生成方案,大大提高檢測(cè)的效率和精準(zhǔn)性。
3? 掩碼分支的改進(jìn)
3.1? Mask R-CNN中的掩碼分支
如1.3小節(jié)所講,Mask R-CNN增加了掩碼分支之后,雖然在檢測(cè)的精度上有所提升,但是這在一定程度上了犧牲了速度的代價(jià)。
3.2? 掩碼分支的改進(jìn)
對(duì)于工業(yè)零件缺陷檢測(cè)任務(wù),在生產(chǎn)的過(guò)程中對(duì)檢測(cè)的速度是有一定的要求的,無(wú)需對(duì)缺陷樣本進(jìn)行細(xì)致的分割。所以在進(jìn)行工業(yè)零件缺陷檢測(cè)的時(shí)候,對(duì)Mask R-CNN結(jié)構(gòu)的Mask分支[9]進(jìn)行更改,將其舍去。舍去分支之后如圖4所示。
4? 實(shí)驗(yàn)驗(yàn)證
4.1? 數(shù)據(jù)集
本文的數(shù)據(jù)集樣本采用DAGM數(shù)據(jù)集,該數(shù)據(jù)集包含2 100個(gè)樣本,樣本圖像分辨率為512×512。DAGM一共包含十類缺陷樣本,每類給出一個(gè)原始未標(biāo)記缺陷位置的樣本和一個(gè)標(biāo)記有缺陷位置的樣本。并且圖像中缺陷的尺寸和位置的多樣性,且背景紋理復(fù)雜與缺陷部分極易混淆,大大加深了檢測(cè)的難度。
4.2? 實(shí)驗(yàn)條件
本文在Windows10系統(tǒng)中采用的深度學(xué)習(xí)網(wǎng)絡(luò)框架為T(mén)ensorFlow,代碼運(yùn)行環(huán)境為Python3.6.10。避免過(guò)擬合以及加快訓(xùn)練速度,我們使用SGD(隨機(jī)梯度下降)進(jìn)行訓(xùn)練,共迭代次數(shù)為20 000次,本實(shí)驗(yàn)中的評(píng)價(jià)指標(biāo)為mAP。
4.3? 實(shí)驗(yàn)結(jié)果
首先將本文所改進(jìn)的anchor生成方案引導(dǎo)錨框算法與MaskR-CNN的原始方案在數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表1所示。通過(guò)表1對(duì)比實(shí)驗(yàn)發(fā)現(xiàn),采用引導(dǎo)錨框算法生成的anchor方案對(duì)比原始Mask R-CNN的mAP達(dá)到了98.69%,而且檢測(cè)速度也達(dá)到了2.6 frame/s,精度和速度同時(shí)得到了提升。
繼續(xù)測(cè)試本文的第二個(gè)改進(jìn)方案,實(shí)驗(yàn)結(jié)果如表2所示。通過(guò)實(shí)驗(yàn)可知改進(jìn)之后的Mask R-CNN其檢測(cè)精度略微提升但是速度卻得到了改善,提升了1.1 frame/s。
上述兩個(gè)實(shí)驗(yàn)表明本文所提出的兩種方案均能提升Mask R-CNN在工業(yè)數(shù)據(jù)集種的檢測(cè)性能,所以我們將以上兩種改進(jìn)方案同時(shí)運(yùn)用在Mask R-CNN算法種,并與原始Mask R-CNN算法進(jìn)行比較。同時(shí)在此次實(shí)驗(yàn)中加入Faster R-CNN,將上述兩種方法運(yùn)用其中,進(jìn)行觀察對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表3所示。由表3可知,使用改進(jìn)的Mask R-CNN算法進(jìn)行工業(yè)零件缺陷檢測(cè)時(shí)mAP和檢測(cè)速度均取得最佳的效果。
5? 結(jié) 論
針對(duì)工業(yè)零件的缺陷檢測(cè),本文基于Mask R-CNN算法進(jìn)行改進(jìn),提出引導(dǎo)錨框的anchor生成方案以及對(duì)Mask R-CNN的Mask分支進(jìn)行改進(jìn)。此外還進(jìn)行了實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)表明兩種改進(jìn)算法使得檢測(cè)效果均有所提升。又將兩種改進(jìn)方案結(jié)合到一起,進(jìn)一步提升了Mask R-CNN的檢測(cè)速度和精度。
參考文獻(xiàn):
[1] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation [C]//2014 IEEE Conference on Computer Vision and Pattern Recoginition.Columbus:IEEE,2014:580-587.
[2] GIRSHICK R.Fast R-CNN [C]//2015 IEEE International Conference on Computer Vision(ICCV).Santiago:IEEE,2015:1440-1448.
[3] REN S,HE K,GIRSHICK R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks [J].IEEE Trans Pattern Anal Mach Intell,2017,39(6):1137-1149.
[4] REDMON J,DIVVALA S,GIRSHICK R,et al.You Only Look Once:Unified, Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Las Vegas:IEEE,2016:779-788.
[5] BOCHKOVSKIY A,WANG C Y,LIAO H Y M.YOLOv4:Optimal Speed and Accuracy of Object Detection [J/OL].arXiv:2004.10934 [cs.CV].[2022-01-02].https://arxiv.org/abs/2004.10934.
[6] HE K, GKIOXARI G,DOLLAR P, et al. Mask R-CNN [C]//2017 IEEE International Conference on Computer Vision(ICCV).Venice:IEEE,2017:2980-2988.
[7] WANG J,CHEN K,YANG S,et al.Region Proposal by Guided Anchoring [C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR).Long Beach:IEEE,2019:2960-2969.
[8] ZOPH B,CUBUK E D,GHIASI G,et al.Learning Data Augmentation Strategies for Object Detection [J/OL].arXiv:1906.11172 [cs.CV].[2022-01-03].https://arxiv.org/abs/1906.11172.
[9] YU X,GONG Y,JIANG N,et al.Scale Match for Tiny Person Detection [C]//2020 IEEE Winter Conference on Applications of Computer Vision(WACV).Snowmass Village:IEEE,2020:1246-1254.
作者簡(jiǎn)介:尚潔(1996—),女,漢族,江蘇連云港人,碩士在讀,研究方向:目標(biāo)檢測(cè)等;通訊作者:吳觀茂(1965—),男,漢族,安徽淮南人,副教授,博士,研究方向:計(jì)算機(jī)深度學(xué)習(xí)等。