潘勝權,陳凱,解印山,莫錦秋
(上海交通大學機械與動力工程學院,上海 200240)
自主導航作為智能農機系統中田間信息感知模塊的關鍵技術,被廣泛應用于播種、施肥、除草和收割等農業作業不同階段[1-2]。在收割作業階段,為提高收割效率,避免重復收割和漏割,作業人員需具備豐富的收割經驗,且在長時間反復觀察割臺與收割邊界位置的作業過程中,作業人員容易產生疲勞,存在一定的安全隱患。因此,為了降低勞動成本、減少作業時間、提高生產率,開展智能農機聯合收割機自主導航技術研究具有重大現實意義。
作業導航線識別是實現智能農機自主導航作業極為重要的一環,實時準確地識別作業導航線能有效加快作業進度,在收割階段還能降低作物損失率[3]。作業導航線識別已有研究主要可以分為兩類,即基于機器視覺的導航線識別[4-9]和基于測距傳感器[10-15]的導航線識別。由于激光雷達價格昂貴,而視覺傳感器價格低廉,且獲取目標信息較為豐富,故國內外關于基于機器視覺的導航線識別的研究不斷增多。
在導航線識別方面,用于早耕期與中耕期的作物行線識別技術研究已比較成熟。大多數研究以作物與背景差異明顯的顏色作為識別特征,以超綠算法為核心,對圖像進行預處理,后續通過Hough 變換、OTSU 算法或垂直投影法完成單一或多條作物行線識別,進而用于指導早耕、中耕期的智能農機作業導航[16-21]。
早耕、中耕期導航線檢測方法均基于待檢測目標與背景存在顏色上的明顯差異,而小麥收割場景下,未收割區域、已收割區域以及土地在顏色上并無明顯差異,基于顏色特征的算法難以應用。針對顏色特征不明顯的作物收割場景,魏新華等[22]通過雙目相機獲得水稻收割場景下的點云信息,根據安裝參數獲得點云高度,結合密度峰聚類和均值聚類方法對高度信息聚類實現了水稻收割場景下的收割邊界識別;楊雨[23]針對小麥收割場景,利用種子點區域生長算法對收割區域與未收割區域進行區分,進而利用改進Ransac 算法對二值圖像點進行擬合得到了收割導航線;張成濤等[24]通過改進平滑紋理特征實現了對小麥收割導航線的識別;曾宏偉等[25]對小麥圖像灰度直方圖進行雙峰擬合獲取分割閾值,進而結合區域生長算法實現了低對比度下小麥收割導航線的提取。
上述方法大多使用單一特征進行收割場景導航線識別,而在多云天氣下作業時,光線強度易發生變化,同一圖像不同區域的光照存在差異,單一特征往往難以適應變化的光照條件。本文通過分析待檢測麥田特征,構建由反映數量性紋理的圖像熵特征和反映方向性紋理的方向梯度組成的二維特征向量,通過滑動窗口算法改進熵特征提取方式加快特征提取過程,利用最大熵閾值分割、形態學處理得到收割麥田邊界點,融合二維特征下得到的邊界點集合并結合Ransac 算法使得擬合收割直線時邊界附近待擬合點得到增廣,進而得到較準確的收割機導航線。
圖1a 為2021 年6 月18 日上午09:00—10:00,在北京小湯山精準農業基地拍攝的麥田圖像,通過對大量小麥場地照片分析發現,常用于行線識別的顏色特征無法應用于小麥收割邊界的識別,但已收割區域麥茬矮小以及無頂部麥穗的特點使得其與未收割區域在迎光和背光時均存在均勻性、疏密等方面的差異。因此,本文選擇能反映圖像一定區域內均勻性特點的熵作為判別特征。此外,由于已收割區域麥茬裸露,在圖像上顯示較為規整,其梯度方向較未收割區域更為一致。因此本文在熵特征的基礎上融合方向梯度特征進行收割邊界識別。

