溫艷蘭, 陳友鵬, 王克強, 劉展眉, 林欽永, 蔡 肯, 馬佳佳, 孔翰博
(仲愷農業工程學院1,廣州 510225) (廣州南洋理工職業學院2,廣州 510980)
在農業生產中,病蟲害是造成作物減產、欠收的重要原因之一,常常使農民遭受經濟損失。我國是世界上農作物病蟲害發生最嚴重的國家之一,每年農作物有害生物年發生面積超過4億公頃次[1]。2020年我國農作物重大病蟲害發生總體比2019年嚴重,累計發生面積約3億公頃次[2]。預計2021年我國農作物病蟲害總體會呈偏重發生態勢[3]。通過測報早期病蟲害的發生動態,農業生產者可以有針對性的、有計劃的采取病蟲害防治措施,減少一定的損失。傳統的農作物病蟲害測報方法存在工作量大、耗時費力、效率低和精度差等問題[4],已經無法滿足人們對病蟲害測報實時性和準確性的需求。因此,構建一個自動、高效和準確的病蟲害識別系統具有重要的現實意義。
隨著向量機、神經網絡、深度學習等相關算法的不斷發展和優化,病蟲害的分類準確率得到了很大的提高。目前,機器視覺技術在病蟲害檢測領域中較為成熟、穩定,能夠在一定程度上代替傳統的肉眼識別,在減輕勞動強度的同時提高了檢測效率,但仍面臨著許多問題,例如針對不同種類病蟲害如何設計合適的檢測系統實現實時檢測;此外如何改進相關算法,進一步提高分類準確率仍需研究。為此,國內外已有較多學者對病蟲害檢測的相關算法進行了大量研究,極大推動了機器視覺技術在病蟲害檢測方面的應用。
本文主要圍繞機器視覺病蟲害檢測展開,對近年來機器視覺檢測系統在作物病蟲害檢測中的研究工作進行概述,對圖像分割、特征提取和檢測與識別分類則對檢測系統中的關鍵技術進行闡述,最后對整個研究工作進行總結與展望。
我國是一個農業大國,但是農業基礎相對薄弱。病蟲害作為作物減產的主要因素之一,提高病蟲害的檢測和識別效率,對提高農業生產的產量和質量具有重要意義。目前,對作物為害狀的檢測已經比較成熟,而對害蟲的檢測和識別還在不斷探索中。
針對傳統測報系統存在的問題,肖衡[5]利用深度學習算法從硬件和軟件兩個方面對蟲害圖像測報系統進行優化設計,實現了稻飛虱的識別和異常報警的啟動,測報準確率高達99.78%。圖像的獲取會對識別準確率產生一定的影響,因此,YAO等[6]研發了水稻光誘捕害蟲成像系統,用于實現對水稻蟲害的自動識別,平均準確率達97.5%。YAO等[7]又研制了田間水稻光阱害蟲自動監測系統,解決了之前系統的害蟲堆積和重疊問題,但是采用新的模型對害蟲的識別準確率卻有所降低,其中,對3種大型害蟲的平均準確率達到88.9%,對2種小型害蟲的平均準確率達到90.4%。
除了稻田病蟲害,果木的健康與否也是農民比較關心的一個問題。Partel等[8]利用機器視覺和人工智能技術開發了用于自動監測柑桔木虱的系統,準確率和召回率分別為80%和95%,但是其檢測的樣本數量較少,結果的普適性較低,而You等[9]利用大量的柑橘病蟲害數據集構建了基于深度壓縮神經網絡的離線診斷系統,準確率可達93.2%,比SqueezeNet、MobileNet、AlexNet、VGG-16高1.3%~16.6%。
在檢測過程中,對害蟲的數目進行統計有助于農業生產者采取合理防治措施,精準控制施藥量。Rustia等[10]開發了基于集成攝像機模塊和嵌入式系統的害蟲自動計數與環境監測系統,能夠在不受控的環境下實現對害蟲的檢測與計數,平均檢測準確率達93%,可為害蟲行為的長期觀察以及害蟲預警提供有效的工具。此外,Habib等[11]提出一個基于機器視覺的木瓜病害識別系統,利用K-means聚類算法和SVM(Support Vector Machine)進行建模,準確率達95.2%,高于決策樹和NB(Naive Bayes),驗證了該方法的可行性和有效性。
基于機器視覺的病蟲害檢測,首先要得到清晰的病蟲害圖像。病害圖像比蟲害圖像的獲取容易得多,因為害蟲是運動的,很難直接獲得清晰的圖像。比較實用的方法是使用誘捕器捕獲害蟲后,進行圖像的采集。合理利用機器視覺設備、機器學習算法、互聯網技術等設計一個自動化綜合檢測系統,有助于病蟲害的綜合治理。
圖像分割是根據研究的實際需要,利用圖像區域相似或相同的特征把圖像分成多個區域,從而提取出關鍵信息,去除非感興趣區域。圖像分割算法種類繁多,表1是幾種分割方法在作物病蟲害圖像中的應用情況。

