白云龍,傅彬,史振華,王健
(紹興職業技術學院,浙江紹興,312000)
為了適應精準農業的生產作業需求,具有自主導航功能的農業機械裝備成為當前的研究重點,在農作物種植、除草和收割等領域具有廣闊的應用前景。目前,插秧機器人的導航方式主要有GPS導航[1]、激光導航[2]和機器視覺導航[3]等。對比GPS和激光導航方式,機器視覺憑借其靈活、高效、實時性好、魯棒性強、精準的局部識別和獲取信息完整等優點,成為插秧機器人主要的導航方式。其中,導航路徑的準確識別是實現水稻插秧機器人自主導航的關鍵技術之一[4]。
在水稻種植過程中,路徑識別系統采集的圖像容易受到光照、雜草和翻土等因素的影響,導致系統在判別導航路徑的過程中易出現魯棒性變差的現象,并且農田工作環境復雜多變使得數據計算量增加,最終導致系統的實時性、穩定性和高效性降低。李俊霞等[4]提出利用視覺同步定位與建圖(SLAM)的方式完成農業車輛的導航,系統可以實現自動規避障礙物并回歸原始路徑的功能,但由于導航路徑標識符難以布置,導致最終檢測精度和效率難以滿足實際需求。李秀智等[5]在對采集圖像預處理后,對壟行邊緣中的特征點進行識別和聚類,利用RANSAC算法提出離群特征點,最終使用最小二乘法對最優特征點集進行直線擬合,但存在容易受到光照不均的干擾及剔除特征點閾值難以確定的問題。郭翰林等[6]利用HSV顏色空間的S分量對采集圖像進行灰度化處理,并引入修正因子調整圖像分割閾值,利用動態掃描圖像方式獲取路徑特征點,通過Hough變換擬合導航路徑,該方法可以適應不同生長期的植株特征和不同大小的株間空隙,但系統易受雜草干擾且修正因子無法隨著采集圖像的變換而改變。標記分水嶺算法可以抑制圖像噪聲,避免過分割現象,準確獲取前景物體的邊緣[7-8]。
為了提高導航路徑的檢測精度和識別速度,本文提出一種基于標記分水嶺算法的插秧機器人導航路徑檢測方法。在對圖像進行預處理之后,利用標記分水嶺算法對圖像進行分割,隨后確定目標苗列和目標田埂線,然后使用均值法獲取導航路徑特征點集,最后利用最小二乘法對特征點進行擬合并獲得插秧機器人的導航路徑。
本文以浙江省紹興市楓橋鎮水稻種植園為研究區域,試驗時間為2020年6月晚稻種植期,以插秧機器人為系統承載平臺,采用單攝像頭采集圖像的方式,攝像頭型號為索尼IMX322,安裝在農機前方距地面上方0.8 m處,向下傾斜10°。插秧機開始工作時,需要根據目標田埂線進行作業,車輛在田頭回轉后,需要根據目標秧苗列線進行插秧。系統共采集30幅大小為327像素×338像素的試驗圖像,試驗針對目標田埂和目標秧苗列分別提取一幅圖像作為研究對象,如圖1所示。

(a) 圖目標秧苗列

(b) 目標田埂圖1 原始圖像Fig. 1 Original image
在系統識別導航路徑的過程中,需要對采集的原始圖像進行預處理操作,進而增強目標苗列和田埂的可檢測性,提高圖像分割的可靠性。本文通過對采集的原始圖像進行預處理,提高圖像質量,降低干擾信息對試驗結果的影響,處理步驟主要分為灰度化處理、直方圖均衡化和中值濾波。文獻[9]表明秧苗RGB圖像中G的分量要大于B分量和R分量,所以可以使用超綠色灰度法對目標苗列與背景進行準確分離,其公式如式(1)所示。而人眼對綠色敏感度要高于藍色,因此對目標田埂RGB圖像進行加權平均值灰度法可以得到較為合理的灰度圖像,其公式如式(2)所示。

