張瑞森,萬興鴻,陳子穎,高 昕,唐亞南
(成都工業(yè)學(xué)院自動化與電氣工程學(xué)院,四川 成都 611730)
農(nóng)業(yè)農(nóng)村部種植業(yè)司的調(diào)查統(tǒng)計顯示,我國蔬菜和糧食作物的產(chǎn)量平穩(wěn)增長,但每年雜草都會造成糧食和蔬菜的減產(chǎn),雜草是影響農(nóng)作物產(chǎn)量和食品安全的主要因素之一[1]。但目前田地里清除雜草常用的方式是人工、畜力、農(nóng)藥,這些方式存在效率低、污染大、耗時耗力、使用有局限等問題[2]。所以,利用機器視覺發(fā)展的先進成果,結(jié)合人工智能機器人的發(fā)展趨勢,精準有效地對農(nóng)田里的雜草進行識別與防治,從而提高農(nóng)業(yè)的智能裝備水平,是農(nóng)業(yè)未來發(fā)展的一條重要改革路徑。
為了使除草的效率更高,首先需要提高雜草的識別度。近年來,深度學(xué)習(xí)作為圖像識別和目標檢測的先進技術(shù)手段被廣泛使用,它具有學(xué)習(xí)能力強、覆蓋范圍廣、適應(yīng)力好等優(yōu)點,但是直接用于雜草識別存在著訓(xùn)練樣本缺乏的問題[3]。由于雜草的種類繁多,需要使機器人對雜草的識別率更高,減少機器人在除草過程中對農(nóng)作物的傷害,所以本課題采用循環(huán)一致性生成對抗網(wǎng)絡(luò)(cycle-generative adversarial networks,Cycle-GAN)的方法對較容易取得的植株樣本進行樣本擴增,再結(jié)合快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster R-CNN)算法訓(xùn)練初始化模型,在提升農(nóng)作物識別的過程中實現(xiàn)了雜草的反向識別。由于新的混合算法同時提升了識別速度和識別率,所以可用于實時檢測,在農(nóng)田除草、園林雜草清理等方面具有應(yīng)用價值。
除草機器人是基于麥弗遜式懸架結(jié)構(gòu)搭建的四輪移動平臺,該結(jié)構(gòu)可以使機器人在凹凸不平的地形里較平穩(wěn)地行進以保護平臺上搭載的精密器件。平臺上搭載有視覺模組、主控模塊、機械臂等設(shè)備。視覺模組位于機器人的上方,它能俯視地面,對農(nóng)田的環(huán)境進行實時圖像采集傳送到主控模塊。主控模塊采用ARDUINO UNO R3芯片對接收到的實時視頻進行分析處理,在識別到雜草后將除草信號傳至機械臂,機械臂進行除草作業(yè),在雜草被切除后機械臂又將信息反饋給主控模塊,此時,主控模塊進入下一輪的雜草檢測,機械臂便進入除草等待狀態(tài)。
機器人移動平臺的運動控制過程是通過主控模塊發(fā)送行進或停止信號給輔助控制模塊STM32芯片來實現(xiàn)的。在檢測到雜草時主控模塊會向輔助模塊發(fā)出停止信號,機器人原地等待;在主控模塊接收到機械臂的反饋后又會發(fā)出行進信號,輔助模塊控制機器人繼續(xù)行進。整個過程中機器人的多個控制模塊協(xié)同工作,大大提高了工作效率,可適用于多種場景的工作。該除草機器人的系統(tǒng)結(jié)構(gòu)如圖1所示,3D結(jié)構(gòu)設(shè)計圖如圖2所示[4]。
圖1 除草機器人的系統(tǒng)結(jié)構(gòu)圖
圖2 除草機器人3D結(jié)構(gòu)設(shè)計圖
生成式對抗網(wǎng)絡(luò)(GAN)是一種無監(jiān)督學(xué)習(xí)的深度學(xué)習(xí)模型[5],由生成器和判別器兩個模型組成[6]。生成器主要通過風(fēng)格遷移、物體變形等方式生成更多的圖像數(shù)據(jù),然后由判別器去判斷圖像是否為真實存在的,最后通過反復(fù)的固定判別器訓(xùn)練生成器、固定生成器訓(xùn)練判別器的方式對網(wǎng)絡(luò)進行訓(xùn)練,直至判別器不能區(qū)分圖片的真實性時完成訓(xùn)練。Cycle-GAN網(wǎng)絡(luò)則是包含了兩個相互對稱的GAN網(wǎng)絡(luò),并通過共用兩個生成器和兩個判別器來實現(xiàn)圖像之間的端到端的相互映射[7]。在文獻[8]中使用了一個對抗損失函數(shù)學(xué)習(xí)映射G:X→Y,使判別器不能將圖片G(X)和圖片Y準確地區(qū)分開來,又為映射G添加一個相反映射F:Y→X,使之成對,同時還加入了一個循環(huán)一致性損失函數(shù),以確保F(G(X))≈X。其對抗損失函數(shù)為:
式(1)、式(2)中,DX、DY分別為X和Y的判別器,Pdata為真實圖像的分布,~為服從關(guān)系,(·)為期望。
循環(huán)一致性損失函數(shù)為:
式(3)中,‖·‖表示l1范數(shù)。
本課題將Cycle-GAN的圖像生成能力與Faster RCNN訓(xùn)練網(wǎng)絡(luò)結(jié)合,訓(xùn)練流程大致可分為樣本擴增、特征圖提取、區(qū)域生成網(wǎng)絡(luò)、ROI池化層、邊界分類與邊界框回歸五部分[9],其流程圖如圖3所示。
圖3 改進的Faster R-CNN流程圖
1)將采集到的圖像輸入到Cycle-GAN中,通過把圖像風(fēng)格轉(zhuǎn)換的方式進行擴增,綜合兩者所得的樣本作為數(shù)據(jù)集進行圖像分類,然后將每張完整的圖片輸入到卷積層中進行特征提取,獲取特征圖。由于卷積殘差網(wǎng)絡(luò)ResNet 101只學(xué)習(xí)輸入和輸出有差別的部分,可以保護信息的完整性[10],在一定程度上可以解決很深的網(wǎng)絡(luò)無法訓(xùn)練、梯度爆炸等問題。所以在文中采用ResNet 101作為特征圖像提取的網(wǎng)絡(luò)。
2)將經(jīng)過卷積層提取到的特征圖片發(fā)送到RPN網(wǎng)絡(luò)中生成候選區(qū)域。通過非極大值抑制網(wǎng)絡(luò)提取置信度高的檢測框,采用二分類函數(shù)對目標和背景進行裁定,獲取區(qū)域候選框的精確位置。
3)通過池化層將輸入的特征圖像轉(zhuǎn)換成固定尺寸的輸出。
4)將固定大小的特征圖進行全連接操作,訓(xùn)練其分類概率和邊框回歸,最后輸出候選區(qū)域所屬的類和在圖像中的精確位置。
由于實際環(huán)境中種植的植株種類遠少于生長在該環(huán)境下的雜草種類,所以本課題通過識別農(nóng)田中種植的農(nóng)作物的方式來反向識別雜草。在當(dāng)?shù)匦Q豆種植地調(diào)查得知,蠶豆的種植間距為40 cm左右,有足夠的空間供除草機器人正常工作,所以文中以蠶豆為例進行試驗。采集圖像樣本為蠶豆開花前、花期時在不同光線下的照片以及生長在其周圍的雜草和其他農(nóng)作物,每次圖像采集均在晴天、陰天不同光線狀態(tài)下進行,代表田間除草作業(yè)時可能的環(huán)境條件[11]。采集的圖像均為實際種植環(huán)境中獲得,分辨率為1 920×1 080像素,其中大部分圖像除蠶豆外還含豌豆等多種其他農(nóng)作物與多種類型的雜草,如圖4所示。由Cycle-GAN網(wǎng)絡(luò)擴增生成的圖像樣本如圖5所示,從圖5也可看出本課題所使用的Cycle-GAN網(wǎng)絡(luò)可以增加樣本的數(shù)目,達到增強樣本的效果。
圖4 不同光線下采集的蠶豆圖(左:陰天,右:晴天)
圖5 Cycle-GAN網(wǎng)絡(luò)生成的圖像樣本
將Cycle-GAN網(wǎng)絡(luò)擴增的樣本和在自然環(huán)境下采集的樣本通過MATLAB中的標注工具Image Labeler進行人工分類和標記,構(gòu)建數(shù)據(jù)庫,圖片標注界面如圖6所示。
圖6 Image Labeler標注界面
本課題采用MATLAB作為訓(xùn)練平臺,在訓(xùn)練集訓(xùn)練過程中,設(shè)置訓(xùn)練輪數(shù)為20輪,每輪迭代50次,學(xué)習(xí)效率均為1×10-4,訓(xùn)練時將數(shù)據(jù)集中的圖片隨機不重復(fù)地[12]輸入到Faster R-CNN或改進的Faster R-CNN網(wǎng)絡(luò)中,得到訓(xùn)練時的小批量損失曲線如圖7所示,從曲線圖可看出在改進的網(wǎng)絡(luò)中訓(xùn)練的小批量損失更小,學(xué)習(xí)效率更高。
圖7 小批量損失曲線
為了進一步探究改進的Faster R-CNN網(wǎng)絡(luò)在雜草識別方面的可靠性,接下來對兩種網(wǎng)絡(luò)的實時訓(xùn)練準確率進行了試驗,結(jié)果如圖8所示。從圖8可以看出,改進的Faster R-CNN網(wǎng)絡(luò)在樣本量缺少的環(huán)境下訓(xùn)練結(jié)果更好,準確率更高。
圖8 實時識別準確率曲線
為了檢測本課題提出的改進的Faster R-CNN網(wǎng)絡(luò)在農(nóng)田雜草識別中的適用性,在相同條件下對同一數(shù)據(jù)集處于不同的網(wǎng)絡(luò)中進行訓(xùn)練,得到結(jié)果如表1所示。
表1 不同R-CNN網(wǎng)絡(luò)試驗結(jié)果對比
表1結(jié)果表明,在訓(xùn)練樣本稀缺時三種網(wǎng)絡(luò)都能夠識別出農(nóng)田中的農(nóng)作物從而確定出雜草的位置,但是每種網(wǎng)絡(luò)的識別能力不同[12]。Fast R-CNN和Faster R-CNN在缺少訓(xùn)練樣本時的訓(xùn)練結(jié)果分別為83.56%與87.59%,而文中提出的將循環(huán)一致性生成對抗網(wǎng)絡(luò)置于Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)前的新網(wǎng)絡(luò)識別率可以達95.06%。由此可見,本課題提出的雜草識別方法在樣本稀缺的條件下有更高的容錯率,雜草識別度更高,可以適用于農(nóng)田雜草的識別處理。
針對農(nóng)作物中雜草識別問題的研究,本課題采用基于Cycle-GAN的圖像生成技術(shù)解決樣本不足的問題,文中還采用反向識別農(nóng)作物的方法加快雜草識別速度,大大減小了訓(xùn)練樣本的時間和種類。現(xiàn)階段平均目標的識別準確率為95.06%,后續(xù)將繼續(xù)探索提高初始化模型的訓(xùn)練速度,提高檢測精度的研究。
由于知識、技術(shù)有限,且受農(nóng)作物種植季節(jié)的影響,本課題僅針對蠶豆種植地出現(xiàn)有較多雜草的樣本進行訓(xùn)練識別,接下來將會在更多的農(nóng)作物中進行識別精度的訓(xùn)練,并將該雜草算法應(yīng)用到硬件系統(tǒng)進行實操訓(xùn)練。