張昌凡 孟德志 王燕囡
1. 湖南工業大學 電氣與信息工程學院 湖南 株洲 412007
2. 廣州達意隆包裝機械股份有限公司 廣東 廣州 510530
目前,在黏稠流質食品灌裝生產線中,灌裝成品的缺陷檢測是必不可少的環節。有封蓋缺陷的產品隨著時間推移會出現密封不嚴的問題,易導致產品提前變質。貼標缺陷會影響產品口碑和消費者購買意愿。因此,對灌裝成品的封蓋和貼標進行檢測極其必要。
在現有研究中,已有許多學者提出了灌裝成品缺陷檢測方法。C. Arun Prakash等[1]利用機器視覺技術對瓶蓋進行檢測,該方法簡單、省時,檢測正確率高;C. Toxqui-Quitl等[2]提出了一種基于圖像頻率濾波的聚對苯二甲酸乙二酯(poly(ethyleneterephthalate),PET)瓶身缺陷檢測方法,對采集的瓶身圖像進行伽馬自適應校正,實現了對于瓶面、瓶壁和瓶底較高準確度的檢測;彭玉等[3]針對灌裝成品防盜環難以檢測的問題,提出了一種基于輪廓曲率的防盜環斷裂檢測方法,該算法檢測正確率能滿足生產要求。盡管上述機器視覺技術在灌裝成品缺陷檢測上得到了較好的應用,但需要大量的樣本構建檢測模型且難以同時檢測多類缺陷。
近年來,深度學習技術在模型調優、特征提取、目標檢測方面的優勢顯而易見[4]。深度學習標志性算法AlexNet的問世[5],使深度學習技術應用于產品缺陷檢測成為可能。2018年,俞芳芳等[6]利用卷積神經網絡(convolutional neural network,CNN)對食用油灌裝生產線全流程包裝缺陷進行檢測。傳統CNN網絡結構復雜,參數多,運算時間長,因此在保持精度閾值的前提下對網絡結構輕量化設計尤為重要。林景棟等[7]從網絡剪枝與稀疏化、張量分解、知識遷移和精細模塊設計4個方面歸納了CNN結構優化技術。MobileNet[8]系列算法將傳統卷積變成深度可分離卷積(depthwise separable convolutions,DSC),這種新的結構能在不影響準確率的前提下大大減少運算時間和參數量。
深度學習目標檢測算法發展至今,已形成了以R-CNN(regions with CNN)[9]為代表的兩步驟檢測方法和以YOLO(you only look once)[10]算法為代表的單步驟檢測算法,其中前者更注重精度,后者更注重精度與速度的平衡[11]。但是目前目標檢測應用于灌裝產品缺陷檢測鮮有研究。如何利用單一標準實現灌裝產品缺陷的多目標檢測成為缺陷檢測領域亟待解決的問題。
綜上所述,本課題組提出了一種基于YOLOv4[12]的黏稠食品輕量級灌裝成品缺陷檢測方法,在單步驟目標檢測算法的基礎上對模型進行輕量化設計,僅利用單一規則實現對多缺陷目標快速實時的檢測。
YOLOv4算法是一種端到端的單步驟目標檢測方法,它省去了兩步驟檢測法中生成候選區域的中間步驟,從而加快對于目標的檢測與識別。在框架上,其很大程度上沿襲了前代算法YOLOv3[13]的主體結構,其網絡結構大致分為主干特征提取網絡(Backbone)、增強特征提取網絡、多尺度結果輸出3個部分。
主干特征提取網絡采用的是CSPDarknet53,先經最小卷積單元DBM(DarknetConv2D-BN-Mish),再經Resblock-body復雜卷積環節實現卷積操作。Resblock-body借 鑒 了CSPNet(cross-stage-partialconnections network)[14]結構,由DBM、殘差結構和Concat構成。增強特征提取網絡對Backbone得到的特征圖進行復用,以增強其對于目標特征的表達。YOLOv4算法引入了SPPNet[15]和PANet[16](path aggregation network)兩種算法,前者可增加小尺度特征的感受野,分離出最顯著的圖像特征,后者則是對Backbone所得到的另外兩種尺度的特征圖和SPPNet輸出的最小尺度特征圖進行反復地上采樣和下采樣操作,以通過多尺度特征的融合來實現對于目標特征的優質表達。經過增強特征提取網絡的特征融合,得到3種不同尺度的特征圖。
首先,YOLOv4將輸入的樣本分成S×S(S∈N)個非重疊區域,然后使用Anchor boxes對每個區域進行邊界盒(bounding box)回歸,如圖1所示。通過K-means聚類算法對Anchor boxes進行聚類分析,從而得到一組尺寸固定的先驗框,這些不同尺寸的先驗框能夠提升其對于真實目標位置預測的概率。

