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