李東升,胡文澤,蘭玉彬, 2,范明洪,李翠云,朱俊科
(1. 山東理工大學農業工程與食品科學學院,山東淄博,255000; 2. 山東省農業航空智能裝備工程技術研究中心,山東淄博,255000)
據統計我國田園雜草有1 454種,其中對作物有嚴重危害的雜草有130多種[1]。雜草會和作物爭奪生存資源[2],全國每年因雜草造成主要糧食作物損失約3 000 kt[3],目前解決雜草問題的方法可分為生物、物理和化學除草[4],化學除草因具有簡便高效的優點被人們廣泛使用,但化學除草劑的不規范使用對作物、土壤環境等也造成一定的污染。雖然現在國家高度重視農藥的使用和殘留問題,但是市面上依舊可能出現農藥超標的現象[5],而精準農業或數字農業可以提供緩解這些問題的策略[6-7]。國內外很多學者[8]都在研究如何實現精準化,不僅僅是用量精準化還要目標精準化,因此針對雜草的識別[9]并應用于自動化精準除草是未來農業發展必須要走的一步。深度學習可在農業生產的各個方面促進生產效率。例如品種鑒定,作物部位和果實識別,作物及雜草檢測與分類,作物表型及病蟲害檢測等都是當下研究的熱門,另外動物面部、行為識別也在新興起來可見其在農業領域的廣泛應用[10-11]。本文對國內外文獻中深度學習在雜草識別領域相關的應用研究進行了總結歸納,對現有技術方法進行分析,提出了一些具有實際價值的建議,為后續的研究工作提出了看法。
機器學習是機器通過大量數據尋找某種規律,不斷擬合當前數據來推算出某種模型,用以預測未來數據或者分類當前數據的機器運算方法。機器學習按照目前廣泛認可的分類方式,可以根據處理數據方式,訓練樣本及反饋方式的不同,將機器學習算法分為監督學習、無監督學習[12]和強化學習3種類型[13]。監督學習是目前主要的研究方向,常用于解決分類和回歸問題,監督學習典型的算法有反向神經網絡(BP)、支持向量機(SVM)、k近鄰法(KNN)、樸素貝葉斯(NB)、隨機森林(RF),部分深度學習算法。深度學習是人們在機器學習以及對人類神經元了解的基礎上從簡單的淺層神經網絡(如BP神經網絡)到復雜的深層神經網絡(如卷積神經網絡)數據處理方法,通過對采集到的大量數據進行特征學習得出高層次的特征規律從而對目標對象進行分類或預測,屬于更高級的機器學習[14]。深度學習不用人工進行數據特征提取(可以提取更高維度的可以被計算機識別的特征信息),因此可以被廣泛應用在不同領域。目前深度學習在計算機視覺、自然語言處理等領域展現出良好的發展前景也不斷被證明優于傳統的機器學習[15]。深度學習常見的網絡有如:深層信念網絡(DBN)、卷積神經網絡(CNN)、生成式對抗網絡(GAN)、膠囊網絡(CapsNet)、循環神經網絡(RNN)等[16-17],本節就常用于農業信息采集的前三種網絡進行簡單闡述。
2006年Hinton等[18]提出深度信念網絡,由多層受限玻爾茲曼機(RBM)和一層分類器組合而成的一個概率生成模型,深層信念網絡(DBN)實際是由多層神經元構成,所以也可稱為隨機神經網絡。鄧向武等[19]在自然背景下和不同光照條件下采集稻田的6種雜草(包括野慈姑、稗草等)圖像,提取雜草圖像的顏色、形狀、紋理特征等共101維特征為輸入特征向量,通過研究深度置信網絡層數,然后與SVM,BP神經網絡分類器對比,試驗得出,研究改進的DBN網絡模型識別率最高,而且彼此消耗的時間相差不明顯。生成對抗網絡(GAN)是由Goodfellow等[20]2014年基于零和博弈論提出的由生成器和判別器組成的,是在對抗訓練過程中生成新模型的深度學習算法。可以根據拍攝的小樣本數據進行對抗分析進而生成海量且高質量的圖像數據,這樣就能解決采集過程費時費力的問題。Fawakherji等[21]設計一套GAN網絡,通過將獲得的原圖像掩膜隨機生成噪聲掩膜數據然后再上采樣到原圖像大小實現生成器生成植物圖片,再插入原圖形成合成圖像,然后將最終生成的圖片輸入判別器進行判斷。如圖1所示,可以看到生成對抗網絡生成出極為相似的圖像。卷積神經網絡(CNN)[22]是傳統神經網絡的改進。主要包含數據輸入層,卷積層,激活函數層,池化層,全連接層,輸出層。由于其突出的特征提取能力被廣泛應用于目標檢測、圖像分割等領域。