圖1 邊界盒回歸Fig. 1 Bounding box regression
若某預測目標的中心位置落到某個區域,則該目標由此區域的一組先驗框進行預測,這會產生多個預測邊界盒。假設每個區域預測出B個邊界盒和C個類別,那么模型的輸出結果為S×S×(5B+C)的張量,其中每個邊界盒均包含bx、by、bw、bh和置信度(con fidence)5個數值,其計算公式如下[17]:

式中:cx、cy分別為待檢測區域與檢測樣本左上角的橫縱距離;
tx、ty分別為檢測區域中心點至左邊界和上邊界的距離;
σ(·)為Sigmoid激活函數;
pw、ph分別為先驗框的寬和高;
tw、th分別為檢測區域的寬和高;
bx、by分別為邊界盒的中心點x、y坐標;
bw、bh分別為邊界盒的寬和高。
預測邊界盒會出現冗余,因此引入非極大值抑制(non-maximum suppression,NMS),以保留概率最大的邊界盒,移除分數較低的邊界盒。
本課題組設計了基于輕量化YOLOv4的黏稠食品灌裝成品缺陷檢測模型,其結構如圖2所示。其主要分為6個部分,分別為成品缺陷數據集、MobileNetV3主干特征提取網絡、空間金字塔池化網絡(spatial pyramid pooling,SPPNet)、施加通道注意力(efficient channel attention,ECA)機制的深度可分離全面路徑聚合網絡(DSC-ECA-FPANet)、多尺度結果輸出(Yolo Head)和檢測結果可視化。

圖2 基于YOLOv4算法的輕量級灌裝成品缺陷檢測結構框圖Fig. 2 Structure diagram of filling product defect detection of lightweight based on YOLOv4 algorithm
本檢測模型的具體工作流程如下:首先,將灌裝成品缺陷數據輸入MobileNetV3主干特征提取網絡,提取多尺度特征,進而獲得3個不同尺度的特征圖;然后,將得到的特征圖分別輸入至SPPNet和DSCECA-FPANet中以實現對于多尺度特征的融合;最后,將融合后的特征圖進行多尺度結果輸出,從而得到既包含位置信息又包含類別信息的檢測結果。
實驗中所需的圖像樣本均來自灌裝生產流水線,采集設備主要包括傳送帶、LED光源、CCD(charge-coupled device)高速相機、光電傳感器以及用于圖像存儲和缺陷檢測的計算機,如圖3所示。數據采集過程為:光電傳感器檢測傳送帶上的灌裝成品,并將檢測信息轉換成電信號傳給CCD相機,觸發相機采集產品圖像信息,再將圖像信息傳至計算機中保存,以構建用于后續的成品缺陷數據集。根據實際需求,本課題組采集了2種缺陷、7種類別共計1200張樣本,其中封蓋缺陷包含無蓋、歪蓋、正常蓋3種類別,貼標缺陷包含無標、歪標、損傷標、正常標4種類別。

圖3 圖像采集平臺Fig. 3 Image acquisition platform
本數據集的樣本分布情況如圖4所示。用LabelImg軟件對樣本進行了真實標簽標定,得到1200個具有缺陷類別和位置信息的.xml文件。文件和樣本均用于模型的訓練和測試。

圖4 采集數據類別數量情況Fig. 4 Number of collected data categories
在YOLOv4中,Backbone有復雜的殘差結構,標準3×3卷積操作占據了主體,導致運算時間長,算法可移植性較差。針對上述問題,本課題組引入了輕量級神經網絡MobileNetV3[18],并根據目標檢測要求重置了參數大小,設計了網絡特征圖的多尺度輸出,以便用于后續增強網絡的特征復用。
MobileNetV3的核心是DSC[19],這使參數量大幅降低,檢測速度提升。公式(6)~(8)揭示了DSC參數量減少的原理[19]。
標準卷積操作是在多個輸入通道上使用多個卷積核進行卷積操作。其參數計算量C為

式中:Dk為卷積核的大小;M為輸入通道數;N為卷積核數量;DF為輸入圖像大小。
DSC分兩步完成卷積操作,先在M個輸入通道上使用一個卷積核逐通道卷積(Depthwise Conv.),然后通過逐點卷積(Pointwise Conv.)即利用N個1×1卷積核調整輸出通道數。參數計算量C′為

將式(6)和(7)求比值,可得

通常,卷積核大小取3×3。可見,采用DSC能大幅降低網絡參數。
MobileNetV3主要由Conv2D-BN-h-swish(CBH)卷積單元和bneck卷積塊構成,如圖5所示。CBH和普通卷積結構基本相同,區別在于引入了h-swish激活函數[18],即

