陳俞松,耿長(zhǎng)興,王 永,朱國(guó)鋒
(蘇州大學(xué) 機(jī)器人與微系統(tǒng)研究中心,江蘇 蘇州 215021)
隨著中國(guó)農(nóng)業(yè)的大型化、集中化的發(fā)展趨勢(shì),面向室外大田環(huán)境的農(nóng)機(jī)自動(dòng)導(dǎo)航技術(shù)成為重要研究?jī)?nèi)容.農(nóng)機(jī)自動(dòng)導(dǎo)航方法主要有衛(wèi)星定位和機(jī)器視覺兩種,其中機(jī)器視覺具有信號(hào)探測(cè)范圍廣,信息完整、非接觸測(cè)量以及成本較低等優(yōu)點(diǎn)[1],因此適合用于農(nóng)機(jī)導(dǎo)航.由于田間作物大多按照互相平行的直線種植,基于機(jī)器視覺的導(dǎo)航方法需要快速準(zhǔn)確地提取代表作物行中心的直線,以達(dá)到實(shí)時(shí)性和準(zhǔn)確性的要求.水稻是水田中最常見的作物之一,其存在作物列間相互干擾、缺株、局部不規(guī)則、雜草以及反光等問題[2],這些問題為視覺導(dǎo)航線的準(zhǔn)確提取帶來很大困難.
快速準(zhǔn)確檢測(cè)出作物的列中心線,是農(nóng)機(jī)視覺導(dǎo)航的重點(diǎn)和難點(diǎn),國(guó)內(nèi)外的很多學(xué)者都曾做過研究.文獻(xiàn)[3]基于水稻秧苗的葉片向中央莖區(qū)收斂這一特征,將秧苗邊緣直線延伸提取交點(diǎn),通過交點(diǎn)擬合中心線,該方法使導(dǎo)航誤差小于1°,但處理一幅圖片耗時(shí)較長(zhǎng).文獻(xiàn)[4]提出了一種集成了作物或非作物田間識(shí)別方法的溝線檢測(cè)方法,采用兩種類型的矩形濾波器,在17種類型的試驗(yàn)田中精確地檢測(cè)到目標(biāo)壟溝中心線.文獻(xiàn)[5]通過訓(xùn)練YOLOv3目標(biāo)檢測(cè)網(wǎng)絡(luò)識(shí)別水田圖像中的秧苗列,在大風(fēng)、浮萍、藍(lán)藻等情形下均能準(zhǔn)確提取秧苗中列中心線,但該方法有較高的硬件要求,否則檢測(cè)速度較慢,實(shí)時(shí)性難以保障.文獻(xiàn)[6]采用分區(qū)域統(tǒng)計(jì)秧苗像素點(diǎn)分布提取特征點(diǎn),以及基于近鄰關(guān)系的聚類法進(jìn)行特征點(diǎn)聚類,但該聚類方法易受缺株影響,且分區(qū)域的特征點(diǎn)提取法會(huì)提取到作物行的邊緣部分特征,影響提取精度.文獻(xiàn)[7]基于顏色特征分割出綠色像素,在檢測(cè)出起始點(diǎn)的條件下,采用回歸算法提取了玉米作物行直線或曲線.文獻(xiàn)[8]針對(duì)玉米田中作物和雜草光譜特征接近,難以分割的問題,提出了一種基于幾何約束的作物行定位方法,降低了雜草對(duì)視覺導(dǎo)航線提取精度的干
擾.此外,針對(duì)傳統(tǒng)Hough變換提取中心線實(shí)時(shí)性差,峰值檢測(cè)難等問題,文獻(xiàn)[9-11]提出了多種改進(jìn)的Hough變換方法,一定程度上降低了算法復(fù)雜度,提高了效率,但實(shí)時(shí)性仍然較差.
針對(duì)上述問題,文中提出一種基于分段垂直投影的水稻秧苗列中心線檢測(cè)方法.將預(yù)處理后的二值圖沿縱向分為上、中、下3段,從下段開始采用垂直投影法[12]確定各秧苗列左右邊緣,在左右邊緣之間提取特征點(diǎn)并擬合臨時(shí)直線,用直線和該段圖像頂部的交點(diǎn)位置來確定下一段中屬于同一秧苗列的特征點(diǎn),將其歸入到同一個(gè)點(diǎn)集中.最后將每個(gè)點(diǎn)集中的點(diǎn)使用最小二乘法進(jìn)行直線擬合,從而得到秧苗列中心線.
文中采集的水田圖像樣本的種植地址為蘇州市相城區(qū)太平街道,在一天的不同時(shí)刻設(shè)置不同的曝光時(shí)間分別采集不同亮度的水稻秧苗的圖片共400幅,圖像分別在5個(gè)時(shí)刻進(jìn)行采集,如表1所示.使用的相機(jī)為海康威視MV-CA013-20GC工業(yè)相機(jī),采集圖像時(shí)相機(jī)的安裝高度為1 700 mm,相機(jī)光軸與水平面之間的夾角為60°,采集圖片尺寸為1 280×1 024像素.
表1 圖像采集時(shí)間分布
圖像預(yù)處理的目的是得到只含有作物和背景兩部分的二值圖,以便后續(xù)進(jìn)行秧苗列中心線的提取,包括彩色圖像灰度化、二值化以及噪聲點(diǎn)的濾除3個(gè)步驟,如圖1所示.
圖1 圖像預(yù)處理
由于在本試驗(yàn)采集的水田圖像中,水稻秧苗為綠色,在RGB空間中秧苗與背景的G分量差別較大,因此文中采用基于RGB顏色空間的2G-R-B算子[12]將原始圖像灰度化.得到灰度圖像后,采用最大類間方差(Otsu)算法[13]對(duì)灰度化后的圖像進(jìn)行二值化處理.記二值化后代表秧苗的像素點(diǎn)的像素值為1,代表背景的像素點(diǎn)的值為0.分割得到的二值圖如圖1c所示.對(duì)于分割結(jié)果中的噪聲點(diǎn),文中采用形態(tài)學(xué)處理[14]的方法濾除,具體的做法是先后進(jìn)行一次結(jié)構(gòu)元素為5×5正方形的開運(yùn)算和閉運(yùn)算.經(jīng)形態(tài)學(xué)去噪后的二值圖如圖1d所示,可見大多數(shù)噪點(diǎn)都被濾除.
在水田視覺導(dǎo)航中,雖然出現(xiàn)在相機(jī)視場(chǎng)中的秧苗列數(shù)較多,但實(shí)際影響視覺導(dǎo)航精度的僅為中間3個(gè)秧苗列,其余均為冗余信息.本研究假定相機(jī)安裝在作業(yè)機(jī)械前端的橫向中心位置,如圖2所示,采集的圖像橫向中點(diǎn)對(duì)應(yīng)作業(yè)機(jī)械橫向的中點(diǎn).因此,文中的算法提取離圖像的橫向中心最近的3個(gè)秧苗列中心線作為視覺導(dǎo)航線.
圖2 相機(jī)安裝位置示意圖
將感興趣區(qū)域在縱向方向從下到上分成高分別為H1、H2、H3的下、中、上3段,每一段的寬度均為W.由于透視投影造成的“近大遠(yuǎn)小”效果,因此取H1>H2>H3,如圖3所示.
對(duì)下段W×H1的二值圖作垂直投影,文中對(duì)于所有圖像像素點(diǎn)分析中均取左上角為原點(diǎn),水平向右為X軸,豎直向下為Y軸.記I(i,j)為該段中坐標(biāo)為(i,j)的點(diǎn)的灰度值,L(i)為第i列所有像素點(diǎn)的灰度值之和,即該列垂直投影的值.L(i)表達(dá)式為
(1)
圖3 圖像分段示意圖
將垂直投影的結(jié)果用如圖4a的一維直方圖表示,從圖中可以看出,由于水稻葉片散亂等因素造成的垂直投影直方圖參差不齊,會(huì)產(chǎn)生一些偽邊緣定位點(diǎn).文中采用一維均值濾波的方法對(duì)直方圖進(jìn)行平滑處理.處理方法如下:
(2)
式中:f(x)為原直方圖第x列的值;g(x)為均值濾波處理后該列的值;step為中值濾波的步長(zhǎng).其中平滑處理后的直方圖左右邊緣step/2個(gè)數(shù)的值設(shè)為0.
圖4 平滑處理前后的垂直投影直方圖
在平滑處理后的直方圖中,采用尋找升降點(diǎn)的方法[15]來尋找每個(gè)秧苗列左右邊緣的定位點(diǎn).對(duì)于每一段圖像,設(shè)定閾值ξ,如果g[i]<ξ≤g[i+1],則記g[i+1]為上升點(diǎn),即秧苗列的左定位點(diǎn),記為A[i].如果g[i]>ξ≥g[i+1],則記g[i+1]為下降點(diǎn),即秧苗列的右定位點(diǎn),記為B[i].文中取每一段二值圖像的判斷升降點(diǎn)的閾值ξ為該段二值圖每一列白色像素點(diǎn)數(shù)量的最大類間方差閾值.由于在上一步直方圖平滑處理中左右邊緣step/2個(gè)數(shù)據(jù)均設(shè)為0,因此提取到的第一個(gè)定位點(diǎn)必定為左定位點(diǎn),最后一個(gè)定位點(diǎn)必定為右定位點(diǎn),且左右定位點(diǎn)個(gè)數(shù)相等,A[i]和B[i]分別為同一列秧苗的左右定位點(diǎn).
在上述定位點(diǎn)集中,雖然均值濾波可以除去大多數(shù)偽定位點(diǎn),但不能徹底濾除.文中通過以下方法進(jìn)行二次濾除:① 每對(duì)左右定位點(diǎn)之間的距離應(yīng)該達(dá)到一定的長(zhǎng)度,如果一對(duì)左右定位點(diǎn)A[i]和B[i]之間的距離小于t1個(gè)像素,則這對(duì)邊緣點(diǎn)為偽邊緣點(diǎn),將其剔除;② 如果一個(gè)右定位點(diǎn)和其右邊的左定位點(diǎn)的距離小于t2個(gè)像素,則將這兩對(duì)定位點(diǎn)合并為一對(duì)定位點(diǎn).
在中、上兩段圖像中,也采用相同的方法提取每列秧苗的左右邊緣點(diǎn).提取左右邊緣點(diǎn)后,基于邊緣點(diǎn)進(jìn)行秧苗列特征點(diǎn)的提取.具體的特征點(diǎn)提取步驟如下:
1) 定義3個(gè)點(diǎn)集P1、P2、P3,分別用來存放提取的3個(gè)秧苗列的特征點(diǎn).
2) 將下段圖像用上述方法提取秧苗列邊緣點(diǎn)后,計(jì)算每一對(duì)邊緣點(diǎn)A[i]和B[i]的平均值,記為C[i].計(jì)算C中每一個(gè)元素與Mid之差的絕對(duì)值,取值最小的3個(gè)數(shù)對(duì)應(yīng)的邊緣點(diǎn)對(duì)為待提取秧苗列的左右邊緣點(diǎn),其中Mid值為W/2.
(3)
式中:Nk為該段圖像第k行中從第A[m]列到第B[m]列之間像素值為1的點(diǎn)的數(shù)量;Xp為第k行從第A[m]列到第B[m]列之間像素值為1的點(diǎn)的橫坐標(biāo)值.當(dāng)Nk=0時(shí),代表該行無特征點(diǎn),不進(jìn)行公式(3)的提取.將提取到的點(diǎn)存入到P1中.對(duì)于該段圖像中另外兩對(duì)邊緣點(diǎn),采用同樣的方法提取特征點(diǎn),分別存入到P2和P3中.
4) 在下段圖像中,用最小二乘法將點(diǎn)集P1、P2和P3中的點(diǎn)分別擬合成3條臨時(shí)直線,取3條直線和該段圖像的頂端的交點(diǎn),作為中段圖像中尋找同一列秧苗的輔助定位點(diǎn),如圖5所示,藍(lán)線為臨時(shí)直線,紅色圈內(nèi)為輔助定位點(diǎn).
圖5 臨時(shí)直線和輔助定位點(diǎn)
5) 在中段圖像用相同的方法提取秧苗列左右邊緣點(diǎn),取每一對(duì)邊緣點(diǎn)的中點(diǎn),將第i對(duì)邊緣點(diǎn)中點(diǎn)的橫坐標(biāo)記為D[i],分別計(jì)算步驟4)中得到的每一個(gè)輔助定位點(diǎn)的橫坐標(biāo)與D[i]中所有值的差的絕對(duì)值的最小值,取到最小值的D[i]對(duì)應(yīng)的邊緣點(diǎn)對(duì)在中段圖像中,與該輔助定位點(diǎn)在下段圖像中對(duì)應(yīng)的是同一列秧苗.分別在提取到的3對(duì)邊緣點(diǎn)范圍內(nèi)采用與第3)步相同的方法提取特征點(diǎn),分別將每對(duì)邊緣點(diǎn)之間提取的特征點(diǎn)存入到所在的秧苗列對(duì)應(yīng)的點(diǎn)集P1、P2和P3中,同時(shí)再使用最小二乘法將中段圖像中的提取的3個(gè)特征點(diǎn)集擬合成3條臨時(shí)直線,取其與中段圖像頂端的交點(diǎn)的橫坐標(biāo)作為上段圖像中同一列秧苗左右邊緣的輔助定位點(diǎn).
6) 在上段圖像中重復(fù)上述提取方法,因此具體步驟不再贅述.由于上段為最后一段圖像,因此在該段中無需擬合臨時(shí)直線,只需將提取的特征點(diǎn)分別存放到對(duì)應(yīng)的點(diǎn)集P1、P2和P3中.
經(jīng)過上述步驟最終得到3個(gè)特征點(diǎn)點(diǎn)集,如圖6所示,分別代表提取的3個(gè)秧苗列,對(duì)上述每個(gè)點(diǎn)集進(jìn)行直線擬合即可提取到秧苗列的中心線.
圖6 提取到的特征點(diǎn)集
在特征點(diǎn)擬合中常用的直線擬合方法包括最小二乘法和Hough變換法等,最小二乘法具有計(jì)算簡(jiǎn)單、速度快的優(yōu)點(diǎn),但是如果有偏離較遠(yuǎn)的噪聲點(diǎn)的話,就會(huì)對(duì)整條直線的精度產(chǎn)生較大的影響.由于文中基于秧苗列左右邊緣提取特征點(diǎn),在左右邊緣的約束下,幾乎不會(huì)產(chǎn)生偏離較遠(yuǎn)的噪聲點(diǎn),因此文中采用最小二乘法擬合中心線.
為了檢測(cè)提取中心線的可靠性,及時(shí)發(fā)現(xiàn)特殊原因造成的漏檢、誤檢等情況,文中對(duì)提取到的秧苗列中心線,采用基于文獻(xiàn)[3]提出的評(píng)價(jià)方法的判別法來判斷是否有誤.分別記提取的3條中心線與原圖感興趣區(qū)域的上下邊緣的交點(diǎn)為Xa1、Xa2、Xa3、Xb1、Xb2、Xb3,交點(diǎn)間的橫向距離分別為L(zhǎng)a1、La2、Lb1和Lb2,如圖7所示.若上述的值之間滿足:Xa1 圖7 對(duì)提取中心線的評(píng)估 為了判斷本方法提取秧苗列中心線的準(zhǔn)確性,采用將提取到的中心線與人工擬合直線對(duì)比的方法[16]作為準(zhǔn)確性的判斷依據(jù).手工繪制中間3列秧苗的中心線,計(jì)算其與本算法提取中心線的角度偏差,若角度偏差大于5°,則判定該條中心線不準(zhǔn)確. 文中試驗(yàn)中所使用的計(jì)算機(jī)的處理器為Intel Core i7 8550U,主頻率2.0 GHz,內(nèi)存16 GB,操作系統(tǒng)為Windows10 64位系統(tǒng).圖像處理所使用的軟件開發(fā)工具是Visual Studio 2017和Opencv3.4.1. 將上述采集的圖片分別用文中算法、基于整幅圖的垂直投影法(后面簡(jiǎn)稱全局垂直投影)和標(biāo)準(zhǔn)Hough變換方法進(jìn)行中心線擬合,分別對(duì)比3種方法的擬合效率和精度.文中選取3種典型自然光環(huán)境下的秧苗圖片作為擬合試驗(yàn)示例,分別為陰暗環(huán)境、正常光照環(huán)境和強(qiáng)光環(huán)境. 標(biāo)準(zhǔn)Hough變換、全局垂直投影和文中算法在3種典型光照環(huán)境中的提取結(jié)果如圖8所示,從左到右分別為正常光照、陰暗環(huán)境和強(qiáng)光環(huán)境,其中藍(lán)線為手工繪制的中心線,紅線為提取到的中心線. 圖8 3種環(huán)境下不同算法的檢測(cè)結(jié)果對(duì)比 3種方法的對(duì)比結(jié)果如表2所示.由表2中對(duì)比結(jié)果可看出,標(biāo)準(zhǔn)Hough變換雖然精度較高,但是不滿足實(shí)時(shí)性要求,全局垂直投影精度較低.文中的算法從檢測(cè)精度和效率上相比其他2種算法都有著較大的優(yōu)越性,檢測(cè)準(zhǔn)確率為94.50%,處理一幅1 280×1 024像素的bmp格式圖像耗時(shí)208 ms,滿足農(nóng)機(jī)視覺導(dǎo)航實(shí)時(shí)性要求,且在陰暗、反光、缺株、雜草等情形下算法仍然有效. 表2 不同算法角度誤差、準(zhǔn)確率和耗時(shí)比較 上述試驗(yàn)結(jié)果顯示,文中提出的算法秧苗列中心線提取的準(zhǔn)確率為94.50%.對(duì)一些提取不準(zhǔn)確的圖片分析其失敗原因,典型提取失敗的圖片如圖9所示,圖9a中右側(cè)秧苗列的中心線出現(xiàn)了較大的誤差,分析原因是由于采集圖片時(shí)為了兼顧各種亮度而設(shè)置了過長(zhǎng)的曝光時(shí)間,導(dǎo)致反光最強(qiáng)烈的部分作物的綠色特征無法提取,但這是一種極端的情況,這幅圖片在采集時(shí)設(shè)置的曝光時(shí)間為300 ms,而在實(shí)際視覺導(dǎo)航中不會(huì)出現(xiàn)這么長(zhǎng)的曝光時(shí)間.圖9b是由于大面積的缺株導(dǎo)致的漏檢現(xiàn)象,這屬于偶發(fā)現(xiàn)象.文中的算法在遇到1~2株秧苗的缺株時(shí)依然有效,但在如此大面積的缺株情況下會(huì)失效.而視覺導(dǎo)航的局限性導(dǎo)致了在這種情況下,幾乎所有靜態(tài)提取算法都難以避免會(huì)不準(zhǔn)確.因此,結(jié)合對(duì)檢測(cè)準(zhǔn)確的圖片以及不準(zhǔn)確的圖片的分析,提出的基于分段垂直投影的秧苗列中心線提取算法在水田環(huán)境中具有較高的魯棒性,且實(shí)時(shí)性較高. 圖9 提取失敗的典型圖片 1) 采用2G-R-B超綠算子和OTSU算法進(jìn)行灰度化和分割,形態(tài)學(xué)開、閉運(yùn)算去除噪聲點(diǎn),可以在不同亮度不同光照環(huán)境下將秧苗從背景中分割出來. 2) 采用分段垂直投影的方法,將二值圖縱向分為3段,在每段中分別進(jìn)行垂直投影尋找秧苗列邊緣點(diǎn),擬合臨時(shí)直線,取其和下一段圖像底端的交點(diǎn)作為下一段圖像中確定同一列秧苗的輔助點(diǎn),最終得到3個(gè)特征點(diǎn)集,并依此擬合出離圖像橫向中心最近的3列秧苗的中心線. 3) 采用最小二乘法對(duì)提取到的3個(gè)點(diǎn)集進(jìn)行直線擬合,擬合后將直線進(jìn)行評(píng)估.檢測(cè)結(jié)果表明,檢測(cè)準(zhǔn)確率為94.50%,處理一幅1 280×1 024像素的bmp格式圖像耗時(shí)208 ms,滿足農(nóng)機(jī)導(dǎo)航的要求,為水田自動(dòng)駕駛作業(yè)農(nóng)機(jī)的導(dǎo)航提供了一種參考方法.2 試驗(yàn)和分析
3 結(jié) 論