曾文治,王疆瑛,蔡晉輝
(1.中國(guó)計(jì)量大學(xué) 材料與化學(xué)學(xué)院,浙江 杭州 310018;2.中國(guó)計(jì)量大學(xué) 計(jì)量測(cè)試工程學(xué)院,浙江 杭州 310018)
車(chē)燈零部件是汽車(chē)燈具中的重要組成部分,然而汽車(chē)車(chē)燈零部件的缺陷問(wèn)題,如毛刺、裂痕和缺膠影響著產(chǎn)品外觀以及后續(xù)的裝配和導(dǎo)通。
隨著社會(huì)需求和汽車(chē)工業(yè)的發(fā)展,對(duì)車(chē)燈零部件質(zhì)量的要求越來(lái)越高[1],而目前大多數(shù)企業(yè)采用的都是人工檢測(cè)方法,這種受人的主觀因素的檢驗(yàn)方法很難保證產(chǎn)品的質(zhì)量,其速度也很難與自動(dòng)化的機(jī)器相比較。然而,使用深度學(xué)習(xí)算法的檢測(cè)不僅提高了產(chǎn)品的檢測(cè)精度和速度,且減少了人工,極大滿足企業(yè)高自動(dòng)化和高精度檢測(cè)需求。Lv[2]等人通過(guò)提出一種主動(dòng)的缺陷檢測(cè)學(xué)習(xí)框架來(lái)提升較少數(shù)據(jù)集的訓(xùn)練性能,Chen[3]等人通過(guò)深度學(xué)習(xí)算法對(duì)邊緣膠合模板進(jìn)行缺陷檢測(cè),取得了較高的準(zhǔn)確性。Ullah[4]等人通過(guò)深度學(xué)習(xí)技術(shù)對(duì)高壓電氣設(shè)備進(jìn)行了缺陷檢測(cè),能以96%的準(zhǔn)確率將有缺陷和無(wú)缺陷設(shè)備分開(kāi)。本文通過(guò)了解國(guó)內(nèi)外深度學(xué)習(xí)技術(shù)的研究現(xiàn)狀,以車(chē)燈零部件為對(duì)象,設(shè)計(jì)了一套缺陷檢測(cè)系統(tǒng)對(duì)車(chē)燈零部件進(jìn)行在線實(shí)時(shí)檢測(cè)。
本文缺陷檢測(cè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)圖如圖1,車(chē)燈零部件通過(guò)放入工作平臺(tái)的目標(biāo)區(qū)內(nèi),相機(jī)拍照完成取圖并檢測(cè),整個(gè)檢測(cè)流程僅需1~2 s。
圖1 缺陷檢測(cè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)圖
待測(cè)產(chǎn)品的實(shí)際大小為100 mm×100 mm,通過(guò)下文選用的500萬(wàn)像素工業(yè)相機(jī)和精度公式(1):
(1)
式(1)中P為精度,F為單方向視場(chǎng)大小,K為相機(jī)單方向分辨率。
取視野范圍120 mm×120 mm,可以算出單像素精度為0.063 mm。本產(chǎn)品的檢測(cè)需求部位如圖2,毛刺缺陷為1種,毛刺面積大多在2 mm×2 mm。紅圈部位代表缺陷部位(毛刺)。
圖2 待測(cè)產(chǎn)品檢測(cè)需求部位
本文根據(jù)該車(chē)燈零部件的缺陷部位和上面的結(jié)構(gòu)圖設(shè)計(jì)了一套滿足該檢測(cè)系統(tǒng)成像的硬件。相機(jī)選用海康威視的MV-CA050-10GM型號(hào)工業(yè)相機(jī),鏡頭選用??低暤腗VL-MY-1-65-MP型號(hào)工業(yè)遠(yuǎn)心鏡頭,光源選用上海匯林圖像科技有限公司的HL-BKH-60型號(hào)藍(lán)色背光源,通過(guò)硬件方面的選型后,對(duì)產(chǎn)品進(jìn)行打光拿到的效果圖如圖3。
圖3 光源打光圖
深度學(xué)習(xí)[5]是機(jī)器學(xué)習(xí)中一種基于對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法,分為監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí),不同的學(xué)習(xí)框架下建立的學(xué)習(xí)模型很是不同。例如卷積神經(jīng)網(wǎng)絡(luò)就是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型,而深度學(xué)習(xí)的好處是用非監(jiān)督式或半監(jiān)督式的特征學(xué)習(xí)和分層特征提取高效算法來(lái)替代手工獲取特征,圖4表示的深度學(xué)習(xí)框架的基本流程圖。
圖4 深度學(xué)習(xí)框架基本流程圖
通過(guò)工業(yè)相機(jī)采集到車(chē)燈零部件中樣品圖片,拿到了缺陷(毛刺)圖像100張,合格圖像100張,由于樣本數(shù)較少,通過(guò)圖像仿射變換等方式提升正負(fù)樣本數(shù)量各500張,如圖5,并用LabelImg軟件進(jìn)行標(biāo)注,劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。
圖5 缺陷圖像
YOLOv3[6]的提出是在YOLOv2的改進(jìn)點(diǎn)上做的進(jìn)一步優(yōu)化,主要將主干網(wǎng)絡(luò)的Darknet19替換為Darknet53,然后使用多標(biāo)簽分類(lèi),對(duì)每個(gè)標(biāo)簽進(jìn)行二元交叉熵計(jì)算損失,而不是使用均方誤差來(lái)計(jì)算分類(lèi)損失,同時(shí)也采用了多尺度預(yù)測(cè)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行采樣拼接,提升了小目標(biāo)的檢測(cè)精度。
3.2.1 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)主要包含四個(gè)部分。
輸入層,YOLOv3一般會(huì)將輸入進(jìn)來(lái)的圖像儲(chǔ)存轉(zhuǎn)換為固定的三通道608×608×3的大小。
主干網(wǎng)絡(luò)Darknet53層,作為YOLOv3的主干特征提取網(wǎng)絡(luò),輸入進(jìn)來(lái)的圖片會(huì)在該層進(jìn)行特征提取,Darknet53的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6。
圖6 Darknet53網(wǎng)絡(luò)結(jié)構(gòu)圖Figure 6 Darknet53 network structure diagram
從圖6中可以看出,以416×416×3的輸入為例,Darknet53中使用了殘差網(wǎng)絡(luò)(Residual),整個(gè)主干部分都是由殘差卷積構(gòu)成的,每個(gè)殘差卷積中使用一次1×1和一次3×3的卷積核進(jìn)行卷積,通過(guò)連續(xù)使用殘差卷積逐漸實(shí)現(xiàn)階段的優(yōu)化,并且通過(guò)增加深度來(lái)提高準(zhǔn)確率。
頸部網(wǎng)絡(luò)層,通過(guò)構(gòu)建FPN特征金字塔對(duì)主干網(wǎng)絡(luò)中的圖像進(jìn)行加強(qiáng)特征提取,將分別位于Darknet53的中下底層的三個(gè)有效特征層進(jìn)行構(gòu)建,并通過(guò)構(gòu)建FPN特征金字塔能將不同形狀的特征層進(jìn)行融合,從而獲取更好的圖像特征。
預(yù)測(cè)網(wǎng)絡(luò)層,將三個(gè)加強(qiáng)特征層將送入YoloHead中進(jìn)行預(yù)測(cè),針對(duì)每個(gè)特征層都存在3個(gè)先驗(yàn)框,比如輸入M張416×416的圖片后,通過(guò)運(yùn)算將會(huì)輸出三個(gè)形狀分別為(M,13,13,255),(M,26,26,255),(M,52,52,255),其結(jié)果對(duì)應(yīng)三個(gè)形狀網(wǎng)格上先驗(yàn)框的具體位置。
3.2.2 損失函數(shù)
YOLOv3的損失函數(shù)大致分為以下幾個(gè)部分。
由目標(biāo)框的x,y,w,h四個(gè)參數(shù)帶來(lái)的誤差,即錨框的損失,同時(shí)錨框的損失又可分為x,y帶來(lái)的二元交叉熵?fù)p失[7](BCE Loss)和w,h帶來(lái)的均方誤差損失[8](MSE Loss)。
由目標(biāo)的置信度帶來(lái)的誤差,主要為BCE Loss。
由分類(lèi)的類(lèi)別帶來(lái)的誤差,主要為類(lèi)別個(gè)數(shù)的BCE Loss。
BCE的具體公式計(jì)算如下:
(2)
而對(duì)于YOLOv3,回歸損失會(huì)通過(guò)乘以一個(gè)(2-w×h)的比例系數(shù)來(lái)提高整個(gè)模型的平均精度(AP,Average Precision),造成AP低的原因可能也是因?yàn)槿毕輸?shù)據(jù)集的檢測(cè)目標(biāo)較小,損失值值不能出現(xiàn)穩(wěn)定狀態(tài)或是出線過(guò)擬合現(xiàn)象,以下為整理過(guò)后的損失函數(shù)公式:
(3)
3.2.3 模型訓(xùn)練與測(cè)試實(shí)驗(yàn)
網(wǎng)絡(luò)訓(xùn)練環(huán)境基于Win10,CPU為Intel(R) Core(TM) i7-7800X CPU @ 3.50 GHz,16 G內(nèi)存,GPU為NVIDIA GeForce RTX 2080Ti,CUDA和cudnn版本分別為V10.1和V8.04,使用YOLOv3模型訓(xùn)練時(shí),設(shè)置學(xué)習(xí)率為0.001,迭代次數(shù)epoch為150,每次處理的樣本數(shù)目為4。訓(xùn)練過(guò)程中在代碼中設(shè)置實(shí)時(shí)繪制損失曲線,其損失函數(shù)曲線圖如圖7。
圖7 YOLOv3的loss曲線圖
從圖7中可以看出,訓(xùn)練損失和驗(yàn)證損失在經(jīng)過(guò)40次迭代后基本處于穩(wěn)定,在經(jīng)過(guò)140次迭代后損失降到0.5左右,當(dāng)損失值趨于穩(wěn)定時(shí)表明模型已經(jīng)訓(xùn)練完成,將訓(xùn)練出來(lái)的模型權(quán)重在測(cè)試集中進(jìn)行測(cè)試,得到的類(lèi)平均精度(mean average precision,mAP)圖如圖8。
圖8 YOLOv3 mAP圖
圖中7可以看出Maoci類(lèi)的mAP達(dá)0.67,但還不足以滿足實(shí)際生產(chǎn)檢測(cè)需求。
通過(guò)上節(jié)實(shí)驗(yàn)分析得出YOLOv3模型的mAP值較低,不能勝任企業(yè)檢測(cè)需求。通過(guò)分析原因得出:在樣本數(shù)沒(méi)有增加的情況下,可能是目標(biāo)太小導(dǎo)致檢測(cè)不夠精確,為此對(duì)YOLOv3模型的網(wǎng)路結(jié)構(gòu)進(jìn)行一定的改進(jìn)和優(yōu)化。
3.3.1 改進(jìn)的YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)
從YOLOv3的對(duì)比實(shí)驗(yàn)可知,Darknet53主干網(wǎng)絡(luò)對(duì)目標(biāo)較大的物體檢測(cè)效果較好,但是對(duì)本文中前照燈固定環(huán)中小的毛刺目標(biāo)檢測(cè)精度仍不理想。通過(guò)YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)了解到,Darknet53中含有23個(gè)殘差單元[9],當(dāng)網(wǎng)絡(luò)進(jìn)一步加深時(shí),會(huì)出現(xiàn)梯度消失、訓(xùn)練困難等問(wèn)題,并加大了網(wǎng)絡(luò)設(shè)計(jì)難度和計(jì)算開(kāi)銷(xiāo),從而影響后續(xù)的檢測(cè)精度,為此,本文通過(guò)如圖9的改進(jìn)CresX結(jié)構(gòu)將殘差單元連接,讓輸入的特征分兩部分進(jìn)行卷積,以提高特征的重用性,并且在被輸入到殘差單元之前通道被減半,這就極大減少了計(jì)算量,提升了檢測(cè)速度,而為了更好的識(shí)別到小目標(biāo),將原始的特征層大小52×52、26×26、13×13分別提升到104×104、52×52,26×26。
圖9 改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
3.3.2 改進(jìn)的YOLOv3的損失曲線
通過(guò)改進(jìn)的YOLOv3模型對(duì)自制的缺陷數(shù)據(jù)集進(jìn)行訓(xùn)練,得出其損失函數(shù)圖如圖10所示,圖中可以看出,當(dāng)訓(xùn)練迭代在60次左右,Loss曲線才區(qū)域穩(wěn)定,并在110次迭代后Loss值穩(wěn)定在0.1左右,代表訓(xùn)練完成。
3.3.3 其他模型實(shí)驗(yàn)對(duì)比
在同等設(shè)備下使用Faster-RCNN[10]和YOLOv4[11]模型對(duì)自制缺陷數(shù)據(jù)集進(jìn)行訓(xùn)練,通過(guò)對(duì)比分析,其結(jié)果如圖11,其模型大小和檢測(cè)速度如表1。
圖10 改進(jìn)的YOLOv3 loss曲線圖
圖11 四種模型的AP值
從上面的圖表可以分析得出,Faster-RCN的精確度高于YOLOv3,但是其檢測(cè)速度在同等設(shè)備下太慢,而YOLOv3雖然精確度比Faster-RCNN低一點(diǎn),但是完全體現(xiàn)了YOLO算法的優(yōu)勢(shì),YOLOv4更是在速度和精度上得到了一定的提升,其mAP達(dá)到了0.74左右,通過(guò)本文改進(jìn)的YOLOv3模型的mAP可達(dá)0.86,很好地滿足了該產(chǎn)品的檢測(cè)需求。
表1 四種網(wǎng)絡(luò)模型大小和計(jì)算速度
為了讓員工更容易使用本文設(shè)計(jì)缺陷檢測(cè)系統(tǒng),設(shè)計(jì)一套人機(jī)交互系統(tǒng),使員工更方便地通過(guò)界面直觀地觀察整個(gè)生產(chǎn)作業(yè)情況和質(zhì)量情況,其界面如圖12。將本文設(shè)計(jì)的檢測(cè)系統(tǒng)投入實(shí)際試機(jī),平均每小時(shí)生產(chǎn)情況表如表2。
表2 產(chǎn)品平均每小時(shí)檢測(cè)情況
圖12 缺陷檢測(cè)功能界面圖Figure 12 Defect detection function interface diagram
從表2中可以看出,使用本文中的檢測(cè)系統(tǒng)對(duì)比人工目檢,檢測(cè)速度提升至少3~4倍,在實(shí)際生產(chǎn)檢測(cè)中,本文檢測(cè)系統(tǒng)準(zhǔn)確率可達(dá)86.2%,提升效率的同時(shí)滿足企業(yè)生產(chǎn)檢測(cè)需求,后續(xù)可以對(duì)檢測(cè)模型進(jìn)行優(yōu)化或者增加樣本數(shù)提升準(zhǔn)確率。
本文通過(guò)分析實(shí)際產(chǎn)品的檢測(cè)需求、合理的硬件選型和深度學(xué)習(xí)框架的實(shí)驗(yàn)對(duì)比,針對(duì)車(chē)燈零部件設(shè)計(jì)了一套缺陷檢測(cè)系統(tǒng)用于實(shí)際生產(chǎn)。本文通過(guò)標(biāo)注缺陷數(shù)據(jù)集,使用YOLOv3模型對(duì)其進(jìn)行訓(xùn)練,實(shí)驗(yàn)得出準(zhǔn)確率為67.2%,而較低的準(zhǔn)確率無(wú)法達(dá)到企業(yè)檢測(cè)需求,進(jìn)而提出一種改進(jìn)的YOLOv3模型來(lái)對(duì)小目標(biāo)缺陷進(jìn)行檢測(cè),同時(shí)與Faster-RCNN,YOLOv4模型對(duì)比,實(shí)驗(yàn)表明,改進(jìn)的YOLOv3模型的準(zhǔn)確率達(dá)到86.2%,相較于人工目檢,檢測(cè)速度提升3~4倍,檢測(cè)準(zhǔn)確率也在一定程度上滿足企業(yè)需求,驗(yàn)證了深度學(xué)習(xí)在缺陷檢測(cè)方面的可行性,發(fā)揮了其實(shí)際應(yīng)用價(jià)值。
然而,本文對(duì)毛刺這類(lèi)小目標(biāo)缺陷識(shí)別率仍有待提高,一方面通過(guò)提高缺陷樣品數(shù),另一方面通過(guò)優(yōu)化網(wǎng)絡(luò)模型和參數(shù),通過(guò)調(diào)整以上兩方面為未來(lái)針對(duì)小目標(biāo)識(shí)別獲取更高準(zhǔn)確率提供基礎(chǔ)。