圖1 麥田圖像及預處理結果Fig.1 Wheat field image and preprocessed results
基于視覺的導航線識別易受光照強度影響,而非結構化農場環境不同于結構化工業環境,光照強度難以控制。趙博等[26]提出針對不同光照環境,使用直方圖均衡化減弱由于光照強度不一致帶來的影響,圖1b 與圖1c分別為原始麥田圖像灰度化以及均衡化處理后的圖像。
圖像熵E衡量一定區域內的信息含量,反映該區域內像素點的數量特征,其計算式為
式中NGray為灰度級數;pi為第i個灰度級出現的概率。
圖像熵是針對一定區域內的紋理特點而提出的,故應選用一定大小的滑動窗口對圖像滑動計算不同區域的熵值大小,且通過滑動窗口計算特征值的同時,還能對圖像進行降采樣,減少后續特征的處理量。滑動窗口過大會增加熵特征提取的計算量,過小則使得不同區域求得的熵值差異較小,容易造成誤判。而滑動步長過大會使得窗口掃描較為粗略,導致最終求得導航線精度較低,滑動步長過小則會額外產生大量待計算熵值的窗口,增加圖像熵特征提取的計算量。本文最終選擇大小為40 像素×30 像素的窗口,滑動步長橫向為10 像素,縱向為5 像素。
1.2.1 圖像感興趣區域選擇
由于相機成像存在透視現象,同一對象與相機距離發生變化時往往在圖像中的紋理特征會有較大的差異,而這種差異會導致對區域收割與否的誤判,因此需要選擇圖像中熵特征具有明顯差異的感興趣區域[27]。本文在固定相機安裝方式時以拍攝圖像縱向高度衡量小麥與相機間距離。為保證感興趣區域內收割與否熵特征差異明顯,感興趣區域的縱向高度不宜過大,而縱向寬度過小又容易導致真實邊界信息丟失。為保留真實邊界信息的同時比較不同高度區域熵特征差異明顯程度,本文將圖1a 縱向分割為3 等份,至上而下得到頂部、中部、底部3個區域的熵值,如圖2 所示。

圖2 不同區域熵值圖Fig.2 Entropy map at different areas
觀察不同區域熵圖可以發現,底部區域距離相機過近導致已收割區域紋理過于清晰,而頂部區域距離相機過遠使得未收割區域紋理過于模糊,均無法區分收割區域與未收割區域。故本文在固定安裝方式下選擇圖像的縱向中部區域作為收割邊界識別的感興趣區域。
1.2.2 基于滑動窗口算法的熵特征提取
計算圖像熵特征的傳統方法是對原圖像按照熵特征提取所需窗口大小及位置進行截取,統計所截取圖像內直方圖,進而計算熵值,每個窗口相互獨立。該計算方法使得不同窗口間重疊區域被重復計算,檢測實時性無法得到滿足,因此本文對直方圖統計方式改進。當生成橫向2個相鄰窗口、縱向2個相鄰窗口時,如圖3 所示。按照傳統熵特征提取方式,子窗口A2B1B4A3,A4A3D2D1,D2C1D3C4,B4B3C2C1中數據將計算2 次,A3B4C1D2中數據將計算4 次,增加計算量。

圖3 相鄰滑窗示意圖Fig.3 Adjacent sliding windows
本文對原圖像進行分割得到熵特征窗口的子窗口。使用滑動窗口算法組合子窗口的灰度直方圖數據,進而得到整幅圖像的熵特征。以橫向為例,第iwindow個熵特征窗口的左上角以及右下角的橫坐標分別如式(2)式(3)所示。
式中xLU(iwindow),xRD(iwindow)分別為第iwindow個矩形窗口左上角和右下角的橫坐標,像素;xstep為窗口橫向滑動步長,像素;xwindow為窗口橫向寬度,像素;xpic為圖像橫向寬度,像素。此時每行橫向矩形窗口數量Nwinx如式(4)所示。
xLU(iwindow)與xRD(iwindow)即為子窗口獲取的橫向分割點,若xpic-xwindow不是xstep的整數倍,將產生大量子窗口,增加計算量,分割結果如圖4 所示。

圖4 子窗口橫向分割圖Fig.4 Horizontal split diagram of sub-window
為減少子窗口數量,本文令xpic-xwindow為xstep的整數倍,此時橫向被劃分的子窗口數Nsubx為
此時,特征提取窗口右邊界同時也是后續窗口的左邊界,減少了子窗口數量。如圖5 所示,R(1)既為第1個特征窗口的右邊界,也為第4個特征窗口的左邊界。熵特征提取僅需滑動子窗口,如將第1個特征窗口向右滑動1個子窗口即求得第2個特征窗口直方圖統計結果。

