付豪,趙學(xué)觀,翟長遠,鄭康,鄭申玉,王秀
(1. 廣西大學(xué)機械工程學(xué)院,南寧市,530004; 2. 北京市農(nóng)林科學(xué)院智能裝備技術(shù)研究中心,北京市,100097)
隨著人口的增長,糧食需求量越來越大,但糧食的生產(chǎn)卻面臨巨大挑戰(zhàn),作為影響糧食質(zhì)量和產(chǎn)量的生物因素之一,雜草和作物生長于同一空間,與作物爭奪生長空間、陽光、養(yǎng)分,同時大田中的雜草也會為害蟲提供生長繁殖的環(huán)境[1],增加了殺滅害蟲的難度。
目前清除雜草的方式主要有4種:預(yù)防除草,通過消除田間雜草種子以及優(yōu)化耕作模式,減少雜草生長;生物除草,在田間引入雜草天敵;化學(xué)除草,通過噴施化學(xué)藥劑除草;機械除草,采用割除或翻耕覆蓋的方式清除雜草[2]。上述除草方式作用對象是大田整體區(qū)域,當對無雜草區(qū)域進行操作時,浪費勞動力和增加生產(chǎn)成本,對靶除草技術(shù)只針對雜草生長區(qū)域進行工作,能有效減少雜草清除過程中無雜草區(qū)域?qū)趧恿亢蜕a(chǎn)成本的浪費。
對靶除草已經(jīng)成為精準農(nóng)業(yè)領(lǐng)域中的研究熱點[3]。對靶除草技術(shù)主要包括雜草識別與雜草清除兩個過程,其中雜草識別是進行對靶除草的首要任務(wù),傳統(tǒng)的雜草識別方法根據(jù)雜草的顏色特征、形狀特征、紋理特征、空間特征等對雜草進行識別[4],但作物與雜草具有一定的相識性,這導(dǎo)致傳統(tǒng)的雜草識別方法精度較低。近年來深度學(xué)習(xí)方法被廣泛應(yīng)用于田間雜草識別,深度學(xué)習(xí)通過數(shù)據(jù)輸入,自動提取雜草特征,識別出目標雜草,識別精度遠高于傳統(tǒng)的雜草識別方法?;谏疃葘W(xué)習(xí)的雜草識別方法已經(jīng)取得較多研究成果,但其在技術(shù)層面上仍然存在兩大難題:(1)田間環(huán)境復(fù)雜,深度學(xué)習(xí)對樣本的數(shù)量具有較大的依賴性。(2)深度學(xué)習(xí)計算量大,雜草實時識別對硬件要求較高。本文通過綜述深度學(xué)習(xí)硬件和軟件實現(xiàn)以及深度學(xué)習(xí)在雜草識別中的應(yīng)用,分析存在的問題,并對未來的研究方向進行展望。
深度學(xué)習(xí)是機器學(xué)習(xí)的一個分支,其本質(zhì)是通過非線性映射進行特征提取學(xué)習(xí)的一個過程,采用大量數(shù)據(jù)信息訓(xùn)練模型,得到有利于分類的特征提取參數(shù),通過多層非線性映射堆疊,將低級特征抽象組合成高級特征,把目標抽象化表達,進而對目標進行分類[5-7]。深度學(xué)習(xí)相較于傳統(tǒng)的機器學(xué)習(xí),最大的優(yōu)勢在于自動提取特征[8],有足夠的數(shù)據(jù)去訓(xùn)練模型,深度學(xué)習(xí)能夠更好地解決較復(fù)雜的問題[6]。在雜草識別時大量采用深度學(xué)習(xí)的方法,深度學(xué)習(xí)實現(xiàn)流程如圖1所示。
圖1 深度學(xué)習(xí)實現(xiàn)流程圖
主要包括數(shù)據(jù)采集以及數(shù)據(jù)集制作、模型的搭建、模型訓(xùn)練、模型評估和模型部署,這其中涉及到深度學(xué)習(xí)方法的硬件以及軟件實現(xiàn),以下對整個過程進行詳細敘述。
深度學(xué)習(xí)需要處理大量的數(shù)據(jù),對硬件算力要求較高,在模型推理階段,需要將訓(xùn)練好的模型移植到嵌入式設(shè)備上運行,這給嵌入式設(shè)備的計算能力以及功耗提出了巨大的挑戰(zhàn)[9]。硬件的性能直接影響深度學(xué)習(xí)模型識別效果,選擇合適的硬件能使基于深度學(xué)習(xí)的雜草識別達到更理想的效果。目前常用的深度學(xué)習(xí)硬件有CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate ARRAY)、ASIC(Application Specific Integrated Circuit)[10]。不同類型的硬件各有其優(yōu)缺點,以下對4種類型硬件的優(yōu)缺點以及適用范圍進行綜述。
CPU是最為常見的芯片,主要由計算單元、控制單元和存儲單元組成,遵循馮諾依曼架構(gòu),其中控制單元和存儲單元占了大量的空間,相比之下計算單元部分較少,這導(dǎo)致CPU處理大量數(shù)據(jù)的計算能力不強。但是現(xiàn)在主流的CPU主頻較高,在小規(guī)模數(shù)據(jù)計算方面要優(yōu)于GPU,相較于GPU,CPU不適合用于較為復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練階段,可以用于一些參數(shù)較少模型的推理階段。
GPU是專為圖像處理而設(shè)計的處理器,與CPU不同,其架構(gòu)由大量運算單元組成,適合并行運算,與包含大量加法、乘法并行運算的深度學(xué)習(xí)模型相匹配,同時GPU有較大的內(nèi)存,能存儲深度學(xué)習(xí)模型大量的參數(shù),GPU成為目前深度學(xué)習(xí)領(lǐng)域應(yīng)用最廣泛的硬件[11]。王璨等[12]使用CPU運行雜草識別模型識別玉米雜草,單張圖片平均耗時1.68 s,使用GPU硬件運行后,單張圖片識別速度縮短為0.72 s。彭明霞等[13]采用深度學(xué)習(xí)方法識別棉田雜草,模型在CPU上運行時,單張圖片平均耗時1.51 s,采用GPU加速后,單張圖片平均耗時縮短到0.09 s。姜紅花等[14]采用NVIDIA GTX 1080Ti GPU代替CPU進行運算,單幅圖像平均耗時0.44 s。劉慶飛等[15]在GPU上運行深度學(xué)習(xí)模型對雜草及作物進行識別,對3通道圖像識別速度達到20 fps。深度學(xué)習(xí)模型在GPU上運行速度遠遠高于CPU,但GPU功耗較大,這使其在小型移動式設(shè)備上部署存在較大的限制,更適用于深度學(xué)習(xí)模型訓(xùn)練階段。但隨著NVIDIA公司推出了NVIDIA Jetson系列基于GPU的嵌入式系統(tǒng),該系統(tǒng)具有體積小、算力強、兼容眾多深度學(xué)習(xí)框架的特點,使得GPU在小型移動式設(shè)備上完成深度學(xué)習(xí)的推理階段成為了可能。
FPGA又叫做現(xiàn)場可編程門陣列,是一種半定制電路,用戶可根據(jù)任務(wù)要求進行編程達到想要的邏輯操作[16],與CPU、GPU相比,具有性能高、功耗低、可硬件編程的特點。但為了保證編程的靈活性,電路設(shè)計上有大量冗余,導(dǎo)致工作頻率不高,同時FPGA的編程需要編程人員對硬件知識有一定的掌握,這提高了FPGA的使用門檻。
ASIC是針對某一類深度學(xué)習(xí)任務(wù)定制的硬件,其針對特定任務(wù)性能較好,能耗較低,但是與FPGA相比,ASIC硬件制作完成后不能更改,這導(dǎo)致使用靈活性較差,同時硬件的設(shè)計、制作需要花費較長的周期,導(dǎo)致成本較高。目前針對深度學(xué)習(xí)而設(shè)計的專用ASIC芯片較多,例如NVIDIA公司推出的NVIDIA Tesla P100顯卡,其性能是同期NVIDIA公司推出的GPU顯卡性能的12倍。谷歌公司針對張量計算設(shè)計了TPU芯片,2016年中國科學(xué)院計算機研究所發(fā)布了名為寒武紀的全球首個支持深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)處理芯片。
綜上所述,不同的硬件有各自的優(yōu)缺點[17],如表1所示,CPU與GPU相比性能較差,不適合用于模型的訓(xùn)練;GPU性能好,但是功耗高,體積大,適用于模型的訓(xùn)練階段,但在小型移動設(shè)備上完成模型推理階段具有一定挑戰(zhàn);FPGA性能好,能耗低,但其編程較難,入門門檻高;ASCI性能好,但成本高。
表1 深度學(xué)習(xí)硬件開發(fā)情況對比Tab. 1 Comparison of deep learning hardware development
深度學(xué)習(xí)軟件實現(xiàn)主要包括以下過程,圖像采集、數(shù)據(jù)集制作、深度學(xué)習(xí)框架選擇、搭建深度學(xué)習(xí)模型、模型訓(xùn)練、模型評估以及模型部署。
1.2.1 圖像采集及數(shù)據(jù)集制作
深度學(xué)習(xí)模型需要大量數(shù)據(jù)進行訓(xùn)練,從而提高模型的識別準確率。在雜草識別中大量的雜草及作物圖片數(shù)據(jù)可通過不同的設(shè)備進行采集,采集后可使用labelme、labelimg等標注工具對采集圖片進行標注,并將數(shù)據(jù)集按照一定比例分為訓(xùn)練集、測試集、驗證集,用于模型的訓(xùn)練、性能評估和參數(shù)優(yōu)化。
在圖片數(shù)據(jù)的采集過程中工業(yè)相機、手機等是較為常用的圖像采集設(shè)備,工業(yè)像機、手機一般手持或者被固定安裝于移動裝置上,并與目標作物以及雜草保持一定的距離進行拍攝。如Olsen等[18]采用手持高清攝像機在不同光照條件下采集了17 509張雜草及作物圖片。Suh等[19]將攝像頭安裝于1 m高的移動平臺上,相機光軸垂直地面,移動平臺以0.5 m/s的速度運行,拍攝大豆與雜草圖像。劉亞田[20]使用手機對不同生長時期的玉米進行拍攝,共采集1 600張玉米雜草圖片。
無人機也常被用于圖像數(shù)據(jù)采集,張茹飛[21]使用大疆無人機并設(shè)置飛行高度為2 m,采集小麥以及雜草圖像。Alessandro等[22]使用無人機采集大面積的大豆圖像,該圖像可用于制作雜草地圖。
除了在研究時通過電子設(shè)備采集圖像并制作數(shù)據(jù)集,也可使用網(wǎng)上公開數(shù)據(jù)集獲取數(shù)據(jù)進行研究。Sudars等[23]公開了一個由6種作物和8種雜草共1 118 張RGB圖片組成的數(shù)據(jù)集。Olsen等[18]制作了一個澳大利亞北部地區(qū)8種主要雜草數(shù)據(jù)集,該數(shù)據(jù)集總共包含17 509張圖片。其他一些網(wǎng)上公開數(shù)據(jù)集有Plant Village、Plant Seedlings Clasification[6]等。
1.2.2 深度學(xué)習(xí)框架
深度學(xué)習(xí)模型需要在深度學(xué)習(xí)框架上訓(xùn)練,常用的深度學(xué)習(xí)框架及其接口語言如表2所示。
表2 常用深度學(xué)習(xí)框架Tab. 2 Common deep learning frameworks
其中較為常用的框架為Tensorflow和Pytorch等,Tensorflow是Goolge于2015年發(fā)布的深度學(xué)習(xí)框架,使用的接口語言為C++/Python/Java等,可使用語言種類較多,同時其可以部署于一個或多個CPU、GPU服務(wù)器中;Pytorch是Facebook于2017年發(fā)布的深度學(xué)習(xí)框架,其優(yōu)點在于能實現(xiàn)強大的GPU加速,還支持動態(tài)神經(jīng)網(wǎng)絡(luò)。目前Pytorch更多應(yīng)用于學(xué)術(shù)研究,而Tensorflow多應(yīng)用于工業(yè)生產(chǎn)。
1.2.3 深度學(xué)習(xí)模型
以常用于圖像分類識別的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNN)為例對深度學(xué)習(xí)模型進行說明。CNN是由輸入層、卷積層、池化層、全連接層以及輸出層組成的一類前饋神經(jīng)網(wǎng)絡(luò)[24],如圖2所示。輸入層是整個卷積神經(jīng)網(wǎng)絡(luò)的輸入,在圖像分類任務(wù)當中,輸入層輸入的是圖像的像素矩陣;卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心部分,其作用是利用卷積核檢測輸入的圖片或特征圖中不同位置的局部特征,并輸出到下一層[25],卷積層的計算過程如圖3所示,卷積核掃描輸入的像素矩陣,對應(yīng)位置的數(shù)值相乘,其和作為下一層特征圖的一個像素值,卷積核掃描完一張圖片后,即可得到一張對應(yīng)的特征圖,該特征圖作為池化層的輸入;池化層計算過程如圖4所示,采用一個選擇框,框選特征圖元素,并對其進行計算(取框內(nèi)數(shù)據(jù)均值或者最大值),得到的結(jié)果作為下一層特征圖的像素值;全連接層主要是將提取到的特征圖轉(zhuǎn)換成列向量并映射到對應(yīng)的樣本空間[26];輸出層即輸出圖像分類結(jié)果。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
圖3 卷積運算示意圖
圖4 池化運算示意圖
目前已經(jīng)出現(xiàn)了較多成功的深度學(xué)習(xí)模型,例如VGG Net[27]、Google Net[28]、ResNet[29]等,現(xiàn)階段用于雜草識別的深度學(xué)習(xí)模型,大部分是在已有模型的基礎(chǔ)上進行優(yōu)化設(shè)計。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型就是求取模型中各個參數(shù)最優(yōu)值,是一個監(jiān)督學(xué)習(xí)的過程。在深度學(xué)習(xí)模型訓(xùn)練階段,需要設(shè)置損失函數(shù)和優(yōu)化器,損失函數(shù)用于計算經(jīng)過一次訓(xùn)練后,模型輸出的預(yù)測值與真實值的偏差,優(yōu)化器的作用是進行反向傳播運算,改變神經(jīng)網(wǎng)絡(luò)參數(shù),使損失函數(shù)的值下降,最后收斂。當損失函數(shù)收斂后,此時模型的參數(shù)較優(yōu)。在訓(xùn)練時神經(jīng)網(wǎng)絡(luò)模型的各參數(shù)的初始值可以設(shè)置為隨機值,也可以用遷移學(xué)習(xí)的方法設(shè)置初始值,即使用已訓(xùn)練好的模型參數(shù)值為所訓(xùn)練模型的參數(shù)值初始值。該方法可以減少模型訓(xùn)練的時間,同時能緩解樣本數(shù)據(jù)少導(dǎo)致訓(xùn)練出的模型精度不高的問題。Abdalla等[30]使用遷移學(xué)習(xí)的方法,用IMGNET數(shù)據(jù)集訓(xùn)練的VGG16模型參數(shù)作為雜草識別模型參數(shù)的初始值,迭代25次后,損失函數(shù)收斂,而采用參數(shù)隨機初始化的方法,迭代50次后,損失函數(shù)收斂。同時在小規(guī)模數(shù)據(jù)集上采用遷移學(xué)習(xí)的方式進行訓(xùn)練,可以得到較好的訓(xùn)練結(jié)果,鄧向武等基于深度學(xué)習(xí)和遷移學(xué)習(xí)相結(jié)合的方法,使用650張圖片訓(xùn)練了稻田雜草識別模型,該模型在測試集上的準確率達到了96.4%。
1.2.4 模型評價指標
根據(jù)不同的雜草識別任務(wù)目標,深度學(xué)習(xí)模型有不同的性能評價指標,對于分類任務(wù),常用的模型評價指標有準確率(Accuracy)、精準率(Precision)和召回率(Recall)。準確率表示所有樣本都正確分類的概率,既包括正樣本也包括負樣本,樣本較多時準確率不能全面評價分類模型性能;精準率表示預(yù)測為正樣本的目標中預(yù)測正確的比例,精準率能表示一個類別的正確率;召回率表示所有正樣本中被檢測出來的比例;在多分類任務(wù)中,可分別計算每個類的精確率和召回率。準確率、精準率、召回率的計算如式(1)~式(3)所示。
(1)
(2)
(3)
式中:TP——正樣本預(yù)測成正樣本的數(shù)量;
FP——負樣本預(yù)測成正樣本的數(shù)量;
TN——正樣本預(yù)測成負樣本的數(shù)量;
FN——負樣本預(yù)測成負樣本的數(shù)量。
在目標檢測和語義分割任務(wù)中,常采用交并比(Intersection over Union,IoU)評價模型的性能。交并比如圖5所示,為候選框(candidate bound)與原標記框(ground truth bound)交集與并集的比值,交并比越大,模型性能越好,交并比計算公式如式(4)所示。
圖5 交并比示意圖
(4)
1.2.5 模型部署
深度學(xué)習(xí)應(yīng)用的最后一步為模型部署,根據(jù)雜草識別的工作要求,將訓(xùn)練好的模型部署于嵌入式設(shè)備上進行推斷。本文以在NVIDIA Jeston Xavier NX上部署使用Pytorch框架訓(xùn)練的雜草識別模型為例,敘述深度學(xué)習(xí)模型的部署過程。在NVIDIA Jeston Xavier NX上部署使用Pytorch框架訓(xùn)練的模型有兩種方法,第一直接使用Pytorch框架進行部署,在NVIDIA Jeston Xavier NX上配置Pytorch環(huán)境,并將訓(xùn)練好的模型拷貝到NVIDIA Jeston Xavier NX上運行即可,這種部署方式要求嵌入式設(shè)備支持使用的神經(jīng)網(wǎng)絡(luò)框架;第二種部署方式,采用NVIDIA Jeston Xavier NX的TensorRT模塊進行部署,采用TensorRT模塊部署時,首先將Pytorch模型轉(zhuǎn)成ONNX模型,同時使用TensortRT模塊內(nèi)置函數(shù)將ONNX模型轉(zhuǎn)化成TensorRT模型,即可應(yīng)用于TensorRT框架進行前向傳播推理。TensortRT模型將模型權(quán)重參數(shù)量化為INT8類型,同時將神經(jīng)網(wǎng)絡(luò)層與張量進行融合,進而能提高模型的推理速度。
嵌入式設(shè)備算力較低,在部署深度學(xué)習(xí)模型前,可以對模型進行加速優(yōu)化,以提高在嵌入式設(shè)備上的推理性能。常用的模型優(yōu)化方法有網(wǎng)絡(luò)剪枝與稀疏化、張量分解、知識遷移。網(wǎng)絡(luò)剪枝與稀疏化是將神經(jīng)網(wǎng)絡(luò)中輸出值趨近于0的神經(jīng)元刪除;張量分解的主要思想是將卷積網(wǎng)絡(luò)中的張量分解為若干低秩張量,減少卷積操作的運算量,降低對嵌入式設(shè)備的算力要求;知識遷移是基于遷移學(xué)習(xí)的思想產(chǎn)生的,將復(fù)雜的教師模型的知識遷移到學(xué)生模型上,完成對網(wǎng)絡(luò)結(jié)構(gòu)的簡化[31]。
在基于深度學(xué)習(xí)的作物與雜草識別方法中,主要采用的是目標檢測模型、語義分割模型和實例分割模型。目標檢測模型用于估計特定類型目標出現(xiàn)在圖像中的具體位置[32],雜草識別中常用的目標檢測模型有Faster R-CNN[33]、SSD[34]、YOLO[35]等。孟慶寬等[36]將SSD網(wǎng)絡(luò)中提取到的圖像淺層細節(jié)特征與深層語義特征相融合增強目標特征信息,融合后的特征圖作為雜草分類識別依據(jù),并用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積輕量化網(wǎng)絡(luò),采用優(yōu)化后的SSD網(wǎng)絡(luò)模型對幼苗期玉米及其伴生雜草進行識別,平均識別準確率mAP(mean Average Precision)達到了88.27%,與標準SSD模型相比,精度提高了2.66%,同時檢測速度由24.10 f/s提高到了32.26 f/s。樊湘鵬等[37]測試了VGG16、VGG19、ResNet50和ResNet101四種特征提取網(wǎng)絡(luò)的性能,綜合考慮了特征網(wǎng)絡(luò)的檢測精度、檢測速度,確定使用VGG16為特征提取網(wǎng)絡(luò)構(gòu)建優(yōu)化的Faster R-CNN模型對自然條件下棉花幼苗及其7類常見雜草進行識別,mAP為94.21%,優(yōu)于標準SSD(87.23%)和YOLO(84.97%),但0.385 s的單張圖片處理時間高于SSD(0.297 s)和YOLO(0.314 s)。薛金利等[38]改進YOLO_V3模型用于識別棉花及雜草,mAP達到94.06%,檢測速度為51 f/s。彭明霞等[13]設(shè)計了融合特征金字塔網(wǎng)絡(luò)的Faster R-CNN模型識別自然光照下的棉花與雜草,mAP達95.5%,比傳統(tǒng)的YOLO_V3高30%,但識別一幀圖像需要1.51 s,高于YOLO_V3(1.35 s)。李春明等[39]提出一種融合生成對抗網(wǎng)絡(luò)的Faster R-CNN模型,對正常拍攝的圖片進行識別,mAP達到97.05%高于傳統(tǒng)Faster R-CNN(92.72%),同時單張圖片處理時間0.21 s高于傳統(tǒng)Faster R-CNN(0.14 s)。
在目標檢測的方法中以YOLO和SSD為代表的一階段檢測模型在檢測速度上相比二階段檢測的Faster R-CNN具有一定的優(yōu)勢,但檢測精度方面略低;同時,采用目標檢測的方法識別作物和雜草,能獲取雜草和作物的位置信息以及雜草的類別信息,但無法提取雜草形狀特征,判斷作物及雜草的生長階段,該方法可用于不考慮雜草大小以及生長階段的除草方式。
語義分割模型的功能是為圖像中的每一個像素點打上標簽[40],在雜草識別中,即為表示作物與雜草的像素點打上標簽進行分割。Asad等[41]結(jié)合極大似然估計法對雜草作物數(shù)據(jù)集進行標注,采用該數(shù)據(jù)集訓(xùn)練模型,平均交并比MIoU(Mean Intersection over Union)為82.88%。孫俊等[42]提出一種深度可分離卷積的卷積神經(jīng)網(wǎng)絡(luò)模型用于甜菜與雜草圖像分割識別,MIoU為87.58%,圖片識別幀頻為42.064 f/s。You等[43]提出一種融合注意力機制及金字塔卷積的模型,用于識別甜菜和雜草,MIoU達到89.01%。Potena等[44]設(shè)計了深層神經(jīng)網(wǎng)絡(luò)用于識別蔬菜和雜草,mAP最高為91.3%,單張圖片處理時間最低為0.98 s。王璨等[12]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的玉米雜草識別方法,mAP為98.92%,單幅圖像平均耗時1.68 s。語義分割的方法能對作物和雜草進行分類,并提取出雜草以及作物的外形特征,但不能對同種雜草的不同個體進行判斷區(qū)分,無法針對單個雜草個體進行定向除草。
實例分割是將整個圖像分成單個像素組,然后對其進行標記和分類,達到識別和分割圖像中每一個實例的深度學(xué)習(xí)模型。在雜草識別中常用Mask R-CNN[45]及其改進模型做實例分割。權(quán)龍哲等[46]提出一種改進的Mask R-CNN模型,對復(fù)雜田間環(huán)境下的雜草和玉米進行識別,MIoU為67.5%。姜紅花等[47]提出一種基于Mask R-CNN的雜草檢測方法,在復(fù)雜背景下對玉米、雜草圖像進行測試,mAP為78.5%高于SharpMask(68.4%)和DeepMask(46.2%),但是其單張圖片處理時間為0.285 s高于SharpMask(0.260 s)和DeepMask(0.252 s)。實例分割是語義分割與目標檢測的結(jié)合,能有效獲取雜草種類、位置、輪廓等特征信息,但該方法一般算法較為復(fù)雜以及前期數(shù)據(jù)集制作較為麻煩,所以該方法在雜草識別中使用較少。針對不同的除草任務(wù)要求,可選擇相應(yīng)的雜草識別方法。
雜草分類識別就是輸入一張雜草圖片(圖片中最多只能包含一類雜草),輸出圖片中的雜草類別。深度學(xué)習(xí)方法是目前主流的圖像分類方法,在對雜草分類識別中也較為常用。趙軼等[48]基于VGG16卷積神經(jīng)網(wǎng)絡(luò)對田芥、豬殃殃、鵝腸草等12種雜草進行分類識別,準確率達95.47%,高于SVM(89.64%)和Random Forest(90.03%)。王術(shù)波等[49]基于CNN模型對小麥、花生、玉米以及3種伴生雜草(藜草、葎草、蒼耳)分類識別,準確率達到95.6%。Andrea等[50]基于優(yōu)化CNN網(wǎng)絡(luò)對玉米及雜草進行分類,準確率最高為97.26%。Hu等[51]采用圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)識別馬櫻丹、銀膠菊、多刺洋槐等8種雜草,準確率為98.1%。徐艷蕾等[52]基于輕量卷積網(wǎng)絡(luò)識別自然條件下玉米幼苗及8類雜草,準確率為98.63%,單張圖片檢測平均耗時0.683 s。Ahmad等[53]采用VGG16識別玉米和大豆田中4種雜草(蒼耳、狗尾草、反枝莧和豚草),準確率達到98.90%。Jiang等[54]設(shè)計了一種基于CNN的圖神經(jīng)網(wǎng)絡(luò)在玉米雜草數(shù)據(jù)集、萵苣雜草數(shù)據(jù)集和蘿卜雜草數(shù)據(jù)集上,準確率分別為97.8%,99.37%,98.93%,均高于傳統(tǒng)CNN模型。王生生等[55]基于輕量和積網(wǎng)絡(luò)對大豆苗、禾本科雜草以及闊葉型雜草進行分類,準確率達到99.5%。
雜草分類局限于圖片中只有一種雜草,分類對象為整張圖片,該模型一般為雜草定位識別模型的研究基礎(chǔ),或用于雜草分類識別系統(tǒng)的研制。
采用深度學(xué)習(xí)的方法識別雜草,識別精度高。本文雜草識別與定位部分引用的論文當中,平均識別準確率最低的是88.27%,其中李春明等[39]設(shè)計的深度學(xué)習(xí)模型雜草識別準確率達到97.5%,在雜草分類識別部分,識別準確率均高于95%。
深度學(xué)習(xí)方法可以自動提取大量特征。傳統(tǒng)圖像處理采用手工提取特征的方式,且特征提取數(shù)量較少,這可能導(dǎo)致提取的特征無法全面表征作物或雜草,同時手工提取特征需要較多的經(jīng)驗,提取特征難度較高,甚至一些目標無法手動提取特征,然而深度學(xué)習(xí)方法能自動提取大量特征。
采用深度學(xué)習(xí)的方法進行雜草識別雖然有自身優(yōu)勢,但也存在較多的不足之處。主要體現(xiàn)在以下幾個方面。
1) 目前大部分學(xué)者采用監(jiān)督學(xué)習(xí)的方式進行訓(xùn)練深度學(xué)習(xí)模型,該方法需要大量作物和雜草數(shù)據(jù),同時需要對這些圖片進行標注,整個過程較為繁瑣。未來可采用無監(jiān)督學(xué)習(xí)或半監(jiān)督學(xué)習(xí)的方法來解決此問題,大大減少數(shù)據(jù)集采集與標注中所消耗的勞動量。無監(jiān)督學(xué)習(xí)或半監(jiān)督學(xué)習(xí)使用未標記數(shù)據(jù)集或少部分標記數(shù)據(jù)集訓(xùn)練模型,目前對于多分類識別任務(wù),計算機無法自動將分類好的目標打上標簽,這是無監(jiān)督學(xué)習(xí)的缺點與研究難點。同時隨著生成對抗網(wǎng)絡(luò)的發(fā)展,使用生成對抗網(wǎng)絡(luò)生成新的圖像數(shù)據(jù),進而擴充數(shù)據(jù)集,這將會成為以后研究熱點。
2) 深度學(xué)習(xí)方法進行雜草識別能獲得較高的識別精度,但是深度學(xué)習(xí)模型層數(shù)較深,通過大量的卷積運算提取圖像特征,在進行前向推理過程中進行大量的并行計算,當模型部署于功率小、算力低的嵌入式設(shè)備上時,雜草識別模型的圖像處理時間較長,難以達到實時檢測的目的。模型輕量化研究和研究模型剪枝技術(shù)、模型蒸餾等方法對模型進行加速優(yōu)化,使模型能部署于計算能力較低的設(shè)備上是一種趨勢。
3) 模型設(shè)計復(fù)雜,無法從數(shù)學(xué)角度對模型的性能進行分析,在進行雜草識別模型設(shè)計時,需要進行大量的試錯,模型設(shè)計時間長,且需要占用大量的計算資源[56]。
基于深度學(xué)習(xí)的雜草識別模型較高識別準確率是基于數(shù)量多、信息全的雜草圖像數(shù)據(jù)集訓(xùn)練得到的。在非結(jié)構(gòu)化的農(nóng)田環(huán)境中,要獲得全面的雜草數(shù)據(jù)集,需要采集不同光照、不同生長周期、不同種類的雜草圖像,該過程需要花費大量的時間和勞動力。目前,研究人員在構(gòu)建數(shù)據(jù)集時,一般只針對某個區(qū)域生長的幾種類型雜草,其他科研人員采用該數(shù)據(jù)集訓(xùn)練雜草識別模型,一般會遇到數(shù)據(jù)集中雜草種類不同或缺少的問題,無法使用該數(shù)據(jù)集,進而需要重新采集,造成大量的重復(fù)工作。
在作物的生長過程中,雜草與作物相互遮擋是較為常見的情況,對于遮擋部分,目標不完整、不易分辨,無法準確提取到雜草/作物靶標特征[57]。遮擋分為完全遮擋和部分遮擋兩種情況,雜草被完全遮擋,目前無有效方法解決,部分遮擋又可分為非目標造成的遮擋和需要檢測的目標造成的遮擋,對于非目標物造成的遮擋,目前的解決辦法是采用更多的數(shù)據(jù)和更豐富的特征信息進行模型訓(xùn)練,對于目標物產(chǎn)生的遮擋,可借鑒圖卷積神經(jīng)網(wǎng)絡(luò)、膠囊網(wǎng)絡(luò)和目標檢測中的推理關(guān)系網(wǎng)絡(luò)來提高部分遮擋情況下識別準確率[58]。
相機的成像質(zhì)量與其曝光時間有關(guān),在運動狀態(tài)下曝光時間過長容易引起運動模糊,丟失目標區(qū)域部分特征信息,不能準確地獲取雜草紋理特征和輪廓特征,影響靶標的準確識別。
在強光直射、光線不均條件下,易引起雜草表面整體或局部反光嚴重。成像時靶標整體或局部紋理特征、輪廓特征變模糊,采集到的靶標特征量變少,造成深度學(xué)習(xí)模型在分類識別時難以精確區(qū)分。
1) 農(nóng)作物和雜草植物有許多相似之處,融合光譜數(shù)據(jù)信息可以提高深度學(xué)習(xí)性能。然而,缺乏關(guān)于作物和雜草的大型數(shù)據(jù)集。有必要通過從不同的地理位置、天氣和環(huán)境中采集各種作物/雜草建造一個大型的數(shù)據(jù)集,適應(yīng)作物和雜草的不同生長階段。
2) 雜草分類識別后,建立雜草作物生長模型,對雜草作物長勢進行預(yù)測,判斷最佳除草時間。目前大部分基于深度學(xué)習(xí)的雜草識別方法主要針對某一個生長階段的雜草進行分類識別研究,沒有建立相關(guān)模型對雜草生長周期進行預(yù)測,而在進行施藥除草時,不同的雜草噴灑除草劑效果最佳階段不同,在雜草識別之后根據(jù)相關(guān)信息,建立雜草生長模型,對未來雜草長勢進行預(yù)測,選擇最佳的噴灑除草劑的時間是很有必要的。
3) 雜草識別模型模塊化發(fā)展,目前研究的雜草識別方法大多數(shù)只針對一種作物和與其伴生的幾種雜草,識別范圍有限,未來發(fā)展時可考慮模塊化設(shè)計,即通過更換其中某個模塊的某些參數(shù),即可對其他作物與雜草進行識別,擴大部署雜草識別模型的設(shè)備使用范圍。
4) 2020年中國工程院發(fā)布《全球工程技術(shù)前沿2020》,農(nóng)業(yè)機器人作業(yè)對象識別與定位作為在農(nóng)業(yè)領(lǐng)域公布的11個工程研究前沿之一,與生態(tài)無人農(nóng)場理念的眾多關(guān)鍵技術(shù)密切相關(guān),是農(nóng)業(yè)領(lǐng)域未來發(fā)展的重要方向。雜草識別是作業(yè)對象識別與定位的重要方面,如何將識別模型部署于無人機、田間移動平臺,仍是后續(xù)研究需要解決的問題。