彭 祺,屠禮芬,程瑞敏,吳 濤
(湖北工程學院 物理與電子信息工程學院,湖北 孝感 432000)
精確、實時地獲取農田的各項信息和農作物的生長動態,是實現精準農業的前提[1-2]。無人機遙感技術,是一種綜合應用遙感、空間定位、無人駕駛飛行、遙測等技術[3],可以無接觸獲取農田空間信息,已經在精準農業領域實現了小規模實際應用。但無人機的工作主要在一個較大的范圍,在小范圍的精細化操作方面還無法代替農民的工作。以圖像領域為例,無人機在圖像大范圍采集方面具有先天優勢,相關算法對圖像中大物體的識別,如行人、汽車、動物等均取得較好的效果,但對于圖像中的小物體識別,如農田中的稻穗,因為目標尺寸較小,采用無人機進行檢測的方法很少。稻穗的數量與水稻產量直接相關,其表型特征在水稻育種研究中,是十分重要的量化指標,主要包括:一次枝梗的長度、籽粒數和結實率,每穗籽粒數,稻穗骨架結構等,因此,實時準確的農田稻穗識別是很重要的。
深度學習技術在目標檢測和分類領域,表現出比傳統圖像分析方法更為優秀的效果[4-8],目前,常用的基于深度學習的目標檢測方法主要分為兩類:一類是基于回歸的一階檢測器,應用較為廣泛的有YOLO、SSD (Solid-state Drive)和FPN (Feature Pyramid Networks)等[9-11];另一類是基于區域建議的二階檢測器,應用較為廣泛的有R-CNN (Regions with CNN feature)、SPP-Net (Spatial Pyramid Pooling Networks)、Fast R-CNN和Faster R-CNN等[12-15]。一階檢測器的優點是測速快,缺點是在模型訓練時可能出現前景和背景類別不均衡[16],難以提取小目標特征信息,從而導致部分目標檢測效果不佳[17]。二階檢測器的檢測精度相對較高,但由于其使用到了候選區域生成方法和相對復雜的網絡結構,所以運算量大,導致檢測速度較慢,無法達到實時檢測的目的[18]。
為了實現準確實時的農田稻穗識別,本文利用深度學習的目標檢測YOLOv3算法訓練圖像樣本數據,構建性能較好的模型,從而實現對稻穗的識別。YOLOv3算法所需的大量圖像原始數據由無人機在農田實時實地采集,通過建立圖像數據庫來存儲、組織管理圖像數據,編寫了一套擁有自主知識產權的標注軟件來對圖像進行預處理和制作訓練樣本。
為了獲取標注的樣本圖像,首先進行圖像采集,無人機采用遙控器來操縱,通過地面遙控器定位對其進行實時控制,旋翼飛行時產生的向下氣流有助于壓倒水稻葉片,從而能更好地拍攝稻穗,同時遠距離操控不會對水稻的生長產生影響,后期可對圖片、視頻進行圖像處理,得到有效的稻穗圖像。
大疆經緯M100無人機對農田進行俯拍采集圖像。DJI Matrice 100是一款功能強大,可靈活拓展的四旋翼無人機,開放的SDK提供了靈活易用的接口,外部設備可以靈活接入,對無人機進行控制與監控,實現硬件集成。其抗風性能良好,飛行時俯拍十分穩定,在無人機高速飛行的狀態下,配合云臺相機減震系統,在空曠農田有風環境下,依然能采集到清晰的圖像。經過多次實驗發現,該平臺能采集到清晰可用的農田稻穗圖像數據。本系統利用四旋翼機M100搭載云臺相機,可進行靈活的視頻監控任務。無人機模型圖如圖1所示。

圖1 無人機模型圖
為了將研究成果更快地應用于生產實踐,對采集到的農田圖像構建了圖像數據庫進行組織管理,配合大疆經緯M100對農田中水稻圖像、視頻進行實驗數據采集,對視頻每幀進行圖像預處理得到實驗圖片,圖像預處理的比例切割圖如圖2所示。

圖2 比例切割圖
試驗數據的預處理過程,使用了Adobe公司的Premiere和Photoshop軟件,分別用于從視頻中導出圖像數據和切割圖像數據。篩選過程則是在導出圖片數據后將無用的模糊圖片進行清理。
由于水稻的稻穗圖像與其他圖像相比,背景更加復雜,常規樣本標注軟件因沒有預處理功能,制作出來的樣本圖像訓練效果不佳。為了能夠準確地識別稻穗,對水稻稻穗圖像提取HSV色彩特征進行掩模處理,將復雜背景剔除,保留單純的稻穗目標圖像,在此基礎上進行標注,擴大樣本數據,提高基于YOLOv3的深度學習算法樣本訓練效果。軟件運行流程圖如圖3所示。

