?

基于改進ResNet18模型的飼料原料種類識別方法

2023-03-07 03:31牛智有于重洋吳志陶邵艷凱劉梅英
農業機械學報 2023年2期
關鍵詞:飼料原料注意力卷積

牛智有 于重洋 吳志陶 邵艷凱 劉梅英

(1.華中農業大學工學院,武漢 430070;2.農業農村部智慧養殖技術重點實驗室,武漢 430070)

0 引言

飼料原料按照配方進行配料是控制飼料品質的關鍵因素之一[1]。在自動化飼料加工過程中,經過粉碎或不需要粉碎的飼料原料需要經旋轉分配器通過溜管進入不同配料倉,旋轉分配器會出現旋轉錯位等機械故障,導致飼料原料入倉錯誤,從而導致原料配制的錯誤,嚴重影響產品質量。為了確保飼料原料的正確配料,在飼料原料入倉初期要對入倉原料進行取樣和種類識別,以確保飼料原料正確入倉,避免錯倉。目前飼料原料的入倉過程中,主要通過巡檢員從不同溜管的取樣口中人工取樣后[2],再經過感官識別等操作對入倉飼料原料進行種類判定,由于入倉飼料原料種類多,人工取樣并通過感官識別的勞動強度大,同時增加了飼料加工企業的人工成本。為了開發適應實際生產的原料種類智能化識別裝置,開展飼料原料種類識別的方法研究十分必要。

計算機視覺技術已經在諸多領域有了廣泛的應用,對于傳統的機器視覺分類模型,模型的性能與特征的選擇聯系密切[3],提取諸如顏色[4-5]、紋理[6-7]、邊緣[8]、角點[9]等圖像特征過程繁瑣,并且人工設計的圖像特征大多為圖像的淺層特征,判別性能較弱,泛化能力不足,導致傳統機器視覺的識別準確率難以進一步提升。文獻[10]提出了卷積神經網絡的AlexNet模型,與傳統方法相比體現出極大的優勢。自此,如VGG[11]、GoogleNet[12]、ResNet[13]等卷積神經網絡模型相繼被提出。采用卷積神經網絡的方法對農產品進行識別分類也取得了較好效果[14-16]。實際應用過程中,借助已有的預訓練模型進行遷移學習是常見的模型訓練方法,大大提高了識別準確率,縮短了訓練時間[17-19]。

本文基于飼料實際生產場景自主設計搭建多通道入倉原料種類自動識別裝置。利用該裝置采集入倉飼料原料圖像,構建10種大宗飼料原料圖像數據集,開展基于改進ResNet18模型的飼料原料種類識別方法研究。在ResNet18網絡模型中增加通道注意力機制,引入基于ImageNet數據集的預訓練權重進行遷移訓練,并優化網絡結構,微調模型參數,以期提高模型識別準確率,實現飼料原料種類快速準確識別,為進一步開發入倉原料種類在線識別系統奠定理論基礎和技術方法支撐。

1 數據集構建

1.1 試驗材料

以入倉前飼料原料為識別對象,分別在不同飼料生產企業采集不同產地、不同批次的玉米、小麥、稻谷、麩皮、面粉、膨化玉米、豆粕、棉籽粕、花生粕、魚粉共10種粉碎后或不需要粉碎的飼料原料樣品共500份,其中每類飼料原料均50份,部分飼料原料樣品如圖1所示。

圖1 部分飼料原料樣本

1.2 原料自動取樣與種類識別裝置

結合飼料生產實際,設計搭建多通道入倉原料種類自動識別裝置,可以實現多溜管自動取樣和圖像采集功能,其整體結構如圖2所示。該裝置主要包括自動取樣器、多通道集料斗、輸送帶、LED環形光源和ME2P-1230-23U3C型工業相機(大恒圖像視覺有限公司)等。

圖2 多通道入倉原料種類自動識別裝置

