張 謀, 蒲燁鋒, 江 雯, 王 鵬, 李心怡
(1.北京航天長(zhǎng)征飛行器研究所,北京 100076; 2.華中科技大學(xué)航空航天學(xué)院,湖北 武漢 430074)
玉米作為我國(guó)主要糧食作物,其產(chǎn)量直接影響我國(guó)糧食安全[1]。玉米的病蟲害防治是生產(chǎn)過程中的關(guān)鍵環(huán)節(jié),而現(xiàn)有農(nóng)藥噴灑方式仍存在效率低、成本高、易浪費(fèi)和易污染等缺陷。近年來,智能算法已廣泛應(yīng)用于各領(lǐng)域的識(shí)別檢測(cè)任務(wù)中,利用智能算法優(yōu)化玉米苗期農(nóng)藥噴灑過程,不僅能節(jié)約成本、提高農(nóng)藥利用率,還能進(jìn)一步提高農(nóng)業(yè)智能化水平。
目前,國(guó)內(nèi)外研究人員將視覺算法應(yīng)用在農(nóng)作物的識(shí)別檢測(cè)領(lǐng)域[2-3]。早期的機(jī)器視覺方法主要基于圖像處理算法。MILLER B K 等[4]結(jié)合陰影矯正與紅外圖像,分割缺陷區(qū)域?qū)μ易臃诸?。SARKAR N 等[5]基于莖和花的末端視圖建立了一種番茄分類方法。WOEBBECKE D M 等[6]通過顏色指數(shù)分割圖像實(shí)現(xiàn)對(duì)雜草的識(shí)別。馬志艷等[7]基于HSV 空間分割玉米苗圖像,利用形態(tài)運(yùn)算與骨架提取算法提取輪廓信息、確定莖稈坐標(biāo),實(shí)現(xiàn)識(shí)別定位。
隨著計(jì)算機(jī)算力提升,機(jī)器學(xué)習(xí)在圖像識(shí)別、文字處理、人機(jī)交互等領(lǐng)域發(fā)展迅速,支持向量機(jī)、貝葉斯算法、神經(jīng)網(wǎng)絡(luò)算法等智能算法也逐漸代替圖像處理手段應(yīng)用在農(nóng)業(yè)檢測(cè)中[3,8-10]。KURTULMUS F等[11]將機(jī)器視覺與支持向量機(jī)算法相結(jié)合檢測(cè)玉米穗。ROMUALDO L 等[12]利用貝葉斯算法檢測(cè)玉米葉片中氮營(yíng)養(yǎng)狀況。LU H 等[13]將神經(jīng)網(wǎng)絡(luò)算法用于玉米穗的分割任務(wù)。MOHANTY S P 等[14]基于AlexNet 完成了對(duì)14 種農(nóng)作物和26 種病蟲害的識(shí)別診斷任務(wù)。張開興等[15]將圖像中的顏色與形狀特征作為BP 神經(jīng)網(wǎng)輸入,實(shí)現(xiàn)玉米葉病蟲害的識(shí)別。張偉榮等[16]將改進(jìn)的Mask R-CNN 玉米苗冠層分割算法應(yīng)用在對(duì)靶施肥的任務(wù)中。遷移學(xué)習(xí)與數(shù)據(jù)增強(qiáng)也被證實(shí)在提高模型精度與魯棒性上具有良好效果。CONDORI R H M等[17]運(yùn)用簡(jiǎn)單的遷移學(xué)習(xí)方法,提高了對(duì)玉米葉片識(shí)別的成功率。陳桂芬等[18]結(jié)合遷移學(xué)習(xí)與數(shù)據(jù)增強(qiáng)兩種方法實(shí)現(xiàn)玉米病害識(shí)別。石新麗等[19]將二值化處理作為數(shù)據(jù)增強(qiáng)手段,利用YOLOv3 網(wǎng)絡(luò)鑒別玉米害蟲以提高識(shí)別準(zhǔn)確率。
綜合現(xiàn)有識(shí)別手段,本研究提出一種可搭載于農(nóng)藥噴灑機(jī)器人的視覺識(shí)別系統(tǒng),系統(tǒng)以ARM 集成板作為嵌入式硬件,雙目相機(jī)作為圖像采集設(shè)備,可對(duì)單株秧苗進(jìn)行精確噴藥。
視覺識(shí)別系統(tǒng)主要包括神經(jīng)網(wǎng)絡(luò)訓(xùn)練、識(shí)別測(cè)距程序集成和硬件集成。選擇“Raspberry Pi 4B”作為嵌入式集成板,植入雙目相機(jī)與識(shí)別測(cè)距程序,并將開發(fā)板固定在農(nóng)藥噴灑機(jī)器人上,利用上位機(jī)控制。搭建好的系統(tǒng)工作流程如圖1 所示,位于小車上的相機(jī)實(shí)時(shí)采集圖像信息,隨后將圖像傳至集成板處理,通過識(shí)別運(yùn)算后輸出目標(biāo)分類、目標(biāo)置信度及目標(biāo)坐標(biāo),當(dāng)檢測(cè)到待噴藥玉米秧苗處于農(nóng)藥噴灑機(jī)器人噴灑范圍內(nèi)時(shí),利用GPIO 模擬PWM 信號(hào)控制噴淋系統(tǒng),實(shí)現(xiàn)對(duì)單株秧苗精確噴藥。
圖1 農(nóng)藥噴灑機(jī)器人視覺識(shí)別系統(tǒng)工作流程Fig.1 Workflow of visual identification system for pesticide spraying robot
SSD-MobileNetv1 神經(jīng)網(wǎng)絡(luò)模型是單階段目標(biāo)檢測(cè)算法SSD 與輕量級(jí)深度可分離卷積模型MobileNetv1的結(jié)合體。其中,SSD 算法是由LIU W 等[20]在2016年提出的一種基于回歸的單階段目標(biāo)檢測(cè)算法。該算法結(jié)合了YOLO 的回歸理念和Faster-RCNN 的錨定機(jī)制,在保證預(yù)測(cè)精度的同時(shí)也增加了運(yùn)算速度。MobileNetv1 網(wǎng)絡(luò)(一種專為移動(dòng)和嵌入式設(shè)備打造的輕量級(jí)網(wǎng)絡(luò))則采用深度可分卷積算法以進(jìn)一步減少模型計(jì)算量[21]。
Google 團(tuán)隊(duì)用MobileNetv1 替換SSD 網(wǎng)絡(luò)中的主干網(wǎng)絡(luò)VGG16,提出SSD-MobileNetv1 網(wǎng)絡(luò)模型。該網(wǎng)絡(luò)以MobileNetv1 為基礎(chǔ),并在Conv13 層后添加8個(gè)卷積塊,分別提取6 個(gè)不同尺度的特征圖,隨后利用錨定的思想生成眾多先驗(yàn)框,分別進(jìn)行類別與位置回歸,最后以非極大值抑制法得到圖片的目標(biāo)檢測(cè)結(jié)果。該網(wǎng)絡(luò)兼具SSD 與MobileNetv1 兩種網(wǎng)絡(luò)優(yōu)點(diǎn),主要結(jié)構(gòu)如圖2 所示。
圖2 SSD-MobileNetv1 神經(jīng)網(wǎng)絡(luò)主要結(jié)構(gòu)Fig.2 Main structure of SSD-MobileNet neural network
雙目相機(jī)測(cè)距主要包括相機(jī)標(biāo)定、雙目校正、雙目匹配和計(jì)算深度信息4 個(gè)步驟[22]。對(duì)于已知相機(jī)參數(shù)且成像在同一平面上的雙目相機(jī)系統(tǒng),如圖3 所示,假定鏡頭焦距為f,相機(jī)光心分別為Oz1和Oz2,相機(jī)光心之間的距離為B,則空間內(nèi)一點(diǎn)p(x,y,z)在左右相機(jī)上成像點(diǎn)pl與pr的坐標(biāo)為
圖3 雙目相機(jī)光軸與成像平面Fig.3 Optical axis and imaging plane of binocular camera
1.4.1 圖像增強(qiáng)與數(shù)據(jù)集制作
在采集圖像時(shí)需根據(jù)農(nóng)藥噴灑機(jī)器人的實(shí)際應(yīng)用情況確定相機(jī)架設(shè)高度與偏向角度,固定相機(jī)焦距,并考慮光照與距離的影響。為增加圖像樣本多樣性,可在不同光線、不同距離下對(duì)玉米秧苗進(jìn)行拍攝。模型訓(xùn)練效果通常與圖像樣本質(zhì)量、數(shù)量有關(guān),過少的樣本通常會(huì)導(dǎo)致模型陷入局部最優(yōu)解。為防止過擬合現(xiàn)象發(fā)生,還需對(duì)圖片數(shù)據(jù)集進(jìn)行擴(kuò)充。本研究利用OpenCV 軟件庫中的圖像處理函數(shù),隨機(jī)對(duì)圖像進(jìn)行翻轉(zhuǎn)、剪裁、旋轉(zhuǎn)、增加噪聲和調(diào)整亮度等操作,將圖片數(shù)量擴(kuò)充至原來的18 倍,如圖4 所示。擴(kuò)充后的圖片按3∶1 的比例隨機(jī)分為訓(xùn)練集與測(cè)試集,利用LabelImg 圖像標(biāo)注工具,框選圖片中待識(shí)別的玉米秧苗,賦予標(biāo)簽,完成模型數(shù)據(jù)集的制作。
1.4.2 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練
選擇開源的TensorFlow-object detection 框架,修改SSD-MobileNetv1 模型配置文件中的訓(xùn)練參數(shù)(設(shè)置初始學(xué)習(xí)率0.004,訓(xùn)練步數(shù)100 000 步、batch size 為8,衰減步數(shù)和衰減系數(shù)分別為100 和0.95)。為獲得更好的訓(xùn)練效果,加載預(yù)訓(xùn)練模型參數(shù)作為初始化參數(shù)進(jìn)行訓(xùn)練。訓(xùn)練運(yùn)行環(huán)境:基于Python3 編程語言的TensorFlow1.15 深度學(xué)習(xí)框架, 操作系統(tǒng)為Windows10-64 位專業(yè)版,CPU 為Intel(R) Core(TM)i5-3 470,GPU 為NVIDIA GTX1060Ti,基礎(chǔ)環(huán)境配置為Anaconda3、PyCharm2020。
為方便模型的調(diào)用與集成,使用OpenCV 深度神經(jīng)網(wǎng)絡(luò)模塊,將TensorFlow 訓(xùn)練生成的pb 模型文件轉(zhuǎn)換為OpenCV 軟件庫可讀取的文件格式,即在程序中可使用readNetFromTensorFlow 函數(shù)直接讀取模型文件。
1.4.3 雙目相機(jī)標(biāo)定
為了矯正由于鏡片透視失真造成的圖片變形,在獲取圖像中的三維信息時(shí),需通過標(biāo)定確定兩臺(tái)相機(jī)之間的位置參數(shù)與畸變系數(shù)。選取市場(chǎng)上較便宜且質(zhì)量較輕的DS-3DW300 雙目攝像頭模組作為圖像采集設(shè)備。按照張正友標(biāo)定法準(zhǔn)備棋盤格標(biāo)定板,固定攝像頭位置,運(yùn)行圖像采集程序,本例共收集左右攝像頭拍攝的標(biāo)定照片49 張。借助MATLAB 標(biāo)定工具箱完成相機(jī)標(biāo)定計(jì)算,得到相機(jī)參數(shù)如表1 所示。
表1 雙目相機(jī)參數(shù)標(biāo)定結(jié)果Tab.1 Internal calibration results of binocular camera
1.4.4 識(shí)別測(cè)距與噴藥程序
基于OpenCV 軟件庫提供的雙目矯正與立體匹配相關(guān)算法,首先利用標(biāo)定所得相機(jī)參數(shù)對(duì)圖像進(jìn)行校正,隨后采用半全局匹配(SGBM)算法生成視差圖,根據(jù)視差圖中的信息計(jì)算得出每個(gè)像素點(diǎn)的三維坐標(biāo)。如圖5 所示,實(shí)時(shí)檢測(cè)與噴藥程序主要流程為初始化GPIO 模塊、加載模型文件、讀取左右目相機(jī)視頻流、矯正每幀圖像后匹配生成深度圖、識(shí)別圖像中玉米秧苗、輸出玉米秧苗坐標(biāo)與識(shí)別率及GPIO 模擬PWM 信號(hào)啟動(dòng)噴淋系統(tǒng)。
圖5 實(shí)時(shí)檢測(cè)噴藥程序流程Fig.5 Flow chart of spray procedure for real-time detection
SSD-MobileNet 網(wǎng)絡(luò)模型經(jīng)過100 000 步的訓(xùn)練,最終得到模型的分類損失2.932,定位損失0.917,總損失4.286,對(duì)玉米秧苗識(shí)別準(zhǔn)確率可達(dá)到84.18%。玉米秧苗圖像識(shí)別效果如圖6 所示。
圖6 雙目相機(jī)下玉米秧苗識(shí)別效果Fig.6 Identification effect of maize seedling under binocular camera
通過固定相機(jī)拍攝角度與高度,在玉米試驗(yàn)田中測(cè)試系統(tǒng)的識(shí)別與測(cè)距效果,經(jīng)過SGBM 算法立體匹配與深度計(jì)算,輸出效果如圖7 所示。該系統(tǒng)基本滿足農(nóng)藥噴灑機(jī)器人在作業(yè)時(shí)對(duì)玉米秧苗的識(shí)別與測(cè)距要求。
圖7 玉米秧苗左目圖像與視差Fig.7 Left camera image and parallax map of maize seedling
將深度學(xué)習(xí)的方法應(yīng)用于農(nóng)業(yè)生產(chǎn)環(huán)境下的玉米秧苗目標(biāo)檢測(cè),基于SSD-MobileNetv1 網(wǎng)絡(luò)和ARM 集成板搭建了一種可以用于農(nóng)藥噴灑機(jī)器人的視覺識(shí)別與噴藥系統(tǒng)。輕量級(jí)神經(jīng)網(wǎng)絡(luò)SSD-MobileNetv1 具有運(yùn)算速度快、精度高的優(yōu)點(diǎn),適用于嵌入式設(shè)備;而樹莓派開發(fā)板體積小、方便搭載于各種尺寸的移動(dòng)機(jī)器人上,并且成本低、可集成功能多,是性價(jià)比較高的嵌入式設(shè)備。搭建好的秧苗識(shí)別系統(tǒng)可以滿足田間對(duì)玉米秧苗基本檢測(cè)的需求,實(shí)現(xiàn)對(duì)單株玉米秧苗的農(nóng)藥噴灑,也可改變算法網(wǎng)絡(luò)與數(shù)據(jù)集,將該系統(tǒng)應(yīng)用于其他農(nóng)作物的農(nóng)藥、肥料噴灑作業(yè)中。