表1 幾種分割方法在作物病蟲害圖像中的應用情況
Ebrahimi等[12]將gamma算子應用到RGB顏色空間具有高對比度的B通道圖像中,進行非花區域背景的去除,再使用Otsu法分割出草莓花上的薊馬目標。肖志云等[13]將采集的馬鈴薯蟲害圖像經I通道的中值濾波、a通道的二維Otsu法與形態學分割后,利用蟲害分離二值圖像與RGB原彩色圖像級聯,分離出蟲害目標,但是仍存在目標邊緣分割不足或者過分割的現象。楊麗麗等[14]使用Otsu法在H分量上獲得96.56%的分割精度,通過使用形態學的和最大連通區域標記算法去除背景雜色和誤拍區域,以獲得受棉葉螨危害的圖像區域。Otsu法是較為常用的一種分割方法,但是往往需要結合其他算法才能夠獲得較好的分割效果。
閾值分割主要是針對簡單的單個目標的分割,而標記控制的分水嶺分割算法可以實現對重疊對象的分割,并且可以有效避免過分割的問題。Sunoj等[15]在RGB圖像中的B通道中利用標記控制的分水嶺分割算法,實現了對重疊大豆蚜蟲的分離。Nabilah等[16]使用標記控制的分水嶺分割來分離葉片圖像的前景和背景,以獲取辣椒病蟲害區域圖像。Xia等[17]從YCbCr顏色模型的Cb通道中提取圖像的局部極大值作為標記控制的分水嶺分割的標記,將背景圖像中的害蟲個體分割出來,但是分割的精度會受到圖像分辨率的影響,分割后的圖像可能會包含周圍的背景。標記控制的分水嶺分割能夠有效避免在噪聲和局部不連通情況下常常出現過度分割狀況,得到精確的分割圖像。
此外,K-means聚類也常用于病蟲害圖像的分割中。為快速檢測紅蜘蛛蟲害,李震等[18]采用K-means聚類算法實現對柑橘紅蜘蛛的識別,根據不同清晰程度的圖像獲得88%~100%的識別率,取得了較好的效果。Shah等[19]利用K-means聚類成功地將褐飛虱和背景分割開來,并將圖像背景設為白色,褐飛虱保持原色。Prajapati等[20]比較了3種不同的分割技術,結果表明基于HSV顏色空間的K-means聚類方法對水稻病害的分割準確率最高,可達到96.71%。因此,K-means聚類分割原理比較簡單、收斂快,但是要特別注意k值的選擇,因為k值對最后的聚類結果和運行時間都有很大的影響。
每幅圖像都有其獨特的特征或屬性,合理使用特征或屬性對圖像是作物病蟲害識別與檢測的重要環節,特征參數的準確性和實時性對病蟲害的識別精度影響較大。常用的病蟲害識別特征有形狀特征、顏色特征、紋理特征等全局特征和局部特征。
楊信廷等[21]對提取的5個形態特征和9個顏色特征,通過比較不同特征向量的組合方式,發現將形態和顏色特征進行融合獲得的準確率更高,最終實現對粉虱和薊馬的識別率分別為96.0%和91.0%。高雄等[22]提取了5個形狀特征來識別甘藍蟲害,青菜蟲的識別準確率為83%,甘藍夜蛾為90%,二十八星瓢蟲為100%。由此可見,不同蟲害的形態對識別準確率有較大的影響。Sorte等[23]將統計特征和LBP特征用于咖啡病害的識別中,實驗結果表明,該方法能夠實現對病害初期的診斷。因此,對于不同種類的病蟲害,可以采用不同的方法進行特征提取,而作物的病害通常體現在植株的葉片或者果實上的顏色變化,通常會用顏色特征和紋理特征來進行識別。
由于實際環境復雜性的影響,采用多特征融合的方法更加貼近實際生產應用的需要。YAO等[24]將HOG(Histogram of Oriented Gradient)特征與顏色、形狀和Haar特征相結合,用于水田稻飛虱的自動檢測和計數。Liu等[25]將MSER(Maximally Stable Extremal Regions)算法和HOG特征相結合,用于檢測麥田中不同顏色和密度的蚜蟲,平均識別準確率達86.81%。
合理利用特征融合技術,能夠在降低計算量的同時提高識別的準確率。牛沖等[26]將提取的草莓蛇眼病害葉片灰度圖像直方圖中的8個特征融合在一起,并利用SVM實現92%的分類準確率,分別比KNN(K Nearest Neighbor)和NB高6%和12%。胡永強等[27]在稀疏表示識別框架下運用AdaBoost算法對顏色、形狀和紋理特征進行特征融合,識別準確率最高可達92.4%,比單一特征方法識別準確率提高7%以上。可見,在進行特征提取時,要結合圖像自身的特點靈活應用相應的特征提取和融合方法。
及早發現農作物上的病蟲害可以確保農業生產者作出適當和及時的管理決策,因此,國內外相關領域的專家學者對不同的檢測與分類算法進行了大量的研究。根據分類器學習的深度可以分為淺層學習和深度學習,淺層學習以經典機器學習為代表,而深度學習以神經網絡為學習基礎,可自動學習和提取特征實現圖像的分類識別。
隨著計算機視覺的不斷發展,機器學習算法在作物病蟲害檢測和分類中得到了廣泛的應用。經典的檢測與分類識別方法通常經驗來選擇不同的特征以設計分類方案,其識別精度容易受到人為特征選擇的影響。表2簡要概述了近年來經典分類算法在作物病蟲害檢測與分類中的應用情況。