(1)
Fg(i,j)=0.299×R(i,j)+0.587×G(i,j)+
0.114×B(i,j)
(2)
式中:I——灰度圖像的亮度值;
Fg(i,j)——圖像像素值;
R、G、B——紅、綠、藍顏色分量。
由于光照不均勻造成采集圖像存在局部不清晰的問題,所以通過直方圖均衡化可以改變圖像中各個像素的灰度,增加像素之間灰度值的動態范圍,從整體上改變圖像的對比度[10]。受到圖像采集設備和農田復雜環境的噪聲干擾,采集圖像存在邊緣模糊和和黑白雜點的問題,所以通過中值濾波法去除噪聲點[11],可以進一步提高導航路徑識別精度。圖2為圖像預處理結果圖。

(a) 灰度化處理

(b) 直方圖均衡化

(c) 中值濾波圖2 圖像預處理Fig. 2 Image preprocessing
2.1.1 傳統分水嶺算法
分水嶺分割算法屬于基于區域的圖像分割算法,主要是將采集圖像按照地形學的思維轉換成一個三維立體表面,整體表面主要分為集水盆地、山脊和山坡。圖像中每個像素點的灰度值表示這個點的海拔高度,每個灰度值極小點及其影響區域構成一個個集水盆地。灰度值變化范圍較大的位置對應著圖像的邊緣,也被稱為山脊。從灰度值極小點向山脊處變化的灰度值范圍,稱為山坡[12]。
利用分水嶺分割算法分割圖像的過程被稱為“模擬浸水”。水流從集水盆地的最低點開始向高處浸溢并在山脊處修筑大壩,隨著水位不斷地增高,每個集水盆將會被填滿,而筑起的大壩就是分水嶺算法的分割線。當圖像所有區域都被水流浸滿后,算法停止運行,被大壩分割出的集水盆就是要分割的圖像區域。使用分水嶺算法處理稻田圖像時,由于受到翻土、光照不均和量化誤差等因素的影響,一幅稻田圖像存在多個局部極值,一個灰度值均勻的區域也往往會被分割出多個集水盆,產生大量虛假分割線,造成過度分割的現象。
2.1.2 標記分水嶺算法
基于標記的分水嶺算法能夠有效抑制過分割的現象[13],算法根據目標邊界處梯度值高和內部梯度值低的特點計算梯度幅值,利用基于重構的開閉運算去除突刺并保留目標整體形狀;在計算圖像局部最大值后,利用閉運算和腐蝕操作清理標記斑點的邊緣,以獲得良好的前景標記;圖像經過閾值化運算后,為了避免背景標記過分靠近目標邊緣,通過距離變換操作獲得最適的背景標記;使用前景標記和背景標記修正稻田梯度圖像,將標記處強制應用為灰度圖的局部最小值,并通過設定閾值t過濾掉最小值深度Hmin小于t的局部區域;最后,利用分水嶺算法處理圖像以獲得最優的識別目標分割圖像。標記分水嶺算法流程圖如圖3所示。局部稻田圖像經過二值化處理后的垂直投影曲線圖如圖4所示。

