金宇霏,陸慧娟,郭鑫璐,張俊,朱文杰
(1.中國計(jì)量大學(xué) 信息工程學(xué)院 浙江省電磁波信息技術(shù)與計(jì)量檢測重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310018;2.浙江省農(nóng)業(yè)科學(xué)院 食品科學(xué)研究所,浙江 杭州 310021)
食品軟包裝以其體積小、重量輕、方便食用,深受消費(fèi)者的喜愛。目前,軟包裝食品市場逐年擴(kuò)大,在其生產(chǎn)過程中,軟包裝內(nèi)容物易粘在杯沿上,可能被壓入封膜密封處,導(dǎo)致包裝封口缺陷。這種產(chǎn)品如果在出廠前未被檢測出來,在運(yùn)輸和儲藏過程中易發(fā)生微生物污染的問題,造成較為嚴(yán)重的食品安全隱患。
目前的食品軟包裝加工廠大部分是采取人工檢測剔除不合格包裝,這一檢測方式存在勞動(dòng)強(qiáng)度大、標(biāo)準(zhǔn)不統(tǒng)一、誤檢和漏檢率高等缺陷。李名等[1]設(shè)計(jì)了一種基于機(jī)器視覺的果凍質(zhì)量檢測技術(shù)與裝置,提出使用區(qū)域生長算法對氣泡進(jìn)行檢測,但機(jī)器視覺檢測只可檢測缺陷特征較簡單的缺陷,并且不可更新。李苗[2]根據(jù)奶杯自身結(jié)構(gòu)的特點(diǎn),提出了一種奶杯表面質(zhì)量檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的方案,先采用區(qū)域分割的方法將奶杯內(nèi)壁劃分成不同的區(qū)域,再使用不同的污漬檢測算法進(jìn)行質(zhì)量檢測。何金彪等[3]提出了一種基于機(jī)器視覺的罐蓋缺陷檢測算法,可以檢測罐蓋是否合格,但是對于細(xì)微缺陷以及輕微劃痕,該算法無法識別。
近年來,隨著計(jì)算機(jī)視覺技術(shù)和深度學(xué)習(xí)的快速發(fā)展,在食品生產(chǎn)加工領(lǐng)域得到了廣泛的應(yīng)用。張博[4]針對小麥籽粒檢測提出了一種基于深度學(xué)習(xí)的識別模型構(gòu)建方法。俞芳芳等[5]采用深度學(xué)習(xí)的方法對食用油灌裝進(jìn)行質(zhì)量檢測,包括對瓶口、瓶蓋的缺陷檢測,相比傳統(tǒng)方法,深度學(xué)習(xí)的檢測精度更高、算法泛化能力更強(qiáng)。張芳慧等[6]提出了一種基于SSD的果凍雜質(zhì)檢測方法,該方法增強(qiáng)了算法魯棒性,但準(zhǔn)確率不高。相比傳統(tǒng)機(jī)器視覺檢測,深度學(xué)習(xí)模型具有不斷更新缺陷類型、自動(dòng)訓(xùn)練學(xué)習(xí)、不斷提高預(yù)測準(zhǔn)確率等優(yōu)點(diǎn)。但基于神經(jīng)網(wǎng)絡(luò)模型的圖像識別,依賴大量的數(shù)據(jù)樣本,在數(shù)據(jù)樣本不足的情況下,往往容易造成過擬合問題。
綜上所述,為解決小樣本帶來的過擬合問題,本文采用數(shù)據(jù)增強(qiáng)的方法通過對數(shù)據(jù)進(jìn)行擦除、旋轉(zhuǎn)、鏡像、剪裁等操作來擴(kuò)充數(shù)據(jù)集,彌補(bǔ)數(shù)據(jù)樣本不足。網(wǎng)絡(luò)模型選擇在大型圖像數(shù)據(jù)集ImageNet上訓(xùn)練好的ResNet50模型,由于本實(shí)驗(yàn)是對軟包裝杯沿正負(fù)樣本進(jìn)行分類,所以需要微調(diào)網(wǎng)絡(luò)結(jié)構(gòu),并且調(diào)整超參數(shù),使模型更快收斂。
ResNet[7]是由華人學(xué)者何愷明在2015年提出的。近年來,深度神經(jīng)網(wǎng)絡(luò)層數(shù)成倍增加,當(dāng)堆疊更深的網(wǎng)絡(luò)結(jié)構(gòu)時(shí),性能卻沒有提升,反而容易造成梯度彌散和梯度爆炸現(xiàn)象。深度殘差網(wǎng)絡(luò)增加了一個(gè)短路連接,解決了上述問題,使得網(wǎng)絡(luò)在堆疊過程中保留最優(yōu)性能。
圖1 殘差網(wǎng)絡(luò)的殘差塊Figure 1 Residual block of the residual network
殘差網(wǎng)絡(luò)是由殘差塊疊加而成,如圖1所示[7],(a)、(b)表示兩種不同結(jié)構(gòu)的殘差塊,(a)主要用于18層、34層的殘差網(wǎng)絡(luò),(b)主要用于50層、101層、152層的殘差網(wǎng)絡(luò)。對(b)進(jìn)行參數(shù)量計(jì)算,64、256表示通道數(shù),1×1、3×3表示卷積核大小,計(jì)算公式為輸入通道×輸出通道×卷積核大小,即產(chǎn)生參數(shù)256×64×1×1+64×64×3×3+64×256×1×1≈70 K。
殘差學(xué)習(xí)定義為
y=F(x,{Wi})+x。
(1)
其中,x表示輸入,y表示輸出,F(x,{Wi})表示為待學(xué)習(xí)的殘差映射,對于圖1(b)的三層殘差塊結(jié)構(gòu),F的具體表達(dá)式可以為
F=W3σ(W2σ(W1x))。
(2)
σ表示為ReLU(Rectified Linear Units)[8]激活函數(shù),W1、W2、W3表示權(quán)重。F+x操作是通過短路連接和輸入?yún)?shù)相加得到的,要求維度相同,若維度存在差異,可修改公式(1)為
y=F(x,{Wi})+Wsx。
(3)
Ws表示一個(gè)矩陣,作用是維度轉(zhuǎn)換。
根據(jù)上述公式可知,短路連接既不增加額外參數(shù),也不增加計(jì)算復(fù)雜度,這讓殘差網(wǎng)絡(luò)在普通網(wǎng)絡(luò)中具有極大的優(yōu)勢。
遷移學(xué)習(xí)(Transfer Learning)[9]是把已經(jīng)訓(xùn)練好的模型參數(shù)遷移到新的模型來幫助新模型訓(xùn)練。在本文中,將其他領(lǐng)域中的知識遷移到食品軟包裝檢測應(yīng)用場景中。文中使用ImageNet大型數(shù)據(jù)集學(xué)習(xí)到的網(wǎng)絡(luò)特征運(yùn)用于杯沿檢測任務(wù)中,可降低所需的訓(xùn)練樣本集和計(jì)算資源,并提高模型學(xué)習(xí)效率。例如黃健[10]等將遷移學(xué)習(xí)應(yīng)用到表面缺陷檢測中,獲得了良好的識別效果。
實(shí)驗(yàn)所選擇的網(wǎng)絡(luò)模型為ResNet50,其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,conv1表示一個(gè)卷積層,conv2_x、conv3_x、conv4_x、conv5_x表示殘差塊,最后是一個(gè)全連接層。實(shí)驗(yàn)采用批處理操作,每一批包含64張圖片,單張圖片輸入尺寸為224×224。
遷移學(xué)習(xí)有兩種使用方法,一種是微調(diào),另一種是Fixed Feature Extractor。微調(diào)是對別人已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行修改應(yīng)用到目標(biāo)領(lǐng)域的任務(wù)中,通常使用預(yù)訓(xùn)練的網(wǎng)絡(luò)權(quán)值作為自己網(wǎng)絡(luò)的初始化權(quán)值。Fixed Feature Extractor即固定特征提取器,使用時(shí)將網(wǎng)絡(luò)的前幾層凍結(jié),只訓(xùn)練網(wǎng)絡(luò)最后的全連接層。實(shí)驗(yàn)選擇微調(diào)的方式,對ResNet50模型進(jìn)行修改,如圖2所示,將ResNet50最后一層全連接層替換為一個(gè)1×1的卷積層和一個(gè)線性分類層,應(yīng)用到本文的目標(biāo)任務(wù)中。
表1 ResNet50網(wǎng)絡(luò)模型結(jié)構(gòu)
卷積操作中采用1×1卷積核可以降低通道數(shù),等價(jià)于全連接層,但參數(shù)更少。由于可降低通道數(shù),卷積核參數(shù)與計(jì)算復(fù)雜度也相應(yīng)降低。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)模型Figure 2 Network structure model
采用自制數(shù)據(jù)集,使用工業(yè)相機(jī)從食品軟包裝加工廠拍攝得到軟包裝杯沿圖像,按杯沿有無缺陷分為兩類,無缺陷杯沿圖像300張,有缺陷杯沿圖像205張,共計(jì)505張。將數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集60%劃分為訓(xùn)練集、20%劃分為驗(yàn)證集以及20%劃分為測試集,各自為獨(dú)立的集合。相比于神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需的大量數(shù)據(jù),本文所研究的是一個(gè)小樣本數(shù)據(jù)集,因此采用數(shù)據(jù)增強(qiáng)技術(shù)來增強(qiáng)模型的泛化能力。
樣本圖像像素為1 280×1 024,每張帶有缺陷的杯沿圖像有一處或多處缺陷。本文的目的是對封口處有缺陷的食品軟包裝和合格的食品軟包裝進(jìn)行精確分類。如圖3,左圖是合格的食品軟包裝,右圖是帶有缺陷的食品軟包裝,紅框內(nèi)是被壓入封膜密封處的軟包裝內(nèi)容物。
圖3 無缺陷(左)、有缺陷(右)杯沿圖像Figure 3 No defect(left), defect(right) cup edge image
數(shù)據(jù)增強(qiáng)即擴(kuò)充數(shù)據(jù)的總量,目的是增加訓(xùn)練數(shù)據(jù)的多樣性,防止過擬合,當(dāng)數(shù)據(jù)集較小時(shí),過多的參數(shù)會擬合數(shù)據(jù)集的所有特點(diǎn),而非數(shù)據(jù)之間的共性。
圖4 原始圖像(左)、預(yù)處理后圖像(右)Figure 4 Original image(left), preprocessed image(right)
傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法有平移、旋轉(zhuǎn)、鏡像、裁剪、圖像抖動(dòng)和亮度變換等,圖4所示分別為原始訓(xùn)練數(shù)據(jù)和經(jīng)過傳統(tǒng)數(shù)據(jù)增強(qiáng)之后的訓(xùn)練數(shù)據(jù)。
傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法在不改變原始數(shù)據(jù)特征信息的基礎(chǔ)上,對數(shù)據(jù)集進(jìn)行擴(kuò)充。與上述方法不同的還有一些方法,是破壞原始數(shù)據(jù)圖像得到帶有缺損的訓(xùn)練數(shù)據(jù),如隨機(jī)擦除(Random Erasing,RE)[11]和Hide-and-Seek[12]等方法。隨機(jī)擦除是在訓(xùn)練圖像中隨機(jī)選擇一個(gè)或多個(gè)矩形區(qū)域,并用隨機(jī)值代替圖像原有的像素值,生成了不同層次遮擋的訓(xùn)練圖像,降低了過擬合的風(fēng)險(xiǎn),使模型學(xué)習(xí)到更細(xì)微的特征。Hide-and-Seek方法是一種弱監(jiān)督學(xué)習(xí)方法,圖像在訓(xùn)練過程中部分區(qū)域被掩蓋,使得模型學(xué)習(xí)聚焦在較少分區(qū)的對象部分。由于杯沿封口處缺陷較小,若采用不當(dāng)?shù)牟脸椒?會將缺陷掩蓋,產(chǎn)生錯(cuò)誤樣本,導(dǎo)致分類精度降低。為此,本文設(shè)計(jì)了一種適合杯沿檢測的隨機(jī)擦除方法和非隨機(jī)擦除方法。將訓(xùn)練圖像分割成4×5小塊,每塊為256×256個(gè)像素點(diǎn),只在圖像的四個(gè)角和杯面中間黑色區(qū)域進(jìn)行像素塊擦除,不會影響需要檢測的杯沿部分。非隨機(jī)擦除方法將原始數(shù)據(jù)集擴(kuò)充為原先的6倍,如圖5。隨機(jī)擦除方法只對負(fù)樣本進(jìn)行操作,彌補(bǔ)了數(shù)據(jù)樣本分布不均勻的問題,隨機(jī)選擇0~3個(gè)隨機(jī)塊進(jìn)行像素值替換,如圖6。
圖5 非隨機(jī)擦除Figure 5 Non-random erasure
圖6 隨機(jī)擦除Figure 6 Random erasure
原始數(shù)據(jù)樣本經(jīng)過隨機(jī)和非隨機(jī)擦除方法以及旋轉(zhuǎn)、平移等手段,擴(kuò)充為4 127張圖像,其中正樣本2 100張,負(fù)樣本2 027張。
為驗(yàn)證隨機(jī)擦除方法和非隨機(jī)擦除方法的有效性,對照樣本僅使用旋轉(zhuǎn)、平移等方法,數(shù)據(jù)集數(shù)量保持一致。
實(shí)驗(yàn)是在Windows10專業(yè)版系統(tǒng)安裝Anaconda 3,基于Facebook開源的PyTorch神經(jīng)網(wǎng)絡(luò)框架,使用Intel Core i7-10700 CPU以及GTX3060顯卡加速,完成實(shí)驗(yàn)訓(xùn)練。
對隨機(jī)擦除和非隨機(jī)擦除后的數(shù)據(jù)集進(jìn)行劃分,確保訓(xùn)練集、驗(yàn)證集和測試集相互獨(dú)立。同時(shí)對訓(xùn)練集中的樣本進(jìn)行旋轉(zhuǎn)、鏡像、裁剪和亮度變換等數(shù)據(jù)增強(qiáng)操作,使樣本數(shù)據(jù)多樣化,避免訓(xùn)練過程中過擬合現(xiàn)象,對照樣本采用相同的傳統(tǒng)數(shù)據(jù)增強(qiáng)操作。原始圖像尺寸為1 280×1 024像素,為適合模型訓(xùn)練,將圖像調(diào)整為224×224像素大小。然后基于PyTorch框架給出ResNet50模型的實(shí)現(xiàn)。模型訓(xùn)練過程中,迭代步長設(shè)置過大,容易產(chǎn)生過擬合,設(shè)置過小,不利于模型學(xué)習(xí),實(shí)驗(yàn)設(shè)置100個(gè)Epoch,實(shí)驗(yàn)參數(shù)設(shè)置如表2。
表2 實(shí)驗(yàn)參數(shù)設(shè)置
在實(shí)驗(yàn)一中,采用傳統(tǒng)數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集和交叉熵?fù)p失函數(shù)對模型進(jìn)行杯沿檢測的訓(xùn)練,再采用提出的數(shù)據(jù)增強(qiáng)方法處理后的數(shù)據(jù)集以及交叉熵?fù)p失函數(shù)對模型進(jìn)行杯沿檢測的訓(xùn)練,以驗(yàn)證實(shí)驗(yàn)所使用的數(shù)據(jù)增強(qiáng)方法對小樣本杯沿檢測圖像分類有效。
在實(shí)驗(yàn)二中,設(shè)計(jì)K最近鄰算法作為深度學(xué)習(xí)算法的對比試驗(yàn),以驗(yàn)證深度學(xué)習(xí)算法的優(yōu)越性。
在實(shí)驗(yàn)三中,分別使用VGG16、DenseNet121、ResNet18、ResNet50、ResNet101模型進(jìn)行實(shí)驗(yàn)對比。
實(shí)驗(yàn)一,為了驗(yàn)證隨機(jī)擦除和非隨機(jī)擦除數(shù)據(jù)預(yù)處理方法對實(shí)驗(yàn)的有效性,分別對ResNet50模型進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果如表3所示。
由表3可知,在相同的網(wǎng)絡(luò)結(jié)構(gòu)下,使用所提到的數(shù)據(jù)預(yù)處理方法對實(shí)驗(yàn)分類效果有效。沒有采取該方法的實(shí)驗(yàn)驗(yàn)證集最優(yōu)準(zhǔn)確率為0.98,準(zhǔn)確率曲線圖如圖7,而測試集準(zhǔn)確率為0.96,該樣本處理方式較簡單,容易導(dǎo)致模型學(xué)習(xí)訓(xùn)練數(shù)據(jù)中的噪聲。采取本文方法的實(shí)驗(yàn)驗(yàn)證集最優(yōu)準(zhǔn)確率為0.96,準(zhǔn)確率曲線圖如圖8,測試集準(zhǔn)確率為0.97。測試集準(zhǔn)確率相比傳統(tǒng)預(yù)處理提高了1%。
表3 實(shí)驗(yàn)結(jié)果
圖7 傳統(tǒng)預(yù)處理實(shí)驗(yàn)Figure 7 Traditional pretreatment experiment
圖8 增強(qiáng)預(yù)處理實(shí)驗(yàn)Figure 8 Enhanced pretreatment experiment
在實(shí)驗(yàn)二中,設(shè)計(jì)了機(jī)器學(xué)習(xí)算法對杯沿圖像進(jìn)行分類。使用K最近鄰算法在同一個(gè)數(shù)據(jù)集上進(jìn)行分類,60%的樣本為訓(xùn)練集,20%為驗(yàn)證集,20%為測試集,輸入圖像大小同樣為224×224。表4為實(shí)驗(yàn)結(jié)果。
表4 K最近鄰算法
如表4,機(jī)器學(xué)習(xí)算法的分類精度遠(yuǎn)遠(yuǎn)低于本文采用的深度學(xué)習(xí)算法,分析其原因?yàn)?傳統(tǒng)機(jī)器學(xué)習(xí)容易受到杯面殘余水珠的干擾,極大地影響了識別的正確率。
傳統(tǒng)機(jī)器視覺算法的表現(xiàn)如圖9。(a)是待檢測的圖像,(b)是識別結(jié)果,紅框表示杯面有缺陷的地方,杯面殘留的小水珠容易影響視覺識別,如3號框錯(cuò)誤的將水珠識別為缺陷。
在實(shí)驗(yàn)三中,分別對VGG16、DenseNet121、ResNet18、ResNet50、ResNet101模型進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如表5所示。
表5 不同模型訓(xùn)練結(jié)果
圖9 傳統(tǒng)機(jī)器視覺檢測Figure 9 Traditional machine vision inspection
由表5可知VGG16模型和DenseNet121模型的識別精度遠(yuǎn)遠(yuǎn)小于ResNet系列網(wǎng)絡(luò)結(jié)構(gòu)模型。ResNet18模型測試集準(zhǔn)確率與ResNet50模型測試集準(zhǔn)確率相同,但ResNet50模型層數(shù)更深,泛化能力更強(qiáng);ResNet101模型準(zhǔn)確率比ResNet50模型準(zhǔn)確率低1%。通過上述實(shí)驗(yàn)可知,ResNet50模型在以上模型中為實(shí)驗(yàn)最佳模型。
針對傳統(tǒng)機(jī)器視覺檢測只可檢測固定種類和缺陷特征較簡單的缺陷,本文設(shè)計(jì)了一種基于深度學(xué)習(xí)的杯沿檢測模型,自動(dòng)訓(xùn)練學(xué)習(xí),降低了人力消耗。預(yù)訓(xùn)練網(wǎng)絡(luò)ResNet50在經(jīng)過預(yù)處理圖像訓(xùn)練后識別準(zhǔn)確率可達(dá)到97.69%,證明在大數(shù)據(jù)集上訓(xùn)練好的預(yù)處理模型可以很好的遷移到小樣本數(shù)據(jù)集上。今后,將進(jìn)一步優(yōu)化模型,收集更多數(shù)據(jù)樣本,在提高識別準(zhǔn)確率的基礎(chǔ)上,對不同缺陷進(jìn)行分類。