該裝置圖像識別的工作流程為:自動取樣器通過法蘭與原料取樣口連接,取樣器的頂端曲面與溜管內壁曲面吻合,確保取樣器在閉合狀態下與溜管接口的封閉性。當需要取樣時,取樣器在氣缸的驅動下伸入原料溜管,飼料原料樣品在重力作用下沿樣品溜管進入多通道集料斗,通過控制取樣器伸入原料溜管的停留時間控制取樣量,經理論計算和參考文獻[1],取樣時間約為3 s,當達到預設取樣量后,氣缸復位,完成一個取樣周期。集料斗中的樣品通過輸送帶傳送進入圖像采集區。傳送帶上的飼料原料樣品以10 cm寬、0.8 cm厚平鋪于傳送帶,在暗箱內完成圖像信息采集。圖像采集使用彩色工業相機,取景范圍為10 cm×14 cm。因此,本裝置采集一幅圖像所需的最小樣本量體積約為112 cm3,為保證識別結果的準確性,每次識別過程對同一樣品采集3幅圖像進行綜合判定。待圖像采集完成后,傳送帶繼續將剩余物料輸送至回收箱。采集到的圖像傳回計算機,經中心裁剪等預處理操作后輸入至飼料原料種類識別模型進行種類識別,完成一個周期的原料判別。

1.3 圖像采集與預處理

基于多通道入倉原料種類識別裝置進行飼料原料圖像的采集,共采集飼料原料圖像10 000幅,每類1 000幅,部分飼料原料圖像如圖3所示。

圖3 部分飼料原料圖像

調用Pytorch工具庫對飼料原料數據集圖像進行預處理,包括隨機裁剪縮放,以及圖像的張量操作和歸一化處理,圖像數據統一以224像素×224像素的尺寸輸入網絡模型中,保證飼料原料圖像可識別的前提下減小圖像尺寸,提升訓練速度,進而優化訓練效果。

為進一步擴大飼料原料樣本容量,豐富訓練數據的分布,去除圖像冗余信息,提高模型的泛化能力,將數據集劃分出20%作為測試集。其余圖像通過數據增強的方式對數據集進行擴充,隨機旋轉、翻折圖像;隨機調整圖像亮度、對比度、飽和度。數據增強后的樣本總數擴增為20 000幅,每類樣本圖像2 000幅,并按照型訓練,驗證集用于驗證模型有效性,測試集數據不參與數據增強和模型訓練,僅用于測試模型最終效果。

2 識別模型建立

2.1 卷積神經網絡與ResNet18

卷積神經網絡可以由卷積層自動提取大量的圖像空間視覺特征,除此之外,卷積神經網絡還包括實現非線性映射的激活層和下采樣層(即池化層),實現特征由二維到一維轉換的全連接層,以及計算輸出值和真實值偏差的損失函數等[20]。

從理論經驗來看,不斷增加神經網絡的層數,可以提取到更加復雜的特征,取得更好的效果。但是大量試驗結果顯示,深層的卷積網絡會出現退化,即網絡層數到達一定數量之后,準確度出現飽和,甚至下降。為了解決該問題,殘差學習被提出來,在層間增加殘差跳躍連接,引入淺層特征,有效防止了梯度消失和梯度爆炸的發生,緩解了模型退化的問題,使得神經網絡的層數增加成為可能,具有強大的表征力。殘差結構如圖4所示[13]。

圖4 殘差結構圖

圖4中x表示輸入,H(x)表示輸出,F(x)表示殘差,傳統CNN網絡嘗試擬合x與H(x),殘差網絡結構嘗試學習F(x)+x,而非直接學習兩者的潛在映射x→H(x)。其核心思路為:殘差單元在接受輸入數據之后,若一個淺層網絡準確率已經達到飽和,則在它后面加幾個恒等映射層,使得輸出等于輸入,因此增加網絡深度但是不增加誤差,這使得神經網絡的層數可以超越之前的約束,提高識別準確率。

本文選擇經典卷積神經網絡ResNet18調整優化并進行遷移訓練。該模型由一系列的殘差結構組成,共包含8個殘差單元,由18層組成,包括17個卷積層和1個全連接層。

2.2 改進ResNet18網絡模型構建與優化

2.2.1CAM-ResNet18模型結構

基于經典ResNet18模型進行調整,改進后的CAM-ResNet18網絡結構如圖5所示,輸入圖像為經過預處理,尺寸為224像素×224像素×3通道的飼料原料圖像,圖像數據進入網絡后首先經過一個卷積核為7×7、步距為2的卷積層,再經過批歸一化處理(Batch normalization, BN)、激活函數以及一個3×3的最大池化層下采樣,將224像素×224像素的輸入圖像變為56像素×56像素的特征圖像,極大地減小存儲所需空間。conv2~conv5表示添加了殘差結構的卷積塊,4個卷積模塊進行淺層至深層的特征提取,每個卷積塊包括兩個殘差單元,每個殘差單元又包括兩個卷積層,即通過堆疊3×3卷積來提取特征信息,每隔2個卷積層引入殘差結構。并在第一個卷積層和最后一個卷積層后引入通道注意力模塊(Channel attention module, CAM),增強有效信息的提取,提高網絡模型表達能力的同時方便預訓練參數的載入[21]。經過殘差連續卷積后輸出的圖像再經過數據歸一化處理和全局自適應平滑池化,其中數據歸一化處理算法可以加快收斂速度,提高模型精度。此時,由于連續卷積,數據無法完全連接,針對此,數據被輸入至展平層進行卷積,將多維數據一維化。最后,將得到的圖像輸入至全連接層,為防止神經網絡過擬合,使用隨機失活方法[22],參數設置為0.5,隨機丟棄1/2的神經元。并通過softmax分類器輸出對應的飼料原料種類識別結果。