圖3 軟件運行流程圖
該軟件對樣本圖像進行HSV色彩模型轉換,提取H通道特征,以此制作掩模,濾除雜亂背景干擾,保存為新的樣本圖像,增擴樣本數據;對已完成樣本制作的圖像標簽信息進行增加、刪除修改;標簽信息保存為文本文檔,也能轉化為標準XML格式;展示樣本標注范例,幫助指導非專業人員進行圖像樣本標注工作。
YOLO的loss函數采用均方和誤差函數計算。一共由3部分構成,即分類誤差、IOU誤差和坐標誤差,loss函數用式(1)計算。
loss=∑(coordErr+iouErr+clsErr)
(1)
Yolo在訓練過程中loss函數用式(2)計算。
(2)
首先是對預測的中心坐標做損失,再對預測邊界框的寬高做損失,然后是對預測的類別做損失,最后是對預測的置信度做損失。
Yolo v3的邊界框預測用式(3)計算。
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
(3)
網絡實際的預測值為tx、ty、tw、th,根據式(3)分別計算獲得預測框的中心點坐標和寬高坐標bx、by、bw、bh。其中,cx、cy為當前目標框相對于左上角目標框的偏移量。σ()是logistic函數,作用是將坐標進行歸一化處理,使結果分布在0-1之間。bx、by為采用歸一化處理后的相對于目標框的cell值。pw、ph為與真實框重合度最大的anchor框的寬和高。實際操作時,為了將bw、bh也歸一化到0-1之間,pw、ph采用anchor寬、高與featuremap寬、高的比值。獲得的bw、bh為歸一化處理后的值。
整個YOLO v3架構中沒有池化層和全連接層。在進行前向傳播時,張量的尺寸變換,通過改變卷積核的步長來得到。在YOLO v2中,要經歷5次縮小處理,那么原輸入圖像的尺寸會變成實際尺寸的1/25。可以對比YOLO v2和YOLO v3的backbone,如圖4所示。

圖4 YOLO v2和YOLO v3的backbone對比圖
YOLO v3采用邏輯回歸的方法,來獲得每個邊界框分數值,通過計算真實框與先驗邊界框的重疊度來預測結果,當該重合度得分最高時,認為是最佳框。完全重合時得分為1,但實際操作中發現,邊界框通常不能達到最佳,當與真實對象的重疊超過某個閾值(這里是0.5),那么就忽略這次預測。YOLO v3為每個真實對象分配唯一一個邊界框,當真實對象與先驗邊界框不吻合時,則不生成類別預測損失,只生成目標預測損失。另外,本次稻穗識別模型使用logistic函數作為分類器,損失函數采用binary cross-entropy。
制作訓練樣本后,訓練實現30次迭代得到新的權值文件,運行新的權重,輸入圖片名稱即可對圖片進行識別,實驗前期效果見圖5,識別效果如圖6所示。

圖5 實驗前期效果圖

圖6 識別效果圖
該方法可實現對稻穗的識別,由圖5和圖6可見,相比實驗前期有很大的提高,標注的標準逐漸統一,識別效果圖精度有所提高,置信度也有所提高,對于VOC自己的樣本,前景和背景區分度較大,還能成功分割,而農田中的稻穗和背景區分度小、雜亂、難以分割。我們使用無人機對稻田圖像進行俯拍,再對圖像進行分割篩選、標注,識別的精確度有較大的提高。
近年來,通過圖像處理對葉片進行分類識別的方法有很多,但應用于農田復雜環境下的目標識別方法是較少的,為保證實驗的嚴謹性,研究中農田圖像均由本團隊在農田中實地取得,后期進行圖像處理得到19000余張圖片,其中9000張作為實驗圖像數據,剩余部分取樣作為驗證圖像數據,驗證識別結果時需要每張水稻圖像具有良好的處理效果,以保證數據的真實性。實際應用過程中,運行程序后只需要輸入圖像相應名稱即可對圖像中的稻穗進行識別,YOLO v3算法應用于實際生產中,可以實時有效地對水稻成熟狀況進行監控,在出現水稻倒伏等狀況時可采取一定措施進行補救,此目標識別技術也可擴展到農業各個方面的果實識別。