表2 經典分類算法在作物病蟲害檢測與分類中的應用情況
4.1.1 早期檢測與分類識別方法
Verma等[28]提出了基于徑向基核函數網絡的水稻病害自動識別模型,對5類水稻病害的平均識別率為95.5%。Shah等[19]提出用KNN對稻田褐飛虱進行自動識別與計數,平均識別準確率達97%,比決策樹算法高10%。Sabrol等[29]采用決策樹算法對番茄的5種病害進行分類識別,準確率達97.3%。這些研究根據病蟲害自身的特點采用合適的分類器進行建模,均得到了理想的分類效果。
Singh等[30]采用GA(Genetic Algorithm)進行病害葉片圖像的分割,通過SVM對顏色共生法提取的特征進行分類訓練,獲得95.71%的準確率,優于K-means+MDC(Minimum Distance Criterion)和GA+MDC。后來,Singh[31]又提出利用粒子群優化算法對向日葵病害葉片圖像進行分割,利用MDC分類器實現98%的平均識別準確率,高于其之前提出的GA+SVM算法??梢姡ㄟ^嘗試不同的優化算法能夠使得識別與分類效果越來越好。
4.1.2 支持向量機法
在經典識別方法中,SVM是最常用的一種分類識別方法。Pan等[32]采用SVM與區域生長算法相結合的方法,將識別過程融入到分割中,實現對4類蔬菜害蟲的識別準確率均在93%以上。基于SVM模型,Zhang等[33]通過提取黃瓜葉片病害圖像的奇異值來構成關鍵向量,獲得91.63%的平均識別率,后來,Zhang等[34]結合超像素分割、EM算法(expectation maximization)和PHOG(pyramid HOG)特征,完成對5類黃瓜病害的分類,平均識別率為91.48%。Singh等[35]采用K-means聚類算法對水稻葉片圖像進行分割后,提取其中的紋理特征向量作為SVM的輸入,實現了82%的分類準確率。這些研究表明,SVM模型已經廣泛應用于作物病蟲害識別領域,并取得了良好的效果。
4.1.3 分類器級聯法
盧柳江等[36]利用Haar-like特征提取的害蟲特征構建了一個用于識別大螟的級聯AdaBoost,在簡單背景下識別率達95.71%,而復雜背景下的識別率為86.67%。此外,M-SVM(Multi-class SVM)也是多類分類中常用的一種方法。Sharif等[37]將所選的最佳特征反饋給M-SVM進行柑橘病害的分類,分類準確率最高可達97%。Khan等[38]設計了黃瓜葉片病害檢測與分類系統,利用M-SVM實現對5種黃瓜葉片病害98.08%的分類準確率??梢姡诤侠磉x擇特征的情況下,M-SVM能夠在病蟲害識別與分類中表現出良好的性能。
單一的分類方法可能存在一定的局限性,通過分類器級聯和融合能夠在一定程度上提高分類的準確率。雖然傳統的機器學習方法對于病蟲害的分類識別已經取得了很大的進展,但是仍然存在一些缺陷,而且標準化程度相對較低,模型的擬合度因所取特征的優劣而導致識別率的波動較大,相關模型的檢測和分類精度和魯棒性有待進一步研究。
隨著深度神經網絡的不斷發展,相繼出現了CNN(Convolutional Neural Networks)、Faster R-CNN、DNN(Deep Neural Networks)等一系列深度學習框架,在圖像識別和分類任務中表現出較好的性能,為及時、準確地識別作物病蟲害提供了可能。表3歸納了近年來基于深度學習算法在作物病蟲害檢測與分類中的應用情況。

