張 安,黃建龍,周詩洋,伍世虔*
(1.武漢科技大學(xué) 機(jī)械自動化學(xué)院,武漢 430081;2.武漢科技大學(xué) 機(jī)器人與智能系統(tǒng)研究院,武漢 430081)
隨著工業(yè)4.0時代到來,工業(yè)檢測領(lǐng)域開始引入自動化檢測技術(shù),人工智能的出現(xiàn)也大大提高了工業(yè)的生產(chǎn)效率。濾光片是過濾光線的光學(xué)器件,濾光片一般被膠粘在塑料鏡座上,作為濾光片組件應(yīng)用在鏡頭模組內(nèi),但是在濾光片組件批量生產(chǎn)過程中,有部分產(chǎn)品會出現(xiàn)加工缺陷,比如鏡座壓傷、鏡座破損、溢膠、崩邊等,這些有硬性缺陷的濾光片組件無法應(yīng)用到鏡頭內(nèi)。當(dāng)前國內(nèi)部分制造業(yè)都是雇傭大量年輕工人通過顯微鏡的輔助進(jìn)行微小光學(xué)器件的不良篩查,工人在機(jī)械化的篩查工作中容易疲勞,工作效率低下,而且容易漏檢,長期低頭工作也會導(dǎo)致部分工人的頸椎受損。
機(jī)器視覺行業(yè)的興起對制造業(yè)的發(fā)展有了一定的推動作用。為實(shí)現(xiàn)了不良品的缺陷檢測,DING等人提出基于形態(tài)學(xué)運(yùn)算的圖像相減方法,成功檢測印刷品缺陷[1]。LIANG等人也提出一種分割和模板匹配的算法,實(shí)現(xiàn)了織物 疵的缺陷檢測[2]。Li等人[3]針對工業(yè)制造中沖壓件的缺陷檢測問題,提出了一種基于模板匹配的缺陷檢測方法,實(shí)現(xiàn)零件表面缺陷的自動檢測。但基于簡單的圖像空域分析,處理像素級別的問題有局限性,因此馮國勇利用小波變換的方法對圖像的時域和頻域進(jìn)行局部分析,該方法能夠檢測金屬表面缺陷[4]。但是以上的解決方法都是傳統(tǒng)的圖像處理算法,他們有一個共同的缺點(diǎn)就是算法的魯棒性低,且沒有良好的實(shí)時性。
相比于傳統(tǒng)算法,深度學(xué)習(xí)有多層神經(jīng)元作為特征提取器,展現(xiàn)了卓越的特征提取能力。著名的語義分割全卷積神經(jīng)網(wǎng)絡(luò)[5](Fully Convolutional Networks,F(xiàn)CN)打開了分割領(lǐng)域的大門。FCN主要適用于現(xiàn)實(shí)場景的分割,因此,王森等人[6]在FCN網(wǎng)絡(luò)上進(jìn)行改進(jìn),提出一種Crack FCN模型檢測道路、鋼材等裂縫缺陷。TABERNIK等人提出一種分割網(wǎng)絡(luò)檢測表面裂紋圖像,檢測效果良好,甚至超越了市面上常用的商業(yè)檢測軟件[7]。YAO等人利用提出的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了鑄件缺陷的檢測,測試準(zhǔn)確率可以達(dá)到96%[8]。深度學(xué)習(xí)在工業(yè)缺陷檢測其他產(chǎn)品領(lǐng)域發(fā)展出了顯著成果,比如輪胎缺陷[9],手機(jī)外殼[10],PCB電路板[11]等。以上深度卷積分割網(wǎng)絡(luò)的結(jié)構(gòu)都很深,所以取得了良好的準(zhǔn)確率,但是網(wǎng)絡(luò)模型的運(yùn)算時間不盡人意。
當(dāng)前研究者為增強(qiáng)模型的檢測能力,都在逐步的加深網(wǎng)絡(luò)層級,雖然深層次的卷積神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)更加豐富的特征,但是算法的運(yùn)行時間也隨著卷積層的加深也在逐步變長。基于此,本文提出一種多尺度并行的卷積神經(jīng)網(wǎng)絡(luò)分割算法,該算法能夠像深層次的網(wǎng)絡(luò)一樣提取到圖像的低層語義特征和高層語義特征,最后將兩種特征進(jìn)行融合,這對鏡座表面缺陷邊緣分割的準(zhǔn)確率有較大改善,同時運(yùn)行時間比深層次卷積神經(jīng)網(wǎng)絡(luò)也短。為提高不同尺寸缺陷檢測準(zhǔn)確率,本文也提出了一種多感受野卷積模塊,該模塊能夠?qū)⒉煌惺芤熬矸e核得到的語義特征進(jìn)行融合,進(jìn)而豐富了特征圖中的不同尺度缺陷的語義特征。
MultiNet是一種高效的并行運(yùn)算的網(wǎng)絡(luò)結(jié)構(gòu)。MultiNet有三條網(wǎng)絡(luò)路徑,第一條路徑輸入的圖像是直接將原圖經(jīng)過二分之一下采樣處理的400×400×1小尺寸圖像,經(jīng)過二分之一下采樣后,圖像的細(xì)節(jié)特征減少,然后將下采樣后的小尺寸灰度圖像送入網(wǎng)絡(luò)后,經(jīng)過多次卷積后獲得一個100×100×16的特征圖,此時的特征圖就如同一條很深層次卷積神經(jīng)網(wǎng)絡(luò)提取出來的高層語義特征圖,因為細(xì)節(jié)特征會隨著卷積層的加深而逐漸消失,所以小尺度圖像被提取出鏡座的高層語義信息,即鏡座的輪廓特征;第二條路徑輸入尺寸為800×800×1的原圖,經(jīng)過多次卷積后獲得一個100×100×16的特征圖,此時的特征圖包含底層語義信息,即包含著鏡座的表面細(xì)節(jié)特征;第三條路徑輸入的圖像尺寸也是800×800×1的原圖,經(jīng)過多次卷積后獲得一個100×100×16的特征圖,第三條網(wǎng)絡(luò)結(jié)構(gòu)提取出來的低層語義信息是對第二條網(wǎng)絡(luò)提取的特征進(jìn)行低層語義信息加強(qiáng)化,使得鏡座表面的細(xì)節(jié)特征充分被提取,然后將輪廓特征和細(xì)節(jié)特征融合,進(jìn)而有效的提高缺陷檢測準(zhǔn)確率。其中的3×3的卷積運(yùn)算都有padding填充操作,卷積后的特征圖尺寸大小不變,通過最大池化進(jìn)行下采樣,特征圖會縮小一半,MultiNet內(nèi)部包含六個LightCNN模塊,該模塊為網(wǎng)絡(luò)適當(dāng)?shù)脑黾恿舜罅康膮?shù),使得模型擁有良好的泛化能力,最后將三個不同的特征圖進(jìn)行通道間的連接操作,通過UpSampling運(yùn)算進(jìn)行上采樣運(yùn)算,使得特征圖尺寸能夠恢復(fù)到800×800,然后通過1×1卷積將通道調(diào)整為1,獲得的特征圖為最后的預(yù)測分割結(jié)果圖。MultiNet網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 MultiNet網(wǎng)絡(luò)結(jié)構(gòu)和特征圖可視化
LightCNN是一種輕量級的特征提取模塊,首先,LightCNN模塊適當(dāng)?shù)臑榫W(wǎng)絡(luò)增加了大量可學(xué)習(xí)的參數(shù),提升了模型的泛化能力,其次,它由1×1卷積、3×3卷積和5×5卷積組成,卷積核為1和3的卷積核感受野小,能夠提取缺陷的局部和細(xì)節(jié)特征,卷積核為5的卷積擁有大的感受野,能夠提取到缺陷全局特征,隨后將不同感受野得到的特征圖進(jìn)行相加運(yùn)算,這樣融合的方式使得網(wǎng)絡(luò)更加充分的提取不同尺度的缺陷特征。隨后將特征圖經(jīng)過Batch Normalization(BN)層運(yùn)算,BN將數(shù)據(jù)進(jìn)行歸一化,歸一化可以加快訓(xùn)練速度,這樣我們就可以使用較大的學(xué)習(xí)率來訓(xùn)練網(wǎng)絡(luò),同時可以提高網(wǎng)絡(luò)的泛化能力。使用Leaky ReLU激活函數(shù)后,可以是線性輸入變成非線性輸出,增強(qiáng)了模型的擬合能力,而且Leaky ReLU激活還可以解決ReLU的神經(jīng)元死亡問題,在負(fù)區(qū)域具有小的正斜率,因此即使對于負(fù)輸入值,LightCNN模塊也可以進(jìn)行反向傳播。LightCNN多感受野卷積模塊如圖2所示。
圖2 LightCNN多感受野卷積模塊
對于LightCNN多感受野卷積模塊而言,不同感受野獲取的信息是不一樣的,如圖3所示,1×1卷積的感受野只有一個像素單元格,3×3卷積的感受野9個像素單元,5×5卷積的感受野25個像素單元,大感受野的卷積運(yùn)算得到的計算結(jié)果具有豐富的全局圖像信息,小感受野的卷積運(yùn)算得到的計算結(jié)果具有局部圖像信息。對于LightCNN特征提取模塊,它將小感受野、中感受野、大感受野得到的不同語義信息的特征圖與無操作的特征圖進(jìn)行元素間相加融合,最終獲得的特征圖具有豐富多樣的語義信息,這有助于提高不同尺寸缺陷的識別準(zhǔn)確率。
圖3 不同感受野的示意圖
本視覺檢測系統(tǒng)主要是由相機(jī)、鏡頭、光源、硬件平臺組成,相機(jī)選用CCD工業(yè)相機(jī)(Charge Coupled Device Camera),光源采用環(huán)形光源的同軸光,鏡頭采用日本Computer公司研發(fā)的M1614-MP2型號鏡頭。濾光片組件由濾光片和鏡座組成,濾光片型號多種多樣,與之對應(yīng)的鏡座種類也很多,如圖4所示。殘次品的鏡座不能應(yīng)用到鏡頭中鏡座缺陷種類繁多,典型的缺陷包含壓傷、劃傷、崩邊、崩角、裂紋、擦傷等。
圖4 采集的四個型號濾光片組件圖像
本實(shí)驗的運(yùn)行硬件平臺是Windows系統(tǒng),GPU型號為Nvidia GeForce RTX 2060獨(dú)立顯卡,其顯存為6GB;CPU型號為英特爾Core i5-10200H@2.40GHz四核,其內(nèi)存為16GB。軟件運(yùn)行平臺為Anaconda3的Pycharm解釋器,在該平臺下,安裝了python3.6,tensorflow1.13.1,numpy和opencv等第三方庫支持算法穩(wěn)定運(yùn)行。
本文的訓(xùn)練集包含600張有缺陷的不合格產(chǎn)品圖像和100張無缺陷的合格產(chǎn)品圖像,網(wǎng)絡(luò)使用Adam優(yōu)化器進(jìn)行網(wǎng)絡(luò)優(yōu)化,二元交叉熵函數(shù)(Binary Crossentropy)作為損失函數(shù),為了訓(xùn)練出泛化能力更好的模型,訓(xùn)練的超參數(shù)設(shè)置為:以0.5的概率隨機(jī)將部分圖像進(jìn)行旋轉(zhuǎn)90°,將學(xué)習(xí)率設(shè)置為0.001,回調(diào)函數(shù)(ReduceLROnPlateau)來定期衰減學(xué)習(xí)率,Batchsize設(shè)置為4。
2.4.1 模型評估指數(shù)
TP表示分類真實(shí)值正確的像素個數(shù),F(xiàn)P表示不是真實(shí)值被誤判為真實(shí)值的像素個數(shù),F(xiàn)N是真實(shí)值反而被誤判為不是真實(shí)值的像素個數(shù),TN不是真實(shí)值預(yù)測為不是真實(shí)值的像素個數(shù)。
1)交并比(Intersection over Union,IoU):這項指標(biāo)是衡量語義分割結(jié)果好壞的重要指標(biāo),它表示預(yù)測值和真實(shí)值交集占并集的比例,平均交并比等式為:
2)平衡F分?jǐn)?shù)(F1 Score):
3)查準(zhǔn)率(Precision):表示真正的為缺陷的像素占據(jù)被判定為缺陷像素的比例。
4)查全率(Recall):表示被正確判定為缺陷的像素占據(jù)所有缺陷像素的比例。
2.4.2 不同算法分割性能指標(biāo)的對比
如表2所示,展示了不同網(wǎng)絡(luò)在測試集上的IoU、F1 Score、每張的測試時間和模型參數(shù)量的對比,從表格中可以看出本文方法的準(zhǔn)確率和測試時間明顯優(yōu)于其他算法,這是由于其他網(wǎng)絡(luò)都是利用單尺度特征做訓(xùn)練數(shù)據(jù),使得部分淺灰度值的特征經(jīng)過多次卷積而消失,沒有充分提取到圖像上的細(xì)節(jié)和輪廓特征。而本文方法是以多尺度特征融合為數(shù)據(jù)驅(qū)動,將不同層次的特征進(jìn)行了有效融合,這有效的提高了分割結(jié)果。
表2 本文方法與其他分割網(wǎng)絡(luò)1300張量產(chǎn)測試對比
2.4.3 各個算法效果圖
圖5第一列是產(chǎn)品整體圖像,第二列是缺陷的局部圖,第三列是人工手工標(biāo)記的標(biāo)簽(ground truth),第四列是FCN的測試結(jié)果圖,第五列是Unet的測試結(jié)果圖,第六列Unet-Mobile的測試結(jié)果圖,第七列是本文方法的測試結(jié)果圖,相同環(huán)境下,本文方法分割的結(jié)果圖更加接近人工手工標(biāo)記的標(biāo)簽。
圖5 本文方法與其它算法的測試結(jié)果圖
2.4.4 甄選1300張圖像模擬實(shí)際生產(chǎn)任務(wù)測試
為模擬算法在實(shí)際成產(chǎn)任務(wù)中的表現(xiàn)效果,挑選出1300張圖像進(jìn)行檢測,其中包含250張不合格圖像,1050張合格圖像,同選取了FCN、Unet、Unet-Mobile三個網(wǎng)絡(luò)的測試結(jié)果進(jìn)行對比。實(shí)驗結(jié)果表示本文提出的方法漏檢率和過檢率更加符合工業(yè)檢測標(biāo)準(zhǔn),雖然Unet-Mobile漏檢率表現(xiàn)的跟本文的方法相當(dāng),但是過檢非常多,無滿足工業(yè)檢測要求,如表1所示。
表1 本文方法與其他分割網(wǎng)絡(luò)分割性能指標(biāo)對比
2.4.5 不同標(biāo)記測試結(jié)果
考慮到標(biāo)注的便捷性問題,本文將人工精準(zhǔn)標(biāo)記的原始標(biāo)簽進(jìn)行不同程度的膨脹處理(Dilate=0、Dilate=3、Dilate=9、Dilate=13),利用不同膨脹系數(shù)的標(biāo)簽圖進(jìn)行了實(shí)驗,不同膨脹系數(shù)標(biāo)簽效果圖如圖6所示。
圖6 缺陷圖與不同膨脹系數(shù)的標(biāo)簽圖
利用本文方法進(jìn)行多組實(shí)驗,得出表3的結(jié)果數(shù)據(jù),如表3所示,在Dilate=為9時,網(wǎng)絡(luò)分割的各項評估指標(biāo)為最佳。經(jīng)過該實(shí)驗得出的結(jié)論是工人在進(jìn)行標(biāo)簽制作時,不需要花費(fèi)大量的時間很精準(zhǔn)的標(biāo)注缺陷的邊緣位置,而是大致的在缺陷位置進(jìn)行簡單涂鴉生成標(biāo)簽圖即可,這大大提高了算法使用的便捷性,切換新的產(chǎn)品檢測時,人工能夠快速制作標(biāo)簽,實(shí)時性能夠達(dá)到要求。
表3 不同膨脹程度的標(biāo)簽圖的實(shí)驗結(jié)果
本文提出一種輕量型多尺度并行的缺陷檢測網(wǎng)絡(luò)MultiNet,用于解決鏡座表面缺陷檢測準(zhǔn)確率低和實(shí)時性差的問題。首先,該分割網(wǎng)絡(luò)通過三條輕量型并行的網(wǎng)絡(luò)能夠像深層卷積神經(jīng)網(wǎng)絡(luò)一樣提取圖像的高層語義信息和底層語義信息,因為是并行同時運(yùn)算,所以運(yùn)算時間比單條型的深層卷積神經(jīng)網(wǎng)絡(luò)短,最后將兩種不同層次的特征進(jìn)行融合,使得檢測結(jié)果達(dá)到實(shí)際工程檢測要求。其次,本文提出了多感受野卷積模塊LightCNN,該模塊融合了不同感受野的特征圖,提升了不同尺寸缺陷的檢測準(zhǔn)確率。在標(biāo)簽制作方面,所提的算法只需要簡單粗略的標(biāo)注就能達(dá)到良好的分割性能。因此,本文提出的算法為制造業(yè)自動化的檢測提供了良好的落地應(yīng)用價值。