陳旭君, 王承祥, 朱德泉, 劉曉麗, 鄒 禹, 張 順, 廖 娟
(1.安徽農業(yè)大學工學院,安徽 合肥 230036; 2.安徽省農業(yè)科學院水稻研究所,安徽 合肥 230031)
智能農機導航是農業(yè)機械化研究的重要內容,主要導航方式有全球定位系統(tǒng)(GPS)導航[1]和視覺導航[2]。GPS導航通過衛(wèi)星系統(tǒng)測量農業(yè)機械在地理空間中的絕對位置,根據預先規(guī)劃的路徑進行導航。但在水田中,插秧機作業(yè)易發(fā)生側滑,GPS導航的預先規(guī)劃路徑適應性差,此外,GPS信號的穩(wěn)定性易受環(huán)境中遮擋物、天氣等因素干擾,且隨著定位精度的提高,相應的成本也隨之提高[3]。相比于GPS導航,視覺導航具有成本低、環(huán)境感知信息豐富以及無需預先精確規(guī)劃路徑和適應性強等特點,成為智能農機導航研究的重要方向,在作物種植、培育以及收割方面均有廣泛應用[4-5]。農業(yè)機械視覺導航的關鍵步驟是導航路徑識別,其識別正確與否直接影響導航精度。
目前,視覺導航路徑識別主要采用機器視覺技術提取田壟邊界[6]或作物行線[7-8],從而確定導航路徑?;谒狙砻缰本€栽插的特點,插秧機視覺導航可通過檢測插秧機鄰近行的秧苗并擬合秧苗行線,提取水稻插秧機視覺導航路徑。國內外關于秧苗行線檢測方法的研究,應用較多的是基于Hough變換的秧苗行中心線檢測方法和特征點聚類方法。標準Hough變換魯棒性較強,受環(huán)境噪聲影響小,但計算耗時長,難以滿足農業(yè)機械作業(yè)的實時性要求。聚類算法提取特征點易受到噪聲點和環(huán)境變化影響,對不同環(huán)境的適應性差。
針對Hough算法計算復雜的問題,趙瑞嬌等[9]通過垂直投影法獲得作物的行定位點,用Hough變換擬合行定位點,該方法的處理速度較直接Hough變換提高了3倍。為提高特征點聚類法的抗干擾能力,廖娟等[10]分區(qū)域提取秧苗行特征點,采用聚類算法獲取秧苗行定位點,基于最小二乘法擬合出秧苗行線,有效抑制了圖像噪聲對特征點的干擾。孟笑天等[11]提取二值化圖像中作物特征點,采用K均值算法和最小二乘法擬合出苗期玉米作物行線。但上述算法都是基于人為提取作物的顏色、紋理等特征,對不同作業(yè)環(huán)境的泛化能力較弱,難以保證作物行線識別的準確率,影響農業(yè)機械導航精度。
隨著卷積神經網絡技術的不斷發(fā)展與應用,深度卷積網絡可以自主學習圖像特征并準確識別目標,對于不同環(huán)境具備很好的泛化能力,廣泛應用于農業(yè)領域[12-13]。王丹丹等[14]在ResNet50、ResNet101的結構基礎上改進R-FCN網絡,提出了基于ResNet44的FCN網絡模型,對蘋果的識別準確率達95.1%。Bodhwani等[15]構建了一個50層的深度殘差網絡,對植物識別的準確度高達93.09%。
為準確識別秧苗行線,從而獲取導航基準線,為自主行走插秧機提供相對位置信息,本研究基于深度卷積神經網絡,對秧苗圖像進行分割裁剪、拉伸等預處理,構建樣本集,采用YOLO網絡進行秧苗特征區(qū)域識別,獲取秧苗行定位點,連接定位點并計算相鄰定位點間線段的斜率,依據斜率獲取行線角度,從而實現水稻秧苗行線檢測。
試驗圖像采集于安徽農業(yè)大學廬江郭河試驗基地,圖像采集設備主要有USB免驅廣角攝像頭和筆記本電腦。為保證數據集多樣性、增強網絡對檢測環(huán)境的泛化能力,在晴天、多云以及陰天情況下各采集200張圖像,圖像分辨率為2 560×1 920像素。圖像采集過程中,使用OpenCV3.0和Spyder編程軟件驅動攝像頭拍攝,所拍攝秧苗圖像如圖1所示。
圖1 圖像采集Fig.1 Image acquisition
為減少后續(xù)網絡訓練所占用的內存和顯存,對分辨率為2 560×1 920像素的圖像進行壓縮處理,處理后圖像的分辨率為448×448像素。由圖1-b可以看出,圖像中水稻秧苗行會出現直線偏移,不利于使用ROI標記框對水稻秧苗直接標記和網絡對秧苗的識別。因此,將圖像水平裁剪成若干張子圖,記錄子圖的位置索引,每個子圖大小為448像素×28像素。
根據網絡輸入圖像大小要求,將裁剪后圖像縱向拉伸為448像素×448像素,圖像縮小與拉伸變換均使用雙線性插值法,結果如圖2所示。經過裁剪、拉伸預處理后的圖像共有9 600張,選取8 000張作為訓練集,1 600張作為測試集。拉伸后圖像綠色線條均為豎直方向,將綠色線條視為水稻秧苗特征區(qū)域,采用ROI標記框對綠色線條進行標注,制作訓練集。
圖2 秧苗圖像的預處理Fig.2 Preprocessing of rice seedling images
本研究基于YOLO(You Look Only Once)卷積神經網絡檢測秧苗行線,主要包括2個步驟:基于YOLO網絡的秧苗目標檢測和秧苗行線定位點檢測。
1.3.1 基于YOLO網絡的秧苗目標檢測 YOLO網絡是一種端到端訓練的實時目標檢測網絡,由4個最大池化層、24個卷積層、2個全連接組成,具體結構如圖3所示。輸入448×448秧苗圖,經卷積等操作,被YOLO網絡分割成7×7個單元格[16],判斷每個單元格是否含有目標中心,對含有目標中心單元格預測4個邊框位置和置信度得分,預測類別數為1,最后全連接層對長度為1 029的特征向量進行回歸和分類,得到相應目標識別框坐標與預測概率。其中,損失函數用于描述預測框與真實框的誤差,定義為:
loss=lcoordinate+lconfidence+lclass
(1)
圖3 YOLO結構示意圖Fig.3 Schematic diagram of YOLO
由式(1)可知,損失函數由坐標損失、置信度得分損失和類別置信度得分損失組成,而置信度得分表示單元格中包含目標的預測精確度,計算如下:
(2)
將置信度得分與類別概率相乘,得到C個類別置信度得分,計算如式(3)所示。
(3)
將輸出的Class_Score與閾值進行比較,保留大于閾值的預測邊框。最后通過非極大值抑制算法,刪掉剩余的邊框,輸出類別置信度得分最高的目標邊框坐標和類別預測概率。YOLO網絡采用非極大值抑制算法保證識別的目標只有一個目標框,而對于秧苗圖像,單個目標框不足以表示秧苗行的完整信息。為此,去除原始YOLO網絡中非極大值抑制算法,在Class_Score與閾值比較后直接輸出檢測目標的類別預測概率和目標框坐標。
1.3.2 秧苗行線檢測 利用式(4)計算每個秧苗框的中心點坐標,作為候選的秧苗行定位點p(xi,yi),如圖4所示,紅色圓點是獲取的候選秧苗行定位點。
(4)
式中,xi,yi表示定位點坐標,ai,bi表示秧苗框的左上頂點坐標,wi,hi秧苗框的寬和高。
圖4 秧苗行線的候選定位點Fig.4 Candidate positioning point of seedling line
然而,由于單行秧苗檢測出多個秧苗框,造成秧苗行上有多個定位點,需對其進行聚類合并。另外,田間環(huán)境復雜,秧苗檢測結果中可能存在秧苗行漏檢,導致漏檢區(qū)域的秧苗行定位點缺失,則需彌補缺失的定位點信息。具體步驟如下:
①將定位點坐標p(xi,yi)按橫坐標的大小進行升序排列,計算相鄰坐標的距離差值di=|xi-xi+1|及均值davg,若di (5) 式中,xj,yj為Qi中第j個定位點坐標,n為Qi中定位點總數量。 ④根據圖5所示的子圖索引,將子圖定位點拼接為大圖,拼接后定位點檢測結果如圖6所示。 ⑤連接圖6中的定位點,并計算相鄰定點間線段斜率,用反三角函數將斜率轉換為角度,計算相鄰線段的角度差。若相鄰角度差值大于設定標準值,則說明航向出現變化,需及時調整方向。 圖5 子圖位置索引Fig.5 Location index of subgraph 圖6 秧苗行線圖Fig.6 Image of seedling line 算法使用軟件為Matlab2019a,計算機CPU 為core i7-8700k,主頻3.7 GHz,顯卡為NVIDIA RTX2080ti,計算機內存為32 G。 試驗中,以測試集中1 600張數據集圖像進行秧苗區(qū)域檢測測試,并將本研究YOLO網絡分別與Faster R-CNN網絡和ResNet101網絡進行比較分析。圖7為3種網絡在測試圖中檢測結果??梢?,YOLO網絡檢測出的目標框較ResNet101網絡和Faster R-CNN網絡多,包含的秧苗信息更全,更利于后續(xù)的秧苗行定位點的準確獲取。 圖7 不同網絡的秧苗檢測結果Fig.7 Seedling detection results of different networks 為了比較3個網絡的檢測性能,以檢測的準確率和檢測速度作為檢測指標,結果如表1所示。準確率(P)以所有特征區(qū)域均檢測出來表示正確,以漏識別表示錯誤,檢測速度以一次檢測16張圖像為準。從表1可以看出,與ResNet101、Faster R-CNN網絡相比,YOLO網絡的檢測精度僅提高了0.5%,但檢測速度遠快于ResNet101、Faster R-CNN網絡。由于試驗對象只有一個綠色特征區(qū)域類別需要檢測,再加上訓練集數量較大,因此網絡均易于達到識別精度的要求。相比之下,YOLO網絡的檢測速度更符合導航實時性的需求。 表1 不同網絡檢測性能對比 為評價秧苗行線檢測的準確性,將本研究算法分別與標準Hough變換方法和特征點聚類方法進行比較和分析。 Hough變換方法主要實現步驟為:提取秧苗圖像的超綠特征,采用Otsu算法對圖像進行二值化,使用標準Hough變換檢測直線。特征點聚類算法主要實現步驟為:將圖像進行二值化,提取水稻特征點,基于位置信息進行特征點聚類,獲取秧苗行定位點,采用最小二乘法進行直線擬合。 從圖8可以看出,標準Hough變換方法和特征點聚類算法采用直線擬合方式生成秧苗行線,當秧苗行線并非標準直線時,檢測的秧苗行線與秧苗行趨勢貼合度降低。而本研究算法提取的秧苗行定位點對秧苗行線具有較強表征能力,采用多線段的擬合方式更逼近于鄰側秧苗行的趨勢,檢測效果優(yōu)于標準Hough變換方法和特征點聚類算法。 圖8 不同算法的秧苗行線檢測結果對比Fig.8 Comparison of seedling line detection results from different algorithms 為量化判斷算法檢測秧苗行線的準確率,多次用人工方法提取能表征秧苗行整體走向的參考線(圖9),以檢測線與參考線的平均角度誤差對判斷算法的檢測效果進行準確度統(tǒng)計,大于5°則視為錯誤檢測,小于5°時視為準確檢測。本研究算法檢測線由多線段組成,每段檢測線與參考線的夾角大小不同,以圖像由下往上為插秧機前進方向,計算每一線段與參考線的角度偏差,得偏差之和后取平均值作為平均角度誤差,其平均準確率高達94.1%。 而標準Hough變換方法和特征點聚類算法所擬合的直線也可視為由多線段組成,其平均角度誤差為每一線段與參考線的角度偏差之和所取平均值,即為擬合直線與參考線的角度偏差,其準確率分別為79.4%和85.2%。可見,本研究算法先獲取表征能力強的秧苗行定位點,后基于代表秧苗行趨勢的定位點獲取秧苗行線,平均檢測準確率高于標準Hough變換方法和特征點聚類算法。 圖9 檢測線與參考線誤差示意圖Fig.9 Schematic diagram of error between detection line and reference line 為提高插秧機視覺導航路徑識別精度,本研究提出了一種基于YOLO卷積神經網絡的秧苗行線檢測方法。通過對秧苗圖像進行剪切、拉伸等預處理,制作秧苗圖像樣本集,基于YOLO網絡檢測圖像中秧苗目標區(qū)域,利用目標框的位置信息提取秧苗行定位點,根據子圖位置索引,獲取整圖中秧苗行定位點,連接定位點并計算相鄰秧苗行定位點之間的斜率,生成秧苗行線,獲得插秧機的行線角度。試驗結果表明,該方法識別秧苗區(qū)域目標的平均精度為95.1%,16張圖像平均檢測時間為0.456 s,且秧苗行線的檢測準確率高于標準Hough變換方法和特征點聚類算法。本研究結果表明該算法能夠準確提取秧苗行線,為獲取插秧機視覺導航路徑和相對位置信息提供支持。但本算法的檢測效率還不能滿足實際相機的幀率(約1 s 25幀)的需要,有待提升。因此在后續(xù)的研究中將開展對不同類型農作物的行線檢測研究,并提高神經網絡的檢測速度,優(yōu)化矩陣的計算方法,提升算法的運算速度。2 結果與分析
2.1 不同網絡的秧苗區(qū)域檢測對比
2.2 不同算法的秧苗行線檢測對比
3 討 論