張澤清 陳海 蔣浩 方慧
(浙江大學(xué)生物系統(tǒng)工程與食品科學(xué)學(xué)院,杭州310058;第一作者:ztszhang@zju.edu.cn;*通訊作者:hfang@zju.edu.cn)
自動(dòng)導(dǎo)航技術(shù)是農(nóng)機(jī)自主作業(yè)的基礎(chǔ),整地、插秧、噴藥、除草、收獲等環(huán)節(jié)的自主作業(yè)都是建立在自動(dòng)導(dǎo)航的基礎(chǔ)之上。其中,基于衛(wèi)星定位的自動(dòng)導(dǎo)航在農(nóng)業(yè)中應(yīng)用較為廣泛,多用于拖拉機(jī)等旱地作業(yè)。目前,高精度的衛(wèi)星導(dǎo)航價(jià)格高昂,一套可靠的衛(wèi)星導(dǎo)航定位系統(tǒng)價(jià)格從幾萬到十幾萬不等,而低精度的衛(wèi)星導(dǎo)航裝置又不能滿足精細(xì)作業(yè)的要求;衛(wèi)星定位在我國(guó)的復(fù)雜農(nóng)田環(huán)境中,容易受到干擾而出現(xiàn)信號(hào)丟失或多路徑效應(yīng)的現(xiàn)象[1]。相關(guān)研究表明,機(jī)器視覺可以在一定程度上彌補(bǔ)衛(wèi)星定位在成本、精度和穩(wěn)定性等方面的不足[2-3]。
農(nóng)機(jī)視覺導(dǎo)航的關(guān)鍵環(huán)節(jié)在于導(dǎo)航基準(zhǔn)線的提取,國(guó)內(nèi)外許多學(xué)者對(duì)此進(jìn)行了系統(tǒng)性的研究。喬智利等[4]研究了胡蘿卜、芋頭農(nóng)田中的拖拉機(jī)導(dǎo)航線提取,使用改進(jìn)霍夫變換與最小二乘法相結(jié)合的方法提取導(dǎo)航基準(zhǔn)線。李勇等[5]提出了基于暗原色的農(nóng)機(jī)具視覺導(dǎo)航線提取算法,該算法適用于不同顏色情況下的農(nóng)田場(chǎng)景及農(nóng)田道路導(dǎo)航線提取。Rovira-Más 等[6]使用霍夫變換檢測(cè)作物行,應(yīng)用連通性分析確定合適的路徑。Sgaard 等[7]提出了一種無需分割、利用多幅連續(xù)圖像確定農(nóng)機(jī)具的運(yùn)動(dòng)從而推斷作物行的方法。
然而,插秧機(jī)導(dǎo)航技術(shù)與其他農(nóng)機(jī)導(dǎo)航(如收割機(jī)、打藥機(jī))的不同之處在于,一方面插秧機(jī)在工作時(shí)正前方?jīng)]有可以參照的作物行,另一方面水稻的生長(zhǎng)環(huán)境決定了插秧時(shí)水田里有較深的泥水,深度一般為20~30 cm,水田地面高低不平,易發(fā)生側(cè)滑,影響自動(dòng)導(dǎo)航精度。目前基于視覺的導(dǎo)航系統(tǒng)尚無商業(yè)化應(yīng)用,也很少有針對(duì)插秧機(jī)工作環(huán)境特點(diǎn)的導(dǎo)航方法研究。
本文針對(duì)插秧機(jī)的工作環(huán)境,研究了基于視覺導(dǎo)航的插秧機(jī)導(dǎo)航線提取方法。該方法主要包括顏色空間變換、圖像分割、中心點(diǎn)提取、直線擬合、導(dǎo)航參數(shù)計(jì)算等步驟,流程如圖1 所示。通過逆投影變換可以將相機(jī)采集到的像素坐標(biāo)系下的圖像轉(zhuǎn)化為相機(jī)坐標(biāo)已知的現(xiàn)實(shí)坐標(biāo)系,此時(shí)圖像中的像素大小對(duì)應(yīng)已知的真實(shí)的長(zhǎng)度;顏色空間變換的目的是為了使目標(biāo)與背景的差異更加明顯,便于后續(xù)的圖像分割;通過圖像分割可以將目標(biāo)對(duì)象從圖像背景中分離出來;中心點(diǎn)提取是指在圖像分割后的圖像中選取用于擬合導(dǎo)航線的定位點(diǎn);直線擬合是指利用霍夫變換、隨機(jī)一致性采樣(RANSAC)等方法進(jìn)行直線的擬合。
圖1 基于視覺的插秧機(jī)導(dǎo)航線提取方法技術(shù)路線
圖2 反光去除效果對(duì)比
以插秧機(jī)前進(jìn)方向?yàn)閥 軸方向,垂直向右為x 軸,以相機(jī)視野左邊界與下邊界相交位置為原點(diǎn),單位長(zhǎng)度為1 cm,相機(jī)位置(270,0),建立現(xiàn)實(shí)坐標(biāo)參考系。在插秧機(jī)前擺放標(biāo)志物,使其四頂點(diǎn)現(xiàn)實(shí)坐標(biāo)從左下角逆時(shí)針依次 為Pw1(180,180),Pw2(360,180),Pw3(360,360),Pw4(180,360)。
圖像像素坐標(biāo)以圖像左上角為原點(diǎn),橫坐標(biāo)為像素行數(shù),縱坐標(biāo)為像素列數(shù)。在圖像中分別取得標(biāo)志點(diǎn)的像素坐標(biāo)Pp1,Pp2,Pp3,Pp4。
在齊次坐標(biāo)下,有投影關(guān)系
其中pp=[xp,yp,1]T為逆投影變換前的點(diǎn),pw=[xw,yw,1]T為逆投影變換后的點(diǎn),H為逆投影變換矩陣。
對(duì)于一組對(duì)應(yīng)點(diǎn),根據(jù)公式(1),有
將公式(4)代入公式(2,3),有
因此一組對(duì)應(yīng)點(diǎn)可以得到兩個(gè)有關(guān)H的方程,H有8 個(gè)約束,至少需要4 組點(diǎn)對(duì)H 求解。當(dāng)輸入點(diǎn)數(shù)多于4 組時(shí),本文選擇重投影誤差最小的四組點(diǎn)對(duì)H進(jìn)行解算,即
達(dá)到最小的四組點(diǎn)。
在利用側(cè)邊秧苗進(jìn)行導(dǎo)航時(shí),需對(duì)圖像進(jìn)行顏色空間變換、圖像分割、中心點(diǎn)選取以得到視覺導(dǎo)航的定位點(diǎn)。
2.1.1 RGB 灰度變換
灰度變換是將相機(jī)采集到的彩色圖像變?yōu)榛叶葓D的過程,一般可以去除噪聲,使作物對(duì)象和背景的區(qū)別更加明顯,常用的灰度變換有RGB 法、HIS 法、YCrCb法、暗原色法等。
與其他方法相比,RGB 顏色空間對(duì)綠色植物的提取有較好的提取效果,且速度較快,因此本文在分割秧苗和土壤時(shí),選用αG+βB+γR秧苗進(jìn)行分割,試驗(yàn)表明,α、β、γ 分別為1.8、-1、-1 時(shí)分割效果較好。
在實(shí)際導(dǎo)航作業(yè)過程中,插秧機(jī)逆光行駛時(shí),陽(yáng)光照在水田中會(huì)產(chǎn)生鏡面反射,導(dǎo)致相機(jī)采集到的圖片會(huì)出現(xiàn)反光現(xiàn)象,影響后續(xù)的圖像處理和導(dǎo)航結(jié)果。反光較為強(qiáng)烈的像素點(diǎn)接近白色,在農(nóng)機(jī)導(dǎo)航過程中,可以利用此特性對(duì)異常像素進(jìn)行剔除,因此原有灰度變換變?yōu)?/p>
反光去除的效果如圖2 所示。
2.1.2 閾值分割
圖像分割是指將目標(biāo)從背景中分離的過程,圖像分割的傳統(tǒng)方法包括閾值法、邊界檢測(cè)法、區(qū)域法等,新方法包括各種超像素的圖像分割方法如圖論法、聚類法、分類法等。超像素法將利用像素及像素間的相互信息,實(shí)現(xiàn)圖像像素的分類。在本方法中需要分割的對(duì)象僅為秧苗和背景土壤,對(duì)經(jīng)過顏色空間變換后的圖像應(yīng)用閾值法分割能夠?qū)崿F(xiàn)簡(jiǎn)單高效分割。
2.1.3 中心點(diǎn)選取
對(duì)分割后的二值圖像,包含作物的像素為1,不包含作物的像素坐標(biāo)為零,因此圖像的像素值從0 到1或從1 到0 可以作為作物的邊界。根據(jù)秧苗所在導(dǎo)航線只在插秧機(jī)一側(cè)的特點(diǎn),從圖像中央向兩端遍歷,記錄作物行邊界點(diǎn),利用寬度判斷邊界點(diǎn)是否有效,若邊界點(diǎn)有效則求取作物行中點(diǎn)并保存。為了加快圖像處理速度,每隔20 像素行遍歷一次圖像記錄作物行邊界點(diǎn),并求取作物行中點(diǎn),將每一行中最靠近圖像中央的點(diǎn)作為導(dǎo)航線擬合點(diǎn)。
利用農(nóng)田邊界導(dǎo)航時(shí)無法利用作物和土壤之間的顏色灰度差異,因此可以利用灰度產(chǎn)生突變位置的信息,即提取圖像中的輪廓信息。
2.2.1 大津法圖像分割
在利用農(nóng)田邊界進(jìn)行導(dǎo)航時(shí),其分割對(duì)象不再是綠色植物,因此選用灰度變換得到灰度圖像,使其具有與原始彩色圖像相同的亮度[8]。
采用大津法對(duì)灰度圖進(jìn)行圖像分割。大津二值化法自動(dòng)對(duì)基于聚類的圖像進(jìn)行二值化,即將一個(gè)灰度圖像退化為二值圖像。該算法以日本的大津展之命名,算法假定該圖像根據(jù)雙模直方圖(前景像素和背景像素)包含兩類像素,于是它要計(jì)算能將兩類分開的最佳閾值,使得它們的類內(nèi)方差最小;由于兩兩平方距離恒定,所以即它們的類間方差最大[9]。因此,大津二值化法粗略的來說就是一維Fisher 判別分析的離散化模擬。
2.2.2 輪廓提取
輪廓提取采用Satoshi 提出的邊界拓?fù)浞治龅乃惴╗10],將圖像分割后的二值圖中所有輪廓編號(hào),從輪廓中篩選出輪廓最長(zhǎng)的即是農(nóng)田邊界,提取其靠近圖像中心一側(cè)邊界用于后續(xù)導(dǎo)航線的直線擬合點(diǎn)。所提取的邊界如圖3 左圖中白色粗線部分所示。
圖3 圖像中農(nóng)田邊界的輪廓
圖4 不同方法擬合效果對(duì)比
利用邊界導(dǎo)航和秧苗導(dǎo)航時(shí),需要對(duì)得到的定位點(diǎn)進(jìn)行擬合得到導(dǎo)航線,常用的方法有霍夫直線擬合、最小二乘法、RANSAC 法,對(duì)于含有較多噪聲的點(diǎn),可以使用RANSAC 法進(jìn)行直線擬合。
RANSAC 算法的輸入包括一組觀測(cè)數(shù)據(jù)(點(diǎn)集)、擬合觀測(cè)數(shù)據(jù)的含參模型(直線)及其參數(shù)。本算法通過迭代選擇數(shù)據(jù)中的隨機(jī)子集實(shí)現(xiàn)模型擬合,被選取的子集被假設(shè)為有效(inline)點(diǎn),其驗(yàn)證方法如下:
1)假設(shè)有一個(gè)模型可以解釋隨機(jī)選擇的一部分初始有效點(diǎn),該模型未知參數(shù)可以從初始有效點(diǎn)計(jì)算得到;2)用1)中得到的模型去對(duì)所有的其它數(shù)據(jù)進(jìn)行驗(yàn)證,若數(shù)據(jù)在允許范圍內(nèi)符合此模型,則將其歸為有效點(diǎn);3)當(dāng)有效點(diǎn)數(shù)量到達(dá)一定比例時(shí),認(rèn)為此模型有效;4)用此時(shí)所有的有效點(diǎn)重新計(jì)算模型;5)通過估計(jì)有效點(diǎn)比例與模型的錯(cuò)誤率來衡量模型優(yōu)劣。
上述過程被迭代執(zhí)行給定次數(shù),每次產(chǎn)生的模型與現(xiàn)有的最好模型比較,若有效點(diǎn)比現(xiàn)有的最佳模型更少,則舍棄此模型;若有效點(diǎn)比現(xiàn)有最優(yōu)模型更多,則選用此模型。
本研究將同一幅圖(圖4-a,c)分別用最小二乘法和RANSAC 法進(jìn)行擬合,得到如圖4 所示結(jié)果,從中可以看出利用RANCSAC 擬合出正確的直線(圖4-d),利用最小二乘法擬合直線結(jié)果(圖4-b)會(huì)受到噪點(diǎn)影響,而RANSAC 法可以將噪點(diǎn)排除,魯棒性較好。
得到擬合參考線的圖像坐標(biāo)后,需要對(duì)直線和相機(jī)的關(guān)系進(jìn)行計(jì)算,得到相機(jī)相對(duì)導(dǎo)航線的位置,在本文中即導(dǎo)航參數(shù)。計(jì)算導(dǎo)航參數(shù)方法如圖5 所示,導(dǎo)航線與圖像垂直方向即相機(jī)前視方向夾角為航向偏差θ,符號(hào)與導(dǎo)航線的斜率相同;導(dǎo)航線與后輪中心點(diǎn)距離為橫向偏差d,當(dāng)導(dǎo)航線在后輪中心點(diǎn)左邊時(shí)符號(hào)為正,反之為負(fù)。設(shè)擬合參考線上兩點(diǎn)P1(X1,Y1)、P2(X2,Y2)。根據(jù)幾何關(guān)系,有:直線。
式中,l0是圖像底端和后輪中心點(diǎn)之間的距離,loffset是擬合參考線和目標(biāo)導(dǎo)航線之間距離。
對(duì)于計(jì)算得到的導(dǎo)航參數(shù),根據(jù)本次導(dǎo)航參數(shù)的前5 次導(dǎo)航參數(shù)對(duì)其進(jìn)行判斷,若其值改變大于一定閾值則舍棄之,最后將有效的導(dǎo)航參數(shù)作為后續(xù)控制模型的輸入。
本文研究的視覺導(dǎo)航系統(tǒng)誤差主要考慮兩種誤差,一是由視覺定位方法導(dǎo)致的誤差,其二是由于導(dǎo)航控制算法及執(zhí)行機(jī)構(gòu)引起的誤差。本實(shí)驗(yàn)的目的在于衡量視覺相對(duì)定位的誤差,包括不同距離下的距離誤差和不同角度下的距離誤差。為此實(shí)驗(yàn)利用視覺擬合植物作為導(dǎo)航線、計(jì)算得到其與相機(jī)的距離與實(shí)際距離進(jìn)行比較。
在相機(jī)和地面位置不發(fā)生相對(duì)變化時(shí),可通過圖像像素坐標(biāo)逆投影變換至與現(xiàn)實(shí)坐標(biāo)成比例的俯視圖,利用圖像處理方法從中獲取擬合導(dǎo)航線,并計(jì)算與相機(jī)的相對(duì)距離和所成角度。
如圖6 所示,l2直線為仿真植物位置,擬合導(dǎo)航線為視覺擬合得到的導(dǎo)航位置,改變相機(jī)(前視方向)與待擬合直線(仿真植物)的距離和角度,觀察視覺計(jì)算所得導(dǎo)航線的橫向距離與實(shí)際橫向距離關(guān)系,其實(shí)物圖如圖7 所示。
圖5 航向偏差θ 和橫向偏差d 計(jì)算示意圖
圖6 視覺導(dǎo)航誤差測(cè)量示意圖
4.2.1 實(shí)驗(yàn)材料
實(shí)驗(yàn)中用到的材料有相機(jī)、相機(jī)電源、移動(dòng)計(jì)算機(jī)、三腳架、卷尺、仿真植物若干、激光打線儀、量角器、記號(hào)筆等。
4.2.2 實(shí)驗(yàn)步驟
4.2.2.1 坐標(biāo)系建立 將相機(jī)固定在三腳架上,調(diào)節(jié)相機(jī)高度為h,與水平線夾角為φ,以相機(jī)前視方向?yàn)閅w軸正方向,在水平面建立平面直角坐標(biāo)系XwOYw。
4.2.2.2 相機(jī)標(biāo)定 將一個(gè)已知大小的方形紙板置于坐標(biāo)系XOY中,記錄方形紙板在此坐標(biāo)系 的四個(gè)頂點(diǎn)坐標(biāo);在相機(jī)拍攝的圖片中記錄四個(gè)頂點(diǎn)的像素坐標(biāo),利用實(shí)驗(yàn)原理中的公式計(jì)算變換矩陣H。
4.2.2.3 場(chǎng)景模擬 利用兩臺(tái)激光打線器,產(chǎn)生兩條距離為dx的平行直線l1、l2,其中,l1與Yw軸重合,夾角“θ”為0,在另一條直線l2上每間隔20 cm 擺放1 株仿真植物。
4.2.2.4 視覺計(jì)算 計(jì)算相機(jī)所得圖像中模擬植物所擬合的直線與相機(jī)所在位置的距離di。
4.2.2.5 改變兩條線的實(shí)際距離dx,重復(fù)實(shí)驗(yàn)得到不同的di;固定實(shí)際距離dx,改變前視方向與l1的夾角θ,分別為-15,-10,-5,0,5,10,15,重復(fù)實(shí)驗(yàn)得到不同的di;誤差計(jì)算與分析。
表1 夾角為0°時(shí)不同距離下的測(cè)量距離和角度
表2 實(shí)際距離為100 cm 時(shí)不同角度下所測(cè)量得到的橫向距離和所成角度
圖8 角度誤差和橫向誤差
圖9 實(shí)際距離為1 000 mm 時(shí)不同角度下的橫向距離和角度偏差
實(shí)驗(yàn)記錄結(jié)果如表1 所示。實(shí)驗(yàn)結(jié)果表明,對(duì)于橫向位移為100 mm 時(shí),測(cè)量的位移平均距離為100.7 mm、標(biāo)準(zhǔn)差為9.8 mm;角度變化為0 時(shí),測(cè)量平均角度變化為-0.14°、標(biāo)準(zhǔn)差為0.63°。根據(jù)表2,在橫向距離為1 000 mm 時(shí),視覺所測(cè)得的橫向偏差平均為-18 mm,標(biāo)準(zhǔn)差為26.0 mm;角度偏差平均為-1.4°,標(biāo)準(zhǔn)差為0.5°。
由此可知在航向角度較小時(shí),橫向偏差的測(cè)量平均誤差小于1 cm;在航向角度較大時(shí),橫向偏差測(cè)量平均誤差小于2 cm。
本文研究了以秧苗和農(nóng)田邊界為導(dǎo)航目標(biāo)的視覺定位信息提取方法,二者均需先對(duì)圖像進(jìn)行逆投影變換得到與現(xiàn)實(shí)坐標(biāo)成比例的俯視圖;在以秧苗為導(dǎo)航目標(biāo)時(shí),通過綠色特征提取,閾值分割和中心點(diǎn)提取得到視覺導(dǎo)航線的定位點(diǎn);在以農(nóng)田邊界為導(dǎo)航目標(biāo)時(shí),通過灰度變換、大津法進(jìn)行圖像分割后,利用輪廓線得到視覺導(dǎo)航線定位點(diǎn);對(duì)導(dǎo)航線定位點(diǎn)進(jìn)行隨機(jī)一致性采樣直線擬合,得到導(dǎo)航線;從而計(jì)算相機(jī)和導(dǎo)航線的橫向偏差和航向偏差,得到定位數(shù)據(jù)。視覺定位精度的驗(yàn)證表明,在航向角接近0°時(shí)其相對(duì)定位誤差平均值小于1 cm;在橫向距離為100cm 時(shí),不同角度下的橫向偏差平均小于2 cm、標(biāo)準(zhǔn)差小于3 cm,角度誤差測(cè)量均值小于-0.14°、標(biāo)準(zhǔn)差小于0.7°。