圖5 CAM-ResNet18網絡結構圖

2.2.2通道注意力機制

CBAM注意力機制(Convolutional block attention module, CBAM)包括通道注意力機制和空間注意力機制(Spatial attention module, SAM)2個子模塊,通道注意力機制關注圖像中有意義的特征,空間注意力機制關注最具信息量的地方[23]。本研究的飼料原料樣品圖像均為平鋪小顆粒圖像而非獨立的目標物體圖像,增加空間注意力后反而會使得模型識別重點模糊,導致分類準確率下降。因此,本研究的網絡模型僅增加CBAM注意力機制的通道注意力機制模塊。通道注意力模塊原理圖如圖6所示。

圖6 通道注意力模塊原理圖

通道注意力模塊將特征圖空間維度壓縮為一維矢量,在此過程中采用全局平均池化(AvgPool)并行全局最大池化(MaxPool)來壓縮通道特征,能更好地聚合特征映射信息,輸入特征經過平均池化、最大池化兩個并行池化后的結果送入一個權重共享的多層感知機(Multi-layer perceptron, MLP)中。然后對MLP的輸出特征進行逐元素加和,經過Sigmoid非線性激活函數后生成通道注意力Mc(F),與輸入特征圖逐個元素相乘得到特征F′作為下一個卷積塊的輸入。其過程公式為

Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))

(1)

F′=Mc(F)?F

(2)

式中F——圖像輸入特征

AvgPool(·)——平均池化層函數

MaxPool(·)——最大池化層函數

MLP(·)——多層感知機函數

σ——Sigmoid函數

F′——使用通道注意力模塊得到的特征

2.2.3優化器及學習率

Adam(Adaptive moment estimation)優化器可以計算不同參數的自適應學習速率,具有占用內存小、應用簡單、計算效率高等優點,可以應用于稀疏梯度以及非平穩目標[24]。

研究表明,在使用自適應學習率的同時進行學習率衰減能夠促進模型更好的收斂[25]。余弦退火(Cosine annealing)以余弦函數的形式降低學習率。本模型在Adam優化器中引入余弦退火衰減學習率,有助于快速達到最優解,并減少后期震蕩。

3 模型訓練與評估

本研究模型訓練的試驗硬件環境為:ADM r7 5800H 3.2 GHz標壓處理器,運行內存為16 GB,3 600 MHz,搭載6 GB NVIDIA GeForce RTX 3060 GPU加速訓練。軟件環境基于Windows 10系統,Anaconda 3平臺,通過Python語言在Pytorch深度學習框架中搭建并運行網絡模型,并行計算框架為CUDA 10.1版本。

卷積神經網絡模型的訓練效果與模型參數設置密切相關,設置批大小(Batch_size)為16,每次訓練迭代50個周期(Epochs),使用Adam優化器和余弦退火衰減學習率,初始學習率設置為0.000 1,在圖像進入網絡訓練之前進行預處理和歸一化處理。

由于飼料原料原始數據集較小,因此采用ImageNet上訓練好的模型參數來初始化當前模型的權值,加速網絡收斂,大大縮短了訓練時間,提高了訓練效率[26]。

選擇準確率、識別時間作為網絡模型的主要評價指標,為方便本模型后期嵌入開發,也要綜合考慮模型內存占用量和模型參數量。并結合混淆矩陣計算精確率、召回率、特異度和F1值綜合評價網絡模型對飼料原料種類的識別能力[27]。

4 結果與分析

4.1 模型性能影響因素分析

4.1.1學習率

