郭龍?jiān)矗魏裨?,周武威,童光紅,吳健輝,歐先鋒,李武勁
(湖南理工學(xué)院 信息科學(xué)與工程學(xué)院,湖南 岳陽 414006)
磁瓦是電機(jī)的重要組成部件,磁瓦表面存在缺陷會導(dǎo)致電機(jī)的性能下降,因此磁瓦表面缺陷檢測是磁瓦生產(chǎn)過程中必要的工序。然而,磁瓦圖像往往存在對比度較低、紋理背景復(fù)雜和圖像整體亮度分布不均等問題,導(dǎo)致磁瓦表面缺陷檢測難度較大。針對磁瓦表面缺陷檢測中存在的多種問題,研究人員開展了深入的研究,并獲得了一些成果。余永維等[1]提出一種基于自適應(yīng)濾波的缺陷分割方法,該方法通過弱化缺陷來構(gòu)建背景模型,然后將背景模型與原圖對比得到缺陷圖像,較好地解決了不同類型缺陷的檢測,但該方法未考慮孤立噪聲點(diǎn),很容易造成缺陷過檢;張振堯等[2]提出一種改進(jìn)的RElisf算法,實(shí)現(xiàn)了磁瓦表面缺陷檢測時特征的離線自動選擇,提高了對磁瓦圖像缺陷檢測的準(zhǔn)確率,但是該方法參數(shù)量較大,通用性較差;林麗君等[3]提出一種基于小波模極大值的磁瓦裂紋邊緣缺陷檢測算法,降低了背景圖像紋理對磁瓦裂紋缺陷檢測的影響,但是該方法主要針對裂紋缺陷,算法泛化能力較弱;鄭曉曦等[4]通過選擇合適的結(jié)構(gòu)元素,利用數(shù)學(xué)形態(tài)學(xué)處理提取缺陷輪廓,但其檢測效果一般。以上算法由于算法復(fù)雜、魯棒性較差以及容易過檢,通常難以滿足工業(yè)應(yīng)用要求[5-6]。
自2006年以來,研究者提出了許多卷積神經(jīng)網(wǎng)絡(luò)[7](Convolutional Neural Network,CNN)算法并應(yīng)用于各種領(lǐng)域,而在缺陷檢測領(lǐng)域中,研究人員也獲得了許多成果。熊紅林等[8]提出一種基于多尺度卷積神經(jīng)網(wǎng)絡(luò)的圖像識別模型,用于玻璃表面缺陷檢測,實(shí)現(xiàn)了準(zhǔn)確、快速地對缺陷進(jìn)行檢測;CHEN等[9]提出一種多光譜卷積神經(jīng)網(wǎng)絡(luò)模型來檢測太陽能電池的表面缺陷,該模型能有效地識別復(fù)雜紋理背景特征和缺陷特征;TABERNIK等[10]提出一種基于分割的深度學(xué)習(xí)方法用于缺陷檢測,該方法僅使用約27張圖片進(jìn)行訓(xùn)練,而不像一般的深度學(xué)習(xí)方法需要成百上千張圖片進(jìn)行訓(xùn)練,這使得該方法可被用于缺陷樣本受限的工業(yè)場景;HE等[11]提出一種基于回歸和分類的缺陷檢測框架,該框架包括基于深度回歸的檢測模型、像素級的誤報(bào)率降低、連通分量分析和缺陷類型分類的深度網(wǎng)絡(luò)4個模塊,該框架的檢測精度和檢測效率均較高;常海濤等[12]將加速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[13](Faster Region-based Convolutional Neural Network,F(xiàn)aster R-CNN)應(yīng)用到缺陷檢測中,取得了較好的檢測效果。這些方法雖然針對高對比度缺陷檢測效果良好,但是對于小目標(biāo)缺陷、低對比度缺陷時效果不理想。因此,本文在以上研究的基礎(chǔ)上,提出一種基于掩膜區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[14](Mask Region-based Convolutional Neural Network,Mask R-CNN)的磁瓦表面缺陷檢測算法,首先采用殘差網(wǎng)絡(luò)[15](Residual Network 50,ResNet50)構(gòu)建特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)[16],以提取圖像中不同類型缺陷的高維抽象特征,然后通過區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)來標(biāo)記缺陷候選區(qū)域即感興趣區(qū)域(Region of Interest,ROI),最后在ROI中使用全卷積網(wǎng)絡(luò)[17](Fully Convolutional Network, FCN)來生成缺陷掩模圖,同時可以預(yù)測每個ROI的類別和相應(yīng)錨框坐標(biāo)。本文網(wǎng)絡(luò)的訓(xùn)練和測試均在MXNet深度學(xué)習(xí)框架中進(jìn)行。
傳統(tǒng)算法中缺陷檢測通常包括3個步驟:①針對不同缺陷以及背景確定打光方案;②根據(jù)成像的缺陷特征設(shè)計(jì)特征提取算法;③根據(jù)提取的特征對原圖像素點(diǎn)進(jìn)行分類或聚類。這就要求分割的缺陷有較明顯的特征,如對比度、紋理特征或較清晰的邊緣輪廓等。如輪廓分割算法會根據(jù)缺陷與非缺陷區(qū)域間的灰度差別找到兩者間的合理邊緣輪廓,然后根據(jù)這個邊緣輪廓將缺陷和非缺陷區(qū)域分割開。
磁瓦缺陷缺乏明顯的對比度,而且不同的磁瓦缺陷具有不同的顏色特征。如磁瓦的裂紋缺陷顏色偏暗,缺口缺陷則偏亮,并且同一類型的缺陷顏色也不盡相同。其次,磁瓦缺陷邊緣不具備特定的輪廓,故無法像樹木或者人體那樣通過特定輪廓進(jìn)行分割。最后,磁瓦本身復(fù)雜的紋理背景也給分割增加了難度。
因?yàn)榇磐呷毕荽嬖谏鲜鎏攸c(diǎn),應(yīng)用傳統(tǒng)算法雖然可以較好地解決磁瓦某類缺陷的問題,但是很難設(shè)計(jì)出能適用于檢測不同種類磁瓦缺陷的算法,所以傳統(tǒng)分割算法針對不同種類的磁瓦缺陷需要設(shè)計(jì)不同的檢測算法,從而增加了工業(yè)檢測算法的復(fù)雜度。本文利用卷積神經(jīng)網(wǎng)絡(luò)能夠自學(xué)習(xí)缺陷的特征,來解決不同類型磁瓦缺陷檢測的難題。目前主流的基于卷積神經(jīng)網(wǎng)絡(luò)的分割算法包括全卷積網(wǎng)絡(luò)[17](FCN)、金字塔場景解析網(wǎng)絡(luò)[18](Pyramid scene parsing Network, PspNet)、Deeplabv3和Mask R-CNN算法。本文對Mask R-CNN算法進(jìn)行了改進(jìn),并應(yīng)用到磁瓦表面缺陷檢測中。
1.3.1 掩膜區(qū)域卷積網(wǎng)絡(luò)的主體結(jié)構(gòu)
Mask R-CNN是HE等[14]基于Faster R-CNN提出的新的卷積神經(jīng)網(wǎng)絡(luò),可實(shí)現(xiàn)實(shí)例分割。該方法不僅能有效地檢測目標(biāo),還能完成對目標(biāo)高質(zhì)量的語義分割。其主要思路是:在原始Faster R-CNN基礎(chǔ)上添加一個分支實(shí)現(xiàn)對目標(biāo)的語義分割。Mask R-CNN應(yīng)用FPN改進(jìn)了特征提取網(wǎng)絡(luò),較好地解決了FCN和基于FCN的分割網(wǎng)絡(luò)(Segmentation Net,SegNet)[20]經(jīng)過特征提取層后語義信息丟失嚴(yán)重的問題,大幅提升了對小目標(biāo)缺陷的分割;對于PspNet和Deeplabv3缺陷輪廓分割不清晰的情況,Mask R-CNN 將興趣區(qū)域?qū)R層替換成興趣區(qū)域池化層,即通過雙線性插值進(jìn)一步利用特征圖上的空間信息,從而預(yù)測出更準(zhǔn)確的缺陷輪廓。Mask R-CNN整體結(jié)構(gòu)如圖1所示,Mask R-CNN首先使用基于ResNet50的FPN提取出缺陷圖像的特征圖,然后使用RPN生成目標(biāo)的建議框,并使用非極大值抑制(Non-Maximum Suppresion,NMS)[21]算法篩選得到ROI,最后對每個ROI進(jìn)行類別預(yù)測、邊界框預(yù)測以及目標(biāo)的二值化掩膜。
1.3.2 損失函數(shù)
對于卷積神經(jīng)網(wǎng)絡(luò)來說,損失函數(shù)反映了預(yù)測值與真實(shí)值之間的差異,Mask R-CNN的損失函數(shù)定義為:
Loss=Lcls+Lbox+Lmask。
(1)
式中:Lcls為分類損失;Lbox為邊界框(bounding box)回歸誤差;Lmask為分支FCN分割損失。
(2)
(3)
(4)
Lmask=(km2)i。
(5)
式中:k表示分類物體的種類數(shù)目;m2表示掩膜分支對每個錨框產(chǎn)生的m×m大小的掩碼。
FPN是將ResNet50網(wǎng)絡(luò)中特征圖(feature map)大小相同的層歸為一個階段(stage),即將ResNet50結(jié)構(gòu)中的卷積塊Conv2、卷積塊Conv3、卷積塊Conv4和卷積塊Conv5對應(yīng)FPN中的stage 2、stage 3、stage 4和stage 5。底層的stage與上一層的stage進(jìn)行圖像融合形成對應(yīng)的P2~P5結(jié)構(gòu)。將融合后的結(jié)構(gòu)進(jìn)行3×3的卷積,以消除圖像融合的混疊效應(yīng),并單獨(dú)將P5進(jìn)行0.5倍下采樣,形成P6結(jié)構(gòu)。對于整個FPN結(jié)構(gòu)而言,共有P2~P6五個輸出,不同輸出的特征圖上對應(yīng)的目標(biāo)大小也不同,因此使用P2~P6作為RPN的輸入,需要確定不同的ROI對應(yīng)的不同特征層,大尺寸ROI使用高層特征層,如P4;小尺寸ROI使用底層的特征層,如P3。本文確定ROI對應(yīng)特征層l的方法定義如式(6)所示:
(6)
式中:l為特征層的序號;224為ImageNet圖像分類的標(biāo)準(zhǔn)輸入;l0為標(biāo)準(zhǔn)值,設(shè)置為4;w和h是ROI區(qū)域的寬和高;[*]表示取整。假設(shè)ROI為112×112的大小,則l=l0-1=4-1=3,意味著該ROI對應(yīng)P3的特征層。
由于Mask R-CNN中FPN結(jié)構(gòu)是針對MSCOCO數(shù)據(jù)集而設(shè)計(jì)的,該數(shù)據(jù)集大部分圖片分辨率為1 024×1 024,而磁瓦的圖片分辨率僅為494×648,本文取消了ResNet50的Conv1的池化層(pooling),直接獲取類似尺寸的FPN-Feature Map,修改后的結(jié)構(gòu)如圖2中C1模塊所示。
盡管FPN通過融合低層和高層特征圖的特征來達(dá)到更好的預(yù)測效果,但是由于磁瓦的紋理特征比較復(fù)雜,而且磁瓦缺陷的成像對比度較低,本文將限制對比度自適應(yīng)直方圖均衡化[22](Contrast Limited Adaptive Histogram Equalization,CLAHE)預(yù)處理模塊加在Mask R-CNN的特征提取層前,增加的模塊如圖2所示。
本文通過對自適應(yīng)直方圖均衡(Adaptive Histogram Equalization,AHE)的對比度限幅來實(shí)現(xiàn)CLAHE。在預(yù)處理模塊中,CLAHE對每個小區(qū)域進(jìn)行了對比度限幅,同時通過限制AHE算法的對比度,克服了AHE的過度放大噪聲問題。
模塊通過變換函數(shù)的斜度來放大給定像素周圍的對比度,其中斜度和其累積直方圖斜度成正比。先利用預(yù)先設(shè)定的閾值來裁剪直方圖;然后通過計(jì)算累積分布函數(shù)(Cumulative Distribution Function,CDF)來求解限制放大幅度。這樣限制了CDF的斜度,從而限制了變換函數(shù)的斜度;最后通過鄰域的大小和直方圖的分布來決定直方圖的裁剪限幅。
通常,直接拋棄直方圖裁剪限幅會損失圖像原始的信息,因此將其裁剪限幅的部分平均放到直方圖的空余部分,如圖3所示。
每個子直方圖的剪切上限β和變換函數(shù)被允許的最大斜率Smax分別為:
(7)
(8)
式中:N為像素總數(shù)(各子塊);L為灰度級數(shù)(各子塊);α為截?cái)嘞禂?shù),本文設(shè)置α=75;u為灰度均值(每個子塊);q為均方差(每個子塊)。β值的大小由Smax和α的取值共同決定。
磁瓦圖像經(jīng)過預(yù)處理模塊后的效果圖如圖4所示。由圖4b中可以看出,磁瓦背景亮度和缺陷特征得到明顯增強(qiáng),進(jìn)一步提高了Mask R-CNN特征提取層的提取能力。
卷積神經(jīng)網(wǎng)絡(luò)在提取特征的過程中,特征圖的尺寸逐漸減小,會導(dǎo)致一些小目標(biāo)缺陷信息丟失,因此,預(yù)測圖像中對小缺陷的檢測效果不理想。為了提高對小目標(biāo)缺陷的檢測率,本文采用包含豐富語義信息的高分辨率特征圖。具體地,利用FPN融合低分辨率特征圖與高分辨率特征圖,在原有模型計(jì)算量不增加的情況下,大幅提升了小目標(biāo)缺陷檢測的性能。
在原FPN結(jié)構(gòu)中,為避免圖片尺寸較大占用過多內(nèi)存,直接去掉了C1模塊。本文因?yàn)椴捎玫臄?shù)據(jù)集圖片尺寸較小,所以保留了C1模塊,這樣可以獲得低層高分辨率圖中更多細(xì)節(jié)特征。同時,因?yàn)閳D片尺寸較小,所以取消了C1模塊中的池化層。在如圖5所示的特征提取層結(jié)構(gòu)圖中,自底向上(down-top)對應(yīng)于ResNet50中的殘差塊(residual block)結(jié)構(gòu),每層的尺度(scale)縮小2倍;自頂向下(top-down)將高層低分辨率的特征圖進(jìn)行2倍上采樣;側(cè)面連接(lateral conn)通過1×1卷積減少C1的特征層個數(shù),同時保證特征層尺寸大小不變;特征層C2與上采樣后的特征圖相加得到最后的特征圖。
實(shí)驗(yàn)硬件平臺為圖形工作站,配置為Intel Core i7-8700K六核處理器、兩塊NVIDIA GTX1080Ti 11 G獨(dú)立顯卡、16 G DDR4內(nèi)存、512 G固態(tài)硬盤,軟件仿真平臺為MXNet 1.3.0版本。本文的算法評估指標(biāo)為檢測率、誤檢率以及漏檢率,實(shí)驗(yàn)表明:加入CLAHE預(yù)處理模塊和最下層語義信息(FPN中的C1模塊)對缺陷檢測的效果有提升作用,且本文算法的檢測效果優(yōu)于目前一些常用的表面缺陷檢測算法。
在機(jī)器視覺中,打光是極其重要的一部分,光源及相機(jī)的選型直接影響后期圖像的處理效果。為了減小光線不均對檢測效果的影響,工業(yè)檢測設(shè)備一般都會將攝像機(jī)、光源和被檢測產(chǎn)品放在一個封閉的空間中,在此環(huán)境下,可以保證背景簡單,光照一致,產(chǎn)品圖像突出。本文所用的圖片均來自實(shí)際現(xiàn)場設(shè)備,因此圖像背景一致,光照均勻。本文中光源采用頻閃條形光,相機(jī)為30萬像素的CMOS相機(jī)。
為了訓(xùn)練Mask R-CNN網(wǎng)絡(luò),采用常用的標(biāo)注軟件Labelme為每張磁瓦圖像制作對應(yīng)標(biāo)簽,原圖像中的磁瓦缺口缺陷標(biāo)簽為gap,裂縫缺陷標(biāo)簽為crack。為了保證數(shù)據(jù)集的完整性,還需要標(biāo)注缺陷的面積、邊界框坐標(biāo)等信息。實(shí)驗(yàn)過程采用現(xiàn)場采集的1 200個磁瓦樣本,其中缺陷樣本600個、良品樣本600個,600個缺陷樣本包括磁瓦的缺口、裂縫等缺陷,而且缺陷分布均勻。首先本文將其隨機(jī)分成400個缺陷樣本和400良品樣本組成訓(xùn)練集,其余組成測試集。同時,由于數(shù)據(jù)量較少,必須對數(shù)據(jù)集進(jìn)行擴(kuò)充。由分析可知,對數(shù)據(jù)集進(jìn)行上下、左右、對角鏡像以及90°、180°、270°旋轉(zhuǎn)等6種數(shù)據(jù)增廣,將訓(xùn)練集數(shù)據(jù)擴(kuò)充為2 400個缺陷樣本,2 400個良品樣本,測試集擴(kuò)充為由1 200個缺陷樣本和1 200個良品樣本組成的新測試集。
為了定量評估磁瓦缺陷檢測算法的性能,采用正確率、誤檢率及漏檢率來對算法進(jìn)行評價。檢測算法將缺陷磁瓦判定為正常磁瓦稱為漏檢,將正常磁瓦判定為缺陷磁瓦稱為過檢。設(shè)RCD表示磁瓦檢測正確率,RFA表示磁瓦誤檢率,RBA表示磁瓦漏檢率,NC表示磁瓦實(shí)際漏檢樣本個數(shù),NA為合格磁瓦個數(shù),NB為缺陷磁瓦個數(shù),ND表示磁瓦實(shí)際誤檢個數(shù),則RCD、RFA、RBA可由式(9)~式(11)計(jì)算:
(9)
(10)
(11)
本文在Mask R-CNN的基礎(chǔ)上引入CLAHE預(yù)處理模塊,并且增加了FPN中的C1模塊,改進(jìn)后的算法在測試集上的檢測結(jié)果如表1所示。
表1 Mask R-CNN和本文改進(jìn)算法結(jié)果對比
由表1可知,本文所提改進(jìn)的Mask R-CNN相比原來的Mask R-CNN,磁瓦缺陷檢測的漏檢率和誤檢率降低。在本文算法中,針對磁瓦缺陷的特點(diǎn)加入CLAHE預(yù)處理模塊,提升了缺陷部分的局部對比度,從而對后面的檢測有良好的效果;而且利用C1可以更好地獲取低層的特征語義信息,因?yàn)榈蛯拥恼Z義信息能夠得到更明確的缺陷位置,同時經(jīng)過更少的卷積層能夠保證小目標(biāo)缺陷不會在多層卷積后丟失,所以,本文改進(jìn)的Mask R-CNN對磁瓦表面缺陷檢測是有利的,特別是對小缺陷目標(biāo)有更高的檢測率和更低的誤檢率。
為了驗(yàn)證本文算法在磁瓦表面缺陷檢測方面的效果,將其與傅里葉變換算法、FCN、PspNet和Deeplabv3等算法進(jìn)行對比。其中,傅里葉變換算法是工業(yè)檢測行業(yè)傳統(tǒng)的方法,其他算法均為基于神經(jīng)網(wǎng)絡(luò)的算法。傅里葉變換算法的濾波半徑設(shè)置為0.10;其他算法均采用ResNet50作為主干網(wǎng)絡(luò),訓(xùn)練參數(shù)如表2所示,本文算法與對比算法的評價結(jié)果如表3所示。
表2 FCN、PspNet、Deeplabv3和本文算法的網(wǎng)絡(luò)訓(xùn)練參數(shù)表
表3 不同檢測結(jié)果對比
表3中傅里葉變換法的檢測精度相對較高,但由于傅里葉變換計(jì)算復(fù)雜,且針對不同的缺陷類型需要設(shè)計(jì)不同的濾波器模板來提高檢測效果,對于工業(yè)檢測來說比較繁瑣,不適合多種缺陷類型的表面缺陷檢測;因?yàn)榇磐呷毕葺^小,經(jīng)過FCN的卷積層后會出現(xiàn)目標(biāo)丟失,所以導(dǎo)致其各種評價指標(biāo)都較低;PspNet雖然改進(jìn)了FCN的特征提取結(jié)構(gòu),但是相比于本文算法,其誤檢率和漏檢率都較高。這是由于本文采用的FPN能融合不同尺度特征層,提高了對小缺陷目標(biāo)的特征提取能力;Deeplabv3對輸入圖像進(jìn)行不同尺度的特征提取,然后將不同尺度的圖像放入CNN中得到不同分辨率的分割圖,最后通過圖像融合得到原圖分辨率的分割結(jié)果。Deeplabv3雖然較好地解決了小目標(biāo)、低對比度缺陷特征提取,但是相比于本文算法,無論是誤檢率還是漏檢率都較高。
本文測試集的磁瓦檢測效果如圖6所示,其中對于高對比度缺陷,傅里葉變換法有較好的檢測效果,但是對于不同的缺陷類型需要使用不同的濾波器,其算法泛化能力的局限性限制了其在磁瓦檢測中的應(yīng)用;FCN在缺陷檢測中,對于小目標(biāo)缺陷以及低對比度缺陷檢測效果較差;PspNet對低對比度缺陷檢測效果良好,但是無法有效檢測出邊界模糊的裂紋缺陷掩膜圖;Deeplabv3對于小目標(biāo)有一定的改善,但是無法有效得到缺陷的輪廓;本文算法能有效地解決缺陷邊緣輪廓模糊的問題,除了能提升較低對比度缺陷的檢測效果,也能提升小目標(biāo)缺陷的檢測效果,具有較好的泛化能力,這些特點(diǎn)使其能夠較好地解決磁瓦表面缺陷檢測。
由于磁瓦圖像具有亮度不均和對比度低等特點(diǎn),使得傳統(tǒng)的缺陷檢測算法效果不佳,本文提出了一種改進(jìn)Mask R-CNN的磁瓦表面缺陷檢測算法。利用FPN強(qiáng)大的特征提取能力,能較好地保留小目標(biāo)、低對比度缺陷在卷積層中的信息,而且RPN可以有效地在原圖上進(jìn)行缺陷區(qū)域候選。實(shí)驗(yàn)結(jié)果表明,本文算法提升了磁瓦表面缺陷檢測的正確率,而且一定程度上降低了檢測的誤檢率以及漏檢率。目前,深度學(xué)習(xí)領(lǐng)域還有許多優(yōu)異的網(wǎng)絡(luò)結(jié)構(gòu),在今后的研究中,計(jì)劃將這些優(yōu)異結(jié)構(gòu)應(yīng)用到本文算法中。