陳同宇,陳 洋,范劍偉
(安徽工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 馬鞍山 243000)
傳統(tǒng)的香煙盒表面檢測方法速度較慢、效率低下[1]。卷積神經(jīng)網(wǎng)絡(luò)[2]是一種重要的深度學(xué)習(xí)模型或多層感知機(jī)[3],能夠從圖像數(shù)據(jù)中抽取特征[4],在圖像識別領(lǐng)域應(yīng)用廣泛[5]??衫镁矸e神經(jīng)網(wǎng)絡(luò)識別表面缺陷,主要包括基于區(qū)域的目標(biāo)識別方法(Faster R-CNN等)以及基于回歸的目標(biāo)識別方法(YOLO系列等)[6]。YOLO算法具有處理速度快、準(zhǔn)確率高等優(yōu)點(diǎn)。
DarkNet-53網(wǎng)絡(luò)擁有52個卷積層與1個全連接層,共53層。YOLOv3的工作原理是在DarkNet-53的基礎(chǔ)上進(jìn)行3次檢測[7-8],網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv3原網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3在檢測煙盒缺陷時容易出現(xiàn)漏檢現(xiàn)象,這是由于YOLOv3初始算法中降采樣的倍數(shù)過大,導(dǎo)致特征圖的感受野[9]較大,無法檢測小目標(biāo)。煙盒表面缺陷屬于小型目標(biāo),因此將YOLOv3原網(wǎng)絡(luò)尺寸為52×52的特征圖進(jìn)行2倍上采樣,得到104×104特征圖,將尺寸為104×104的特征圖與DarkNet-53網(wǎng)絡(luò)尺寸為104×104的特征圖進(jìn)行融合,在該層特征圖上進(jìn)行獨(dú)立預(yù)測。改進(jìn)后的網(wǎng)絡(luò)共有118層,擁有4個不同尺度的獨(dú)立預(yù)測,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)后的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的網(wǎng)絡(luò)相對于原網(wǎng)絡(luò)平均檢測精度提升了6.8%、查準(zhǔn)率提高了7%、查全率提高了7%,但檢測速度從最初的24 FPS降到了21 FPS。這表明,添加一層特征檢測有利于檢測煙盒表面缺陷,但檢測速度稍有下降。
YOLOv3算法損失函數(shù)包括均方誤差(Mean Square Error, MSE)損失函數(shù)和交叉熵?fù)p失函數(shù),以MSE[10]誤差為目標(biāo)框坐標(biāo)的損失函數(shù)存在3個缺點(diǎn):Loss越低并不等價于IoU值越高,三對目標(biāo)框具有相同的Loss,但是IoU值卻不一致,如圖3所示;候選框與真實(shí)框間無重合時,IoU為0,在優(yōu)化損失函數(shù)時,梯度為0,即無法優(yōu)化;候選框與真實(shí)框間IoU相同時,檢測效果具有較大差異,如圖4所示。
圖3 具有相同Loss
圖4 具有相同的IoU
IoU是判斷相似程度的常用評測標(biāo)準(zhǔn),計(jì)算見式(1):
式中,S1、S2分別為兩目標(biāo)框的面積。
由于MSE損失函數(shù)不均衡,提出利用GIoU Loss作為YOLOv3的左右坐標(biāo)損失依據(jù),其值計(jì)算見式(2):
式中:Ac為檢測框與真實(shí)框的最小閉包面積;U為檢測框與真實(shí)標(biāo)注框的相交面積。
GIoU Loss 的計(jì)算見式(3):
GIoU作為距離度量標(biāo)準(zhǔn),其滿足非負(fù)性、不可分的同一性、對稱性和三角不等性等條件,由于GIoU是比值,因此具有尺度適應(yīng)性;由式(2)可知,求GIoU的最大值可選用IoU計(jì)算公式。當(dāng)兩目標(biāo)框非常接近時,GIoU和IoU相差較小,GIoU越大,IoU也越大。文中處理了原網(wǎng)絡(luò)MSE誤差損失存在的損失優(yōu)化與最大IoU值計(jì)算方向不一致和尺度敏感等問題。
通過相機(jī)拍照的方式采集圖片。文中的數(shù)據(jù)集全部來源于利群香煙盒。為了增加模型的泛發(fā)性和訓(xùn)練精度,在獲取圖像時,數(shù)據(jù)集增加了許多不同形態(tài)特征、角度、位置的煙盒圖片。煙盒表面既有明顯缺陷也有微小瑕疵。煙盒的缺陷可出現(xiàn)在煙盒的任何位置,同一個煙盒上可能出現(xiàn)不同形狀、不同數(shù)量的缺陷。數(shù)據(jù)集共包含500張圖片,其中400張圖片作為訓(xùn)練集,100張圖片作為測試集。煙盒缺陷標(biāo)簽借助labelImg軟件實(shí)現(xiàn)。圖片上的缺陷,劃痕以水筆所畫代替,劃痕和污點(diǎn)均為flaw標(biāo)注,數(shù)據(jù)集標(biāo)注時只標(biāo)注flaw類缺陷。
文中提出的改進(jìn)YOLOv3算法的煙盒表面缺陷檢測方法具體檢測過程如圖5所示,主要包括以下步驟:
圖5 煙盒檢測流程
(1)通過相機(jī)采集需要檢測的煙盒圖片;
(2)將采集到的圖片帶入深度學(xué)習(xí)模型檢測并判斷有無缺陷;
(3)如果有缺陷,則剔除,如果無缺陷,則繼續(xù)檢測;
(4)收集無缺陷的煙盒,增大數(shù)據(jù)集。
本文采用精度均值(mean Average Precision, mAP)、查全率(召喚率)、查準(zhǔn)率(準(zhǔn)確率)等對原網(wǎng)絡(luò)模型和改進(jìn)后的網(wǎng)絡(luò)模型進(jìn)行評估。
用改進(jìn)后的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,訓(xùn)練次數(shù)為3 000次時檢測模型的平均精度最高,其結(jié)果如圖6所示。從圖6可以看出,改進(jìn)后的網(wǎng)絡(luò)模型對比原網(wǎng)絡(luò)平均精度有較大提升,約為6.48%,充分說明4倍下采樣特征層更有利于小目標(biāo)檢測,改進(jìn)后的網(wǎng)絡(luò)檢測效果更佳。
圖6 改進(jìn)前后平均檢測精度
模型檢測結(jié)果見表1所列。改進(jìn)后的網(wǎng)絡(luò)在不影響實(shí)時檢測的情況下大大提升了檢測精度,大幅降低了漏檢、錯檢出現(xiàn)的概率。
表1 模型檢測結(jié)果
分別對原網(wǎng)絡(luò)的檢測模型與改進(jìn)后的最優(yōu)檢測模型進(jìn)行檢測,在原網(wǎng)絡(luò)中,單處缺陷檢測精度為0.46。改進(jìn)后,檢測精度為0.97,提升約51%。同時,原網(wǎng)絡(luò)還出現(xiàn)了漏檢的情況,試驗(yàn)圖中有2處缺陷,但原網(wǎng)絡(luò)未檢測出來,而改進(jìn)后的網(wǎng)絡(luò)則準(zhǔn)確檢測出了原模型的2個缺陷,雖然此處置信度不高(可能因光照分布不均勻引起),但相對原網(wǎng)絡(luò)有較大提升。
采用具有較快檢測速度與精度的SSD目標(biāo)檢測網(wǎng)絡(luò)對煙盒缺陷進(jìn)行訓(xùn)練4 000次得到模型,與文中提出的方法進(jìn)行對比,結(jié)果見表2所列。通過對比,改進(jìn)后的YOLOv3模型具有更高的準(zhǔn)確率,彌補(bǔ)了原網(wǎng)絡(luò)和SSD的不足,檢測效果大幅提升。
表2 不同方法的檢測結(jié)果
研究提出的基于改進(jìn)YOLOv3算法的煙盒表面缺陷檢測方法更適合小目標(biāo)檢測,檢測模型的平均精度、查準(zhǔn)率、查全率等均得到不同程度的提升,雖然速度略有下降,但完全滿足工業(yè)實(shí)時檢測的要求。