理想的學習率有利于模型快速收斂,若初始學習率設置過小則目標函數下降速度緩慢[28]。若學習率設置過大容易使得目標函數在最優解附近不斷震蕩,甚至出現目標函數爆炸現象。利用Adam優化器和余弦退火法衰減學習率時Adam的默認學習率為0.001。為進一步探究模型參數對網絡模型準確率的影響,在基于CAM-ResNet18網絡模型和遷移學習的前提下設置初始學習率為0.1、0.01、0.001、0.000 1、0.000 01,分別對飼料原料種類識別模型進行訓練,迭代次數設置為50次。

學習率對CAM-ResNet18網絡模型的影響如圖7所示,從圖7可以看出,學習率設置為0.1和0.01時模型經50次迭代訓練仍未收斂,且最終損失值為0.34和0.2,遠大于學習率為0.001時的損失值。學習率為0.001時,模型準確率得到大幅度提升,但其穩定性有待進一步增強。對比學習率為0.000 1與學習率為0.000 01時模型的訓練效果發現,二者識別準確率較為接近,但學習率為0.000 1時的收斂速度及最終損失值優于學習率為0.000 01時,故選擇0.000 1為本網絡模型的學習率。

圖7 不同學習率對準確率和損失值的影響

4.1.2注意力機制

由于注意力機制的嵌入位置對識別準確率有一定的影響[29],將注意力機制添加在第一個卷積層以及最后一個卷積層之后不會改變ResNet18網絡的原有結構,仍能有效遷移原有預訓練參數[30]。

為了驗證網絡中注意力機制添加方式的有效性,對比網絡中添加注意力機制位置以及個數對模型準確率的影響。本文設計了4種注意力機制添加方案。

4種注意力機制添加方案分別為:只在第1個卷積層后添加1個注意力機制(方案1);在第1個卷積層后和最后1個卷積層后共添加2個注意力機制(方案2);在最后1個卷積層后添加注意力機制(方案3);不添加注意力機制(方案4)。使用同一數據集,保證訓練參數一致的前提下,在優化微調后的ResNet18網絡模型中訓練和驗證,試驗結果如表1所示。

表1 不同注意力機制添加方式時ResNet18模型的性能

由表1可知,添加1個注意力機制對模型性能略有提升,添加2個注意力機制時識別準確率達到最佳,說明通道注意力機制的引入,有效提升了模型驗證集準確率。

為進一步分析添加注意力機制后卷積網絡特征提取的變化,對CAM-ResNet18網絡模型與ResNet18網絡模型每一個卷積塊最后一個卷積層的特征做可視化輸出,如圖8所示。

圖8 卷積層輸出特征

模型特征可視化過程中,對模型輸入同一豆粕樣本圖像。分析兩個模型卷積層的輸出特征圖,發現卷積網絡的學習都是由淺層特征向深層特征過渡,不同的卷積核提取不同的特征信息,淺層的卷積核側重于提取圖像的輪廓、邊緣、紋理、顏色等特征信息。但隨著圖像在卷積層中向前傳遞,特征圖出現肉眼無法辨識的深層特征,表現為細節逐漸消失。

逐層對比兩個模型的特征輸出圖,可發現conv_1卷積層特征輸出圖完全一致,這是因為CAM-ResNet18網絡模型的第1個注意力機制添加位置在conv_1卷積層之后,因此卷積層1的輸出特征圖并無注意力機制的影響。對比兩個模型的conv2~conv5卷積層特征輸出圖,發現添加了注意力機制的CAM-ResNet18網絡模型可以更好地保留有效特征信息,減少冗余特征信息,進一步證明了通道注意力機制的添加可以更加有效地提取飼料原料圖像特征。

4.2 不同卷積神經網絡模型對比

為了驗證模型CAM-ResNet18改進的有效性,將本研究的CAM-ResNet18網絡模型與常見用于圖像分類的ResNet18、ResNet34、AlexNet、VGG16網絡模型在飼料原料數據集上的訓練結果進行對比。訓練前,調整各模型參數一致,并將Softmax輸出種類由1 000分類調整為10分類,在相同的訓練環境下進行50次迭代。各個模型驗證準確率、參數量、浮點運算量、識別時間等性能如表2所示。

表2 不同卷積神經網絡模型性能對比

對比各網絡模型的驗證準確率發現,各卷積網絡模型在飼料原料種類數據集上的最終識別準確率都在90%以上。CAM-ResNet18網絡模型驗證準確率略高于ResNet34和ResNet18網絡模型,50次迭代訓練后CAM-ResNet18網絡模型的驗證集識別準確率可達到99.1%,比經典ResNet18模型的驗證準確率高0.6個百分點,較更深層次的ResNet34網絡模型高0.2個百分點。VGG16模型的驗證準確率為98.0%,比CAM-ResNet18網絡模型的驗證集識別準確率低1.1個百分點,AlexNet模型最終識別準確率僅95.4%,比CAM-ResNet18網絡模型的驗證集識別準確率低3.7個百分點。與其他模型相比,改進后的CAM-ResNet18模型在飼料原料數據集上的識別效果最佳。