圖5 橫向子窗口組合示意圖Fig.5 Schematic diagram of horizontal sub-window combination
對于一幅xpic·ypic大小的圖像,熵特征提取窗口大小為xwindow×ywindow,窗口橫向和縱向滑動步長分別為xstep、ystep時,傳統熵特征提取算法計算量C1約為
本文改進熵特征提取算法計算量C2約為
以本文采集原始圖像尺寸720 像素×1 280 像素為例,經選擇感興趣區域后,實際處理為240 像素×1 280 像素。在16 GB 內存、Intel i7-12700H CPU、RTX 3060GPU 的計算機上提取該圖像熵特征,傳統熵特征提取算法與改進后的熵特征提取算法耗時分別為1.05 與0.53 s,本文算法提速約49.52%。
熵特征體現了窗口區域內的像素點數量關系,反映了紋理的復雜程度,但無法反映紋理的方向特征。而小麥收割后留下的矮茬使得收割區域的紋理方向較為一致,故本文在提取熵特征的基礎上增加了方向梯度特征。本文選擇大小為3×3 的Sobel 算子分別提取x、y方向上的梯度強度,x方向和y方向的Sobel 算子為
式中Sobelx為x方向的Sobel 算子;Sobely為y方向的Sobel 算子。
滑動窗口的方向梯度G為
式中Gij為窗口內位于(i,j)像素點的梯度強度,無量綱;Dirij為窗口內位于(i,j)像素點的梯度方向;Area為梯度方向區間;梯度區間過大將導致未受割區域滑動窗口內方向梯度偏大,而過小將使得收割區域滑動窗口內方向梯度偏小,均不利于通過方向梯度特征判斷區域收割與否。根據大量采集圖像的分析結果,本文令區間大小為40°,梯度方向區間Area為[40,80)。
1.4.1 最大熵閾值分割
在得到圖像的熵特征和方向梯度特征后需要選擇合適的閾值將收割區域與未收割區域區分開來,常用的閾值分割方法有基于灰度圖的雙峰閾值分割法、最大類間方差法和熵閾值分割法等[28]。由于本文提取的特征均為浮點類型,選取不同的灰度級數時,特征直方圖存在較大差異,故雙峰閾值分割法與最大類間方差法不適合本文。而熵閾值分割反映了分割后圖像的均勻程度,將圖像分為不同類別時,整幅圖像的熵值最大時,分割效果最好,灰度級數對最終閾值的選取影響較小。故本文選擇最大熵閾值分割作為閾值選取方法,二分類問題分割后圖像熵值Eseg為
式中Eseg為分割后的圖像熵值;p1i為分割后灰度級i在前景圖中出現頻率;p2i為分割后灰度級i在背景圖中出現頻率;nseg為分割閾值對應灰度級數。
圖像的熵特征直方圖如圖6a 所示,由于拍攝光線、角度等,提取的熵特征中存在少許低值噪聲點,這些噪聲點會使得最終的熵特征分割閾值偏小,而收割邊界處信息量往往較高,其熵值較大,故可舍棄低熵值點。

圖6 灰度級數為256 時的特征直方圖Fig.6 Characteristic histogram when grayscale progression is 256
熵特征分割閾值與舍棄低熵值點比例關系曲線如圖7所示。

圖7 熵特征分割閾值與低熵值舍棄比例關系曲線Fig.7 Relationship between threshold and loss ratio of entropy
舍棄比例低于5%時,曲線較陡,此時低值噪聲點對熵特征閾值影響較大;舍棄比例高于5%時,曲線較緩,低值噪聲點幾乎不影響最終閾值,為確保能夠消除低值點的影響且考慮到收割邊界熵值較大的特點,本文舍棄10%低熵值點求取熵分割閾值。梯度特征直方圖如圖6b 所示,由于梯度特征反映滑動窗口內像素點在某一方向的平均梯度強度,受噪聲點影響較小,故無需處理噪聲點。圖8a 和圖8b 分別為舍棄低熵值點前后熵特征的閾值化結果;圖8c 為方向梯度特征閾值化結果。

