王圓圓 林建 王姍
摘要:針對現有的卷積神經網絡模型過于依賴設備的計算和存儲能力、水稻病蟲害形狀大小不一、遮擋造成的病害特征顯著性弱、漏檢率高等問題,采用輕量化、易部署的YOLOv4-tiny模型檢測和識別水稻病蟲害。首先收集831張4種不同的水稻病害葉片圖像樣本,為了使模型具有更好的泛化能力,對已有數據進行數據增強,將樣本數量擴增到了5 320張。然后構建YOLOv4-tiny輕量化模型,與經典的YOLOv4算法模型相比,其主干特征提取網絡CSPDarkNet53模塊替換為CSPDarkNet53_tiny,使用CPSnet進行通道的分割,實現了網絡模型的壓縮并提高了訓練速度;添加了FPN結構,對有效特征層進行特征融合;依據模型評價指標,通過試驗將YOLOv4-tiny輕量化網絡與經典的YOLOv4網絡、Faster-RCNN網絡、YOLOv4-MobileNet系列輕量化網絡、YOLOv4-GhostNet輕量化網絡和SSD輕量化網絡進行對比。結果表明,YOLOv4-tiny的平均準確率可以達到81.79%,檢測速度可以達到90.03幀/s,模型權重大小為22.4 MB,能夠比較精準地識別水稻胡麻斑病、白葉枯病、稻瘟病和窄條斑病,保證在輕量化計算成本的基礎上獲得較好的檢測精度,可以為水稻病蟲害識別方法提供參考。
關鍵詞:輕量化模型;YOLOv4-tiny;水稻病蟲害;目標檢測;精準農業(yè)
中圖分類號:TP391.41文獻標志碼:A
文章編號:1002-1302(2023)16-0147-07
收稿日期:2022-11-19
基金項目:國家重點研發(fā)計劃(編號:2016YFD0300508)。
作者簡介:王圓圓(1999—),女,山東棗莊人,碩士研究生,主要研究方向數字圖像處理與病蟲害目標檢測。E-mail:1729734824@qq.com。
通信作者:林 建,博士,副教授,碩士生導師,主要研究方向逆向設計、數字圖像處理。E-mail:1827740@qq.com。
水稻在我國的種植歷史悠久,約占全國耕地總面積的25%,不僅是我國的三大主糧之一,而且產量一直處于世界領先地位,種植面積位居世界第二,是中國農業(yè)生產中不可替代的重要農作物。但在水稻的生長周期內,伴隨著水稻病蟲害的頻發(fā),給我國水稻產業(yè)造成了嚴重的經濟損失。長期以來,傳統(tǒng)農作物的識別主要依靠人工鑒別的方式,一般主要依靠當地植保部門的農業(yè)專家識別,但人工鑒別存在的問題是工作量大容易誤診、識別效率低下,對水稻病蟲害的鑒別種類有限等[1]?,F階段,普遍采用的水稻病蟲害防治方法主要是播種前對種子包衣消毒處理,提高幼苗對病害細菌的抵抗力,噴灑病蟲害藥劑或使用誘光燈誘捕害蟲,但這些防治方法無疑都在一定程度傷害了水稻幼苗的正常生長,化學劑的過度使用還會對個人的身體健康和環(huán)境保護造成負面影響,除此之外,在農作物市場上,消費者也越來越傾向于選擇有機生產的農產品,這些發(fā)展預計將會導致化學劑在農作物中的使用越來越少,強調了早期準確識別水稻等農作物病害的重要性。因此,嘗試將計算機技術應用到水稻病蟲害識別中,不僅有助于為水稻病蟲害的防控提供理論依據和技術支持,而且對提高水稻產量、促進農作物市場的健康發(fā)展和經濟發(fā)展具有重要的現實意義。
根據對圖像病害特征提取方式的不同,目前基于圖像的農作物病蟲害檢測方法大致可以分為兩類:基于傳統(tǒng)機器學習的方法和基于深度學習的方法。傳統(tǒng)的機器學習方法識別水稻病蟲害的主要思路是:首先基于采集的數據集對不同的水稻病蟲害特征進行提取,常用的提取方法是GIST、SIFT和SURF等,之后采取以K近鄰分類方法、支持向量機方法以及決策樹等為代表的傳統(tǒng)機器學習方法對特征分類[2]。范春全等采用橢圓型度量矩陣提升SVM分類器識別水稻蟲害能力[3]。王映龍等應用圖像處理技術對水稻蟲害進行識別[4]。姚青等提出將水稻多特征提取與機器學習相結合,實現對水稻紋枯病的識別[5]。但基于傳統(tǒng)機器學習的病害識別方法主要依賴于準確提取的特征參數,對輸入的圖片進行分類,而且一般僅能提取幾種典型的特征來表達幾種病害的所有信息,處于復雜背景下圖像特征提取還需要多種算法相結合。只能提取少量的典型特征帶來的結果就是提取的特征相似度高,而現實中水稻病害的種類和形狀是多種多樣的,導致識別效果不夠理想。
但隨著深度學習技術不斷被應用到農作物病蟲害識別的領域中來,房若民等使用Mobile Net模型檢測10個物種,包括27個類型的農業(yè)病蟲害[6]。燕斌等利用Inception-V3網絡和Image Net數據集實現8種病蟲害的識別[7]。蔣豐千等將卷積神經網絡及輪廓分割等預處理方法結合起來,以生姜的病蟲害圖像數據集為研究對象,對白星病、根結線蟲病、炭疽病和姜瘟病進行分類研究,正確率高達96%[8]。蒲秀夫等提出使用二值化卷積神經網絡模型進行農業(yè)病蟲害的識別,為后續(xù)的植物病蟲害研究提供了理論依據[9]。楊穎等提出了基于方向梯度直方圖和局部二值化模式的水稻病蟲害識別方法,在小樣本訓練以及效率高等方面均具有明顯的優(yōu)勢[10]?;谏疃葘W習的識別方法通常需要大量的數據作為模型的訓練基礎以獲取較高的識別精度,而現實中水稻的病蟲害數據集構建還不夠完善,無法提供足夠大的訓練樣本。為了彌補樣本不夠的缺陷,往往采取提高深度學習深度的策略,這樣導致的負面影響是模型復雜度變高,參數量和體積變大,這就限制了在移動設備中的應用。對于現實投入防治的設備而言,計算力和存儲力都非常有限,過大的模型和冗余的參數會造成存儲資源的浪費,因此,使用輕量化的水稻病害檢測方法至關重要。
1 圖像數據集和預處理
1.1 試驗數據
本試驗采用PASCAL VOC數據集對模型進行預訓練,很多優(yōu)秀的計算機視覺模型都是基于PASCAL VOC數據集推出的,尤其是一些目標檢測模型。本試驗中的樣本數據集來源主要是Kaggle網站采集,構建水稻病害數據集831張,包括4類水稻病害數據,分別為稻瘟病、水稻窄條斑病、水稻白葉枯病和水稻胡麻斑病。其中稻瘟病224張,水稻窄條斑病213張,水稻白葉枯病140張,水稻胡麻斑病254張。水稻病蟲害樣例如圖1所示。
1.2 數據增強
為防止訓練數據量過少發(fā)生過擬合現象,本研究采用旋轉、放大縮小、水平翻轉、垂直翻轉、添加隨機噪聲和提升亮度等數據增強的方式對數據集進行擴增,最終水稻病蟲害數據集包含5 320張圖像,水稻病蟲害區(qū)域數12 855個,按照8∶1∶1的比例劃分為訓練集(4 256張)、驗證集(532張)和測試集(532張),其中訓練集水稻病蟲害數據集分布如表1所示。擴增后的數據集為PASCAL VOC格式,使用LabelImg工具人工標注每張圖片照片中病蟲害目標所在的區(qū)域數據,生成.xml格式的標簽文件,記錄所有目標檢測框的位置、大小以及類別信息,經命名后存入標簽文件夾。
2 研究方法
2.1 經典的YOLOv4算法
首先,YOLOv4算法是一種經典的單階段目標檢測算法,網絡模型由輸入端Input、急轉網絡Backbone、頸部網絡Neck和頭部網絡Head共4個部分構成,網絡結構如圖2所示。
Input模塊通過Mosaic利用4張圖片拼接實現數據增強,豐富檢測物體的背景,Label Smoothing平滑對分類準確度做出懲罰,避免因模型分類太準確出現過擬合,Backbone模塊主要是采用CSPDarkNet53特征提取網絡,使用了殘差網絡Residual,主干部分是1次1×1卷積和1次3×3的卷積,殘差邊部分不做任何處理,直接將主干的輸入與輸出結合。采用CSPNet網絡結構,將原來的殘差塊的堆疊拆分為左右2個部分:主干部分繼續(xù)進行原來殘差塊的堆疊;另一部分則像一個殘差邊,在經過少量處理后連接到最后[11]。采用低成本的Mish激活函數,該函數具備光滑、非單調、上無界、有下界的特性,與其他常用函數如ReLU和Swish相比,泛化性能更好。
Neck模塊采用的是空間金字塔池化(SPP)結構+路徑聚合網絡(PAN)結構:SPP網絡結構通過不同池化核大小的最大池化進行特征提取,提高網絡的感受野,網絡中使用了3個不同尺度的池化(5×5、9×9、13×13),這樣會得到更加豐富的特征[12],其結構如圖3所示。作為Neck的特征融合模塊,一個重要特征就是對特征的反復提取,FPN是自頂向下,將高層的強語義特征傳遞下來,對整個金字塔進行增強,但是只增強了語義信息而沒有定位信息[13]。PAN就是針對這一點做了補充,用一個自底向上的金字塔將低層的強定位特征傳遞上去。
Head模塊中的Bounding box的損失函數為CIoU_Loss,它在DIoU_Loss的基礎上將長寬比考慮進去,一個優(yōu)異的回歸定位損失要考慮到重疊面積、中心點距離和長寬比,DIoU_Loss只考慮到了前2點,CIoU_Loss函數的改進使得目標框回歸后變得更加穩(wěn)定,不會出現發(fā)散的問題。
2.2 YOLOv4-tiny網絡算法
YOLOv4-tiny網絡模型是YOLOv4的輕量化簡潔版,在追求精度和速度之間達到了一個平衡,與經典的YOLOv4算法有以下幾個不同之處:(1)主干特征提取網絡的替換。YOLOv4-tiny網絡模型采用的是CSPDarkNet53_tiny替換CSPDarkNet53模塊作為主干特征提取網絡[14]。相比于YOLOv4中的CBL和ResBlock組成的主干特征提取網絡,該網絡主要由CBL和CPSBlock結構組成。CPSBlock首先將特征映射為2個部分,相當于對原來的殘差塊進行了一個拆分,拆分為兩部分,除主干部分繼續(xù)進行原來的殘差塊的堆疊外,另一部分則像一個殘差邊一樣,經過少量處理直接連接到最后[15],讓梯度流在2種不同的網絡路徑上進行傳播,最后重新組合在一起,增加梯度信息的相關差異性,大大較少了卷積神經網絡的計算量,彌補了YOLOv4中的ResBlock模塊計算量大的缺點。(2)激活函數的改變。使用LeakyReLU激活函數取代CBL中的Mish激活函數,有利于減少模型的參數量,提高卷積神經網絡的計算速度。(3)頸部網絡使用特征金字塔(FCN)結構。在特征融合部分,沒有采用YOLOv4中的空間金字塔池化(SPP)和路徑聚合網絡結構(PAN),而是使用特征金字塔結構對第1步獲得的2個26×26和13×13的有效特征層進行特征融合,FPN會將最后一個有效特征層卷積后進行上采樣,然后與上一個有效特征層進行堆疊并卷積[16]。(4)YOLOv4-tiny的預測模塊和YOLOv4類似,先使用k-means聚類算法生成錨框,調整輸入圖像的大小,使所有圖像具有相同的尺寸,然后將圖像分為大小為S×S的網格,每個網格使用B個邊界框檢測目標,之后圖像會生成S×S×B的邊界框覆蓋整個圖像[17]。圖4是13×13尺度的檢測示意圖,網格中的任意一個格子(如標注的紅色框格子)都對應了3個大小形狀不同的黃色框。
兩者都使用CIOU代替IOU計算邊界框定位損失,根據圖像的中心點落在了哪個網絡中來預測網絡中的邊界框,邊界框的置信度高于置信閾值,則邊界框保持不變,否則邊界框將被刪除,解決了真實框和預測框非重疊情形下梯度消失的問題,使得邊界框回歸變得更加穩(wěn)定[18],YOLOv4-tiny 的網絡結構如圖5所示。
2.3 試驗平臺
試驗硬件設置為Inter CoreTMi7-6850K,主存是3.60 GHz,模型在具有12 G顯存的NVIDIA GeForce GTX TITAN X上進行訓練,試驗采用的操作系統(tǒng)是Windows10操作系統(tǒng)。軟件環(huán)境為CUDA 11.6,采用的是pytorch 1.12.1深度學習框架。
2.4 模型訓練
模型在訓練過程中,首先將訓練集圖像的分辨率全部轉換為416像素×416像素。由于在實際生活中,水稻病蟲害區(qū)域可能會被其他健康葉片遮擋,影響目標識別的準精確率,所以本研究采用Mosaic數據增強方法,從訓練集中隨機選取4張圖像進行隨機裁剪并拼接為1張圖像,生成的圖像與4張訓練集圖像的分辨率一致,而在隨機裁剪的過程中,訓練集圖像目標框的一部分可能會被裁剪掉,從而模擬病蟲害目標區(qū)域被物體遮擋的效果[19],豐富樣本背景的復雜性,提高識別的準確率[20]。采用余弦退火策略降低學習率,目標類別數目為6,初始學習率為0.001,平滑標簽設置為0,權重衰減速率設置為0.000 5,動量設置為0.9,優(yōu)化器使用隨機梯度下降法(SGD),使用預訓練權重和凍結訓練的策略,將訓練過程分為凍結階段和解凍階段,總共設置了300次迭代。其中凍結訓練迭代次數為50次,批量為32;解凍訓練迭代次數為250次,批量為16。
2.5 評價指標
本試驗使用精確度(Precision)、召回率(Recall)、平均精度(AP)、F1分數和每秒傳輸幀數(FPS)來評價模型對水稻的病蟲害的識別效果。FPS為模型識別一幅圖像所需要的時間,作為模型識別速度的評判指標,其余各個評價指標的計算過程如公式(1)~(5)所示,其中,若一個實例是正類,并且被預測為正類,即為真正類(TP);若一個實例是正類,并且被預測為負類,即為假負類(FN);若一個實例是負類,并且被預測為正類,即為假正類(FP);若一個實例是負類,并且被預測為負類,即為真負類(TN)[21],p(rc) 表示在召回率rc的情況下的p值。Nc表示數據集中總圖片的數目,N表示數據集中待檢測目標的總類別數。
平均精度均值為
3 試驗結果
3.1 YOLOv4-tiny模型訓練結果
采用預訓練權重對YOLOv4-tiny模型進行訓練,對水稻白葉枯病、稻瘟病、水稻窄條紋病、褐水稻胡麻斑病4種病害的識別測試樣例如圖6所示,訓練集和驗證集的損失值變化如圖7所示。由圖6可知,損失值變化分別為訓練集損失值、驗證集損失值,前30次迭代損失值急劇降低,直到50次迭代之后迭代損失值的變化才趨于穩(wěn)定,在小范圍內振蕩。
3.2 不同輕量化模型對水稻病蟲害檢測性能比較
YOLOv4-MobileNet系列輕量化模型、YOLOv4-Tiny輕量化模型、YOLOv4-Ghostnet輕量化模型和YOLOv4模型分別迭代300輪,不同的模型在訓練集和驗證集上得到的準確率和損失變化曲線如圖8所示。從訓練集和驗證集的準確率變化可以看出,迭代200輪后YOLOv4-Ghostnet的識別準確率最高,其次就是YOLOv4-Tiny,準確率最低的是YOLOv4-MobileNetV2。從網絡訓練的收斂速度來看,YOLOv4-Tiny的驗證集初始損失值最低,平均損失值最低,在迭代100輪后幾乎已經完全收斂,而其余網絡則是在完成迭代200多輪之后才完全收斂,YOLOv4-MobileNetV3的平均損失值最高,在訓練集和驗證集上,YOLOv4-MobileNet系列輕量化模型的損失值波動最大,YOLOv4-Tiny模型波動相比較而言輕微。綜上可以得出,YOLOv4-Tiny輕量化模型比YOLOv4-MobileNet系列輕量化模型、YOLOv4-Ghostnet輕量化模型、經典YOLOv4模型在訓練集和驗證集上的識別率更高,完全迭代的次數更少,具有更強的魯棒性。
由表2可知,YOLOv4-Tiny輕量化模型的F1值略高于其余各個YOLOv4的輕量化模型(窄條斑病除外),YOLOv4-Tiny對4類病蟲害檢測目標的F1平均值最高,為0.78,表明其綜合準確率和召回率最好。
3.3 不同模型對水稻病蟲害檢測效果
試驗測試了各種不同的網絡模型在識別水稻病蟲害圖像上的平均準確率和模型權重大小以及每秒鐘傳輸的幀數,如表3所示??梢园l(fā)現,YOLOv4-Tiny的模型權重大小在僅為YOLOv4-Ghostnet一半的情況下,mAP值僅減少了1.17百分點,并且每秒鐘的傳輸幀數增加了60.39,與YOLOv4-MobileNet系列和SSD-MobileNetV2相比,YOLOv4-Tiny的準確率均有明顯提升,但權重大小是遠遠小于其余網絡的,這表明YOLOv4-Tiny網絡模型在保證了一定準確率的前提下,較好地滿足了輕量化的需求。識別準確率最低的是Faster-RCNN-Restnet50,僅為71%,SSD-VGG16的識別率最高,SSD網絡是Faster-RCNN和YOLO系列的結合版,其對尺度變化較大的物體圖像的泛化能力更好,采用多尺度特征圖進行檢測,可以根據圖像被檢測區(qū)域的大小在特征圖上每一點處選取不同長寬比的選框,這一特點適合水稻病蟲害區(qū)域形狀大小多變的特點,提高識別的準確率。但是SSD-MobileNetV2識別速度和準確率都比YOLOv4-Tiny要低,綜合考慮,YOLOv4-Tiny在水稻病蟲害圖像的識別中有更好的性能優(yōu)勢。
4 結論
本研究以水稻病蟲害為研究對象,針對實際應用中的水稻病蟲害識別設備計算力和存儲力有限以及水稻病蟲害需要快速、實時被識別的需求,建立了包括水稻白葉枯病、水稻窄條紋病、胡麻斑病以及稻瘟病等5種病害葉部圖像數據集,使用易于部署的輕量級YOLOv4-Tiny網絡對模型進行微調,結合遷移學習和卷積神經網絡的訓練技巧,將YOLOv4-Tiny與經典的YOLOv4、Faster-RCNN、SSD 、YOLOv4-MobileNet系列、SSD-MobileNetV2以及YOLOv4-Ghostnet進行了對比試驗,結果表明,與其余模型相比,YOLOv4-Tiny具有最佳的整體檢測性能,對水稻病蟲害檢測的平均精度和F1平均值分別為81.79%和0.78,與YOLOv4-Ghostnet、YOLOv4-MobileNet系列相比都略高,權重大小僅為22.4 MB,YOLOv4的權重是YOLOv4-Tiny的10.89倍,雖然YOLOv4-Ghostnet的識別準確率比YOLOv4-Tiny要高1.17百分點,但其權重是YOLOv4-Tiny的近2倍,每秒傳輸幀數也不及YOLOv4-Tiny。綜上所述,基于YOLOv4-Tiny模型的水稻病蟲害識別,具有權重小、準確率高以及識別速度快的特點,便于部署在機器上進行實時檢測,輕量便捷,各項性能具有較高的水平和魯棒性,可以為水稻病蟲害識別在移動端的良好應用提供參考。
參考文獻:
[1]王忠培,張 萌,董 偉,等. 基于遷移學習的多模型水稻病害識別方法研究[J]. 安徽農業(yè)科學,2021,49(20):236-242.
[2]鮑文霞,邱 翔,胡根生,等. 基于橢圓型度量學習空間變換的水稻蟲害識別[J]. 華南理工大學學報(自然科學版),2020,48(10):136-144.
[3]范春全,何彬彬. 基于遷移學習的水稻病蟲害識別[J]. 中國農業(yè)信息,2020,32(2):36-44.
[4]王映龍,戴香糧. 圖像處理技術在水稻蟲害系統(tǒng)中的應用[J]. 微計算機信息,2007,23(26):274-275,256.
[5]姚 青,張 超,王 正,等. 分布式移動農業(yè)病蟲害圖像采集與診斷系統(tǒng)設計與試驗[J]. 農業(yè)工程學報,2017,33(增刊1):184-191.
[6]房若民,沈凱文,李浩偉. MobileNet算法的嵌入式農業(yè)病蟲害識別系統(tǒng)[J]. 單片機與嵌入式系統(tǒng)應用,2020,20(5):61-63.
[7]燕 斌,周 鵬,嚴 利. 基于遷移學習的小樣本農作物病害識別[J]. 現代農業(yè)科技,2019(6):87-89.
[8]蔣豐千,李 旸,余大為,等. 基于Caffe的生姜病害識別系統(tǒng)研究與設計[J]. 中國農機化學報,2019,40(1):126-131.
[9]蒲秀夫,寧 芊,雷印杰,等. 基于二值化卷積神經網絡的農業(yè)病蟲害識別[J]. 中國農機化學報,2020,41(2):177-182.
[10]楊 穎,文小玲,章秀華. 基于方向梯度直方圖和局部二值模式混合特征的水稻病蟲害識別方法研究[J]. 河南農業(yè)大學學報,2021,55(6):1089-1096.
[11]胡嘉沛,李 震,黃河清,等. 采用改進YOLOv4-Tiny模型的柑橘木虱識別[J]. 農業(yè)工程學報,2021,37(17):197-203.
[12]權龍哲,夏福霖,姜 偉,等. 基于YOLO v4卷積神經網絡的農田苗草識別研究[J]. 東北農業(yè)大學學報,2021,52(7):89-98.
[13]王立舒,秦銘霞,雷潔雅,等. 基于改進YOLOv4-Tiny的藍莓成熟度識別方法[J]. 農業(yè)工程學報,2021,37(18):170-178.
[14]東 輝,陳鑫凱,孫 浩,等. 基于改進YOLOv4和圖像處理的蔬菜田雜草檢測[J]. 圖學學報,2022,43(4):559-569.
[15]鐘志峰,夏一帆,周冬平,等. 基于改進YOLOv4的輕量化目標檢測算法[J]. 計算機應用,2022,42(7):2201-2209.
[16]趙家琪,高 貴,黃曉峰,等. 一種改進的YOLOv4-tiny車輛目標檢測方法[J]. 電子產品世界,2021,28(9):39-43.
[17]嚴開忠,馬國梁,許立松,等. 基于改進YOLOv3的機載平臺目標檢測算法[J]. 電光與控制,2021,28(5):70-74.
[18]楊蜀秦,劉楊啟航,王 振,等. 基于融合坐標信息的改進YOLO V4模型識別奶牛面部[J]. 農業(yè)工程學報,2021,37(15):129-135.
[19]Xiao Z T,Yin K,Geng L,et al. Pest identification via hyperspectral image and deep learning[J]. Signal,Image and Video Processing,2022,16(4):873-880.
[20]Liu Y W,Zhang X,Gao Y X,et al. Improved CNN method for crop pest identification based on transfer learning[J]. Computational Intelligence and Neuroscience,2022,2022:9709648.
[21]王明吉,陳秋夢,任福深,等. 基于yolov4的垃圾檢測系統(tǒng)[J]. 工業(yè)儀表與自動化裝置,2021(5):20-23,72.