圖1 通過在原始圖像中插入使用GAN生成的合成植物樣本與原圖像的不同Fig. 1 Difference between the original image and the synthetic one obtained by inserting in the original image a plant sample generated using the GAN
目標分類識別通常是對已檢測到目標對象的圖像進行分類,或者判斷當前圖像中是否存在目標,并不能反映目標的空間位置。目標檢測是用來確定獲取圖像中的某個區域是否含有要識別的目標,并對區域內目標進行分類,輸出目標的類別和區域邊框,即定位過程。圖像語義分割是圖像中目標的像素標簽化并歸為一類,對每一像素的區域進行預測分類,但不能區分同一類物體,難以對同一物體進行定位。
當前針對圖像信息提取的研究中諸如圖像分割、目標跟蹤、目標行為分析等都是以圖像中的目標檢測為基礎的,目標檢測包括分類(Classification)和定位(Location)兩方面。但是因為傳統檢測算法的各個環節都有很難克服的問題,而隨著深度學習的逐漸發展,卷積神經網絡逐漸應用在目標檢測領域,以卷積神經網絡為基礎的模型逐漸替換傳統目標檢測模型的方法,進入大眾的視野。目前,基于卷積神經網絡的目標檢測算法大致可分為兩種模式,即單階段(one-stage)模式和雙階段(two-stage)模式[23]。雙階段算法檢測精度較高,比較常用的檢測算法主要有R-CNN[24]、Fast R-CNN[25]、Faster R-CNN[26]。單階段算法也被稱作回歸分析目標檢測算法。雖然精度不及Faster R-CNN,但是具有較好的實時性,比較常用的檢測算法主要有YOLO[27-28]和SSD[29]。
圖像分割[30-31]的過程也包括圖像預處理、特征提取、特征匹配識別等過程,基于深度學習的圖像分割一般可分為語義分割、實例分割和全景分割三種。在農業領域較為常用的為語義分割和實例分割。基于圖像語義分割的方法來區分作物與雜草和獲得雜草覆蓋區域在精準除草領域越來越受歡迎[32-35]。實例分割與目標檢測類似,也可分為單階段和雙階段過程,但所閱文獻中均以雙階段實例分割Mask R-CNN[36](Faster R-CNN原型,增加了一個分支用于分割任務)為主,故不過多描述。下節就國內外研究者近幾年基于深度學習對主要的農作物與雜草識別的研究進展進行綜述。
3.1.1 蔬菜與雜草
我國是世界蔬菜生產消耗第一大國,蔬菜已經成為我國農業種植中僅次于糧食作物的第二大農作物,解決由雜草導致的蔬菜產量下降問題十分重要[37]。
Osorio等[38]為了精確估算生菜雜草覆蓋度,拍攝數據集并設計了3種分別以SVM-HOG,YOLOv3,Mask R-CNN識別檢測算法為基礎的雜草提取算法,將檢測算法得出的被檢測作物轉化為二元掩模,并與NDVI背景減法器混合,以間接檢測雜草獲得雜草圖像,然后運用經典圖像處理方法計算雜草的覆蓋率,試驗得出每種方法較人工計算準確率都有不同程度的提高,而且指出每種檢測算法的最佳使用場景,為以后探究提供了新的思路。Gao等[39]使用尼康相機在不同照明條件下拍攝甜菜和雜草(打碗花)的圖像,并通過數據擴張的形式,解決收集和標簽的勞動密集型和耗時問題,使用改進的YOLO-tiny目標檢測網絡對數據集進行測試,對比YOLOv3和傳統的YOLO-tiny網絡,結果表明改進的YOLO-tiny目標檢測網絡既能降低檢測速度也能保證準確率。尚建偉等[40]以農田信息采集機器人BoniRob采集甜菜與雜草圖像作為數據集,通過使用改進的Res-UNet模型進行圖像分割,識別準確率達到了98.67%,高于UNet和SegNet具有較高的分割識別精度。喻剛等[41]提出將Mask R-CNN網絡應用到幼苗期白菜和雜草的圖像識別中,與基于OTSU閾值分割對雜草進行識別的方法對比,結果表明Mask R-CNN網絡達到較好的效果有81%的合格率。Espejo-Garcia等[42]使用少量番茄與雜草(龍葵)數據集,通過使用DCGAN網絡擴張數據以及遷移學習的方法對識別算法提升精度,期間設計對比試驗,從GAN、遷移學習參數、迭代次數、特征提取網絡等方面,不同搭配以選取最優識別算法,得出使用Imagenet預訓練,GAN-Xception識別算法效果最好,測試集上的F1為99.07%。
3.1.2 油料與雜草
油菜和向日葵是我國重要的食用油來源,其中油菜居油料作物之首,是我國種植地區分布最廣的油料作物。但在雜草會伴隨著油菜生長一直存在,導致油菜籽產量下降約15.8%,情況嚴峻時可能減產一半以上[12, 43]。
張樂等[44]為自動識別自然環境下油菜田間的雜草,在采集油菜與雜草數據集后,對比其在VGG-16、ResNet-50和ResNet-101這3種特征提取網絡下Faster R-CNN模型的目標檢測效果,結果表明,基于VGG-16的Faster R-CNN最好,目標識別精確度可達83.90%,召回率達到78.86%,F1值達81.30%。Abdalla等[45]為在高密度雜草條件下更好的識別分割出油菜,使用便攜式數碼相機拍攝高密度雜草下油菜田數據集,設計用微調過的SegNet網絡模型的編碼器提取深度特征與使用機器學習的分類器結合的方法實現對油菜雜草的圖像分割,對比幾種機器學習分類器的準確率,得出使用SVM效果最好,可實現對油菜和背景的分割,結果表明最高精度可達96%。Asad等[46]開發了一種加速手動標記像素的過程的方法,使用尼康相機采集兩個不同生長階段的油菜田數據集,對比分別使用VGG16和ResNet-50作為編碼器的U-Net和SegNet來訓練實現雜草和油菜的分割,試驗得出基于ResNet-50的SegNet模型效果最好MIOU和FWIOU分別達到了82.88%和98.69%。Partel等[47]以向日葵與雜草,胡椒與雜草(馬齒莧)為數據集訓練3種基于YOLOv3的目標檢測網絡來實現精準智能噴霧器對雜草的識別,整個噴霧系統的準確率和召回率可分別達到為95%和89%。
3.1.3 棉花與雜草
棉花是世界上重要的經濟作物。但是由于棉花生產程序復雜,種植管理、控害除草復雜,生產人工成本高,導致部分地區種植意愿降低,因此深度學習解決棉花雜草問題,以提高種植意愿與棉花產量尤為重要[48]。
Espejo-Garcia等[49]將深度學習的卷積神經網絡與傳統機器學習的分類器結合起來分別識別作物(番茄和棉花)和雜草(龍葵和天鵝絨草),試驗得出DenseNet和支持向量機結合F1值達到了99.29%。許燕等[50]針對新疆棉田雜草識別率低的問題,通過采集建立不同角度、不同自然環境和不同密集程度混合生長的棉花幼苗與雜草數據集,然后對比4種特征提取網絡的Faster R-CNN模型的識別效果,最終選擇VGG16為特征提取網絡訓練,設計最佳錨尺度,得出MAP值為91.49%,平均識別時間262 ms。為實現田間條件下快速、精準識別棉花幼苗與雜草,彭明霞等[51]設計采集小車,采用垂直向下拍攝的方式獲取棉花與雜草的視頻,按照每秒一幀取圖片建立數據集,對比了Faster R-CNN和YOLOv3 這2種典型目標檢測算法模型,最終選取優化后的Faster R-CNN進行試驗,得出平均目標識別準確率達95.5%。Chen等[52]通過遷移學習建立了綜合基準,用于棉花生產系統中常見雜草的多類識別。創建了棉田15類雜草數據集用于模型訓練,對于訓練樣本較少的少數雜草類識別較差的問題,采用了加權交叉熵(WCE)損失函數,以及將基于深度學習的余弦相似度指標用于分析雜草類間的相似度,大大提高了雜草分類的準確性,對比27個(卷積神經網絡)深度學習模型,得出參數優化后的ResNet-101的F1值最高達到了99.1%,其中模型中有14款超過98%。
3.2.1 水稻與雜草
我國對水稻的生產極為重視,全國以稻米為主食的人超過65%。水稻種植中盲目用藥除草的情況屢次發生,不僅防治效果差,還會對水稻的生長造成一定的影響,導致水稻產量下降。
鄧向武等提出了一種基于卷積神經網絡(CNN)與遷移學習相結合的稻田苗期雜草識別方法采集6種稻田苗期雜草(野慈姑和稗草等)數據集,將預訓練CNN圖像分類模型(AlexNet、VGG16和GoogLeNet)的參數遷移到雜草識別的任務上來使用VGG16網絡模型的雜草正確識別率達97.48%。彭文等[53]用CCD感光相機采集6種水稻田雜草(鬼針草、鵝腸草等),構建PFMW數據集,通過對比VGGNet、ResNet50、MobileNet等8種深度學習網絡模型,再對比選取網絡模型的優化器(SGD、Adam和RMS)最終VGG16-SGD模型取得了最高精度,其平均F值達到了97.7%。Huang等[54]用無人機在不同的稻田上拍攝圖像建立數據集,通過對比基于對象的圖像分析(OBIA)的傳統機器學習的不同分類器和深度學習方法的卷積神經網絡,得出深度學習方法VGGNet網絡模型在準確率和效率上明顯優于OBIA方法和其他深度學習卷積網絡。Zhang等[55]用無人機低空飛行采集冬小麥數據,研究測試了YOLOv3和YOLOv3-tiny的性能,發現YOLOv3-tiny更適合移動設備,且MAP可到72.5%,IOU為80.12%。Kumar等[56]采集水稻與雜草數據集對比不同的ML分類器(SVM、CNN)與R-CNN和Faster R-CNN的目標檢測算法,得出Faster R-CNN準確率最高達到94%。且為了降低GPU的需求,選擇更加專用的加法器(adder)提高硬件性能,最后硬件部分選擇FPGA芯片處理圖片,既降低了延時,又縮小了占用面積。Ma等[57]使用佳能相機采集稻米雜草幼苗水稻和雜草(慈姑)數據集,在解決類別標記和類別數量不平衡問題后使用遷移學習和基于全卷積的SegNet圖像分割網絡來實現對雜草的識別分割,與經典語義分割模型FCN和UNet對比,平均精度為92.7%高于二者。
3.2.2 玉米與雜草
玉米是世界上分布最廣泛的糧食作物之一,在我國種植產量超過水稻和小麥,位居我國三大糧食作物之首,是人類和畜禽的重要食物來源,也是重要的工業和醫藥原料[58],玉米的3~5葉期是除草的最佳時期。
徐艷蕾等[59]拍攝8種田間雜草(鬼針草、翅果菊等)和玉米苗期的數據集,針對復雜自然環境下雜草圖像的特性構建了一種基于Xception 卷積網絡的輕量卷積網絡的改進雜草識別模型,相同試驗條件下對比其他幾種基礎識別網絡模型(VGG16、VGG19、ResNet50 和 Inception-V3),結果顯示設計的識別模型平均測試識別準確率高達98.63%。Champl等[6]設計了一款電除草的機器人,其中識別定位雜草是采用視覺方式,通過嵌入深度學習Mask R-CNN算法,識別檢測雜草,在訓練兩種作物(玉米和大豆)和四種雜草(黑麥草和藜草等)數據集時選定ResNet-50為特征主干網絡,對輸入圖像大小,錨框比例等超參數進行調整來提高準確率,通過植物的重心對植物定位實現精準除草。雖然小目標雜草檢測精度較低,但是也驗證了實施電氣化除草的可能。Mads等[60]通過自搭建卷積神經網絡對包含22種(小麥、玉米、甜菜等7種作物,闊葉草、狹葉草、黎等15種)處于早期生長階段的作物和雜草數據集對進行識別檢測,模擬土壤背景上的重疊植物的自上而下圖像來克服植物樹葉重疊問題,最終網絡能夠達到86.2%的分類準確率。因葉齡是植物重要表型性狀,不同葉齡雜草所需除草劑劑量不同,權龍哲等[61]采集不同天氣和不同角度下的2~5葉期玉米和雜草(稗草、打碗花等)數據集,采用Mask R-CNN網絡模型檢測雜草,通過更換3個特征提取網絡(ResNet-50、ResNet-101、MobileNet V2)、搭建多種不同尺寸區域建議框等方法提高模型精度,結果顯示以ResNet-101為特征提取網絡識別率最高為90.3%。Wang等[62]使用玉米和大豆生產系統中4種常見雜草(蒼耳、狐尾草、紅根莧菜和三裂葉豚草)數據集,研究圖像分類模型和目標檢測模型對數據集中雜草的識別效果,通過評估VGG16、ResNet50和InceptionV3三種不同的預訓練圖像分類模型得出基于pytorch框架的VGG16識別精度最高,F1值為99%。評估用于定位和識別雜草種類的YOLOv3目標檢測模型,得出總體MAP得分為54.3%,紅根莧菜的識別精度最高89%,由于狐尾草樣本較少且難以識別,AP僅為26%。當評估由于框架選擇而產生的性能差異時,得出相同條件下pytorch優于keras。
與傳統的圖像處理方法相比,深度學習不僅解決了復雜、低效的特征提取環節的問題,而且只需將輸入圖像裁剪成合適的尺寸就可用于目標識別,在極大提高識別準確率的前提下,也縮短識別時間。可應用到實際農業生產。
根據上述文獻可總結,深度學習應用在雜草識別檢測領域的技術任務主要有圖像分類、目標檢測、語義分割、實例分割。其中基于深度學習的雜草識別在分類識別任務中由于作物與雜草種類不同,以及測試數據集不同,得出的不同算法的識別精度不同,并無某一算法明顯優于其他算法,但是VGGNet與ResNet算法可作為優先選擇對象。在目標檢測和圖像分割任務中由于田間植物的小物體雜草和遮擋重疊現象和移動設備很難達到實驗室設備的高算力和實時性,也由于目標檢測和圖像分割的表現形式不同,研究者們可從獲得作物面積選擇圖像分割,從獲得類別與位置選擇目標檢測,從部署移動設備選擇單階段的目標檢測或實例分割,也可根據實際需要選擇準確度高的Faster R-CNN,或實時性強的YOLO、SSD。研究人員對于深度學習算法技術準確率的提升手段主要有針對不同的算法模型、模型本身、遷移學習、加入注意力機制等方法。現階段分類識別任務中在不同數據集、不同選用參數下達到的準確度不同,但是均能達到準確率94%以上,有甚者可達99%,是因為此時數據中均為單個易識別物體。而目標檢測和圖像分割任務中準確率普遍低于95%是因為需要得到物體所在的區域,而算法模型對數據中存在不同尺度、重疊、遮擋的物體的檢測能力不同,易出現漏檢錯檢現象。
總結上述近幾年深度學習在雜草識別檢測方面的文獻,發現深度學習應用于雜草識別領域的研究還處于起步階段,存在不少的問題。
1) 數據集建立費時、不通用。現階段雜草數據集僅僅是針對一種作物生長期間生長的雜草不具備通用性,而且數據建立可能出現類別不平衡現象,雜草處于不同生長階段存在不同的特征,拍照時的光影變化等都影響著訓練最終效果。文中綜述的文章中出現類間識別正確度相差較大,或出現過擬合現象等情況。
2) 田間作業環境復雜實際識別率較低。 真實田間地況復雜總會出現顛簸,大風,遮擋等情況,這些是實際應用過程中存在的必須解決的問題。
3) 識別效果與硬件好壞有關。現階段硬件本身的算力與價格和外型掛鉤,一個算法模型是否能部署在移動端不僅要求算法具有實時的檢測速率,還要有較高的識別精度,因此目前實驗室常使用雙階段的算法針對提高識別精度,應用中常使用單階段算法。而硬件的好壞也影響著識別性能,例如Partel等[47]在試驗中使用不同規格的GPU顯卡,結果得出性能高的,在精度和召回率方面都有較大的提升。另外數據獲取設備攝像機也是提高識別效果的有利工具。
現階段存在的問題,也將會是未來研究者應用深度學習解決問題的趨勢,本文提出以下幾點建議,希望能為未來雜草精準識別提供些許幫助。
1) 數據集的建立。數據的采集一方面可以采取只拍一種光照條件下的雜草圖像,識別時采用補光或遮光的形式來減少人工的投入,另一方面采用生成對抗網絡或者Mixup、Mosaic等數據增強的方法擴增數據集,采用半監督學習的方式來解決人工標注的困難,解決整體數據建立人力、時間的投入。
2) 新算法的研究。田間雜草情況復雜要解決在遮擋、模糊、群聚等狀況下仍能實現算法的快速性和有效性的問題,探究更適合的識別算法,如加入注意力機制加強特征提取,或者引入或改進視覺Transformer等算法。目前廣泛用于識別檢測方面的深度學習卷積神經網絡算法,一定程度上網絡層數越深,識別精度越高,但是也意味著算法越難部署到移動設備上,因此探究輕量化和深度化的平衡也是研究的方向。
3) 硬件的開發。圖像的采集設備,數據處理設備等。在數據處理過程中,能在不占用大空間的同時實現高算力,提高硬件實力以改變算法發展受限的問題。
本文對深度學習在雜草識別領域的研究做出綜述。傳統的機器學習識別雜草需人為提取特征存在很多弊端,而深度學習有效避免了傳統機器學習的很多問題。總結介紹了深度學習的算法模型在雜草識別領域的應用,具體對國內外基于深度學習的作物與雜草種類檢測與分類研究現狀進行綜述,以與作物種類為線索,闡述研究人員如何針對每種作物相應時期的雜草進行識別控制。在這篇文章中,提供的分類研究總結了雜草的檢測方法以及提高分類準確率的手段,發現大多數的研究應用監督學習技術,使用現有的深度學習模型;通過遷移學習可以在任何植物數據集實現更好的性能和分類精度;另外不同的深度學習模型對于不同的作物數據集有不同的表現能力;現階段也只是通過設置不同的條件找到近似最優的參數達到最大識別準確率。
未來在雜草識別領域的一個重要的研究方向是對于數據集的處理,如何減少人工注釋,解決類不平衡,擴容數據,實現簡易、準確、通用。另一方向是深度學習算法模型的最優化,解決由于田間外界因素造成的視覺采集的數據模糊、光影變化,遮擋重疊等帶來的識別準確率降低的問題和如何減少對硬件性能的需求問題。在深度學習雜草識別的應用方面:一是使用多種視覺設備與傳感器協調作業。由中央系統調控各個設備視覺傳遞的數據,以獲得更加精準的定位,以解決存在遮擋的行間行內雜草不能完全識別定位的問題,并且利用多傳感器與機器視覺融合綜合提取的多種信息,分析作物與雜草長勢針對性除草。二是在達到精準識別后可以使用小型無人機搭載觸殺式除草劑,使用機器人搭載激光、高壓電等對雜草實現定點式物理清除。