朱 圣,鄧?yán)^忠,張亞莉,楊 暢,嚴(yán)智威,謝堯慶
(國家精準(zhǔn)農(nóng)業(yè)航空施藥技術(shù)國際聯(lián)合研究中心/華南農(nóng)業(yè)大學(xué) 工程學(xué)院,廣東 廣州 510642)
化學(xué)除草是目前最有效且廣泛采用的水稻田雜草管控方式[1],常用的方法是對整個(gè)作業(yè)區(qū)域均勻和覆蓋式的噴灑除草[2],以無序的“點(diǎn)狀”或“片狀”形式存在的雜草會導(dǎo)致農(nóng)藥噴灑過量?!熬珳?zhǔn)農(nóng)業(yè)航空”中基于遙感分析的精準(zhǔn)施藥為解決農(nóng)藥過量施用問題提供了一種新思路[3-4]。精準(zhǔn)施藥的首要任務(wù)是獲取水稻田的遙感圖像并分析其中的雜草分布狀況,得到網(wǎng)格形狀的雜草分布圖。水稻田圖像中水稻及雜草顏色相近,若依據(jù)圖像識別其差異,則要求遙感圖像具有較高的空間分辨率。近年來無人機(jī)低空遙感因操作簡單、節(jié)省人力物力并可獲得高分辨率影像的優(yōu)勢為農(nóng)作物分類調(diào)查提供了新思路[5],相比傳統(tǒng)衛(wèi)星影像,具有獲取方式更靈活、時(shí)效高等特點(diǎn),在農(nóng)情監(jiān)測、精準(zhǔn)農(nóng)業(yè)等領(lǐng)域得到越來越多的應(yīng)用[6-7]。利用無人機(jī)采集水稻田的遙感圖像并進(jìn)行農(nóng)情分析在國內(nèi)外已有類似的研究。Barrero等[8]使用神經(jīng)網(wǎng)絡(luò)(Neural network)對水稻雜草航空圖像進(jìn)行檢測,檢測準(zhǔn)確率高達(dá)99%;Barrero等[9]根據(jù)無人機(jī)拍攝的圖像提出一種融合低分辨率多光譜和高分辨率RGB圖像的方法檢測水稻田雜草,采用神經(jīng)網(wǎng)絡(luò)對RGB、RGB+NGRDI和融合RGB-NGRDI 共3種圖像進(jìn)行檢測,結(jié)果表明基于融合圖像的雜草檢測精度最高,在70%~85%之間;Uto等[10]使用無人機(jī)獲取水稻的高光譜數(shù)據(jù),通過頻繁地監(jiān)測照明水平和葉綠素指數(shù)獲得水稻田的生長信息;馬明洋[11]使用無人機(jī)獲取稻田中水稻冠層高光譜影像信息,對光譜特征信息進(jìn)行分類,其中使用二代小波分解算法分類精度最高,達(dá)到90.36%;洪雪[12]利用無人機(jī)獲得農(nóng)田中水稻的光譜數(shù)據(jù),使用BP神經(jīng)網(wǎng)絡(luò)建模對水稻產(chǎn)量進(jìn)行預(yù)測;Ma等[13]使用SegNet、FCN和U-Net 共3種語義分割模型對水稻田中的水稻雜草圖像進(jìn)行像素級的分割,結(jié)果表明,SegNet算法識別效果最好,達(dá)到92.7%的準(zhǔn)確率。相關(guān)研究主要集中在對水稻田雜草的識別檢測上,獲取水稻田中雜草分布信息并生成水稻田間雜草分布圖的研究相對較少。本文擬采用大疆精靈4無人機(jī)及其攜帶的可見光相機(jī)采集遙感圖像,以水稻雜草為識別目標(biāo),對比支持向量機(jī)(Support vehicle machine,SVM)、K 最近鄰算法 (K-nearest neighbor, KNN)、AdaBoost共3種機(jī)器學(xué)習(xí)方法和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)方法對水稻和雜草的分類效果,獲取水稻田間雜草分布信息,生成分類效果最好的水稻田間雜草分布圖,為后續(xù)植保無人機(jī)進(jìn)行精準(zhǔn)施藥提供決策依據(jù)。
研究區(qū)域位于華南農(nóng)業(yè)大學(xué)增城試驗(yàn)基地(中國廣東省廣州市,坐標(biāo) 23°14′N、113°38′E,基準(zhǔn)WGS84)(圖1)。本研究于2017年10月2日對試驗(yàn)基地中某一塊稻田進(jìn)行RGB圖像采集,數(shù)據(jù)采集設(shè)備為大疆精靈4無人機(jī),結(jié)合地面站軟件DJI GS PRO進(jìn)行航線規(guī)劃。經(jīng)實(shí)地驗(yàn)證,研究區(qū)域的雜草主要有千金子和莎草。
圖1 試驗(yàn)數(shù)據(jù)采集點(diǎn)Fig. 1 Location of test data collection
無人機(jī)飛行高度依次設(shè)置為6、8、10 m。橫、縱向重疊率分別為60%和50%。本次試驗(yàn)采集圖像120幅,每幅圖像的分辨率為4 000像素×3 000像素,空間分辨率為0.3 cm。采集到的圖像如圖2a所示。根據(jù)人眼對水稻和雜草的識別效果以及需要對采集的圖像使用有監(jiān)督學(xué)習(xí)作用的方法進(jìn)行標(biāo)注,試驗(yàn)選擇飛行高度為6 m。在采集到的無人機(jī)遙感圖像中,所有物體被分為3個(gè)類別:水稻、雜草以及其他(包括水泥地、土壤、地面等)。本文分別使用綠色表示水稻,紅色表示雜草,灰色代表其他,對每一張圖像中3個(gè)類別進(jìn)行基于像素級別的顏色標(biāo)注,如圖2b所示。
圖2 無人機(jī)拍攝的原圖和對應(yīng)的標(biāo)注圖Fig. 2 Original image taken by UAV and corresponding annotated image
根據(jù)田間地面的實(shí)際驗(yàn)證,在1個(gè)0.3 m×0.3 m的網(wǎng)格中有95%以上概率可確認(rèn)只有1個(gè)類別??紤]有限的計(jì)算機(jī)資源以及圖像的分辨率即像素尺寸為4 000×3 000,空間分辨率為0.3 cm,根據(jù)計(jì)算,0.3 m×0.3 m的地面區(qū)域?qū)?yīng)圖像的像素尺寸為100×100,因此本文將每幅4 000像素×3 000像素的原圖像與標(biāo)記圖像分別切割成1 200塊像素大小為100×100的小網(wǎng)格。對原圖像切割成的小網(wǎng)格圖片與標(biāo)記圖切割成的小網(wǎng)格圖片進(jìn)行效果比對,在標(biāo)記圖小網(wǎng)格圖庫中,按照單一顏色或者某種顏色超過95%的選取規(guī)則與原圖像庫中的小圖片進(jìn)行對應(yīng),按照隨機(jī)性以及訓(xùn)練集與測試集5∶1的原則選出6 000幅小網(wǎng)格圖片作為訓(xùn)練集,選取1 200幅小網(wǎng)格圖片作為測試集。
1.2.1 基于機(jī)器學(xué)習(xí)分類的圖像預(yù)處理 顏色特征是基于圖像像素提取的,具有旋轉(zhuǎn)、尺度和平移不變性等優(yōu)點(diǎn)[14],是人眼獲取的最為有效且明顯的信息之一。它的獲取及計(jì)算較簡單,常用作特征向量訓(xùn)練機(jī)器學(xué)習(xí)模型。本試驗(yàn)擬對小樣本提取RGB三通道顏色的最大值、最小值與平均值。從原圖小網(wǎng)格圖庫中隨機(jī)選取3種類別小圖片各3 200幅用于統(tǒng)計(jì)RGB像素平均值(圖3),不同類別樣本提取出的顏色特征有一些差異。
本文的圖像屬于單視圖數(shù)據(jù),數(shù)據(jù)維數(shù)巨大。盡管高維數(shù)據(jù)含有更加豐富的信息,但對于分類、聚類等任務(wù),要付出巨大的計(jì)算和存儲代價(jià),而且在測試集數(shù)量一定時(shí),特征維數(shù)的增加將使樣本統(tǒng)計(jì)特性變得困難,降低分類器的泛化能力[15]。本文使用對單視圖數(shù)據(jù)有較好泛化性能的主成分分析(Principal component analysis,PCA)對圖像數(shù)據(jù)進(jìn)行降維。PCA是Karl Pearson[16]在1901年提出的概念,1933年Hotelling[17]完善其數(shù)學(xué)基礎(chǔ)。本研究原始圖像的特征向量有30 000維存在噪聲和冗余信息,會對分類器造成干擾,因此采用PCA降維來消除這種影響[18]。經(jīng)過如圖4所示的PCA計(jì)算流程,為保留90%有效信息并降到50維,剔除無效的信息,保留有用的特征信息,形成特征向量集。結(jié)合提取到的顏色特征分別送入SVM、KNN和AdaBoost 3種分類器中進(jìn)行識別分類。
圖3 3種類別樣本的RGB像素平均值Fig. 3 RGB pixel means of three category samples
1.2.2 基于CNN分類的圖像預(yù)處理 CNN可以自動學(xué)習(xí)輸入圖像中的特征,并對學(xué)習(xí)到的特征進(jìn)行自動分類,網(wǎng)絡(luò)直接輸出該圖像的類別概率,是一種端到端的圖像識別方法[19]。CNN通過卷積運(yùn)算完成特征提取。圖像卷積運(yùn)算是通過設(shè)定各種特征提取濾波器矩陣,然后使用該卷積核在原圖像矩陣(圖像實(shí)際是像素值構(gòu)成的矩陣)“滑動”,實(shí)現(xiàn)卷積運(yùn)算。因此,基于CNN對圖像的分類無需做預(yù)處理,可直接進(jìn)行模型的訓(xùn)練。本文的技術(shù)路線如圖5所示。對原始圖像進(jìn)行標(biāo)注、切割后使用3種機(jī)器學(xué)習(xí)算法和CNN對小圖片進(jìn)行分類,并形成水稻田中的雜草分布圖。
圖4 主成分分析算法計(jì)算流程圖Fig. 4 Calculation process of principal component analysis algorithm
常用的監(jiān)督分類方法有最大似然[20]、神經(jīng)網(wǎng)絡(luò)[21-22]、SVM[23-24],常用的非監(jiān)督分類方法有K-均值、模糊 C-均值 (Fuzzy C-mean,F(xiàn)CM)[25-26]等。獲取的圖像數(shù)據(jù)經(jīng)標(biāo)注后使得本文的分類方法成為監(jiān)督分類范疇。
1.3.1 SVM分類模型 SVM是一種可分析數(shù)據(jù)、識別模型和分類的監(jiān)督學(xué)習(xí)模型[27-28]。SVM算法在于尋找一個(gè)超平面,該超平面可將訓(xùn)練集中的數(shù)據(jù)分開,且與類域邊界邊沿垂直于該超平面方向的距離最大,從而達(dá)到最大的泛化能力[29]。對于任意數(shù)據(jù)集 T 和超平面 ωx+b=0,定義超平面關(guān)于樣本點(diǎn)(xi,yi)的幾何間距(ri)為:
圖5 利用3種機(jī)器學(xué)習(xí)算法和CNN生成水稻田雜草分布圖的技術(shù)路線圖Fig. 5 Technical routes of using three kinds of machine learning algorithms and CNN to generate distribution map of paddy weeds
式中,ω 、b分別是超平面的權(quán)重向量與截距向量。關(guān)于全部樣本點(diǎn)的幾何間隔的最小值 (γ )為:
即向量到超平面的距離。
以上都是針對數(shù)據(jù)線性可分推導(dǎo)的,本文的圖像數(shù)據(jù)屬于線性不可分,必須確定懲罰系數(shù)c和徑向基函數(shù)g,再選擇更優(yōu)的核函數(shù)將數(shù)據(jù)映射到更高維空間,有效解決數(shù)據(jù)低維和高維空間映射造成計(jì)算復(fù)雜度增加的問題[30]。常用的核函數(shù)有線性核、多項(xiàng)式核、徑向基內(nèi)核和Sigmoid核。選擇核函數(shù)時(shí)要考慮數(shù)據(jù)的特點(diǎn)和數(shù)據(jù)量,本次SVM模型使用的是Sigmoid核,通過使用不同的核函數(shù)和參數(shù)c、g尋優(yōu),Sigmoid核的公式如下所示:
式中,a、b為人工設(shè)置的參數(shù),a為正實(shí)數(shù),b為非負(fù)實(shí)數(shù)。
1.3.2 KNN分類模型 KNN是機(jī)器學(xué)習(xí)領(lǐng)域最常用的分類算法,也是一種回歸的非參數(shù)統(tǒng)計(jì)方法[31]。優(yōu)點(diǎn)是可用于非線性分類,適用于本文的遙感數(shù)據(jù)且對異常數(shù)據(jù)不敏感,缺點(diǎn)是需要大量的存儲空間,計(jì)算耗時(shí)。分類的思路是假設(shè)一個(gè)樣本在特征空間中的k個(gè)最近鄰的樣本大多數(shù)屬于某個(gè)類別,則將該樣本也劃分成這個(gè)類別。本文使用KNN算法建模時(shí),關(guān)于距離的度量方法使用的是歐幾里得距離公式,具體如下:
式中,xi代表待測樣本,yi代表已知樣本,n代表樣本數(shù)。
1.3.3 AdaBoost分類模型 本文選取AdaBoost算法構(gòu)建小尺度的水稻田雜草圖像分類模型。AdaBoost算法是由Freund等[32]提出的目前使用和研究最多的集成算法,該算法的思想是將若干個(gè)分類能力較弱的分類器按照一定的方式混合成為分類能力很強(qiáng)的強(qiáng)分類器[33-34]。AdaBoost算法計(jì)算流程如下:
1)構(gòu)造圖像特征數(shù)據(jù)訓(xùn)練集為G={(x1,y2),(x2,y2)···,(xn,yn)},xn為圖像的特征數(shù)據(jù)集,yn為標(biāo)簽集。
2)初始化每個(gè)圖像特征數(shù)據(jù)的權(quán)值D1={w1,w2···,wn} ,wn=1/n,wn為第n個(gè)圖像特征數(shù)據(jù)對應(yīng)的初始權(quán)值。
3)迭代k次 (k=1, 2···,K),使用決策樹算法對有權(quán)值分布的訓(xùn)練集訓(xùn)練出弱分類器。
1.3.4 CNN分類模型 作為一種深度學(xué)習(xí)方法,CNN已成為當(dāng)前圖像理解領(lǐng)域的研究熱點(diǎn)[35],其權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)在網(wǎng)絡(luò)輸入為多維圖像時(shí)尤為方便,圖像可直接作為網(wǎng)絡(luò)輸入,避免傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程[36]。本文采用CNN對采集到的水稻田雜草圖像進(jìn)行分類,CNN結(jié)構(gòu)的隱含層一般包含卷積層、采樣層、池化層和全連接層等幾類常見的層結(jié)構(gòu),本文使用的卷積層結(jié)構(gòu)如圖6所示。
圖6 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig. 6 Convolutional neural network structure
卷積層中的卷積核包含權(quán)重系數(shù),用來自動提取圖像的特征。本文所使用的CNN結(jié)構(gòu)是在Ubuntu16.04系統(tǒng)下,框架為tensorflow 1.5,編程語言為Python,訓(xùn)練集與測試集的圖片分別為6 000與1 200幅。考慮到有限的計(jì)算機(jī)資源,卷積層只設(shè)置5個(gè)卷積核,每個(gè)卷積核大小為1,利用ReLU函數(shù)進(jìn)行激活。池化層池化窗口大小為5×5,步長為2×2。將提取到的三維特征轉(zhuǎn)化成一維向量,全連接層對提取到的特征進(jìn)行分類。學(xué)習(xí)率設(shè)置為10-5,最后選用AdamOptimizer優(yōu)化網(wǎng)絡(luò)。
對相同的數(shù)據(jù)集經(jīng)過顏色特征的提取和PCA降維后,將形成的特征向量集分別送入到SVM、KNN以及AdaBoost分類器中進(jìn)行分類。對分類器的參數(shù)進(jìn)行多次的調(diào)優(yōu)試驗(yàn)。
試驗(yàn)結(jié)果表明,SVM算法對3種作物類別(水稻、雜草、其他)的綜合分類精度為89.75%。圖7展示的是KNN算法分類精度與k值的關(guān)系,當(dāng)k取14時(shí),KNN綜合識別精度最高,為85.58%。AdaBoost分類器對水稻雜草圖像的綜合分類精度為90.25%,為3種機(jī)器學(xué)習(xí)算法中最高。3種模型的綜合識別精度、混淆矩陣精度和運(yùn)行時(shí)間如表1所示。
圖7 KNN算法k值與分類精度的關(guān)系Fig. 7 Relationship between k value and classification accuracy in KNN algorithm
表1 3個(gè)模型的混淆矩陣精度、運(yùn)行時(shí)間和綜合識別精度Table 1 Confusion matrix accuracy, run time and integrated recognition accuracy of three models
SVM、KNN和AdaBoost模型對測試集的測試運(yùn)行時(shí)間分別為0.500 4、2.209 2和0.411 1 s。AdaBoost在分類精度和識別效率上都優(yōu)于其他2種模型?;贑NN試驗(yàn)的模型是深度學(xué)習(xí)框架TensorFlow的GitHub代碼庫下的源碼,通過對卷積層、池化層以及全連接層做了一些修改(圖6)以適應(yīng)本試驗(yàn)的數(shù)據(jù),模型對整個(gè)數(shù)據(jù)集的綜合分類精度是92.41%。圖8是CNN訓(xùn)練的Loss值與訓(xùn)練步數(shù)的關(guān)系圖。
分別使用這4種訓(xùn)練生成的模型對測試集小樣本進(jìn)行分類,將小樣本分類識別結(jié)果返回到相應(yīng)的原始圖像中進(jìn)行標(biāo)記,4種模型下水稻田雜草分布圖與原圖、標(biāo)注圖的比較如圖9所示。
圖8 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練步數(shù)與Loss值之間的關(guān)系圖Fig. 8 Relationship between train step and Loss value in convolutional neural network
由以上的試驗(yàn)結(jié)果效果圖以及得到的分類精度可以得到,基于CNN對水稻雜草的分類效果要優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法對水稻雜草的分類效果。機(jī)器學(xué)習(xí)算法及CNN均能夠有效獲取水稻田中雜草分布信息并生成水稻田間雜草分布圖,有利于植保無人機(jī)對稻田中的雜草進(jìn)行精準(zhǔn)施藥。
圖9 基于4種算法生成的水稻田雜草分布圖與原圖、標(biāo)注圖的比較Fig. 9 Comparisons of distribution maps of paddy weeds generated based on four algorithms with original image and annotated image
本文使用無人機(jī)采集水稻雜草RGB可見光圖像,將數(shù)據(jù)切割成像素尺寸為100×100的小網(wǎng)格圖像,對數(shù)據(jù)集進(jìn)行顏色特征提取和降維后送入SVM、KNN和AdaBoost三種機(jī)器學(xué)習(xí)算法模型中進(jìn)行分類。對比試驗(yàn)了3種機(jī)器學(xué)習(xí)方法和1種無需提取圖像特征和降維的CNN分類方法。從分類的試驗(yàn)結(jié)果看,在3種機(jī)器學(xué)習(xí)算法中,不論是分類準(zhǔn)確率還是分類效率,最優(yōu)的分類器是AdaBoost,其綜合識別精度為90.25%;在基于CNN的分類中,由于CNN結(jié)構(gòu)可以自動挖掘數(shù)據(jù)的特征,簡化人工提取環(huán)節(jié),更具有兼容性和適用性,對不同的水稻雜草圖像泛化能力更好,對水稻雜草圖像的綜合識別精度可以達(dá)到92.41%。試驗(yàn)結(jié)果還表明,針對無人機(jī)拍攝的遙感圖像,機(jī)器學(xué)習(xí)算法及CNN能夠有效識別出水稻和雜草,獲取雜草的分布信息,生成水稻田間的雜草分布圖,為后續(xù)植保無人機(jī)的精準(zhǔn)施藥提供依據(jù)。結(jié)合本文的研究和所得結(jié)果分析,本研究還存在以下待改進(jìn)之處:1)本文使用的機(jī)器學(xué)習(xí)算法只提取圖像的顏色特征作為模型訓(xùn)練的特征向量集進(jìn)行訓(xùn)練,可以在后續(xù)研究中提取多個(gè)圖像特征如紋理、形狀等特征進(jìn)行特征融合,結(jié)合機(jī)器學(xué)習(xí)算法并在此基礎(chǔ)上改善算法模型,形成新算法以改善分類準(zhǔn)確率;2)后續(xù)考慮采集多時(shí)期、多田地的水稻雜草圖像,基于這些不同的水稻雜草圖像改善模型,提高模型泛化能力;3)本文是進(jìn)行水稻雜草的圖像分類,切割成100像素×100像素小網(wǎng)格后,個(gè)別網(wǎng)格中避免不了水稻和雜草共存的情況,下一步可以考慮基于像素級別的分類,提高分類的精度。
華南農(nóng)業(yè)大學(xué)學(xué)報(bào)2020年6期