圖3 標記分水嶺算法流程圖Fig. 3 Flowchart of marking watershed algorithm
從圖4可以看出,秧苗列所在位置為投影曲線的峰值,投影曲線隨著秧苗列到土壤背景向下轉變,隨著土壤背景到秧苗列向上轉變,所以在分割秧苗列圖像時最小深度閾值tm設定為8。而在分割目標田埂的圖像的過程中,由于目標田埂的灰度值遠小于秧苗的灰度值,所以可以先剔除高灰度值的秧苗列,保留圖像像素值在100~140的目標田埂,最終分割田埂的最小深度閾值tg設定為32。
在標記分水嶺算法的運行過程中,用M1,M2…,Mi表示稻田灰度圖像f(x,y)的極小值標記區域,其中(x,y)∈Mi(i=1,2…,R)。Mi區域最小點集。Dmin表示f(x,y)的最小值,Dmax表示f(x,y)的最大值,C(Mi)為與Mi區域相鄰的集水盆地點集,T(n)={(x,y)|f(x,y) 圖4 垂直投影曲線圖Fig. 4 Vertical projection curve 算法運行步驟如下。 1) 初始化f(x,y)、Dmin和Dmax。 2) 設定C(Mi)和T(n)。 3)Cn(Mi)采集多個集水盆地區域內的坐標點,并在區域間建立分界線。 4) 當f(x,y)>n時,返回步驟(2),否則結束。 2.1.3 圖像分割結果 根據已得到的內部標識、外部標識和最小深度閾值t對稻田灰度圖像進行分割處理,使得灰度圖像的局部最小值出現在標記處,應用標記分水嶺算法得到的分割結果如圖5(a)所示。為了驗證標記分水嶺算法在分割秧苗和田埂過程中的優越性,本文對比了傳統分水嶺算法和區域生長法[14]的分割效果,分割效果圖如圖5(b)和圖5(c)所示。文獻[13]認為圖像預處理和分割會造成分割目標邊緣出現偏移和失真的現象,可以通過分析分割目標和原圖像對應像素點位置的匹配度,判斷不同處理算法的分割精度,其計算公式如式(3)、式(4)所示,得到不同方法的圖像分割精度如表1所示。 Px=Pn/Pr (3) Py=Pn/Pz (4) 式中:Pr——人工提取識別目標的像素點集,秧苗列的值為67 045,田埂的值為57 642; Px——位置匹配度; Pn——利用分割算法得到的識別目標像素點值與Pr進行或運算后非0像素點集; Pz——識別目標像素點值; Py——圖像分割精度。 (a) 標記分水嶺法 (b) 傳統分水嶺法 (c) 區域生長法圖5 不同方法的圖像分割結果Fig. 5 Image segmentation results of different methods 表1 不同算法的圖像分割精度Tab. 1 Image segmentation accuracy of different methods 從圖5(b)中可以看出利用傳統分水嶺法分割圖像對分割邊緣敏感,存在點狀噪聲點干擾現象,且對灰度值變化較小的局部區域產生了過分割現象,無法準確分割目標秧苗和目標田埂。從圖5(c)中可以看出利用區域生長法分割圖像的分割效果具有較好的邊緣特性,但無法有效降低噪聲點對分割圖像的影響,且分割精度有待提高。從圖5(a)可以看出利用標記分水嶺法可以準確分割出秧苗列和田埂,圖像噪聲點最少,有利于后續特征點提取和導航路徑直線擬合。由表1可知,使用標記分水嶺算法分割圖像的匹配度和精度最高,其中秧苗列的結果為95.47%、94.55%,田埂的結果為96.54%、94.15%,表明本文算法在增強圖像邊緣的同時,又可以避免干擾識別目標區域的精確度。 采集圖像經過圖像預處理和分割后僅保留識別目標和背景區域,特征點的提取是插秧機導航路徑擬合的必要條件。根據秧苗和田埂所在位置的區域特征,檢測分割圖像的白點數量,白點代表特征點的出現位置,黑點代表圖像背景。另外,由于導航路徑一般選擇具有最長線的秧苗,所以本文在提取目標秧苗列特征點的過程中選擇圖像中心1/3區域作為處理窗口,不但保證秧苗列線最長,而且可以提高導航路徑檢測的效率。特征點提取步驟如下。 1) 建立分割圖像大小的空矩陣Z,記為X行、Y列。 2) 賦值臨時變量a=0、b=0,圖像像素點坐標(i,j)為(0,0)。 3) 以圖像左上角為初始點,由上至下、由左至右逐行掃描,若坐標(i,j)的像素值為255,則a++、b=a/2,其中a代表此行的白點數。 4) 再次掃描步驟3的行,若坐標(i,j)的像素值為255,則b--,直至b=0,將此時坐標點的像素值設定為0并存入矩陣Z中。 5) 掃描至X行、Y列的坐標點結束,否則返回步驟2。 將矩陣Z中的像素點值置入分割圖像中,提取特征點如圖6所示。 圖6 特征點提取圖Fig. 6 Feature point extraction diagram 其中,為了提高特征點的可視性,本文將黑色像素點標紅,目標秧苗列和田埂中的紅色點表示特征點的平均位置,由于識別目標分布不均勻和受噪聲干擾的影響,導致局部提取特征點存在偏差,但是并不影響最終的導航路徑擬合。 在農田環境中,由于干擾因素較多,需要對采集圖像進行預處理以使識別目標突出。使用標記分水嶺算法分割圖像不但可以有效分割識別目標區域,而且可以避免過分割的現象。在利用均值法提取導航路徑特征點之后,選用最小二乘法擬合導航路徑直線,可以降低路徑檢測不完整的現象,最終系統生成導航路徑信息。導航路徑檢測流程如圖7所示。 圖7 導航路徑檢測流程Fig. 7 Navigation path detection process 為了驗證標記分水嶺圖像分割算法的有效性,利用最小二乘法分別對不同圖像分割方法得到的圖像特征點進行直線擬合,進而構建插秧機器人的導航路徑,并從中提取10個關鍵點計算誤差值。1/3處理窗口目標秧苗列的圖像尺寸為109像素×282像素,目標田埂的圖像尺寸為327像素×338像素。導航路徑檢測對比圖如圖8所示,檢測結果如表2所示。 (a) 傳統分水嶺方法 (b) 區域生長方法 (c) 標記分水嶺方法圖8 導航路徑檢測對比Fig. 8 Comparison of navigation path detection 表2 導航路徑檢測結果Tab. 2 Navigation path detection results 由圖8(a)可見,由于傳統分水嶺算法的分割圖像存在太多噪聲污染,導致利用最小二乘法擬合直線的過程中存在局部直線擬合現象,使得導航路徑是由多條擬合直線疊加形成,無法滿足插秧機器人視覺導航的需求。由圖8(b)可見,區域生長法分割圖像的擬合直線效果較好,但是由于識別目標分割不徹底,導致局部擬合直線出現偏離中心路徑的現象。由圖8(c)可見,標記分水嶺分割圖像的擬合直線效果最好,少量噪聲點未對最終的導航路徑產生影響。同時由表2可知,標記分水嶺法相比傳統分水嶺法和區域生長法,秧苗列和田埂導航路徑的像素平均誤差值最小,決定系數R2最接近1,檢測精準度最高,分別達到93.4%和96.6%,,雖然處理時間略長,但是仍然具有實時性。 針對稻田作業下的視覺導航插秧機器人,為解決插秧機器人導航路徑受光照、雜草和翻土等干擾因素的影響,提出利用標記分水嶺算法分割目標秧苗列和目標田埂的解決辦法,進一步提高導航路徑檢測的準確性。利用灰度化處理、直方圖均衡化和中值濾波對采集圖像進行預處理,使用標記分水嶺算法對識別目標進行圖像分割,并通過均值法采集導航路徑特征點集,最后經最小二乘法將特征點擬合成導航路徑。 1) 在復雜的水稻種植環境中,對采集圖像進行預處理操作,可以進一步增強圖像對比度,減少環境噪聲對導航路徑檢測的干擾。 2) 相比傳統分水嶺法和區域生長法,利用標記分水嶺法分割圖像的分割精度和圖像匹配度最高,其中秧苗列的結果為94.55%、95.47%,田埂的結果為94.15%、96.54%,圖像噪聲點最少,有利于后續特征點提取和導航路徑直線擬合。 3) 在導航路徑擬合的過程中,標記分水嶺法相比傳統分水嶺法和區域生長法,秧苗列和田埂導航路徑的像素平均誤差值最小,決定系數R2最接近1,檢測精準度最高,分別達到93.4%和96.6%,雖然處理時間略長,但是仍然具有實時性,表明本文方法能夠較為準確檢測插秧機器人的導航路徑。




2.2 特征點提取

2.3 檢測流程

3 結果與分析




4 結論