王春龍 蔣仲銘 鮑安紅
(西南大學(xué)工程技術(shù)學(xué)院,重慶 400716)
花生篩選是花生銷售前的重要工序,不僅可以提高商品花生的品質(zhì)等級,實(shí)現(xiàn)質(zhì)優(yōu)價優(yōu),還可以實(shí)現(xiàn)花生產(chǎn)品的多渠道利用,減少花生產(chǎn)品浪費(fèi)。人工篩選存在勞動強(qiáng)度大、效率低下等問題。而機(jī)械式[1]的篩選裝備根據(jù)花生莢果的大小特征進(jìn)行分級,分級過程中很容易損壞花生莢果,分級的效果差。隨著科技的發(fā)展,機(jī)器視覺技術(shù)被廣泛應(yīng)用于食品質(zhì)量檢測領(lǐng)域[2]。如將機(jī)器視覺應(yīng)用在對花生仁的外觀品質(zhì)檢測上、利用掩模及亮度校正算法實(shí)現(xiàn)臍橙表面缺陷分割[3]等。然而,傳統(tǒng)的圖像識別過程需要操作者利用經(jīng)驗(yàn)手動提取特征,并且多次擇優(yōu)特征,操作過程繁瑣且易受主觀因素影響,難以得到準(zhǔn)確穩(wěn)定的缺陷特征。
基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的圖像識別技術(shù),沒有過往復(fù)雜人工提取圖像特征的過程,直接實(shí)現(xiàn)了自動化提取特征[4-6]。隨著遷移學(xué)習(xí)技術(shù)的發(fā)展,在大型數(shù)據(jù)集上訓(xùn)練學(xué)習(xí)得到的模型權(quán)重值和特征可以容易地遷移到小型數(shù)據(jù)集上,減少了模型的計(jì)算量,使得深度學(xué)習(xí)模型也適用于小數(shù)據(jù)集。薛勇等[7]利用GoogLeNet模型對蘋果的外觀進(jìn)行檢測,優(yōu)化后識別準(zhǔn)確率為91.91%。楊志銳等[8]采用改進(jìn)的AlexNet模型識別紅棗缺陷,模型的平均識別精度為94.79%。趙志衡等[9]提出一種利用卷積神經(jīng)網(wǎng)絡(luò)識別花生籽粒完整性的算法,測試樣本的識別精度為98.18%。何進(jìn)榮等[10]使用模型融合的方式優(yōu)化改進(jìn)了蘋果的分級模型,分級精度為97.84%。
目前深度學(xué)習(xí)識別模型在鮮花生莢果品質(zhì)分級方面的準(zhǔn)確率和穩(wěn)定性有待提升。為提升智能檢測方法的準(zhǔn)確率和穩(wěn)定性,提出一種基于SqueezeNet基礎(chǔ)的天府花生分級模型。首先將協(xié)調(diào)注意力嵌入SqueezeNet模型中;然后通過超參數(shù)調(diào)優(yōu)及正則化技術(shù),減少模型參數(shù)大小,使用改進(jìn)的梯度優(yōu)化算法提高模型識別準(zhǔn)確率,通過對5種經(jīng)典模型的對比試驗(yàn),進(jìn)一步驗(yàn)證該模型的穩(wěn)定性,旨在為鮮花生莢果智能篩選機(jī)器的嵌入式部署提供理論依據(jù)。
天府11號花生樣本于2021年8月分3批次采購于重慶市市區(qū)超市及周邊農(nóng)場。
計(jì)算機(jī)參數(shù)為Intel Core i7-11700F CPU,主頻2.40 GHz,16 GB內(nèi)存,搭載為NVIDIA GeForce GTX 3060顯卡,12 GB顯存。開發(fā)平臺為Ubuntu 20.04系統(tǒng),采用Pytorch深度學(xué)習(xí)框架,IDE為Jupyter Notebook,配置Python 3.8,利用OpenCV進(jìn)行圖像預(yù)處理,拍攝設(shè)備為思藍(lán)綠CCD工業(yè)相機(jī)、手動對焦鏡頭(200萬像素)。
根據(jù)食用花生標(biāo)準(zhǔn)及市場需求將花生莢果劃分為4個等級:正常果、破損果、發(fā)霉果、發(fā)芽果。采集的原始數(shù)據(jù)中正常果圖像6 000幅,破損果圖像1 632幅,發(fā)霉果1 230幅,發(fā)芽果1 520幅,利用數(shù)據(jù)集平衡技術(shù)平衡數(shù)據(jù)集。取出最大值6 000作為基準(zhǔn),通過保留原圖、旋轉(zhuǎn)、水平鏡像和垂直鏡像的方法將其他莢果種類的圖像也擴(kuò)增到6 000幅,正常果、破損果、發(fā)霉果、發(fā)芽果的圖像數(shù)比例為1∶1∶1∶1。至此,平衡后的數(shù)據(jù)集樣本總數(shù)為24 000幅,每幅圖像像素大小為640×480,格式為.jpg。平衡后的數(shù)據(jù)集訓(xùn)練的模型通常有更好的泛化能力和識別準(zhǔn)確度[11-12]。數(shù)據(jù)集中60%作為訓(xùn)練集,20%作為驗(yàn)證集,剩余20%作為測試集評估模型?;ㄉv果的具體數(shù)據(jù)集樣本個數(shù)劃分如表1所示。
表1 試驗(yàn)數(shù)據(jù)集劃分
VGG16、AlexNet、ResNet50、DenseNet121、SqueezeNet是目前農(nóng)業(yè)檢測領(lǐng)域廣泛使用的5種經(jīng)典模型,VGG16主要通過大幅增加卷積神經(jīng)網(wǎng)絡(luò)深度提高模型的性能;AlexNet首次在CNN中采用ReLU激活函數(shù),通過加入dropout層減少訓(xùn)練過程中的過擬合;ResNet50引入殘差模塊,消除了梯度消失和網(wǎng)絡(luò)退化的問題;DenseNet121構(gòu)建每層到其他層的連接,具有一定的正則化效果,緩解了模型過擬合并減少了特征冗余;SqueezeNet網(wǎng)絡(luò)參數(shù)內(nèi)存小。
上述5種模型在結(jié)構(gòu)上差異較大,但都由卷積層、密集連接層、分類器組成。常用的激活函數(shù)包括Sigmoid、tanh、ReLU等。試驗(yàn)采用ReLU(Rectified Linear Unit,線性整流函數(shù))激活函數(shù),該函數(shù)為線性函數(shù),網(wǎng)絡(luò)的收斂速度快[13],且不存在梯度消失和梯度飽和的問題[14],其數(shù)學(xué)表達(dá)式為:
f(x)=max(0,x),
(1)
經(jīng)softmax函數(shù)輸出一個4行1列的向量,4為類別數(shù)。softmax函數(shù)的數(shù)學(xué)表達(dá)式為:
(2)
式中:
yj——圖像為第j個類別的概率;
ej——圖像為第j個類別的上層函數(shù)值;
i——共i個類別數(shù)。
協(xié)調(diào)注意模塊[15](CoordAtt)可以看作是一個計(jì)算單元,旨在提高網(wǎng)絡(luò)模型的學(xué)習(xí)表達(dá)能力,計(jì)算單元具有相同的輸入輸出尺寸,模型的結(jié)構(gòu)如圖1所示。
設(shè)輸入的特征圖像為X,分別使用卷積核(H,1)、(1,W)沿著圖像的兩個坐標(biāo)進(jìn)行卷積池化,卷積操作的數(shù)學(xué)表達(dá)式為:
(3)
(4)
式中:
(W,H)——模塊輸入特征圖尺寸;
(w,h)——輸出特征圖尺寸;
圖1 協(xié)調(diào)注意力模塊
c——輸出通道數(shù)。
通過式(3)和式(4)兩種卷積池化,協(xié)調(diào)注意力模塊可以在一個空間方向上捕捉依賴關(guān)系,并在另一個空間方向上保持精確的位置信息,這有助于網(wǎng)絡(luò)更準(zhǔn)確地定位感興趣的區(qū)域。接著將兩個方向上的聚合特征連接起來,并輸入1×1的卷積核轉(zhuǎn)化式F1,操作的數(shù)學(xué)表達(dá)式如式(5)所示。
f=δ(F1([Zh,Zw])),
(5)
式中:
δ——非線性激活函數(shù);
F1——卷積核轉(zhuǎn)化公式;
f——將空間信息在水平方向和垂直方向上編碼的中間特征圖。
然后使用split()方法把中間特征圖劃分為fh和fw兩個獨(dú)立張量,進(jìn)一步使用1×1的卷積轉(zhuǎn)化數(shù)學(xué)式Fh和Fw,得到與輸入特征圖像X相同尺寸的輸出,σ為Sigmoid激活函數(shù),操作過程的數(shù)學(xué)表達(dá)式為:
gh=σ(Fh(fh)),
(6)
gw=σ(Fw(fw))。
(7)
由式(8)得到協(xié)調(diào)注意力模塊計(jì)算的結(jié)果。
(8)
為了加快訓(xùn)練速度,提高泛化性能,對于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),目前從激活、權(quán)重和梯度3個角度已經(jīng)提出了多種優(yōu)化技術(shù)。梯度集中[16]通過引入新的優(yōu)化函數(shù),對模型反向傳播的梯度進(jìn)行優(yōu)化,使權(quán)空間和輸出特征空間都正則化,從而提高訓(xùn)練速度和泛化能力。優(yōu)化函數(shù)如式(9)所示,自變量為反向傳播的梯度。
(9)
式中:
▽wiL——反向傳播的梯度;
M——卷積核的個數(shù)。
SqueezeNet模型中的fire模塊包括兩層。通常定義一個fire模塊為fire(A,B,C1,C2),其中A、B分別代表squeeze層的輸入、輸出通道數(shù),C1、C2分別代表expand層中1×1、3×3卷積核的輸出通道數(shù)目,結(jié)構(gòu)如圖2所示。
圖2 fire模塊結(jié)構(gòu)
從經(jīng)典模型出發(fā),構(gòu)建一種協(xié)調(diào)注意力SqueezeNet模型(Coordinate Attention SqueezeNet,CG-SqueezeNet),其基本架構(gòu)如圖3所示,包括8個Fire層,2個卷積層、1個協(xié)調(diào)注意力層、4個池化層。與SqueezeNet模型相比,CG-SqueezeNet模型的改進(jìn)有:① 在fire10之前引入CoordAtt協(xié)調(diào)注意力模塊,模型可以更快速準(zhǔn)確地學(xué)習(xí)感興趣區(qū)域的特征。② 將fire10模塊中的expand 1×1、expand 3×3卷積層的輸出通道數(shù)設(shè)置為128,conv11層的輸入輸出通道數(shù)分別設(shè)置成256,4。由于通道數(shù)的減少,網(wǎng)絡(luò)參數(shù)量降低。③ 使用梯度優(yōu)化算法,加速訓(xùn)練過程,提高模型泛化性。
圖3 協(xié)調(diào)注意力SqueezeNet模型的網(wǎng)絡(luò)架構(gòu)
基于試驗(yàn)的硬件水平,批大小設(shè)置為32,所有圖片經(jīng)過一次學(xué)習(xí)稱作一次迭代(epoch),取批尺寸為2的次方能夠充分利用顯卡的并行計(jì)算能力,若設(shè)置為較大的數(shù)值如128,會導(dǎo)致模型收斂到最優(yōu)解的時間過長;若設(shè)置為8或16等較小數(shù)值,又容易產(chǎn)生震蕩波動。訓(xùn)練模型時采用了帶動量的隨機(jī)梯度下降優(yōu)化算法(SGD),momentum=0.9。采用了隨機(jī)丟棄(dropout)技術(shù),其參數(shù)p為0.5,將初始學(xué)習(xí)率設(shè)置為0.001,每20次迭代(epoch)后學(xué)習(xí)率減小為原來的10%。由于采用了變學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置的很大,因而模型收斂速度很快,每個模型都只迭代了50次。
表2記錄了不同網(wǎng)絡(luò)的訓(xùn)練集和測試集的準(zhǔn)確率、模型參數(shù)內(nèi)存大小。對于平衡后的數(shù)據(jù)集,CG-SqueezeNet網(wǎng)絡(luò)的分類效果最好,在測試集上準(zhǔn)確率達(dá)到了97.83%;AlexNet在測試集準(zhǔn)確率為93.17%,在訓(xùn)練網(wǎng)絡(luò)中準(zhǔn)確率最低。從參數(shù)內(nèi)存需求的角度來看,VGG16的參數(shù)內(nèi)存需求為537 MB;內(nèi)存需求最小的是CG-SqueezeNet,為2.52 MB。因此如果想得到一個分類速率性能高的網(wǎng)絡(luò),宜選擇CG-SqueezeNet模型,其訓(xùn)練過程如圖4所示。
表2 花生莢果分類結(jié)果
圖4 訓(xùn)練結(jié)果
經(jīng)測試集測試,4 800個鮮花生莢果樣本中,檢測正確樣本數(shù)為4 688,總體準(zhǔn)確率為97.84%。1 200個正常果中12個被誤判為發(fā)霉果;1 200個破損果樣本全部判斷正確;1 200個發(fā)霉果中80個被誤判為正常果,5個誤判為發(fā)芽果。1 200個發(fā)芽樣本全部判斷正確。綜上,改進(jìn)的集成網(wǎng)絡(luò)結(jié)構(gòu)能夠較好地識別鮮花生莢果的缺陷特征。
類激活圖(class activation map,CAM)[17]指針對指定的輸入圖像生成的熱力圖,代表圖像的各個位置對該類別的重要程度。圖5是合格花生莢果、破損果、發(fā)霉果、發(fā)芽果的特征可視化示意圖。特征圖中紅色表示神經(jīng)網(wǎng)絡(luò)判定花生莢果類別的高權(quán)重區(qū)域,藍(lán)色表示網(wǎng)絡(luò)分類低權(quán)重的區(qū)域,色彩越紅越表示這塊區(qū)域?qū)Ψ诸惤Y(jié)果的影響越大。從圖5可以看出,網(wǎng)絡(luò)在分類為正常果時高紅亮區(qū)域較為均勻地集中在莢果本身,分類為破損果的重要部位在完整與破損銜接處,分類為發(fā)霉圖像時會找到大面積黑殼區(qū)域及褐斑的位置,分類為發(fā)芽果時網(wǎng)絡(luò)的關(guān)注點(diǎn)在于檢測目標(biāo)物的牙尖區(qū)域。
圖5 Grad-CAM 可視化測試集花生莢果特征區(qū)域
研究提出了一種嵌入?yún)f(xié)調(diào)注意力策略,該策略在學(xué)習(xí)特征的過程中更加注重位置信息,增強(qiáng)模型對圖像感興趣區(qū)域特征的學(xué)習(xí)。利用梯度集中方法,改進(jìn)優(yōu)化算法,在測試集上對比不同經(jīng)典模型,結(jié)果表明CG-SqueezeNet模型的預(yù)測結(jié)果會更加穩(wěn)定、準(zhǔn)確率達(dá)到97.83%。與傳統(tǒng)的遷移模型VGG16、AlexNet、ResNet50、DenseNet121、SqueezeNet相比,CG-SqueezeNet模型的內(nèi)存僅為2.52 MB,適用于小型嵌入式設(shè)備部署。后期將搭建花生的在線檢測系統(tǒng),探究模型在實(shí)用性方面的不足。