模型參數量方面,CAM-ResNet18模型較原ResNet18模型參數量增加1.3×105,增長0.29%,對模型整體性能影響較小。浮點運算量反映網絡模型的復雜程度,CAM-ResNet18模型與ResNet18模型的浮點運算量相同,為1.82×109,高于AlexNet,但低于ResNet34和VGG16。ResNet34模型的識別準確率與CAM-ResNet18較為接近,但ResNet34模型參數量約增大1倍,浮點運算量也增大1倍。

規定自載入目標飼料原料圖像至識別完成為一次完整檢測,且各模型中飼料原料圖像載入方式相同。CAM-ResNet18模型單次圖像識別時間為2.58 ms,較ResNet18模型檢測時間慢0.02 ms,較ResNet34快0.27 ms,較VGG16快0.4 ms。

綜合對比5種卷積神經網絡模型,CAM-ResNet18模型具有最高的識別準確率,較快的檢測速度,模型參數量與浮點計算量較小。對比ResNet18模型與CAM-ResNet18模型,CAM-ResNet18在識別準確率上提升0.6個百分點,識別時間變化不大,且浮點運算量以及模型參數量幾乎沒有增加,說明其性能提升的同時并未大幅增加時間復雜度與空間復雜度,體現了模型改進的有效性。

4.3 飼料原料種類識別結果的混淆矩陣

混淆矩陣可以用來可視化地展示分類模型的性能,是評判模型結果的重要指標之一,常用于評判分類器模型[31]。本研究的CAM-ResNet18網絡模型在經數據增強的飼料原料數據集上訓練后,使用預先留出的測試集測試模型的效果,圖像總數為2 000幅,每類飼料原料200幅,得到混淆矩陣如圖9所示。由圖9可知,預測值密集分布在對角線上,說明該模型的分類水平非常準確。觀察預測錯誤的樣本可知,少量稻谷和小麥出現預測錯誤,可能是因為小麥粉以及稻谷粉的顏色和粉碎粒度等特性都較為相似;玉米粉和膨化玉米粉的顏色極為相近。在特征提取過程中易混類特征差異不大,不易區分,因此容易出現識別錯誤??傮w來說,本文提出的CAM-ResNet18模型在采集的飼料原料數據集上的分類性能優秀,能夠較好地對飼料原料種類進行區分,準確地對飼料原料種類進行判別。

圖9 飼料原料測試集混淆矩陣

根據混淆矩陣可以計算模型對應各個類別的準確率、精確度、召回率、特異度和F1值。計算結果如表3所示。

表3 CAM-ResNet18模型飼料原料種類識別結果

由表3可知,本研究模型的召回率、F1值、特異度都很高,10種飼料原料分類精確度均在98.0%以上。在特異度上,本模型均在99.8%以上。以F1值為標準對其分類性能排序的結果為:棉籽粕、面粉、魚粉、麩皮、花生粕、豆粕、玉米、膨化玉米、稻谷、小麥,其中小麥和稻谷識別效果略有不足,但總體來看測試集的識別準確率達99.4%,召回率達99.4%,F1值達99.4%,特異度達99.9%。這表明CAM-ResNet18模型在飼料原料種類識別任務上表現優異。

5 結論

(1)CAM-ResNet18網絡模型在驗證集中飼料原料的識別準確率達到99.1%,識別時間為2.58 ms。與ResNet18、ResNet34、AlexNet、VGG16模型相比,識別準確率分別提升0.6、0.2、3.7、1.1個百分點,識別時間較ResNet34、VGG16模型有所減小。

(2)使用混淆矩陣可視化地展示分類模型的性能,測試集的整體識別準確率達99.4%,召回率達99.4%,特異度達99.9%,F1值達99.4%,其中面粉、棉籽粕、魚粉3類飼料原料的精確度、召回率和F1值均達到100%。證明了CAM-ResNet18模型適用于飼料原料種類的識別分類。

猜你喜歡
飼料原料注意力卷積
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
一種基于卷積神經網絡的性別識別方法
常用谷物飼料原料營養成分
廣東飼料原料報價
廣東飼料原料報價
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合