陳艷 李春貴 胡波
摘 要:針對以田間圖像每行背景像素的坐標(biāo)中點(diǎn)作為導(dǎo)航特征點(diǎn),擬合出的導(dǎo)航線精度不高的問題,提出了一種改進(jìn)的特征點(diǎn)提取算法:首先,采用歸一化2G-R-B超綠特征對圖像進(jìn)行灰度化,再用最大類間方差(OSTU)法和形態(tài)學(xué)閉運(yùn)算分別對灰度圖像進(jìn)行分割和濾波;然后,提取每行背景像素坐標(biāo)中點(diǎn)作為初始特征點(diǎn),再根據(jù)初始特征點(diǎn)與圖像中心線間表示農(nóng)作物的像素?cái)?shù)對特征點(diǎn)進(jìn)行修正;最后,利用修正后的特征點(diǎn)擬合得到導(dǎo)航線.仿真結(jié)果表明:該改進(jìn)算法受環(huán)境噪聲影響較小、實(shí)時(shí)性好,擬合出的導(dǎo)航線在精度上具有明顯優(yōu)勢.
關(guān)鍵詞:特征點(diǎn);導(dǎo)航線提??;農(nóng)機(jī)導(dǎo)航
中圖分類號:S126;TP391.41 DOI:10.16375/j.cnki.cn45-1395/t.2018.03.011
0 引言
隨著計(jì)算機(jī)技術(shù)和信息處理技術(shù)的不斷發(fā)展,智能化農(nóng)業(yè)機(jī)器人越來越多地代替手工完成各種農(nóng)作業(yè),引領(lǐng)著第二次農(nóng)業(yè)革命深入發(fā)展.智能農(nóng)機(jī)的一個(gè)重要組成部分是視覺導(dǎo)航技術(shù)[1-3].視覺導(dǎo)航系統(tǒng)在獲取田間圖像后,首先對圖像進(jìn)行預(yù)處理,然后從中提取導(dǎo)航特征點(diǎn)并擬合導(dǎo)航線,最后根據(jù)導(dǎo)航線計(jì)算導(dǎo)航參數(shù)來控制農(nóng)機(jī)的走向.其中,導(dǎo)航特征點(diǎn)的提取是農(nóng)機(jī)視覺導(dǎo)航的關(guān)鍵,關(guān)系到導(dǎo)航精度.
目前,導(dǎo)航特征點(diǎn)提取算法主要有:對灰度圖像或二值圖像進(jìn)行垂直投影提取特征點(diǎn)[4-8];提取圖像每行背景像素的坐標(biāo)中點(diǎn)作為特征點(diǎn)[9-12];利用邊緣檢測算子提取農(nóng)作物和土壤的邊界來提取特征點(diǎn)[13];利用角點(diǎn)檢測算子提取農(nóng)作物的角點(diǎn)作為特征點(diǎn)[14-15];利用細(xì)化法等提取作物行骨架來獲取特征點(diǎn)[16- 17]等.其中,垂直投影法和背景像素坐標(biāo)中點(diǎn)法算法相對簡單、實(shí)時(shí)性好,但是受缺株、農(nóng)作物間的空隙以及雜草等噪聲影響較大,導(dǎo)航精度受限;邊緣檢測算法提取的特征點(diǎn)精度高,但由于需要做微分運(yùn)算,算法相對復(fù)雜,實(shí)時(shí)性不高;角點(diǎn)檢測算法和骨架提取算法較適合水稻秧苗、玉米等單株作物行的情況,適用性有限.
針對以上問題,為了在保證算法實(shí)時(shí)性的同時(shí)提高導(dǎo)航精度,本文以圖像每行背景像素坐標(biāo)中點(diǎn)作為初始特征點(diǎn).為了消除圖像背景噪聲的影響,對偏離導(dǎo)航路徑的特征點(diǎn)進(jìn)行修正,并利用修正后的特征點(diǎn)擬合導(dǎo)航線.
1 特征點(diǎn)提取算法基本原理及改進(jìn)
1.1 基本原理
在農(nóng)業(yè)大規(guī)模種植中,農(nóng)作物行通常具有近似呈直線、行與行之間的距離基本相等并相互平行的特點(diǎn).而智能農(nóng)機(jī)的攝像頭一般安裝在中間位置且正對著導(dǎo)航路徑(通常是攝像頭正對著的壟溝),因此所拍攝的田間圖像除農(nóng)田邊界附近外基本相對導(dǎo)航路徑左右對稱.根據(jù)田間圖像的這個(gè)特點(diǎn),圖像每行表示農(nóng)作物或背景的像素坐標(biāo)中點(diǎn)應(yīng)正好在導(dǎo)航路徑內(nèi).若以該坐標(biāo)中點(diǎn)作為導(dǎo)航特征點(diǎn)提取導(dǎo)航線,理論上是可以正確導(dǎo)航的.然而,實(shí)際由于農(nóng)作物行缺株、葉片之間的空隙以及壟溝內(nèi)雜草的存在,部分圖像行的特征點(diǎn)會(huì)偏離當(dāng)前的壟溝,落在作物行上或其他壟溝內(nèi),從而導(dǎo)致擬合出的導(dǎo)航線偏離導(dǎo)航路徑.因此,有必要對以農(nóng)作物或背景的像素坐標(biāo)中點(diǎn)為特征點(diǎn)的算法進(jìn)行改進(jìn),對偏離導(dǎo)航路徑的特征點(diǎn)進(jìn)行修正以提高導(dǎo)航精度.
1.2 算法改進(jìn)
由于攝像頭通常正對著導(dǎo)航路徑,從人的視覺角度來看,理想的特征點(diǎn)應(yīng)分布在距離圖像中心線最近的壟溝內(nèi).即便攝像頭有一定的偏移或作物行有些彎曲,導(dǎo)航路徑對應(yīng)的壟溝也不會(huì)偏離圖像中心線太多.基于此,可對算法進(jìn)行改進(jìn),其基本思想是:首先提取圖像每行背景像素的坐標(biāo)中點(diǎn)作為初始特征點(diǎn),此時(shí)大多特征點(diǎn)會(huì)落在中間壟溝內(nèi).若初始特征點(diǎn)偏離中間壟溝落在作物行上或其他壟溝內(nèi),則特征點(diǎn)與中間壟溝之間必然存在一些表示農(nóng)作物的像素點(diǎn).由于中間壟溝位置不定,但是距離圖像中心線比較近,因此可以通過統(tǒng)計(jì)初始特征點(diǎn)與圖像中心線之間表示農(nóng)作物的像素點(diǎn)數(shù),來對特征點(diǎn)進(jìn)行修正.修正的方法是:初始特征點(diǎn)與圖像中心線之間表示農(nóng)作物的像素?cái)?shù)有多少,就將初始特征點(diǎn)向圖像中心線方向移動(dòng)多少.這樣就能使初始特征點(diǎn)向中間壟溝方向移動(dòng),一定程度上修正了特征點(diǎn).設(shè)農(nóng)田圖像的大小為M×N,M和N分別對應(yīng)田間圖像的行數(shù)和列數(shù),算法具體步驟如下:
Step 1 對預(yù)處理后的二值圖像(白色代表農(nóng)作物像素值為0,黑色代表背景像素值為1)進(jìn)行逐行掃描,行數(shù)i由上至下增大,列數(shù)j由左至右增大.
Step 2 統(tǒng)計(jì)第i行像素值為1(即背景像素)的像素點(diǎn)個(gè)數(shù)m,以及當(dāng)前行表示背景像素的像素點(diǎn)縱坐標(biāo)之和k;
Step 3 計(jì)算當(dāng)前行的初始特征點(diǎn)縱坐標(biāo):z=k/m (z為圖像背景像素坐標(biāo)的中值);
Step 4 計(jì)算初始特征點(diǎn)z與圖像中心線的距離:d=z-z0,其中z0=N/2,為圖像中心線縱坐標(biāo)值;
Step 5 若d<0(即初始特征點(diǎn)在圖像中心線左側(cè)),則掃描第z~z0列,統(tǒng)計(jì)t的值(t表示農(nóng)作物像素?cái)?shù)即像素值為0的個(gè)數(shù)),修正z=z+t;反之,若d>0(即初始特征點(diǎn)在圖像中心線右側(cè)),則掃描第z0~z列,統(tǒng)計(jì)t的值,修正z=z-t.
Step 6 掃描至M行后停止,否則繼續(xù)執(zhí)行Step 2.改進(jìn)的導(dǎo)航特征點(diǎn)提取算法流程如圖1所示.
2 實(shí)驗(yàn)系統(tǒng)及測量結(jié)果
2.1 總體結(jié)構(gòu)
目前農(nóng)機(jī)視覺導(dǎo)航系統(tǒng)進(jìn)行導(dǎo)航線提取基本包括以下幾個(gè)步驟:圖像預(yù)處理、特征點(diǎn)提取和導(dǎo)航線擬合.導(dǎo)航線提取的基本流程如圖2所示.
2.2 圖像預(yù)處理
由于攝像頭拍攝的圖像通常是彩色圖像,顏色信息比較豐富,冗余的信息會(huì)增加后續(xù)圖像處理的難度,因此,需要先對圖像進(jìn)行預(yù)處理.圖像預(yù)處理主要包括圖像灰度化、圖像分割和圖像去噪等步驟.
圖像灰度化處理時(shí),需要選擇合適的顏色空間模型進(jìn)行.目前,田間圖像灰度化時(shí)常用的顏色空間模型有:RGB[18]、HIS[19-20]、HSV[9]、YUV[21-22]等.其他顏色空間模型需由RGB轉(zhuǎn)換得到,增大了計(jì)算量,本文使用RGB顏色空間對田間圖像進(jìn)行灰度化處理.基于RGB模型的灰度化算法有:G-R、EXR、2G-R-B(也稱EXG)以及EXG-EXR等[15].本文采用較常用的2G-R-B超綠特征灰度化方法,灰度值計(jì)算公式為:
對圖3(a)作灰度化處理,灰度轉(zhuǎn)換結(jié)果如圖3(b)所示.一般地,為避免灰度圖像中農(nóng)作物和土壤背景對比度不足給后續(xù)處理帶來干擾,還需要對灰度圖像進(jìn)行歸一化.本文采用的歸一化公式為:
其中,Y、y分別為歸一化前、后的灰度值,[Vmax]、[Vmin]分別為圖像灰度的最大值和最小值.歸一化灰度圖如圖3(c)所示.可見,歸一化后的灰度圖相比歸一化前在保留了灰度差異的同時(shí),還減小了圖像中灰度的不一致,便于后續(xù)分割處理.
OSTU自動(dòng)閾值分割算法簡單、高效且性能穩(wěn)定,是最常用的一種圖像分割算法[23],分割結(jié)果如圖3(d)所示.分割后的二值圖像中,綠色農(nóng)作物區(qū)域中的黑色空洞和壟溝區(qū)域綠色雜草產(chǎn)生的白點(diǎn),會(huì)給后續(xù)處理帶來不利影響.因此,需要進(jìn)一步對分割圖像進(jìn)行去噪.形態(tài)學(xué)濾波是較常用的一種圖像降噪方法.其中形態(tài)學(xué)閉運(yùn)算由于具有平滑輪廓、融合狹窄間斷和細(xì)長的溝壑并消除小的空洞的特點(diǎn),較符合田間圖像的降噪要求.本文采用5×5的圓盤型結(jié)構(gòu)元素對分割圖像進(jìn)行形態(tài)學(xué)閉運(yùn)算去除噪聲,結(jié)果如圖3(e)所示.可見,大部分圖像噪聲被濾除.
2.3 特征點(diǎn)提取
若直接提取圖3(e)預(yù)處理圖像每行背景像素坐標(biāo)的中點(diǎn)作為導(dǎo)航特征點(diǎn),結(jié)果如圖4(a)所示.由圖4(a)可見,圖像下方距離農(nóng)機(jī)較近的地方由于受到噪聲干擾較小,絕大部分特征點(diǎn)都落在中間的壟溝內(nèi).然而,圖像上方遠(yuǎn)離農(nóng)機(jī)的地方由于受到噪聲干擾相對較大,特征點(diǎn)偏離了中間的壟溝,落在農(nóng)作物區(qū)域甚至其他壟溝內(nèi).采用本文提出的改進(jìn)算法,提取出的導(dǎo)航特征點(diǎn)如圖4(b)所示.很明顯,采用改進(jìn)的特征點(diǎn)提取算法,可以使偏離中間壟溝的特征點(diǎn)向中間壟溝方向偏移,并且基本都落在中間壟溝內(nèi).
3 導(dǎo)航線擬合
由于田間導(dǎo)航路徑即壟溝大多呈直線或相對農(nóng)機(jī)前進(jìn)方向局部范圍內(nèi)近似直線,因此大多采用線性直線擬合的方式來擬合導(dǎo)航線.常用的線性擬合算法有最小二乘法[7]和hough變換法[24-26]等.本文采用相對簡單的最小二乘法進(jìn)行擬合,擬合出的導(dǎo)航線方程為:
其中a、b為擬合系數(shù),擬合出的導(dǎo)航線如圖5所示.由圖5(a)可見,直接利用改進(jìn)前的特征點(diǎn)擬合的導(dǎo)航線偏離了中間壟溝,和人眼視覺提取的導(dǎo)航線相差較大,導(dǎo)航精度不夠.而采用改進(jìn)后的特征點(diǎn)擬合的導(dǎo)航線,如圖5(b)所示,導(dǎo)航精度明顯提高,和人眼視覺提取的導(dǎo)航線幾乎一致,符合實(shí)際導(dǎo)航需要.
4 討論
在Windows10操作系統(tǒng)下利用matlab2016a軟件進(jìn)行導(dǎo)航線提取實(shí)驗(yàn).為了驗(yàn)證所提算法的適用性,隨機(jī)選取了不同田間圖像提取導(dǎo)航線,結(jié)果如圖6所示.可見,所提算法均能較準(zhǔn)確地提取出導(dǎo)航線,算法的適用性較好.此外,對有強(qiáng)光照射、存在非綠色支架、農(nóng)作物稀疏缺株以及陰影干擾情況下的田間圖像進(jìn)行了導(dǎo)航線提取,結(jié)果如圖7所示.由圖可見,在各種不同噪聲環(huán)境下算法仍然有效.
本文對水稻不同生長階段的田間圖像也作了導(dǎo)航線提取實(shí)驗(yàn),結(jié)果如圖8所示.由圖可見,盡管有水、浮萍或葉片間的相互覆蓋等,所提算法仍能正確提取導(dǎo)航線.
為了進(jìn)行參數(shù)對比,對圖3(a)利用改進(jìn)前和改進(jìn)后的算法提取導(dǎo)航線,并對導(dǎo)航線的擬合系數(shù)和算法耗時(shí)進(jìn)行了統(tǒng)計(jì),結(jié)果如表1所示.由表可以看出,處理同一幅圖像,改進(jìn)后的算法平均耗時(shí)僅增加了4 ms,但擬合系數(shù)相差較大,導(dǎo)航線精度顯著提高.
5 結(jié)論
針對以田間圖像背景像素的坐標(biāo)中點(diǎn)作為導(dǎo)航特征點(diǎn)時(shí),部分特征點(diǎn)由于圖像噪聲的影響偏離導(dǎo)航路徑較大,從而導(dǎo)致擬合的導(dǎo)航線精度不高的情況,提出了一種特征點(diǎn)提取改進(jìn)算法.首先,在對RGB田間圖像進(jìn)行2G-R-B灰度化、OSTU分割及形態(tài)學(xué)閉操作降噪的預(yù)處理之后,提取預(yù)處理后二值圖像每行背景像素坐標(biāo)的中點(diǎn)作為初始導(dǎo)航特征點(diǎn);然后,根據(jù)初始特征點(diǎn)與圖像中心線之間表示農(nóng)作物的像素?cái)?shù)對初始特征點(diǎn)進(jìn)行修正,像素?cái)?shù)有多少就將初始特征點(diǎn)向圖像中心線方向偏移多少;最后,對修正后的特征點(diǎn)利用最小二乘法擬合導(dǎo)航線.
本文提出的改進(jìn)算法相比較改進(jìn)前的算法,計(jì)算量增加很小,但提取的導(dǎo)航線精度卻有很大提高.并且該算法具有較好的適用性,絕大多數(shù)田間圖像提取的導(dǎo)航線都能達(dá)到農(nóng)機(jī)導(dǎo)航對實(shí)時(shí)性和精度的要求.此外,該算法受光線強(qiáng)度、非綠色支架、農(nóng)作物稀疏缺株以及陰影干擾等環(huán)境噪聲影響較小,魯棒性較好.
參考文獻(xiàn)
[1]BALL D,UPCROFT B,WYETH G,et al. Vision-based obstacle detection and navigation for an agricultural robot[J]. Journal of Field Robotics,2016,33(8):1107-1130.
[2]ZHANG T,XIA J F,WU G,et al. Automatic navigation path detection method based on machine vision for tillage machines working on high crop stubble fields[J]. International Journal of Agricultural and Biological Engineering,2014,7(4):29-37.
[3]MOUSAZADEH H. A technical review on navigation systems of agricultural autonomous off-road vehicles[J]. Journal of Terramechanics,2013,50(3):211-232.
[4]伍淵遠(yuǎn),尚欣,張呈彬,等. 自然光照下智能葉菜收獲機(jī)作業(yè)參數(shù)的獲取[J]. 浙江農(nóng)業(yè)學(xué)報(bào),2017,29(11):1930-1937.
[5]閆保中,王強(qiáng)軍. 農(nóng)田圖像導(dǎo)航線檢測技術(shù)研究[J]. 應(yīng)用科技,2017,44(2):65-69.
[6]李勇. 基于單目視覺的道路信息提取與智能預(yù)警[D]. 秦皇島:燕山大學(xué),2016.
[7]李勇,丁偉利. 基于暗原色的農(nóng)機(jī)具視覺導(dǎo)航線提取算法[J]. 光學(xué)學(xué)報(bào),2015,35(2):221-228.
[8]馬紅霞. 基于機(jī)器視覺的農(nóng)業(yè)車輛導(dǎo)航基準(zhǔn)線提取方法的研究[D]. 淄博:山東理工大學(xué),2012.
[9]郭翰林,洪瑛杰,張翔,等. 再生稻收割機(jī)的視覺導(dǎo)航路徑檢測方法[J]. 福建農(nóng)林大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,46(3):356-360.
[10]馬志艷,湯有勝,楊光友. 基于視覺的茶作物行間行走路徑規(guī)劃研究[J]. 農(nóng)機(jī)化研究,2017,39(1):202-206.
[11]湯有勝. 基于嵌入式視覺的自動(dòng)導(dǎo)航系統(tǒng)研究[D]. 武漢:湖北工業(yè)大學(xué),2016.
[12]袁挺,任永新,李偉,等. 基于光照色彩穩(wěn)定性分析的溫室機(jī)器人導(dǎo)航信息獲取[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2012,43(10):161-166.
[13]鄭冰,趙陽,葛東林. 農(nóng)機(jī)快速導(dǎo)航系統(tǒng)設(shè)計(jì)——基于圖像邊緣檢測和3D深度視頻幀內(nèi)編碼[J]. 農(nóng)機(jī)化研究,2018(5):181-184.
[14]翟志強(qiáng). 基于虛擬現(xiàn)實(shí)的拖拉機(jī)雙目視覺導(dǎo)航試驗(yàn)方法研究[D]. 北京:中國農(nóng)業(yè)大學(xué),2017.
[15]陳少杰. 基于圖像理解的水田除草機(jī)器人視覺導(dǎo)航系統(tǒng)研究[D]. 廣州:華南理工大學(xué),2016.
[16]刁智華,吳貝貝,魏玉泉,等. 利用最大圓盤提取作物行骨架的改進(jìn)算法[J]. 中國農(nóng)機(jī)化學(xué)報(bào),2016,37(7):141-144.
[17]刁智華,吳貝貝,毋媛媛,等. 基于最大正方形的玉米作物行骨架提取算法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2015,31(23):168-172.
[18]李茗萱,張漫,孟慶寬,等. 基于掃描濾波的農(nóng)機(jī)具視覺導(dǎo)航基準(zhǔn)線快速檢測方法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2013,29(1):41-47.
[19]韓永華,汪亞明,鄭俊褒,等. 一種基于小波變換及最大類間方差的農(nóng)田圖像分割方法:CN201410153193.4[P]. 2014-07-09.
[20]黃小剛. 水田除草機(jī)器人視覺導(dǎo)航路徑與參數(shù)獲取方法研究[D]. 廣州:華南理工大學(xué),2013.
[21]王偉羊. 基于計(jì)算機(jī)視覺的采茶機(jī)導(dǎo)航技術(shù)研究[D]. 杭州:浙江工業(yè)大學(xué),2016.
[22]陳益杉,盧偉,王玲,等. 基于GIF-Shearlet算法的新舊土邊界線視覺導(dǎo)航技術(shù)研究[J]. 農(nóng)業(yè)現(xiàn)代化研究,2017,38(2):343-351.
[23]張延麗,李春貴. 視頻車輛檢測中改進(jìn)的閾值分割算法研究[J]. 廣西科技大學(xué)學(xué)報(bào),2017,28(2):61-66.
[24]趙騰,野口伸,楊亮亮,等. 基于視覺識別的小麥?zhǔn)斋@作業(yè)線快速獲取方法[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2016,47(11):32-37.
[25]梁習(xí)卉子,陳兵旗,姜秋慧,等. 基于圖像處理的玉米收割機(jī)導(dǎo)航路線檢測方法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2016,32(22):43-49.
[26]李飛,賓洋,羅文廣,等. 基于TMSDM6437的車道線檢測[J]. 廣西科技大學(xué)學(xué)報(bào),2018,29(1):43-48.