李開敬,許 燕,周建平,樊湘鵬,魏禹同
(新疆大學 機械工程學院,新疆 烏魯木齊 830047)
為了推動農業(yè)綠色發(fā)展,降低環(huán)境污染,越來越多的國內外學者提出將機器視覺與農業(yè)結合[1]的方式對農田中的雜草進行快速識別、分類,從而為農業(yè)除草劑的快速準確選擇提供依據(jù),減少農藥的誤用[2].機器視覺識別雜草主要利用雜草圖像的紋理特征、形狀特征、顏色特征[3?4]等綜合信息來實現(xiàn).機器視覺技術首先被納入作物檢測算法,以識別作物和雜草[5?6].Piron等[7]將結構光投影到圖像采集區(qū)域,并與多光譜圖像信息融合,從而提高多光譜視覺系統(tǒng)分辨作物和雜草的準確率,該方法對雜草的正確識別率為86%.Herrmann等[8]利用高光譜成像技術獲取麥田圖像,并設計了基于偏最小二乘法的分類器,分割小麥與雜草,對田間圖像中苗、草的分類準確率大于72%.Jafari等[9]通過設定亮度閾值,將圖像中的植物分成陰影部分和非陰影部分,在RGB空間內利用判別分析法分別對兩個部分的作物和雜草進行分離.該方法對陽光下和陰影中的甜菜、雜草的分類準確率分別為88.5%和88.1%.然而在棉田中,由于作物與雜草的大小相類似,上述傳統(tǒng)的機器視覺方法的有效性難以保證.目前,深度卷積神經網絡方法取得了良好成效,2016 年,YOLO算法[10]將目標檢測任務轉換成一個回歸問題,這樣的單階段檢測的思路大幅提高了檢測速度.在農業(yè)目標檢測方面,孫哲[11]等以西蘭花幼苗為研究對象,提出了一種基于Faster R-CNN模型的作物檢測方法,在Dropout值為0.6的基礎上以ResNet101網絡為特征提取網絡,達到了91.73%的平均精度.周云成等[12]提出一種基于深度卷積神經網絡的番茄器官分類識別方法,在番茄器官圖像數(shù)據(jù)集上,應用多種數(shù)據(jù)增強技術對網絡進行訓練,測試結果表明各網絡的分類錯誤率均低于6.392%.上述識別方法主要是以農作物為研究對象,特征單一,識別對象多為單獨個體.實際農田中普遍存在棉花幼苗與雜草交叉生長的現(xiàn)象.因此,為解決交叉生長環(huán)境下棉花幼苗與雜草的識別難題,本文以棉花幼苗和七種雜草為識別對象,提出基于Faster R-CNN和數(shù)據(jù)增強[13?15]的棉田苗期雜草識別方法.根據(jù)雜草的特點,優(yōu)化網絡模型,建立一種對多種雜草進行識別的適用型深度網絡模型.
本文以棉花幼苗和田間的雜草(田旋花、灰綠藜、小薊、硬草、馬唐、馬齒莧、播娘篙)作為識別對象.2019年5月至7月在新疆五家渠市102團2連的試驗田,分12個階段(每階段相差5~8天),總共拍攝4 694張樣本圖像.拍攝使用索尼IMX386設備,采用垂直方式拍攝,距離地面70 cm,圖像分辨率為1 079×1 157,格式為JPEG.為了研究不同光照影響下的各種雜草圖像識別問題,分別在晴天、陰天、雨天進行了雜草圖像采集.為使研究問題更加貼合實際,在采集樣本圖像前未對圖像背景做任何人工處理.所采集的部分樣本圖像如圖1所示,不同環(huán)境下所采集樣本集數(shù)量如表1所示.采集到的樣本中70%作為樣本訓練集,30%為測試集.
圖1 雜草與棉花幼苗交叉生長Fig 1 Weeds and cotton seedlings cross growth
表1 不同環(huán)境下樣本數(shù)量Tab 1 Number of samples in different environments
為使Faster R-CNN模型達到更好的識別效果,需要在大量數(shù)據(jù)集基礎上進行樣本訓練.手動收集的數(shù)據(jù)集有限,為了進一步豐富圖像訓練集,更好的提取圖像特征,數(shù)據(jù)集可以通過數(shù)據(jù)增強技術擴展.主要是通過對樣本圖像進行平移、旋轉、放縮、錯切、垂直或者水平鏡像等基本變換.在一些樣本圖像缺失的情況下,通過基本變換可以增加樣本數(shù)量,而且還可以避免因為樣本大小或者尺度等問題造成樣本圖像識別過程中出現(xiàn)的失真或過擬合等問題.另外,數(shù)據(jù)增強技術還通過增強樣本圖像的對比度,改變樣本圖像的亮度,消除一些圖像噪音來改變圖像的視覺效果.通過數(shù)據(jù)增強后,樣本由最初的4 694張擴大到四倍,變成18 776張,對樣本圖像進行的數(shù)據(jù)增強具體方法如下:
(1)平移是將圖像水平或者垂直移動一個相關因子,為了適應像素、拓展適應性,這里使用三位的向量組成三維矩陣為相關因子.然后,我們在任何情況下水平和垂直地移動圖像,給定一個數(shù)字X,圖像的寬度和長度將在區(qū)間[0,X]中選擇一個隨機因子移動.本文將X值設為10,對樣本圖像進行平移.
(2)縮放是把樣本圖像縮放到一定范圍內.先給定值X,每個圖像將在區(qū)間[1-X,1+X]中調整大小.本文將X值設為0.2,將樣本圖像進行縮放,以增加樣本數(shù)量.
(3)旋轉包括將圖像隨機旋轉一定角度.同樣給定值X,每個圖像將以[0,X]的角度旋轉.本文中對樣本圖像進行了0?,45?,90?,135?,180?旋轉.
(4)鏡像就是水平或者垂直翻轉.本文中的鏡像是將方法(3)中旋轉各自角度后的圖像進行鏡像.
(5)樣本圖像的飽和度和亮度調整主要是先計算圖像的RGB像素均值-M,對圖像的每個像素點Remove平均值-M,對去掉平均值以后的像素點P再乘以對比度系數(shù).然后對處理以后的像素P加上M乘以亮度系統(tǒng),對像素點RGB值完成重新賦值.
以小薊與棉花幼苗交叉生長圖像為例,通過上述方法得到的圖像如圖2所示.
圖2 圖像數(shù)據(jù)增強效果Fig 2 Data enhanced image effects
Faster R-CNN網絡是將RPN檢測對象的關注區(qū)域進行分類,本文利用Faster R-CNN實現(xiàn)雜草與棉苗的識別分類,通過以下兩個核心模塊完成:(1)區(qū)域建議網絡(RPN),用于識別可能包含關注對象的區(qū)域(ROI);(2)Fast R-CNN,用于對提取的區(qū)域建議進行分類并細化相應對象的邊界框.這兩部分共同使用和共享一組基本卷積層(轉換層).激活函數(shù)(ReLU)和池化層用來提取圖像特征映射,產生ROI.然后RPN輸出到第一卷積層,再從第一卷積層產生的特征圖中裁剪出相應的區(qū)域.使用SoftMax回歸來確定錨點是屬于前景或者背景,最后使用邊界框回歸來糾正錨點以獲得準確的建議,同時獲得檢測框的最終精確位置.Faster R-CNN主要用于目標檢測,其最大的亮點在于提出了一種有效定位目標區(qū)域的方法,然后按區(qū)域在特征圖上進行特征索引,生成建議框.其流程變得越來越精簡,精度越來越高,速度也越來越快.適用于復雜環(huán)境下的小型目標檢測研究,因此本文選擇Faster R-CNN算法對新疆復雜棉田環(huán)境中的幼苗與雜草分類.圖3展示了棉花幼苗與雜草識別分類的技術路線.
圖3 技術路線Fig 3 Technical routes
在Faster R-CNN框架下,本文采用ResNet-101[16]網絡作為特征提取網絡,由于Resnet101網絡具有跳躍連接操作,可實現(xiàn)特征重用,與使用單一卷積操作,網絡從前到后依次進行特征提取的網絡相比,可以減少在卷積過程中導致的信息丟失.因此,ResNet101網絡對于其它特征提取網絡而言,具有優(yōu)異的性能表現(xiàn).ResNet101網絡前四個卷積神經網絡被用作Faster R-CNN共享卷積層的初始化參數(shù),以提取圖像的特征,最后一級用作Fast R-CNN檢測器的初始化參數(shù).
生成區(qū)域建議之前需要確定圖像的最佳錨尺度.RPN以16像素的步幅評估圖像每個位置的不同邊界框,產生的不同邊界框形成的盒子稱為錨,其特征是由它們的比例(盒子面積)和縱橫比決定.由于本研究中的對象大小不一且種類多,為了能夠更好的檢測識別到目標,本文測試了三種不同的縱橫比,確定了縱橫比1∶2與1∶1為錨的最佳尺度.雖然輸入圖像的像素為500×375,但網絡會在最短的一側將輸入圖像的大小調整為400像素.因此,最短邊為400像素而不是375像素,如圖4所示.
圖4 測試錨點與圖像大小進行比較Fig 4 Test anchor point compared to image size
整個實驗過程的運行環(huán)境為Windows7(64位)操作系統(tǒng),Anaconda 3.5.0,Python 3.5.6,CUDA 8.0,cuDNN 6.0,搭載Intel(R)Xeon(R)CPU E5-2630 v4@2.20GHz處理器.使用開源深度學習框架Tensorflow作為開發(fā)環(huán)境,計算機內存16GB.
為提升模型性能,減少過擬合,以本文預訓練模型進行參數(shù)初始化設置,使用SGD(Stochastic Gradient Ddescent)隨機梯度下降法改善模型.dropout設置為0.6,動量因子設置為0.9,最大迭代次數(shù)為60 000步,學習率最初設為0.01,迭代次數(shù)是20 000步時,降為0.001,40 000步時降為0.000 25,直到迭代次數(shù)達到最大值后停止訓練.得到訓練好的網絡模型,使用測試集對模型效果進一步驗證,輸出識別結果.
由于不同評價指標對實驗結果的評估意義不同,所以本文使用了常用的識別時間和精準率兩種評估指標對實驗結果進行評估.為了使實驗更加簡潔易懂,我們將使用表格將每一類數(shù)據(jù)的分類結果展示出來.其中識別時間,精準率定義如公式(1)、公式(2)所示:
式中:TP表示把正樣本預測為正樣本的樣本數(shù)量;FP表示把負樣本預測為正樣本的樣本數(shù)量,TP+FP表示預測為正樣本的全部樣本數(shù)量;t表示平均識別時間;T表示所有類別識別總時間;M表示所有類別圖像總張數(shù).
識別效果如圖5所示,在目標較少的情況下可實現(xiàn)較高的識別率,目標較多的情況下識別率雖然有所下降,但仍可保持在90%以上.圖中出現(xiàn)識別率較差的情況主要是由于棉花葉片受病害影響,造成葉片信息不全,從而導致識別率有所下降.試驗結果表明:Faster R-CNN模型在新疆復雜棉田環(huán)境下,對伴生的棉苗與雜草都實現(xiàn)了較高的識別率.
圖5 雜草與棉花幼苗交叉識別Fig 5 Identification of weeds and cotton seedlings
為研究雜草識別過程中光照環(huán)境對識別率的影響,對不同天氣,不同光照影響下的相同雜草進行同等數(shù)量劃分,晴天、陰天和雨天的不同雜草圖像各1 000張,將以上圖像分別采用之前訓練好的分類器進行識別.由表2可以看出識別時間分別為0.28 s、0.34 s和0.359 s,識別率分別為96.02%、92.77%和90.34%,即雨天環(huán)境下的識別時間最長且識別率最低,在晴天環(huán)境下識別時間最短且識別率最高,其效果最佳.
表2 不同光照影響下的雜草識別率Tab 2 Weed recognition rate under different illumination
為了充分體現(xiàn)所使用方法的有效性,在保證相同的圖像處理方法和ResNet101特征提取網絡下進行Faster R-CNN模型與YOLO模型進行比較,兩種方法的損失(Loss)曲線(無量綱)和精度(precision)(無量綱)隨迭代次數(shù)的變化情況如圖6所示,兩種模型的最終試驗結果如表3所示.在精度方面,F(xiàn)aster R-CNN的精度曲線始終處在YOLO方法的精度上方,準確性明顯高于YOLO模型方法,F(xiàn)aster R-CNN的最終識別率可達92.01%,而YOLO模型方法的最終識別率為89.47%;在損失值方面,F(xiàn)aster R-CNN收斂更快,且較為平緩,損失值低于YOLO方法的損失值.Faster R-CNN模型的平均識別時間為0.261 s,在單張圖像檢測上,比YOLO模型方法節(jié)省53 ms.這是因為Faster R-CNN模型采用RPN(Region Proposal Network)代替選擇性搜索(Selective Search),利用GPU進行計算大幅度縮減提取region proposal的速度并優(yōu)化了建議區(qū)域的產生方式,實現(xiàn)端到端訓練,從而縮短了識別時間、提高了識別效率,對田間雜草的識別性能更優(yōu).試驗表明,F(xiàn)aster R-CNN模型比YOLO模型更適用于棉花幼苗與多種類雜草交叉生長的識別研究.
表3 兩種方法試驗結果對比Tab 3 Comparison of experimental results of two methods
圖6 兩種方法的損失及精度對比Fig 6 Comparison of loss and precision of two methods
本文針對不同光照環(huán)境下的各種雜草圖像提出了基于數(shù)據(jù)增強和Faster R-CNN的棉田苗期雜草識別方法,得到如下結論.
(1)采用數(shù)據(jù)增強增加雜草的多樣性和樣本數(shù)量.通過Faster R-CNN模型對樣本圖像進行訓練,能夠將與棉花幼苗交叉生長的各種雜草進行定位、識別和分類,增強了模型的識別能力.
(2)通過對比各種光照影響下的雜草識別率,得出雨天對雜草識別率的影響最大.晴天識別效果最佳,且識別率最高.將Faster R-CNN與YOLO進行比較,可知本文方法識別率較好,平均識別率為92.01%,明顯優(yōu)于YOLO方法.