h-swish激活函數在深層特征中更能對特征有效映射,因此在網絡中,bneck卷積塊使用了ReLU和h-swish兩種激活函數。圖5b中,第2~4層卷積采用ReLU激活函數,最后3層卷積采用h-swish激活函數。而在bneck中,先用1×1的CBH提取特征,再用3×3的DSC進行卷積,施加SENet(squeeze-andexcitation networks)[20]之后,進行1×1卷積操作以調整通道,最后輸出bneck結果。SENet是一種輕量級通道注意力機制,通過學習的方式對不同通道重要性進行預測,以提升有用的特征,抑制用處不大的特征。

圖5 MobileNetV3網絡結構Fig. 5 Network structure diagram of MobileNetv3
YOLOv4的增強特征提取網絡包含SPPNet和PANet。經增強特征提取網絡的特征復用得到3個不同尺度特征圖。SPPNet對最小尺度特征圖進行處理后,同另外兩個特征圖輸入至PANet進行特征融合。本課題組對增強特征提取網絡進行重構,使其輕量化的同時,保證檢測精度。
3.3.1 PANet輕量化
和Backbone類似,PANet計算繁重,采用多個3×3的DBL(DarknetConv2D_BN_LReLU)卷積,在上采樣與下采樣中,這些卷積操作參數量極大,導致缺陷檢測時間過長。針對上述問題,本課題組引入了DSC卷積策略,通過卷積模塊替換實現對PANet網絡的輕量化設計。圖6為PANet輕量化過程中內部卷積模塊的替換示意圖。

圖6 PANet內部卷積結構替換示意圖Fig. 6 Internal convolutional structure replacement of PANet
將3×3的DBL卷積替換3×3的DSC卷積后,DSC-PANet網絡的參數計算量驟減,檢測速度大幅提升,但是檢測精度下降,這表明過分使用DSC卷積會使特征不能被充分利用。因此,輕量化后的PANet網絡還需提升精度。
3.3.2 全面路徑聚合網絡
PANet通過增加不同尺度特征層之間的信息傳輸路徑,對不同尺度特征進行融合,以實現對于目標特征的優質表達。但在PANet中,相鄰特征層之間進行了特征路徑聚合,而頂層特征與底層特征之間尚不存在融合路徑。因此,針對PANet輕量化后導致特征融合能力不足的問題,本課題組將頂層特征與底層特征進行跨越融合(見圖7虛線標識),提出了全面路徑聚合網絡(full path aggregation network,FPANet)。FPANet是通過增強目標特征全面表達來提升網絡精度,其結構如圖7所示。

圖7 FPANet結構圖Fig. 7 FPANet structure diagram
FPANet接受來自Backbone和SPPNet的多尺度特征圖的輸入,其中Feat3為SPPNet處理后的特征圖。頂層特征和底層特征的跨越融合仍然通過上采樣和下采樣實現。上采樣是通過1×1的DSC卷積和線性插值法分別負責通道調整和尺度擴張。下采樣是通過DSC卷積來實現通道和特征圖尺度的調整。輕量級FPANet是通過層間特征充分融合提升網絡精度,且檢測速度無顯著降低。
3.3.3 DSC-ECA卷積結構
通道注意力(ECA)機制是深度神經網絡中有效提升特征提取能力的重要方法。因此,本課題組在DSC卷積中引入ECA機制[21],提出了DSC-ECA模塊,其結構如圖8所示。

圖8 DSC-ECA結構圖Fig. 8 DSC-ECA structure diagram
ECA的結構和SENet的相似,但ECA是通過執行大小為k的一維卷積來生成權重通道,避免了降維所帶來預測精度的下降。k是由輸入特征圖的通道數自適應選得,具體公式[21]為

式中:C為輸入樣本通道數;b和γ為經驗參數,設定b=2,γ=1;“odd”為對結果取奇數。同時,本文保留了最外圍的殘差邊,以利于權重更新、趨于穩定。
本課題組對YOLOv4的增強特征提取網絡進行改進后,形成了全新的施加ECA機制的深度可分離全面路徑聚合網絡(DSC-ECA-FPANet)。
本實驗環境為Ubuntu18.04操作系統,配置Anaconda的 Python 3.7、NVIDIA RTX 2070 GPU、CUDA 10.1、cuDNN 7.6.5.32,使用Keras庫編寫程序。訓練數據時,本課題組從數據集中選取1000張樣本,其中900張用于模型訓練,100張用于交叉驗證,而其余200張樣本用于測試模型。鑒于數據量較少不利于模型泛化能力的提升,本課題組選擇遷移學習方式訓練模型。先采用VOC2007數據集對網絡進行預訓練,接著在正式訓練過程導入預訓練模型分段調優。參數設定如下:輸入數據的大小為416×416;為了加快訓練速度,前50個Epoch凍結主干特征提取網絡,只對增強特征提取網絡進行權重更新,Batch size設置為8,初始學習率為0.001,而后50個Epoch解凍Backbone權重層,進行全局網絡優化,Batch size設置為4,初始學習率為0.0001。
在目標檢測模型評估中,常采用精確度P(precision)和召回率R(recall)兩個指標評價模型的優劣,其計算方式[22]如下:

