熊夢園 詹煒 桂連友 劉虎 王佩文 韓濤 李偉豪 孫泳
摘要:針對當前玉米病害發(fā)生量大、病情復雜、難以防治,嚴重影響玉米產(chǎn)量和質量的問題,提出了一種基于卷積神經(jīng)網(wǎng)絡和遷移學習的玉米葉片病害檢測與識別方法。首先收集了3 827張玉米健康葉片圖像和3種不同的玉米病害葉片圖像樣本,為了使模型擁有更好的泛化能力,使用生成對抗網(wǎng)絡對樣本進行處理,得到分辨率更高的樣本,再對樣本進行平移旋轉,使樣本數(shù)量達到5 153張。然后構建ResNet模型,分別對ResNet34、ResNet50及對其添加CBAM注意力機制和FPN特征金字塔網(wǎng)絡,并通過遷移學習方法將預訓練權重遷移到訓練模型中。試驗結果表明,ResNet50結合CBAM注意力機制模型的準確率達到了97.5%,相比ResNet50模型準確率提升了4.2百分點,相比ResNet34模型準確率提升了4.9百分點。本研究表明,提出的ResNet50結合CBAM注意力機制模型能夠較精準地檢測識別玉米枯萎葉、銹病葉、灰斑病葉和健康葉。并可將模型安裝在無人機等移動設備上,實現(xiàn)對玉米葉片病害智能化防治,而且后期還會擴充更多的植物病害數(shù)據(jù),實現(xiàn)對多類植物病害的檢測,為智慧農(nóng)業(yè)添磚加瓦,促進農(nóng)業(yè)防治現(xiàn)代化。
關鍵詞:玉米病害識別;ResNet;CBAM注意力機制;智慧農(nóng)業(yè);計算機視覺
中圖分類號:TP391.41 文獻標志碼:A
文章編號:1002-1302(2023)08-0164-07
基金項目:國家自然科學基金面上項目(編號:31772206、31972274);中國高校產(chǎn)學研創(chuàng)新基金新一代信息技術創(chuàng)新項目(編號:2020ITA03012)。
作者簡介:熊夢園 (1998—),男,湖北枝江人,碩士,主要從事計算機視覺技術應用研究。E-mail:2021710574@yangtzeu.edu.cn。
通信作者:詹 煒,博士,教授,主要從事計算機視覺技術應用研究。E-mail:zhanwei814@yangtzeu.edu.cn。
玉米作為我國糧食種植的重要部分,種植面積最大,總產(chǎn)最多,是重要的飼料和工業(yè)原料,對保障我國糧食安全具有重要戰(zhàn)略作用,因而玉米病害防治也尤為重要。玉米病害主要發(fā)生在葉片,如果在大面積種植地通過肉眼去觀察病害,或者通過以往種植經(jīng)驗盲目采取防治措施,不僅不能清楚地把握病情,而且會造成防治成本大量浪費[1-3]。
隨著人工智能和計算機視覺技術的不斷發(fā)展,迎來了智慧農(nóng)業(yè)時代,植物病害檢測方法已由傳統(tǒng)人工觀察方法向深度學習檢測方法過渡。傳統(tǒng)方法需要提取病害紋理、顏色特征[4],或是用肉眼直接觀察,這樣效率和準確度都不高,難以真正投入應用,而深度學習檢測方法,能夠高效準確地檢測植物病害情況。在卷積神經(jīng)網(wǎng)絡的研究開始之前,全連接神經(jīng)網(wǎng)絡被廣泛用于圖像處理,但是由于全連接神經(jīng)網(wǎng)絡的參數(shù)多,因此網(wǎng)絡模型較大,運算速度往往達不到實時要求,而且容易產(chǎn)生過擬合現(xiàn)象,隨著數(shù)值計算效率得到巨大提升,卷積神經(jīng)網(wǎng)絡處理數(shù)字圖像數(shù)據(jù)的巨大潛能被充分發(fā)現(xiàn)挖掘[5-7]。如陶國柱提出了一種基于改進MobileNetV2的茉莉花病害識別網(wǎng)絡模型,在兼顧速度的同時,精度達到了94.34%[8]。劉君等提出了一種基于YOLO卷積神經(jīng)網(wǎng)絡的番茄病害識算法,對8類番茄病害的平均檢測精度達到了85.09%[9]。戴子兵提出了基于改進U-Net的水稻病害檢測方法[10]。郭利進等提出一種改良的LeNet深度卷積神經(jīng)網(wǎng)絡用于玉米葉部病害識別和分類,平均準確率達到了95.39%[11]。上述網(wǎng)絡雖然能夠在復雜的環(huán)境中取得不錯的效果,但是精度還有很大的提升空間。
本研究基于PyTorch框架及ResNet模型,對玉米葉片病害數(shù)據(jù)集進行識別分類,并將改進算法與其他網(wǎng)絡模型方法進行對比,可將訓練好的模型安裝在無人機上,對玉米病害進行實時檢測和針對性防治。
1 材料與方法
1.1 數(shù)據(jù)來源
試驗數(shù)據(jù)主要收集了3 827張玉米葉病害圖片。分別是枯萎病葉、銹病葉、灰斑病葉和健康葉,樣圖如圖1所示。
1.2 數(shù)據(jù)預處理
由于各類病害樣本數(shù)不是十分充足,為了防止模型過擬合,能夠有更好的訓練效果,因此在訓練之前通過生成對抗網(wǎng)絡對樣本進行處理,使得到的新樣本分辨率更高,并且對生成對抗網(wǎng)絡處理得到的樣本平移和旋轉,使樣本圖片擴充到了5 153張,如圖2 圖像預處理所示。
1.3 方法
1.3.1 網(wǎng)絡模型
本研究采用的網(wǎng)絡模型是ResNet50,通過殘差模塊在增加模型深度的同時防止梯度消失[12],為了提高模型的精準度,在ResNet50的每一層上添加了CBAM注意力模塊,在空間和通道2個不同的維度上添加注意力,然后與輸入的特征映射相乘,對玉米葉片病害特征圖進行特征提取[13]。本研究整體方案如圖3所示,網(wǎng)絡結構如圖4所示。
1.3.2 殘差結構
ResNet在2015年由何愷明等提出,并且該網(wǎng)絡在多個比賽中獲得了不錯的成績,ResNet網(wǎng)絡中提出的殘差結構在如今應用越來越廣泛。深度卷積網(wǎng)絡在圖像分類上取得了很大的成功,例如LeNet、VGGnet和GoogLeNet都通過增加網(wǎng)絡深度,取得了較好的性能。但是后面發(fā)現(xiàn),隨著網(wǎng)絡的加深,會出現(xiàn)梯度消失或者梯度爆炸,反而會導致準確率下降,而ResNet就可以解決這一問題,ResNet學習的是殘差函數(shù)G(x)= F(x)-x,當G(x)=0時,F(xiàn)(x)=x,就是恒等映射。而ResNet沒有加入其他的計算復雜度和參數(shù),當優(yōu)化目標無限接近恒等映射時,相比學習一個新的映射函數(shù),學習找到對恒等映射的干擾會更加簡單。完成這一功能的就是如圖5所示的殘差塊結構,圖5-a是用于50層以下網(wǎng)絡的結構,圖5-b是用于50層及更高層網(wǎng)絡的結構。
隨著網(wǎng)絡層數(shù)的增加,計算量會大量增加,為了解決這個問題,對殘差塊做了計算優(yōu)化,即將圖 5-a 中2個3×3的卷積層替換為1×1+3×3+1×1。圖5-b中3×3的卷積層首先在一個降維 1×1 卷積層下減少了計算,然后在另一個1×1的卷積層下做了還原,既保持了精度又減少了計算量。
1.3.3 CBAM注意力機制
注意力機制類似人的注意力,通過觀察目標所有特征,得到比較重要的目標特征,然后投入更多的注意力資源,獲取更多更詳細的信息,減少甚至忽略對其他特征的關注。即當模型計算能力一定時,注意力機制可以將算力分配到需要注意的特征上,這樣就可以更好地學習特征,并且可以減少資源浪費。CBAM結合了通道注意力模塊和空間注意力模塊,分別在通道和空間位置上設置注意力機制,并且合并起來對特征進行優(yōu)化,其結構如圖6所示。通道注意力模塊關注輸入圖像中有意義的內(nèi)容,空間注意力模塊專注信息的位置,這2個注意力模塊可以按照并行或不同順序串行連接[14-15]。
通道注意力機制輸入特征是H×W×C,經(jīng)過最大池化和平均池化可以得到2個1×1×C的特征圖,然后通過全連接神經(jīng)網(wǎng)絡,再與權重系數(shù)相乘,其結構如圖7所示。通道注意力機制可以表達為:
空間注意力機制將輸入的特征圖分別進行最大池化和平均池化,得到2個H×W×1,然后拼接起來得到H×W×2的特征圖,再經(jīng)過卷積核為 7×7的卷積降為1通道,然后再通過Sigmoid函數(shù)生成空間權重系數(shù),其結構如圖8所示,表達式如下:
由于CBAM是輕量級模塊,將其運用到ResNet網(wǎng)絡中,在保留圖像信息并提升小樣本玉米病害識別準確率的同時 不會增加過多的網(wǎng)絡參數(shù)。玉米
病害圖像特征經(jīng)過CBAM處理后,輸出更具病害本質特性的精細特征。
1.3.4 遷移學習
遷移學習是一項允許對現(xiàn)有模型算法進行微調(diào),以應用于新領域或新功能的技術。遷移學習中可以將數(shù)據(jù)分成源數(shù)據(jù)和目標數(shù)據(jù)。源數(shù)據(jù)是與本項目無直接關系的數(shù)據(jù),通常具有較大的數(shù)據(jù)集,目標數(shù)據(jù)是與任務直接相關的數(shù)據(jù),數(shù)據(jù)量一般較小。其主要思想是從其他相關領域中遷移標注數(shù)據(jù)或模型結構 運用到現(xiàn)有的模型中加以改進,完成目標域的任務[16]。遷移學習改變了傳統(tǒng)訓練神經(jīng)網(wǎng)絡模型的固有模式,增加了使用其他域進行預訓練的步驟,降低了資源損耗,提高了訓練效率[17]。本項目導入ResNet50在其他域數(shù)據(jù)上的預訓練模型,然后對玉米病害分類模型進行訓練。如圖9所示,其中微調(diào)的卷積層和模型的修改都會影響遷移訓練的結果。
1.3.5 學習率
在訓練過程中,學習率表示網(wǎng)絡參數(shù)在每次迭代時改變的幅度。當學習率過大時,損失函數(shù)會產(chǎn)生震蕩而不收斂,當學習率過小時,損失函數(shù)收斂速度慢。因此在神經(jīng)網(wǎng)絡訓練過程中,需要不斷調(diào)整網(wǎng)絡的參數(shù)以使模型達到更好的預測效果,其中參數(shù)更新的公式如下:
試驗中嘗試了指數(shù)衰減、余弦退火和余弦退火重啟機制,最終發(fā)現(xiàn)余弦退火學習率收斂更快,精確度更高,更適合本試驗。
2 結果與分析
2.1 試驗條件
所有試驗均使用同一平臺,使用的計算機設備的處理器為 Intel CoreTM i9-9900K CPU @ 3.60 GHz,顯卡是NVIDIA GeForce RTX 2080Ti,顯存為12 G。用到的軟件開發(fā)環(huán)境為Windows10企業(yè)版操作系統(tǒng),Python環(huán)境為3.7,Cuda 10.0,深度學習框架為Pytorch 1.7.1。
2.2 評價指標
為了能夠比較全面地評價模型的性能,筆者所在課題組將從準確率(A)、損失值(L)、預測時間(T)和模型大?。∕)4個指標評價模型。準確率[19]反映的是識別結果中識別正確的圖像數(shù)量占全部識別圖像數(shù)量的比率,可以反映模型的訓練結果,表達式如下:
其中,TP指實際是正類且預測為正類的樣本數(shù)量,F(xiàn)P指實際為負類但預測為正類的樣本數(shù)量。
損失值可以描述模型所預測的值與其真實值的差距,損失值越小,表明模型越準確。本模型采用的是交叉熵損失函數(shù),它在作分類訓練時是非常有用的。交叉熵主要描述的是實際值與期望值的距離,即交叉熵的值越小,這2個值就越接近。假設概率分布p為期望輸出,概率分布q為實際輸出,H(p,q) 為交叉熵,則
訓練時間也是評價模型優(yōu)良程度的一方面,因為訓練時間更短,可以提高模型使用效率。而且在后期拓展到檢測其他植物病害時,會投入大量時間去訓練模型,訓練時間短就可以節(jié)省大量時間。另外就是檢測每一張圖片的速度,這關系到網(wǎng)絡模型是否具有較好的效率和時效性,能否真正投入到實際運用中。因為將模型裝載到無人機上進行實時檢測識別并噴灑農(nóng)藥時,需要及時識別到玉米葉和具體病害,然后針對性噴灑農(nóng)藥。
模型大小在這里是指模型所占存儲空間和每一次訓練所占用的存儲空間大小,如果模型太大,設備內(nèi)存小,也不能完整使用。
2.3 試驗結果
通過基于ResNet50網(wǎng)絡加入CBAM注意力的模型,將預處理的數(shù)據(jù)集劃分成80%訓練集和20%驗證集,將模型迭代訓練500次,最終蟲病害分類識別率達到了97.5%,測試樣圖如圖10所示。訓練過程中準確率、損失值和學習率的變化如圖11所示。
為了使試驗更具科學性和合理性,在試驗過程中增加了消融試驗,在控制變量的情況下,分別對網(wǎng)絡、改進方法、數(shù)據(jù)集處理3項進行調(diào)整,得到的結果如表1所示。
2.4 分析
為了尋求更精確的試驗結果,由于銹病和灰斑病都是小目標,因此嘗試了ResNet+FPN結構[20]。小目標檢測是語義分割和目標檢測任務中經(jīng)常遇到的難題。當目標非常小時,例如玉米灰斑病和銹病的一個斑點才幾十個像素,卷積網(wǎng)絡在實現(xiàn)卷積操作時,從一個特征層到下一個特征層,無論步長是大還是小,卷積核都會占滿整個圖片。然而大目標所占的像素會遠大于小目標,因此大目標就會被卷積很多次,所以就會學習到很多關于大目標的特征,而小目標很容易被卷積操作跳過,因此學習到的小目標特征就會很少,經(jīng)過很多層的卷積之后,小目標的特征就會越來越少。如圖12所示,F(xiàn)PN的提出是為了實現(xiàn)更好的特征圖融合,一般的網(wǎng)絡都是直接使用最后一層的特征圖,雖然最后一層的特征圖語義強,但是位置和分辨率都比較低,容易檢測不到比較小的物體。FPN[21]通過自上向下的路徑及橫向連接將分辨率低但語義強的圖像上層特征和語義弱但分辨率高的圖像下層特征進行融合,進而將玉米葉片病害圖像的語義信息和空間信息相結合,使得神經(jīng)網(wǎng)絡對于特征的檢測性能有了很大的提升。但是通過實踐來看,特征金字塔計算量特別大,運行起來也很慢,并且準確率也只有85%,該方法在準確度、訓練時間和對機器性能要求上都不太符合本次項目需求,因此綜合來看還是ResNet50+CBAM更符合需求。
3 結論
針對目前玉米病害泛濫、受災損失大的問題,為了能夠精準噴灑農(nóng)藥,高效防治,降低污染,本研究采用ResNet50+CBAM注意力機制的方法,對玉米3種常見且難以防治的病害和健康葉片進行識別研究。模型將ResNet50網(wǎng)絡每一層融入CBAM注意力機制,更有利于網(wǎng)絡學習到病害特征,平均識別精度達到了97.5%,相比ResNet50模型準確率提升了4.2百分點,相比ResNet34模型準確率提升了4.9百分點。
在其他條件相同的情況下,本研究比較了ResNet34、ResNet50、ResNet50+CBAM和ResNet50+FPN方法,證實了ResNet50+CBAM方法在準確率和速度2個方面綜合實力最強。同時,也探究了不同大小的數(shù)據(jù)集對不同模型性能的影響,并且還探究了不同優(yōu)化算法和學習率對模型收斂速度和準確率的影響。研究結果表明,遷移學習技術能在一定程度上加快模型收斂速度;隨著數(shù)據(jù)集的擴充增強,試驗數(shù)據(jù)更加準確;余弦退火學習率效果最好,準確率最高,模型收斂速度也較快[22-24]。
在后期投入使用中,還將不斷完善模型,而且計劃將更多植物病害數(shù)據(jù)導入模型訓練,得到可以檢測多類植物病害的模型,這樣可以更好地投入到生產(chǎn)實踐中,節(jié)省人力物力,提高生產(chǎn)量,為智慧農(nóng)業(yè)添磚加瓦[25-26]。
參考文獻:
[1]張會敏,謝澤奇,張善文. 基于注意力膠囊網(wǎng)絡的作物病害識別方法[J]. 江蘇農(nóng)業(yè)科學,2022,50(6):101-106.
[2]李 彧,余心杰,郭俊先. 基于全卷積神經(jīng)網(wǎng)絡方法的玉米田間雜草識別[J]. 江蘇農(nóng)業(yè)科學,2022,50(6):93-100.
[3]劉翱宇,吳云志,朱小寧,等. 基于深度殘差網(wǎng)絡的玉米病害識別[J]. 江蘇農(nóng)業(yè)學報,2021,37(1):67-74.
[4]萬軍杰,祁力鈞,盧中奧,等. 基于遷移學習的GoogLeNet果園病蟲害識別與分級[J]. 中國農(nóng)業(yè)大學學報,2021,26(11):209-221.
[5]曾偉輝,唐 欣,胡根生,等. 基于卷積塊注意力膠囊網(wǎng)絡的小樣本水稻害蟲識別[J]. 中國農(nóng)業(yè)大學學報,2022,27(3):63-74.
[6]張軍鋒,尚展壘. 基于深度學習卷積神經(jīng)網(wǎng)絡的花生籽粒完整性檢測[J]. 食品與機械,2022,38(5):24-29,36.
[7]戴澤翰,鄭 正,黃莉舒,等. 基于深度卷積神經(jīng)網(wǎng)絡的柑橘黃龍病癥狀識別[J]. 華南農(nóng)業(yè)大學學報,2020,41(4):111-119.
[8]陶國柱. 基于卷積神經(jīng)網(wǎng)絡的茉莉花病蟲害識別算法研究[D]. 南寧:廣西民族大學,2021:1-16.
[9]劉 君,王學偉. 基于YOLO的番茄病蟲害識別算法[J]. 中國瓜菜,2020,33(9):18-22,38.
[10]戴子兵. 基于語義分割的水稻病害檢測技術[D]. 成都:西華大學,2020:1-25.
[11]郭利進,李 言. 基于DCNN的玉米葉部病害識別方法[J]. 糧食與油脂,2022,35(3):72-75,98.
[12]王海燕,張 渺,劉虎林,等. 基于改進的ResNet網(wǎng)絡的中餐圖像識別方法[J]. 陜西科技大學學報,2022,40(1):154-160.
[13]肖成勇,李 擎,王 莉,等. 基于CBAM-Unet的鐵礦球團邊緣分割實驗方法[J]. 燒結球團,2022,47(2):8-15,23.
[14]張德春,李海濤,李 勛,等. 基于CBAM和BiFPN改進YoloV5的漁船目標檢測[J]. 漁業(yè)現(xiàn)代化,2022,49(3):71-80.
[15]喬星星,施文灶,劉芫汐,等. 基于ResNet雙注意力機制的遙感圖像場景分類[J]. 計算機系統(tǒng)應用,2021,30(8):243-248.
[16]王思穎. 基于遷移學習的多領域圖像內(nèi)容審核研究[D]. 成都:電子科技大學,2022:12-20.
[17]高 爽,徐巧枝. 遷移學習方法在醫(yī)學圖像領域的應用綜述[J]. 計算機工程與應用,2021,57(24):39-50.
[18]張 爽. 基于深度學習的雙目立體匹配方法研究[D]. 西安:中國科學院大學(中國科學院西安光學精密機械研究所),2020:31-34.[HJ2.1mm]
[19]張睿哲. 基于機器學習的黃砂巖聲發(fā)射平靜期識別研究[D]. 太原:太原理工大學,2021:39-40.
[20]李 莉,喬 璐,張浩洋. 結合FPN改進R-FCN的肺結節(jié)檢測算法[J]. 計算機應用與軟件,2022,39(4):179-184.
[21]楊建華. 基于FPN的高分辨率建筑物圖像的語義分割[J]. 遙感信息,2021,36(4):133-141.
[22]Huang H Z,Zhan W,Du Z Q,et al. Pork primal cuts recognition method via computer vision[J]. Meat Science,2022,192:108898.
[23]She J H,Zhan W,Hong S B,et al. A method for automatic real-time detection and counting of fruit fly pests in orchards by trap bottles via convolutional neural network with attention mechanism added[J]. Ecological Informatics,2022,70:101690.
[24]Hong S B,Zhan W,Dong T Y,et al. A recognition method of Bactrocera minax (Diptera:Tephritidae) grooming behavior via a multi-object tracking and spatio-temporal feature detection model[J]. Journal of Insect Behavior,2022,35:67-81.
[25]Zhang Z L,Zhan W,He Z Z,et al. Application of spatio-temporal context and convolution neural network (CNN) in grooming behavior of bactrocera minax (Diptera:Trypetidae) detection and statistics[J]. Insects,2020,11(9):565.
[26]Zhan W,Sun C F,Wang M C,et al. An improved Yolov5 real-time detection method for small objects captured by UAV[J]. Soft Computing,2022,26(1):361-373.