圖8 閾值分割后的特征圖像Fig.8 Feature images after threshold segmentation
1.4.2 小連通區域去除
從圖8b 和圖8c 可以看出,兩種特征均會產生較多的誤判區域。其中對于熵特征,未收割區域右側由于遠離中心其熵特征值較小,中間區域也存在著部分因小麥高度的差異而導致光照下熵值過小的區域;對于方向梯度特征,已收割區域由于麥茬裸露,其紋理方向較為一致,窗口內位于梯度方向區間內像素點較多,方向梯度特征值普遍較高,未收割區域由于各個方向的梯度分布較雜亂,窗口內位于梯度方向區間內像素點少,方向梯度特征值普遍較低,且在各區域內也存在不同程度的誤判窗口。但兩種特征的二值化結果均使得收割邊界的左側或者右側中的一側分類準確度較高,因此可以通過去除小連通區域將另一區域內的誤判點去除。
本文采取四鄰域連通區域判定方式,由于相機安裝位置與收割機位置相對固定,故收割區域與未收割區域在圖像中所占比例較為固定,因此去除區域的大小可以固定。通過觀察大量二值化圖像,未收割區域中遠離相機中心的區域由于透視效應,其熵值較小。為去除誤分類點的同時保留盡可能多的正確分類點,針對熵特征二值化圖,本文先去除黑色小連通區域,再去除白色小連通區域,區域閾值為二值化圖像大小的1/6;針對方向梯度二值化圖,本文采取先去除白色小連通區域,再去除黑色小連通區域,區域閾值分別為二值化圖像大小的1/12 和1/6。圖9a 和圖9b 分別展示了感興趣區域內熵特征圖像和方向梯度特征圖像經過去小連通區域處理后的二值化圖。

圖9 去除小連通區域后的特征二值化圖Fig.9 Binary image after removing small connected regions
1.4.3 Ransac 邊界擬合
經過圖像二值化、小連通區域去除后,通過Canny算子即可提取得到邊界輪廓點,融合2 種特征得到的邊界點,采取Ransac 方法擬合得到收割邊界。由于收割農機行進方向與收割邊界朝向一致,因此收割導航線在圖像中的角度變化范圍相對固定,為提高檢測準確率,在進行Ransac 擬合時應判斷擬合邊界是否在此角度范圍內,本文選擇角度范圍為[60°,120°]。當待評價點落于擬合直線一定范圍內,則將該待評價點視為“優點”,該擬合直線得分Score 加1,本文選擇距離擬合直線2個像素點作為“優點”評價指標。擬合過程如下:
1)將兩種特征得到的疑似邊界點集Points1和Points2作為數據輸入,記為Points;
2)從Points中隨機選擇兩個初始點作直線L,若L傾斜角θ∈[60°,120°],則進入步驟3),否則重復步驟2);
3)遍歷得到Points中每個點到L的距離Di,若Di<2像素,則該直線得分Score加1;
4)重復步驟2)至步驟4),選擇Score 最大值對應的L作為收割邊界。
本文選用顯微精工XG300 高速工業相機,并搭配中聯科創VM0612 鏡頭作為圖像采集設備,采集圖像分辨率為720 像素×1 280 像素,采集幀率為30 幀/s。圖像處理在計算機平臺上完成,處理器為Intel i7-12700H CPU、RTX 3060GPU,內存大小為16 GB。2021 年6 月中旬在北京小湯山精準農業基地采集原始小麥收割圖像數據,天氣為晴天與多云。小麥株高約為80 cm,麥茬高度約為8 cm,收割行進方式為右旋法,行進速度約1.5 m/s,收割邊界位于收割機左側。為使拍攝視域較廣并保證收割機安全作業,相機安裝于駕駛艙底部居中偏左位置,相機離地高度約2.2 m,相機光軸與地面呈約30°角。
對所拍攝麥田圖像進行人工標注作為收割邊界的真實值,將算法提取的收割邊界與人工標注的收割邊界之間的夾角絕對值以及橫向截距的偏移率作為本文算法精度評價指標,并以檢測率作為算法有效性的評價指標。本文定義檢測率Rdetected為
式中Nset為試驗數據集總數,Ndetected為成功檢測到收割邊界的圖像總數。
因收割邊界均為直線,故認為檢測邊界與真實邊界滿足如下關系時視為成功檢測收割邊界:
式中θdeviation為檢測收割邊界與真實收割邊界的角度偏差,(°);θdetection為檢測收割邊界傾斜角,(°);θreal為真實收割邊界傾斜角,(°);θthreshold為角度偏差閾值,(°);Edeviation為橫向截距偏移率,%;Bdetected為檢測收割邊界橫向截距,像素;Breal為真實收割邊界橫向截距,像素;Ethreshold為橫向截距偏移率閾值,%。
基于視覺的檢測方案易受光照影響,小麥麥穗在不同光照下更容易產生紋理特征變化的現象。為驗證本文方法的適用性,采集了不同光照環境下的小麥收割圖像,如圖10 所示,其中圖10a 和10b 拍攝于2021 年6 月18 日上午09:00,多云天氣,圖10c 拍攝于2021 年6 月17 日中午11:00,天氣晴,強光照。共拍攝弱光照圖像2 200 張,局部強光照圖像758 張,強光照圖像1 134 張。