表3 基于深度學習算法在作物病蟲害檢測與分類中的應用情況
4.2.1 AlexNet及其改進算法
標準的AlexNet模型能夠解決梯度消失的問題,但是仍存在冗余現象。雖然減少全連接層節點數量能夠提高識別準確率和運算速率,但是效果并不是特別明顯,因而有研究者將目標轉向AlexNet中卷積層數的改變上,Wang等[39]實現對82種作物害蟲圖像91%的分類識別準確率,而Atole等[40]在水稻葉片圖像的健康狀況分類中獲得的準確率可達到91.23%。趙立新等[41]通過改進AlexNet模型中的全連接層的結構,實現對棉花病蟲害的平均測試準確率為97.16%,在加快收斂速度的同時解決了過擬合問題。
4.2.2 VGG及其改進算法
VGG在AlexNet的基礎上加深了網絡的深度,能更好的提取特征,但是也將面臨參數多和計算量大的問題。Fuentes等[42]利用CNN濾波器組框架解決了番茄病蟲害識別中誤報和類別不平衡的問題,獲得了96.25%的平均準確率,與Fuentes等[43]之前利用VGG-16特征提取器構建的Faster R-CNN模型83.06%的平均準確率相比,平均準確率提高約13%。復雜背景圖像會降低識別的準確率,針對這一問題,Chen等[44]將增強型VGG與Inception模塊融合在一起,對水稻病害進行分類預測,平均準確率達92%,在降低計算量的同時保證了模型良好的穩定性。
4.2.3 GoogLeNet及其改進算法
針對常規玉米螟蟲識別方法準確率的問題,李靜等[45]提出一種基于改進GoogLeNet卷積神經網絡模型的玉米螟蟲害圖像識別方法,平均識別準確率達96.44%,實現對玉米螟蟲較高的實用性。Liu等[46]提出一種基于深度卷積神經網絡的蘋果葉片病害識別方法,將GoogLeNet引入到AlexNet中進行模型改進,實現97.62%的總體準確率,為蘋果葉片病害的早期診斷和控制提供了較好的解決方案。在GoogleNet的基礎上進行改進產生了Inception,能夠減少了計算量和參數量Tetila等[47]利用改進的Inception-v3深度學習模型實現對大豆病害的識別,準確率高達99.04%,能夠實現對大豆病害的準確監測。
4.2.4 Faster R-CNN及其改進算法
Faster R-CNN能夠更好地解決對小目標害蟲的實時識別與檢測問題。Hong等[48]提出利用7種深度學習對斜紋夜蛾、甜菜夜蛾和煙夜蛾進行檢測,其中,Faster R-CNN ResNet101的性能最佳,可獲得90.25%的平均準確率,但仍存在將多個飛蛾被檢測為一個對象的錯誤檢測現象。He等[49]提出了基于雙層Faster R-CNN的褐飛虱檢測算法,在不同數目的檢測中,平均準確率為94.64%,而在不同蟲齡的檢測中,平均準確率為92.92%。Esmail等[50]提出了基于云計算的Faster R-CNN用于檢測和識別害蟲圖像,結合Inception-v2模型實現了98.8%的分類準確率。這些Faster R-CNN模型主要是用于單目標的檢測,因此,多目標害蟲檢測更具有實際意義。
4.2.5 ResNet及其改進算法
為了防止農業害蟲造成的損害,正確識別害蟲的類別能夠幫助農業生產者采取有針對性的控制措施。余小東等[51]提出了改進的殘差網絡的作物病蟲害識別模型,識別準確率可達91.51%,比ResNet 50模型的高3.99%。Liu等[52]提出一種新的虛擬數據庫生成方法,并以此為基礎構建了基于ResNet 152-v2的害蟲識別模型,識別準確率達到97.8%,能夠在節省訓練數據的采集成本和時間的同時提高訓練精度。Cheng等[53]將深度殘差學習用于復雜背景下的害蟲識別中,平均分類準確率可達98.67%。這些改進模型能夠針對實際的問題作出相應的改進,進而提高識別的結果和模型的泛化能力。
4.2.6 DenseNet及其改進算法
DenseNet是一種具有密集連接的卷積神經網絡,且能夠有效地利用深層特征,解決深度神經網絡中的冗余問題。Xing等[54]采用級聯DenseNet實現對柑橘病蟲害的診斷和鑒定,分類準確率達93.33%,該模型主要是通過提高模型參數的利用率來提高模型的精度。Too等[55]利用38種病害對VGG16、Inception-v4、ResNet和Densenet的性能進行了評估,通過比較發現,Densenet獲得了最佳的性能,準確率達99.75%。這些研究顯示了DenseNet及其優化模型在病蟲害識別中具有良好的性能。
4.2.7 其他深度學習及其改進算法
此外,還有一些其他的深度學習方法。賈少鵬等[56]將膠囊網絡作為模型的全連接層加入到CNN架構中,實現對番茄灰霉病病害的識別精度達到93.75%,比CNN模型提高了3.55%,但仍存在改進的空間。Rahman等[57]提出一種輕量型的簡單CNN架構,利用兩級訓練的方法實現對水稻病蟲害94.33%的平均分類準確率,且能夠用于移動設備中,能夠為偏遠地區的農民提供有效的病蟲害檢測工具。
針對生成對抗網絡訓練的不穩定性,王鐸等[58]引入了深度卷積條件,能夠在增強模型穩定的同時加快收斂速度,對害蟲的分類準確率可達96.8%。孫鵬等[59]將基于注意力機制的卷積神經網絡模型用于識別大豆蚜蟲,準確率達96.85%,為之后的精準施藥和節省農業資源提供有效助力。Muppala等[60]提出了用于檢測稻田卷葉螟和三化螟的DNN-SAR模型,準確率達98.29%,在獲得較快收斂速度的同時提高了檢測精度。
在病蟲害檢測和分類識別任務中,具有更深層次的模型往往比簡單模型具有更高的性能。然而,隨著性能的顯著提高,深層架構的復雜性也有所增加。因此在實際應用中,往往需要對選取的深度神經網絡模型進行改進,以獲得更高的準確率和更好的穩定性。
本文從病蟲害檢測系統、圖像分割技術、特征提取以及分類識別算法4個方面,綜述了近幾年來國內外的專家學者在作物病蟲害圖像識別領域的研究進展。雖然研究方法層出不窮,發展也比較迅速,且取得了一定的成果,但是在實際的應用過程中仍然存在一些問題需要解決和改善。
作物病蟲害蟲檢測系統容易受光源、光照強度、輸送裝置、相機分辨率等諸多因素的影響,因此,結合農業物聯網以及各種智能終端設備,實現對作物病蟲害的實時、高效、全方位檢測是未來的研究方向之一,能夠推進農業現代化與智能化。
對于復雜背景下的病蟲害圖像的分割,往往需要結合多種分割方法才能獲得較為理想的分割效果。不同種類的病蟲害需要提取的特征往往不同,其中,多特征融合能夠獲得更加全面的信息,具有較大的發展潛力。傳統機器學習方法的方法在很大程度上依賴于選擇的分類特征來提高識別和分類精度,而深度學習算法具有更好的效果,但其計算量和復雜度也更高。如何結合新的算法和其他深度學習結構對模型進行優化訓練,并在提高精度的同時加快運算速率仍然是未來的研究的熱點與難點。