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