張昌凡 孟德志 王燕囡
1. 湖南工業(yè)大學(xué) 電氣與信息工程學(xué)院 湖南 株洲 412007
2. 廣州達意隆包裝機械股份有限公司 廣東 廣州 510530
目前,在黏稠流質(zhì)食品灌裝生產(chǎn)線中,灌裝成品的缺陷檢測是必不可少的環(huán)節(jié)。有封蓋缺陷的產(chǎn)品隨著時間推移會出現(xiàn)密封不嚴(yán)的問題,易導(dǎo)致產(chǎn)品提前變質(zhì)。貼標(biāo)缺陷會影響產(chǎn)品口碑和消費者購買意愿。因此,對灌裝成品的封蓋和貼標(biāo)進行檢測極其必要。
在現(xiàn)有研究中,已有許多學(xué)者提出了灌裝成品缺陷檢測方法。C. Arun Prakash等[1]利用機器視覺技術(shù)對瓶蓋進行檢測,該方法簡單、省時,檢測正確率高;C. Toxqui-Quitl等[2]提出了一種基于圖像頻率濾波的聚對苯二甲酸乙二酯(poly(ethyleneterephthalate),PET)瓶身缺陷檢測方法,對采集的瓶身圖像進行伽馬自適應(yīng)校正,實現(xiàn)了對于瓶面、瓶壁和瓶底較高準(zhǔn)確度的檢測;彭玉等[3]針對灌裝成品防盜環(huán)難以檢測的問題,提出了一種基于輪廓曲率的防盜環(huán)斷裂檢測方法,該算法檢測正確率能滿足生產(chǎn)要求。盡管上述機器視覺技術(shù)在灌裝成品缺陷檢測上得到了較好的應(yīng)用,但需要大量的樣本構(gòu)建檢測模型且難以同時檢測多類缺陷。
近年來,深度學(xué)習(xí)技術(shù)在模型調(diào)優(yōu)、特征提取、目標(biāo)檢測方面的優(yōu)勢顯而易見[4]。深度學(xué)習(xí)標(biāo)志性算法AlexNet的問世[5],使深度學(xué)習(xí)技術(shù)應(yīng)用于產(chǎn)品缺陷檢測成為可能。2018年,俞芳芳等[6]利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)對食用油灌裝生產(chǎn)線全流程包裝缺陷進行檢測。傳統(tǒng)CNN網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,參數(shù)多,運算時間長,因此在保持精度閾值的前提下對網(wǎng)絡(luò)結(jié)構(gòu)輕量化設(shè)計尤為重要。林景棟等[7]從網(wǎng)絡(luò)剪枝與稀疏化、張量分解、知識遷移和精細(xì)模塊設(shè)計4個方面歸納了CNN結(jié)構(gòu)優(yōu)化技術(shù)。MobileNet[8]系列算法將傳統(tǒng)卷積變成深度可分離卷積(depthwise separable convolutions,DSC),這種新的結(jié)構(gòu)能在不影響準(zhǔn)確率的前提下大大減少運算時間和參數(shù)量。
深度學(xué)習(xí)目標(biāo)檢測算法發(fā)展至今,已形成了以R-CNN(regions with CNN)[9]為代表的兩步驟檢測方法和以YOLO(you only look once)[10]算法為代表的單步驟檢測算法,其中前者更注重精度,后者更注重精度與速度的平衡[11]。但是目前目標(biāo)檢測應(yīng)用于灌裝產(chǎn)品缺陷檢測鮮有研究。如何利用單一標(biāo)準(zhǔn)實現(xiàn)灌裝產(chǎn)品缺陷的多目標(biāo)檢測成為缺陷檢測領(lǐng)域亟待解決的問題。
綜上所述,本課題組提出了一種基于YOLOv4[12]的黏稠食品輕量級灌裝成品缺陷檢測方法,在單步驟目標(biāo)檢測算法的基礎(chǔ)上對模型進行輕量化設(shè)計,僅利用單一規(guī)則實現(xiàn)對多缺陷目標(biāo)快速實時的檢測。
YOLOv4算法是一種端到端的單步驟目標(biāo)檢測方法,它省去了兩步驟檢測法中生成候選區(qū)域的中間步驟,從而加快對于目標(biāo)的檢測與識別。在框架上,其很大程度上沿襲了前代算法YOLOv3[13]的主體結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)大致分為主干特征提取網(wǎng)絡(luò)(Backbone)、增強特征提取網(wǎng)絡(luò)、多尺度結(jié)果輸出3個部分。
主干特征提取網(wǎng)絡(luò)采用的是CSPDarknet53,先經(jīng)最小卷積單元DBM(DarknetConv2D-BN-Mish),再經(jīng)Resblock-body復(fù)雜卷積環(huán)節(jié)實現(xiàn)卷積操作。Resblock-body借 鑒 了CSPNet(cross-stage-partialconnections network)[14]結(jié)構(gòu),由DBM、殘差結(jié)構(gòu)和Concat構(gòu)成。增強特征提取網(wǎng)絡(luò)對Backbone得到的特征圖進行復(fù)用,以增強其對于目標(biāo)特征的表達。YOLOv4算法引入了SPPNet[15]和PANet[16](path aggregation network)兩種算法,前者可增加小尺度特征的感受野,分離出最顯著的圖像特征,后者則是對Backbone所得到的另外兩種尺度的特征圖和SPPNet輸出的最小尺度特征圖進行反復(fù)地上采樣和下采樣操作,以通過多尺度特征的融合來實現(xiàn)對于目標(biāo)特征的優(yōu)質(zhì)表達。經(jīng)過增強特征提取網(wǎng)絡(luò)的特征融合,得到3種不同尺度的特征圖。
首先,YOLOv4將輸入的樣本分成S×S(S∈N)個非重疊區(qū)域,然后使用Anchor boxes對每個區(qū)域進行邊界盒(bounding box)回歸,如圖1所示。通過K-means聚類算法對Anchor boxes進行聚類分析,從而得到一組尺寸固定的先驗框,這些不同尺寸的先驗框能夠提升其對于真實目標(biāo)位置預(yù)測的概率。
圖1 邊界盒回歸Fig. 1 Bounding box regression
若某預(yù)測目標(biāo)的中心位置落到某個區(qū)域,則該目標(biāo)由此區(qū)域的一組先驗框進行預(yù)測,這會產(chǎn)生多個預(yù)測邊界盒。假設(shè)每個區(qū)域預(yù)測出B個邊界盒和C個類別,那么模型的輸出結(jié)果為S×S×(5B+C)的張量,其中每個邊界盒均包含bx、by、bw、bh和置信度(con fidence)5個數(shù)值,其計算公式如下[17]:
式中:cx、cy分別為待檢測區(qū)域與檢測樣本左上角的橫縱距離;
tx、ty分別為檢測區(qū)域中心點至左邊界和上邊界的距離;
σ(·)為Sigmoid激活函數(shù);
pw、ph分別為先驗框的寬和高;
tw、th分別為檢測區(qū)域的寬和高;
bx、by分別為邊界盒的中心點x、y坐標(biāo);
bw、bh分別為邊界盒的寬和高。
預(yù)測邊界盒會出現(xiàn)冗余,因此引入非極大值抑制(non-maximum suppression,NMS),以保留概率最大的邊界盒,移除分?jǐn)?shù)較低的邊界盒。
本課題組設(shè)計了基于輕量化YOLOv4的黏稠食品灌裝成品缺陷檢測模型,其結(jié)構(gòu)如圖2所示。其主要分為6個部分,分別為成品缺陷數(shù)據(jù)集、MobileNetV3主干特征提取網(wǎng)絡(luò)、空間金字塔池化網(wǎng)絡(luò)(spatial pyramid pooling,SPPNet)、施加通道注意力(efficient channel attention,ECA)機制的深度可分離全面路徑聚合網(wǎng)絡(luò)(DSC-ECA-FPANet)、多尺度結(jié)果輸出(Yolo Head)和檢測結(jié)果可視化。
圖2 基于YOLOv4算法的輕量級灌裝成品缺陷檢測結(jié)構(gòu)框圖Fig. 2 Structure diagram of filling product defect detection of lightweight based on YOLOv4 algorithm
本檢測模型的具體工作流程如下:首先,將灌裝成品缺陷數(shù)據(jù)輸入MobileNetV3主干特征提取網(wǎng)絡(luò),提取多尺度特征,進而獲得3個不同尺度的特征圖;然后,將得到的特征圖分別輸入至SPPNet和DSCECA-FPANet中以實現(xiàn)對于多尺度特征的融合;最后,將融合后的特征圖進行多尺度結(jié)果輸出,從而得到既包含位置信息又包含類別信息的檢測結(jié)果。
實驗中所需的圖像樣本均來自灌裝生產(chǎn)流水線,采集設(shè)備主要包括傳送帶、LED光源、CCD(charge-coupled device)高速相機、光電傳感器以及用于圖像存儲和缺陷檢測的計算機,如圖3所示。數(shù)據(jù)采集過程為:光電傳感器檢測傳送帶上的灌裝成品,并將檢測信息轉(zhuǎn)換成電信號傳給CCD相機,觸發(fā)相機采集產(chǎn)品圖像信息,再將圖像信息傳至計算機中保存,以構(gòu)建用于后續(xù)的成品缺陷數(shù)據(jù)集。根據(jù)實際需求,本課題組采集了2種缺陷、7種類別共計1200張樣本,其中封蓋缺陷包含無蓋、歪蓋、正常蓋3種類別,貼標(biāo)缺陷包含無標(biāo)、歪標(biāo)、損傷標(biāo)、正常標(biāo)4種類別。
圖3 圖像采集平臺Fig. 3 Image acquisition platform
本數(shù)據(jù)集的樣本分布情況如圖4所示。用LabelImg軟件對樣本進行了真實標(biāo)簽標(biāo)定,得到1200個具有缺陷類別和位置信息的.xml文件。文件和樣本均用于模型的訓(xùn)練和測試。
圖4 采集數(shù)據(jù)類別數(shù)量情況Fig. 4 Number of collected data categories
在YOLOv4中,Backbone有復(fù)雜的殘差結(jié)構(gòu),標(biāo)準(zhǔn)3×3卷積操作占據(jù)了主體,導(dǎo)致運算時間長,算法可移植性較差。針對上述問題,本課題組引入了輕量級神經(jīng)網(wǎng)絡(luò)MobileNetV3[18],并根據(jù)目標(biāo)檢測要求重置了參數(shù)大小,設(shè)計了網(wǎng)絡(luò)特征圖的多尺度輸出,以便用于后續(xù)增強網(wǎng)絡(luò)的特征復(fù)用。
MobileNetV3的核心是DSC[19],這使參數(shù)量大幅降低,檢測速度提升。公式(6)~(8)揭示了DSC參數(shù)量減少的原理[19]。
標(biāo)準(zhǔn)卷積操作是在多個輸入通道上使用多個卷積核進行卷積操作。其參數(shù)計算量C為
式中:Dk為卷積核的大小;M為輸入通道數(shù);N為卷積核數(shù)量;DF為輸入圖像大小。
DSC分兩步完成卷積操作,先在M個輸入通道上使用一個卷積核逐通道卷積(Depthwise Conv.),然后通過逐點卷積(Pointwise Conv.)即利用N個1×1卷積核調(diào)整輸出通道數(shù)。參數(shù)計算量C′為
將式(6)和(7)求比值,可得
通常,卷積核大小取3×3。可見,采用DSC能大幅降低網(wǎng)絡(luò)參數(shù)。
MobileNetV3主要由Conv2D-BN-h-swish(CBH)卷積單元和bneck卷積塊構(gòu)成,如圖5所示。CBH和普通卷積結(jié)構(gòu)基本相同,區(qū)別在于引入了h-swish激活函數(shù)[18],即
h-swish激活函數(shù)在深層特征中更能對特征有效映射,因此在網(wǎng)絡(luò)中,bneck卷積塊使用了ReLU和h-swish兩種激活函數(shù)。圖5b中,第2~4層卷積采用ReLU激活函數(shù),最后3層卷積采用h-swish激活函數(shù)。而在bneck中,先用1×1的CBH提取特征,再用3×3的DSC進行卷積,施加SENet(squeeze-andexcitation networks)[20]之后,進行1×1卷積操作以調(diào)整通道,最后輸出bneck結(jié)果。SENet是一種輕量級通道注意力機制,通過學(xué)習(xí)的方式對不同通道重要性進行預(yù)測,以提升有用的特征,抑制用處不大的特征。
圖5 MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)Fig. 5 Network structure diagram of MobileNetv3
YOLOv4的增強特征提取網(wǎng)絡(luò)包含SPPNet和PANet。經(jīng)增強特征提取網(wǎng)絡(luò)的特征復(fù)用得到3個不同尺度特征圖。SPPNet對最小尺度特征圖進行處理后,同另外兩個特征圖輸入至PANet進行特征融合。本課題組對增強特征提取網(wǎng)絡(luò)進行重構(gòu),使其輕量化的同時,保證檢測精度。
3.3.1 PANet輕量化
和Backbone類似,PANet計算繁重,采用多個3×3的DBL(DarknetConv2D_BN_LReLU)卷積,在上采樣與下采樣中,這些卷積操作參數(shù)量極大,導(dǎo)致缺陷檢測時間過長。針對上述問題,本課題組引入了DSC卷積策略,通過卷積模塊替換實現(xiàn)對PANet網(wǎng)絡(luò)的輕量化設(shè)計。圖6為PANet輕量化過程中內(nèi)部卷積模塊的替換示意圖。
圖6 PANet內(nèi)部卷積結(jié)構(gòu)替換示意圖Fig. 6 Internal convolutional structure replacement of PANet
將3×3的DBL卷積替換3×3的DSC卷積后,DSC-PANet網(wǎng)絡(luò)的參數(shù)計算量驟減,檢測速度大幅提升,但是檢測精度下降,這表明過分使用DSC卷積會使特征不能被充分利用。因此,輕量化后的PANet網(wǎng)絡(luò)還需提升精度。
3.3.2 全面路徑聚合網(wǎng)絡(luò)
PANet通過增加不同尺度特征層之間的信息傳輸路徑,對不同尺度特征進行融合,以實現(xiàn)對于目標(biāo)特征的優(yōu)質(zhì)表達。但在PANet中,相鄰特征層之間進行了特征路徑聚合,而頂層特征與底層特征之間尚不存在融合路徑。因此,針對PANet輕量化后導(dǎo)致特征融合能力不足的問題,本課題組將頂層特征與底層特征進行跨越融合(見圖7虛線標(biāo)識),提出了全面路徑聚合網(wǎng)絡(luò)(full path aggregation network,F(xiàn)PANet)。FPANet是通過增強目標(biāo)特征全面表達來提升網(wǎng)絡(luò)精度,其結(jié)構(gòu)如圖7所示。
圖7 FPANet結(jié)構(gòu)圖Fig. 7 FPANet structure diagram
FPANet接受來自Backbone和SPPNet的多尺度特征圖的輸入,其中Feat3為SPPNet處理后的特征圖。頂層特征和底層特征的跨越融合仍然通過上采樣和下采樣實現(xiàn)。上采樣是通過1×1的DSC卷積和線性插值法分別負(fù)責(zé)通道調(diào)整和尺度擴張。下采樣是通過DSC卷積來實現(xiàn)通道和特征圖尺度的調(diào)整。輕量級FPANet是通過層間特征充分融合提升網(wǎng)絡(luò)精度,且檢測速度無顯著降低。
3.3.3 DSC-ECA卷積結(jié)構(gòu)
通道注意力(ECA)機制是深度神經(jīng)網(wǎng)絡(luò)中有效提升特征提取能力的重要方法。因此,本課題組在DSC卷積中引入ECA機制[21],提出了DSC-ECA模塊,其結(jié)構(gòu)如圖8所示。
圖8 DSC-ECA結(jié)構(gòu)圖Fig. 8 DSC-ECA structure diagram
ECA的結(jié)構(gòu)和SENet的相似,但ECA是通過執(zhí)行大小為k的一維卷積來生成權(quán)重通道,避免了降維所帶來預(yù)測精度的下降。k是由輸入特征圖的通道數(shù)自適應(yīng)選得,具體公式[21]為
式中:C為輸入樣本通道數(shù);b和γ為經(jīng)驗參數(shù),設(shè)定b=2,γ=1;“odd”為對結(jié)果取奇數(shù)。同時,本文保留了最外圍的殘差邊,以利于權(quán)重更新、趨于穩(wěn)定。
本課題組對YOLOv4的增強特征提取網(wǎng)絡(luò)進行改進后,形成了全新的施加ECA機制的深度可分離全面路徑聚合網(wǎng)絡(luò)(DSC-ECA-FPANet)。
本實驗環(huán)境為Ubuntu18.04操作系統(tǒng),配置Anaconda的 Python 3.7、NVIDIA RTX 2070 GPU、CUDA 10.1、cuDNN 7.6.5.32,使用Keras庫編寫程序。訓(xùn)練數(shù)據(jù)時,本課題組從數(shù)據(jù)集中選取1000張樣本,其中900張用于模型訓(xùn)練,100張用于交叉驗證,而其余200張樣本用于測試模型。鑒于數(shù)據(jù)量較少不利于模型泛化能力的提升,本課題組選擇遷移學(xué)習(xí)方式訓(xùn)練模型。先采用VOC2007數(shù)據(jù)集對網(wǎng)絡(luò)進行預(yù)訓(xùn)練,接著在正式訓(xùn)練過程導(dǎo)入預(yù)訓(xùn)練模型分段調(diào)優(yōu)。參數(shù)設(shè)定如下:輸入數(shù)據(jù)的大小為416×416;為了加快訓(xùn)練速度,前50個Epoch凍結(jié)主干特征提取網(wǎng)絡(luò),只對增強特征提取網(wǎng)絡(luò)進行權(quán)重更新,Batch size設(shè)置為8,初始學(xué)習(xí)率為0.001,而后50個Epoch解凍Backbone權(quán)重層,進行全局網(wǎng)絡(luò)優(yōu)化,Batch size設(shè)置為4,初始學(xué)習(xí)率為0.0001。
在目標(biāo)檢測模型評估中,常采用精確度P(precision)和召回率R(recall)兩個指標(biāo)評價模型的優(yōu)劣,其計算方式[22]如下:
式中:TP為樣本正確檢測的數(shù)量;FP為樣本錯誤檢測的數(shù)量;FN為樣本未被檢測出的數(shù)量。
通常,分類問題存在一個決策邊界,改變置信度閾值會得到不同的準(zhǔn)確率和召回率,即得到PR(precision-recall)曲線。PR曲線與坐標(biāo)軸所圍成的面積為平均精確度(average precision,AP),可用于衡量模型檢測效果的好壞。為了衡量模型對于所有類別AP的優(yōu)劣,本課題組使用所有檢測類別平均精度均值(mean average precision,mAP)評估模型。
4.2.1 模型訓(xùn)練評估
MobileNetV3_DSC-ECA-FPANet模型(改進網(wǎng)絡(luò)訓(xùn)練后得到的最優(yōu)模型)的訓(xùn)練和驗證結(jié)果如圖9所示。其中,實線為訓(xùn)練集loss值,虛線為交叉驗證集loss值。
圖9 模型loss函數(shù)曲線圖Fig. 9 Loss function curve of the model
由圖9可以看到,模型的loss值隨著Epoch的增加而逐漸收斂,最后基本趨于穩(wěn)定,這表明模型的預(yù)測結(jié)果和真實結(jié)果不斷接近,預(yù)測的誤差逐漸下降。此外,通過觀察訓(xùn)練集和驗證集loss曲線的吻合度可以看出,模型泛化能力達到了最佳狀態(tài)。
4.2.2 性能測試
本課題組將訓(xùn)練好的模型導(dǎo)入檢測程序后,對200張樣本進行測試,瓶蓋缺陷和貼標(biāo)缺陷的部分檢測結(jié)果如圖10所示。從檢測結(jié)果可以看出,本文所提方法可以實現(xiàn)對于瓶蓋、貼標(biāo)2種檢測目標(biāo)的7種缺陷類別進行有效檢測。
圖10 樣本檢測結(jié)果示例Fig. 10 Test results of sample
本課題組設(shè)置不同的置信度閾值,從而得到7種類別的精確度和召回率,每種缺陷類別的PR曲線如圖11所示。其中,實線為貼標(biāo)檢測結(jié)果,虛線為瓶蓋檢測結(jié)果。
圖11 PR曲線圖Fig. 11 Curve of PR
由圖11可以看出,本文所提方法的檢測mAP值可達97.15%,能滿足實際檢測需要。此外,本模型對于歪標(biāo)、損傷標(biāo)的缺陷檢測AP值略低,這可能是由于這兩種缺陷的訓(xùn)練樣本較少而導(dǎo)致模型對于這些缺陷的泛化能力不足。
4.2.3 性能對比分析
本課題組在加入新的策略、設(shè)計新的網(wǎng)絡(luò)時,做了大量的成品缺陷檢測實驗,進而不斷優(yōu)化模型,以得到最優(yōu)模型。改進中各模型性能測試結(jié)果如表1所示。
表1 改進中各模型性能測試比較Table 1 Comparison of performance tests of each model in this study
由表1可以看出,只有當(dāng)主干網(wǎng)絡(luò)和增強網(wǎng)絡(luò)均采用DSC策略時,模型才能真正做到輕量化,但隨之帶來的是mAP值急劇下降;本文方法的mAP值僅比YOLOv4低0.07個百分點,但單個樣本的檢測時間縮短,約為YOLOv4的1/3。由此可見,改進后算法在保證精度的前提下極大提升了檢測速度,這比較符合黏稠食品高速灌裝生產(chǎn)成品缺陷檢測的需要。
此外,為了綜合評價本文模型的性能優(yōu)劣,本課題組將已有成熟目標(biāo)檢測算法YOLOv3[13]、YOLOv4[12]、SSD[23]、Faster-RCNN[17]與本文方法進行對比。各種檢測算法的測試結(jié)果如表2所示。
表2 各目標(biāo)檢測算法性能測試比較Table 2 Comparison of performance tests of each object detection algorithm
在表2中,由于Faster-RCNN參數(shù)計算量統(tǒng)計困難,因此本文未能給出。由表2可以看出,YOLOv3的精度和檢測速度均無法滿足要求;雖然Faster-RCNN的檢測精度最高,但是檢測速度最慢;本文方法既保證了精度與其它算法相差無幾,又實現(xiàn)了檢測速度的大幅提升,因此在實際生產(chǎn)中本文方法更具有優(yōu)勢。
本研究提出了一種基于YOLOv4目標(biāo)檢測算法的黏稠食品輕量級灌裝成品缺陷檢測方法,并在灌裝成品缺陷數(shù)據(jù)集上驗證了該方法的有效性。研究結(jié)果表明:1)本文方法能夠?qū)崿F(xiàn)對于黏稠物料灌裝成品缺陷的多目標(biāo)、多類別同時檢測,有效降低了生產(chǎn)線檢測設(shè)備的成本;2)深度可分離卷積策略的應(yīng)用使得模型參數(shù)計算量得到大幅下降,檢測時間大大縮短,約為YOLOv4的1/3,滿足了灌裝成品缺陷高速檢測要求;3)增強網(wǎng)絡(luò)中,頂層特征與底層特征的融合設(shè)計和ECA的引入,加強了模型對目標(biāo)特征的優(yōu)質(zhì)表達,進而實現(xiàn)了在模型參數(shù)下降的基礎(chǔ)上保持較好的檢測精度。