圖10 不同光照麥田圖像Fig.10 Wheat field images under different lighting conditions
傳統的收割邊界檢測算法利用多特征較經典的是將圖像用超像素分割算法分割成大量的超像素塊,對超像素塊進行多維特征提取,進而利用機器學習算法構建對超像素塊進行分類的分類器,最后通過分類器區域收割區域與未收割區域。洪通過構建6 維顏色特征向量和10維紋理特征向量,以決策樹模型為弱分類器,通過Adaboost 集成學習算法對弱分類器進行組合構建強分類器進行稻田收割機導航線提取,其中決策樹最大可能深度為16[29]。
分別利用基于Adaboost 集成學習算法的邊界檢測方法和本文收割邊界檢測算法進行檢測,取θthreshold=5°、Ethreshold=5%,檢測結果如表1 所示。
本文算法選擇兩種紋理特征增擴了邊界附近數據點,既減少了提取無用特征的時耗,又避免了其對區域收割與否造成誤判,提高了角度的判別精度,進而使得檢測率有較大提升。由表1 可知,相較于對比算法,本文方法的收割導航線檢測率有明顯提升,弱光照下本文算法為90.41%,提高46.19個百分點;局部強光照下為88.26%,提高46.00個百分點;強光照下為89.68%,提高49.64個百分點,不同光照下平均檢測率為89.45%,平均提高47.28個百分點,本文方法的平均檢出角度偏差為3.69°,平均檢出橫向截距偏移率為2.06%,處理240 像素×1 280像素的圖像平均耗時0.88 s,較對比算法減少用時73.89%。本文算法提高了檢測的準確性與實時性水平。
圖11 為3 種光照下兩種算法成功檢出結果對比,圖12 為兩種算法誤檢結果對比。對比算法雖然對導航線中心位置判斷較為準確,但導航線角度易受航線處超像素塊識別結果影響,而其導航線附近超像素塊正確識別率較差,導致了導航線檢測率較低。由于本文算法使用紋理特征提取收割邊界,而收割機作業過程中,相機由于處于運動狀態產生拍攝結果“模糊”的情形,以及收割機行進過程中相機畫面中出現了如輪胎壓印等存在邊界特征的對象,導致本文算法也出現了一定程度的誤檢。

圖11 不同光照條件下不同算法的檢出結果Fig.11 Detected results of different algorithms under different lighting conditions

圖12 不同光照條件下不同算法的誤檢結果Fig.12 Undetected results of different algorithms under different lighting conditions
1)提出了基于多紋理特征的麥田收割邊界檢測方法,利用熵特征反映圖像一定窗口內像素點數量關系以及方向梯度特征反映一定窗口的方向紋理特性的特點,構建了二維互補紋理特征;結合特征直方圖的特點,通過最大熵閾值分割算法獲得特征二值化圖;通過去除小連通區域與Ransac 數據點擬合算法處理特征二值化圖得到了麥田收割邊界。
2)在熵特征提取中,本文結合滑動窗口算法改進直方圖統計方式,加快熵特征提取速度。處理一張240 像素×1 280 像素的圖像,傳統熵特征提取算法耗時1.05 s,本文熵特征提取算法耗時0.53 s,提速約49.52%。
3)相比Adaboost 集成學習算法,本文通過選擇本場景下兩種紋理特征進行互補,縮短了特征提取時間,同時避免多余特征對收割與否造成誤判,提高了收割邊界檢測率。對于240 像素×1 280 像素的圖像,Adaboost集成學習算法提取收割邊界耗時3.37 s,本文算法耗時0.88 s,提速約73.89%,基本滿足農機自主導航技術的實時性要求。在檢測率方面,本文算法在弱光照下為90.41%,局部強光下為88.26%,強光照下為89.68%,較對比算法分別提高46.19、46.00 和49.64個百分點,檢測率較對比算法提升明顯。