式中:TP為樣本正確檢測的數量;FP為樣本錯誤檢測的數量;FN為樣本未被檢測出的數量。
通常,分類問題存在一個決策邊界,改變置信度閾值會得到不同的準確率和召回率,即得到PR(precision-recall)曲線。PR曲線與坐標軸所圍成的面積為平均精確度(average precision,AP),可用于衡量模型檢測效果的好壞。為了衡量模型對于所有類別AP的優劣,本課題組使用所有檢測類別平均精度均值(mean average precision,mAP)評估模型。
4.2.1 模型訓練評估
MobileNetV3_DSC-ECA-FPANet模型(改進網絡訓練后得到的最優模型)的訓練和驗證結果如圖9所示。其中,實線為訓練集loss值,虛線為交叉驗證集loss值。

圖9 模型loss函數曲線圖Fig. 9 Loss function curve of the model
由圖9可以看到,模型的loss值隨著Epoch的增加而逐漸收斂,最后基本趨于穩定,這表明模型的預測結果和真實結果不斷接近,預測的誤差逐漸下降。此外,通過觀察訓練集和驗證集loss曲線的吻合度可以看出,模型泛化能力達到了最佳狀態。
4.2.2 性能測試
本課題組將訓練好的模型導入檢測程序后,對200張樣本進行測試,瓶蓋缺陷和貼標缺陷的部分檢測結果如圖10所示。從檢測結果可以看出,本文所提方法可以實現對于瓶蓋、貼標2種檢測目標的7種缺陷類別進行有效檢測。

圖10 樣本檢測結果示例Fig. 10 Test results of sample
本課題組設置不同的置信度閾值,從而得到7種類別的精確度和召回率,每種缺陷類別的PR曲線如圖11所示。其中,實線為貼標檢測結果,虛線為瓶蓋檢測結果。

圖11 PR曲線圖Fig. 11 Curve of PR
由圖11可以看出,本文所提方法的檢測mAP值可達97.15%,能滿足實際檢測需要。此外,本模型對于歪標、損傷標的缺陷檢測AP值略低,這可能是由于這兩種缺陷的訓練樣本較少而導致模型對于這些缺陷的泛化能力不足。
4.2.3 性能對比分析
本課題組在加入新的策略、設計新的網絡時,做了大量的成品缺陷檢測實驗,進而不斷優化模型,以得到最優模型。改進中各模型性能測試結果如表1所示。

表1 改進中各模型性能測試比較Table 1 Comparison of performance tests of each model in this study
由表1可以看出,只有當主干網絡和增強網絡均采用DSC策略時,模型才能真正做到輕量化,但隨之帶來的是mAP值急劇下降;本文方法的mAP值僅比YOLOv4低0.07個百分點,但單個樣本的檢測時間縮短,約為YOLOv4的1/3。由此可見,改進后算法在保證精度的前提下極大提升了檢測速度,這比較符合黏稠食品高速灌裝生產成品缺陷檢測的需要。
此外,為了綜合評價本文模型的性能優劣,本課題組將已有成熟目標檢測算法YOLOv3[13]、YOLOv4[12]、SSD[23]、Faster-RCNN[17]與本文方法進行對比。各種檢測算法的測試結果如表2所示。

表2 各目標檢測算法性能測試比較Table 2 Comparison of performance tests of each object detection algorithm
在表2中,由于Faster-RCNN參數計算量統計困難,因此本文未能給出。由表2可以看出,YOLOv3的精度和檢測速度均無法滿足要求;雖然Faster-RCNN的檢測精度最高,但是檢測速度最慢;本文方法既保證了精度與其它算法相差無幾,又實現了檢測速度的大幅提升,因此在實際生產中本文方法更具有優勢。
本研究提出了一種基于YOLOv4目標檢測算法的黏稠食品輕量級灌裝成品缺陷檢測方法,并在灌裝成品缺陷數據集上驗證了該方法的有效性。研究結果表明:1)本文方法能夠實現對于黏稠物料灌裝成品缺陷的多目標、多類別同時檢測,有效降低了生產線檢測設備的成本;2)深度可分離卷積策略的應用使得模型參數計算量得到大幅下降,檢測時間大大縮短,約為YOLOv4的1/3,滿足了灌裝成品缺陷高速檢測要求;3)增強網絡中,頂層特征與底層特征的融合設計和ECA的引入,加強了模型對目標特征的優質表達,進而實現了在模型參數下降的基礎上保持較好的檢測精度。