宮金良 王祥祥 張彥斐 蘭玉彬
(1.山東理工大學(xué)機(jī)械工程學(xué)院, 淄博 255049; 2.山東理工大學(xué)農(nóng)業(yè)工程與食品科學(xué)學(xué)院, 淄博 255049)
在玉米病蟲害防治過程中,利用機(jī)器人實現(xiàn)田間自主導(dǎo)航作業(yè)可以降低人工勞動強(qiáng)度、提高作業(yè)效率和作業(yè)質(zhì)量、降低生產(chǎn)成本。目前,自主導(dǎo)航技術(shù)主要分為GPS導(dǎo)航和機(jī)器視覺導(dǎo)航,與GPS導(dǎo)航相比,機(jī)器視覺導(dǎo)航具有實時性好、成本低、適用范圍廣的優(yōu)點[1-6]。
高國琴等[7]以溫室移動機(jī)器人為研究對象,引入K-means算法分割圖像,利用Hough變換擬合離散點,獲取溫室移動機(jī)器人導(dǎo)航信息,試驗中導(dǎo)航信息提取準(zhǔn)確率為95%,圖像處理平均耗時146 ms。胡丹丹等[8]以玉米收獲機(jī)器人為研究對象,根據(jù)玉米壟的走勢特征提取導(dǎo)航離散點,基于Hough變換線性擬合導(dǎo)航離散點,得到導(dǎo)航路徑。劉陽等[9]以冬季果樹林間行走機(jī)器人為研究對象,采用Mid-to-Side掃描法結(jié)合果樹的幾何特征提取兩側(cè)樹干信息,以樹干內(nèi)側(cè)角點作為特征點,通過線性擬合特征點生成導(dǎo)航基準(zhǔn)線。
目前,移動機(jī)器人在行間行走主要利用兩側(cè)莖稈在灰度投影曲線的峰值特性。馮娟等[10]利用特征點與鄰近像素灰度的變化規(guī)律,通過逐行逐列掃描面積去噪圖像確定莖稈與地面的交點。這種方法適用于面積去噪圖像中莖稈之間沒有葉片和雜草的情況,當(dāng)莖稈之間葉片和雜草交錯縱橫時,進(jìn)行列像素累加會在相鄰莖稈之間產(chǎn)生偽特征點,并影響導(dǎo)航線提取效果。宋宇等[11]提出,特征點像素累加值大于左右相鄰像素點的像素累加值,通過設(shè)定相鄰特征點的距離閾值剔除偽特征點。實際玉米種植株距存在缺苗或一穴兩株情況,并且與相機(jī)距離不同的玉米成像尺寸不同,設(shè)定距離閾值篩選偽特征點時,會剔除部分特征點,降低擬合導(dǎo)航線的準(zhǔn)確率。楊洋等[12]建立了基于卷積神經(jīng)網(wǎng)絡(luò)的玉米根莖識別算法,實現(xiàn)了機(jī)器人在玉米行間行走,并指出傳統(tǒng)方法提取導(dǎo)航線出現(xiàn)錯誤的原因是不能精準(zhǔn)確定玉米根莖位置,在不明確峰值點是特征點還是偽特征點的前提下,僅利用相鄰峰值點的位置關(guān)系剔除偽特征點,存在錯誤剔除特征點或漏刪偽特征點的情況,降低了擬合導(dǎo)航線的準(zhǔn)確率。
針對上述問題,為提高導(dǎo)航線擬合準(zhǔn)確率,提出一種基于邊緣檢測和區(qū)域掃描方法,準(zhǔn)確定位玉米莖稈邊緣直線,結(jié)合區(qū)域定位方法得到玉米莖稈區(qū)域范圍,確定峰值點中的特征點,利用提取的特征點剔除偽特征點,以有效提高擬合導(dǎo)航線的準(zhǔn)確率,為農(nóng)業(yè)自動導(dǎo)引車(Automated guided vehicle, AGV)在玉米行間行走提供視覺導(dǎo)航基準(zhǔn)。
以四輪獨立驅(qū)動的移動機(jī)器人作為采集平臺,相機(jī)安裝在移動機(jī)器人正前方,離地面高度20 cm,俯仰角10°,采集的圖像分辨率為1 280像素×720像素,原始圖像如圖1所示。
圖1 原始圖像Fig.1 Original image
原始圖像包含綠色植物和土壤背景,圖像預(yù)處理的目的是將綠色植物與土壤背景分離,圖像灰度化是將含有色彩和亮度的彩色圖像轉(zhuǎn)換為僅包含亮度的圖像,WOEBBECKE等[13]認(rèn)為綠色植物中G分量高于B分量和R分量,土壤背景的R、G、B分量相差不大,用2G-R-B可以有效分離綠色植物和土壤背景,得到灰度圖像,如圖2所示。
圖2 灰度圖像Fig.2 Grayscale image
圖像二值化用來分割綠色植物和土壤背景,圖3是灰度圖像直方圖,直方圖出現(xiàn)明顯的波谷。因此,本文采用最大類間方差法自動計算灰度圖像的閾值,然后分割圖像,得到二值圖像。如圖4所示,綠色植物與土壤背景被分割。
圖3 灰度圖像直方圖Fig.3 Grayscale image histogram
圖4 二值圖像Fig.4 Binary image
二值圖像中存在的雜草圖像噪聲對特征點提取產(chǎn)生干擾。構(gòu)造半徑為5像素的圓形結(jié)構(gòu)元素對二值圖像開運(yùn)算處理,圖5是經(jīng)過形態(tài)學(xué)處理后的圖像,形態(tài)學(xué)處理的圖像還有噪聲存在,而玉米區(qū)域的面積較大,可以利用面積特征進(jìn)一步處理,即去除圖像中面積小于1/20圖像面積的區(qū)域[10],處理后的圖像如圖6所示。面積去噪圖像還存在大面積的噪聲區(qū)域,可通過增大圖像面積的比例來剔除,但也會剔除距離相機(jī)較遠(yuǎn)的玉米植株。為進(jìn)一步優(yōu)化剔除效果,可以充分利用圖像干擾區(qū)域的位置特征,即玉米莖所在的區(qū)域與圖像的上邊界相接,而干擾區(qū)域多數(shù)集中在圖像的下半部分。利用八鄰域算子得到各個非聯(lián)通區(qū)域,判斷每個非聯(lián)通區(qū)域,如果區(qū)域與圖像上邊界相接,則保留該區(qū)域,反之剔除該區(qū)域。圖7是結(jié)合位置特征剔除噪聲得到的圖像,其中獨立的干擾區(qū)域被全部剔除掉。
圖5 形態(tài)學(xué)圖像Fig.5 Morphological image
圖6 面積去噪圖像Fig.6 Denoised image using area features
圖7 位置去噪圖像Fig.7 Denoised image using position features
按列累加得到的列像素累加值能夠反映玉米根莖區(qū)域的輪廓,也可減少后期提取玉米根定位的計算量[14],即
(1)
式中S(i)——圖像第i列的列像素累加值
M、N——圖像縱向和橫向像素尺寸
i、j——圖像像素的列序號和行序號
I(i,j)——點(i,j)處的像素
以圖像左下角為坐標(biāo)原點,橫坐標(biāo)為圖像列序號,縱坐標(biāo)為S(i),累加曲線如圖8所示,可見玉米根莖區(qū)域輪廓與列像素累加曲線基本吻合。
圖8 列像素累加曲線Fig.8 Curve image of column pixel accumulation
構(gòu)造邊長為30像素的方形高斯濾波模板對列像素累加曲線S(i)進(jìn)行平滑處理,取平滑曲線極小值點為特征點,用(Xn,Yn)表示特征點坐標(biāo)值。如圖9所示,玉米株間葉片交錯縱橫,導(dǎo)致存在偽特征點。
圖9 平滑曲線及特征點Fig.9 Smooth curve and feature points
玉米生長筆直,莖稈邊緣近似為直線,通過提取莖稈邊緣得到玉米莖稈在圖像水平方向上的區(qū)域范圍,以剔除偽特征點。用于提取圖像中莖稈邊緣的直線檢測算法有Hough變換法、邊緣鏈接法和基于梯度方法[15-17]。其中,Hough變換法應(yīng)用最廣泛,Hough變換法是將平面坐標(biāo)系中的像素點映射到參數(shù)坐標(biāo)系,在參數(shù)坐標(biāo)系中提取直線。本文利用Canny算子提取面積去噪圖像的梯度邊緣,Hough變換算法檢測直線,其中,Hough變換檢測直線的角度范圍為±10°,角度變化梯度為2°,Hough變換的極徑間隔為1,峰值直線的數(shù)量最大為20條,圖10是經(jīng)Canny算子檢測出的梯度邊緣,圖像經(jīng)過加粗處理,圖11是對梯度邊緣圖像利用Hough變換檢測出的直線邊緣。
圖10 加粗處理后的梯度邊緣圖像Fig.10 Edge image after thickening
圖11 Hough圖像Fig.11 Hough image
Hough圖像中的部分直線能準(zhǔn)確反映莖稈邊緣,部分直線是由于葉片交錯產(chǎn)生的偽邊緣,需要剔除偽邊緣,得到準(zhǔn)確的莖稈邊緣。在面積去噪圖像中白色部分表示莖稈和葉片,黑色部分表示土壤,玉米莖稈區(qū)域的白色像素數(shù)量與區(qū)域內(nèi)像素總數(shù)量的比值較高,而莖稈之間葉片區(qū)域的白色像素點數(shù)量與區(qū)域內(nèi)像素總數(shù)量的比值低于莖稈區(qū)域的比值,根據(jù)多次試驗效果選定像素數(shù)量比值b=0.8。區(qū)域?qū)挾冗x擇最遠(yuǎn)莖稈成像的寬度,取d=15像素。
如圖12所示,以圖像左上角為坐標(biāo)原點,設(shè)Hough圖像中有s條直線,e∈[1,s],第e條Hough直線的上極值點為Ae(x1,y1),下極值點為Be(x2,y2),距離Ae(x1,y1)為d的水平方向像素點分別為點Ce(x1+d,y1)、點De(x1-d,y1),距離Be(x2,y2)為d的水平方向像素點分別為點Ee(x2+d,y2)、Fe(x2-d,y2)。Re為Ae、Ce、Ee、Be組成的封閉區(qū)域,Le為Ae、De、Fe、Be組成的封閉區(qū)域。區(qū)域Re中白色像素數(shù)量與像素總數(shù)量的比值為qr(e),qr(e)為s維行向量Qr的元素,s維列向量Ql的元素ql(e)為區(qū)域Le中白色像素數(shù)量與像素總數(shù)量的比值。定義矩陣Q2×s的元素q(1,e)=Max{qr(e),ql(e)},元素q(2,e)存儲標(biāo)志位值,其中0表示Re和Le區(qū)域均不存在莖稈,1表示僅Re區(qū)域存在莖稈,2表示僅Le區(qū)域存在莖稈,3表示Re、Le區(qū)域均存在莖稈。
圖12 區(qū)域掃描示意圖Fig.12 Area scanning diagram
邊緣檢測算法流程如圖13所示,具體步驟為:
(1)計算點Ae、Be、Ce、De、Ee、Fe的坐標(biāo)值,在面積去噪圖像上裁剪出封閉區(qū)域Re和Le。
圖13 邊緣檢測流程圖Fig.13 Flowchart of edge detection
(2) 對Re進(jìn)行列掃描并計算其中白色像素數(shù)量與像素總數(shù)量的比值,存儲到qr(e)中;對Le進(jìn)行列掃描并計算其中白色像素數(shù)量與像素總數(shù)量的比值,存儲到ql(e)中。
(3) 將qr(e)與ql(e)分4種情況進(jìn)行設(shè)置:
①qr(e)≥b且ql(e)≥b,表示當(dāng)前直線是莖稈邊緣,并且直線左邊和右邊鄰近區(qū)域都有玉米莖稈,求qr(e)和ql(e)的最大值,將最大值存入q(1,e)中,標(biāo)志位3賦給q(2,e)。
②qr(e)
③qr(e)≥b且ql(e)
④qr(e)
(4)重復(fù)步驟(1)~(3),計算每條直線對應(yīng)的q(1,e)和q(2,e),為消除莖稈邊緣上多條直線的影響,循環(huán)判斷兩條直線是否相交,如果第e和e+1條直線相交,比較q(1,e)和q(1,e+1)的值。當(dāng)q(1,e)>q(1,e+1)時,q(1,e+1)和q(2,e+1)置0,當(dāng)q(1,e)≤q(1,e+1)時,則q(1,e)和q(2,e)置0。所有相交直線循環(huán)完成,程序結(jié)束。
圖14是基于區(qū)域掃描剔除莖稈偽邊緣后的結(jié)果,可以看出,莖稈之間的偽邊緣直線都被剔除,并且圖像中不存在相交的邊緣直線。
圖14 莖稈邊緣線Fig.14 Stalk boundary line
得到準(zhǔn)確莖稈邊緣直線后,利用標(biāo)志位q(2,e)和邊緣直線位置可獲得莖稈的區(qū)域范圍。設(shè)圖14中有W條直線,e∈[1,W],定義全零數(shù)組T(i),i∈[1,N],用來記錄玉米莖稈在圖像水平方向上的區(qū)域范圍,T(i)=0表示圖像第i列不存在莖稈,T(i)=1表示圖像第i列存在莖稈。區(qū)域檢測算法流程如圖15所示,具體步驟如下:
(1)依次判斷圖14中的每條直線,如果直線e的標(biāo)志位q(2,e)的值為1,則數(shù)組T(i)在區(qū)間[x2,x2+d]的值為1,類似的,q(2,e)的值為2,則數(shù)組T(i)在區(qū)間[x2-d,x2]的值為1,q(2,e)的值為3,則數(shù)組T(i)在區(qū)間[x2-d,x2+d]的值為1。
(2)考慮到莖稈左右兩條邊緣的情況,在e 圖15 區(qū)域檢測算法流程圖Fig.15 Flowchart of area detection algorithm 圖16是莖稈在圖像上的區(qū)域范圍,用來剔除偽特征點。 圖16 莖稈區(qū)域范圍Fig.16 Stalk area range 以圖像左半部分的特征點為例,特征點橫坐標(biāo)值Xn依次遞增,縱坐標(biāo)值Yn也應(yīng)該依次遞增,即如果點(Xn,Yn)在莖稈區(qū)域范圍內(nèi)(T(Xn)=1),那么1~n-1個特征點的縱坐標(biāo)值都應(yīng)該小于Yn,大于Yn的特征點都是偽特征點。利用區(qū)域范圍剔除偽特征點的具體方法如下: (1)將圖像分割為尺寸相同的左右兩幅圖像,左半幅圖像的特征點坐標(biāo)值存入矩陣G,右半幅圖像的特征點坐標(biāo)值存入矩陣H。 (2)對矩陣G、H中的特征點進(jìn)行二次判斷,沿圖像水平方向,從左向右依次掃描,判斷每個特征點(Xn,Yn)和對應(yīng)的數(shù)組T(Xn)。以矩陣G為例,當(dāng)T(Xn)=1時,對1~n-1個特征點進(jìn)行判斷,縱坐標(biāo)值大于Yn的特征點置為空。對矩陣H的處理方式正好相反,沿圖像水平方向,從左向右掃描,判斷每個特征點(Xn,Yn)和對應(yīng)的數(shù)組T(Xn),當(dāng)T(Xn)=1時,對第n個特征點右側(cè)的特征點進(jìn)行判斷,縱坐標(biāo)值大于Yn的特征點置為空。剔除偽特征點之后的特征點圖像如圖17所示,圖中藍(lán)色點表示特征點,綠色點表示已經(jīng)剔除的偽特征點。 圖17 特征點圖像Fig.17 Feature points image 直線擬合方法主要有最小二乘法、Hough變換和穩(wěn)健回歸法[18-20],利用最小二乘法分別擬合G和H的特征點,分別得到左、右兩個導(dǎo)航基準(zhǔn)線,左導(dǎo)航基準(zhǔn)線和右導(dǎo)航基準(zhǔn)線角平分線即為導(dǎo)航線。設(shè)左導(dǎo)航基準(zhǔn)線斜率為k1,右導(dǎo)航基準(zhǔn)線斜率為k2,則導(dǎo)航線的斜率k滿足方程 (2) 圖18為擬合效果,圖中以左上角為坐標(biāo)系原點,向右為橫坐標(biāo)軸正方向,向下為縱坐標(biāo)軸正方向。 圖18 導(dǎo)航基準(zhǔn)線和導(dǎo)航線Fig.18 Navigation datum line and navigation line 試驗圖像采集于山東省淄博市周村區(qū)試驗田,圖像處理軟件為Matlab 2018b,計算機(jī)為英特爾Xeon E5-2643 @ 3.30 GHz(×2)、32 GB內(nèi)存、Windows 7(64位)操作系統(tǒng)。對本文算法和傳統(tǒng)方法[11]進(jìn)行比較,處理結(jié)果如圖19所示。 圖19 不同方法特征點提取和導(dǎo)航線擬合結(jié)果Fig.19 Feature point extraction and navigation line fitting results of two methods 傳統(tǒng)方法均采用固定閾值法尋找列像素累加曲線峰值點,其中,采用findpeaks函數(shù)按照固定閾值尋找峰值點,設(shè)置相鄰峰值點閾值MinPeakDistance為20。圖19a利用固定閾值法得到的特征點中偽特征點較多,主要原因是采用了固定閾值尋找列像素累加曲線的峰值點。實際上玉米莖稈在圖像上不是等寬度分布的,根據(jù)相機(jī)“近大遠(yuǎn)小”原理,距離相機(jī)近的株距投影值較大,距離相機(jī)遠(yuǎn)的株距投影值較小,距離相機(jī)近的兩株玉米之間會檢測到多個偽特征點。本文利用高斯濾波平滑列像素累加曲線,對平滑后的曲線取峰值點作為特征點,曲線經(jīng)過平滑之后,位于兩株玉米之間的偽特征點不具備峰值點的特性,與圖19a相比,圖19b玉米之間的偽特征點明顯減少。當(dāng)利用左右特征點的位置關(guān)系剔除偽特征點定位玉米莖稈時,存在誤刪除根莖特征點的情況,并且兩株玉米之間的雜草也容易被誤判為特征點。本文基于Hough變換檢測玉米莖稈邊緣,經(jīng)過區(qū)域掃描剔除偽邊緣直線,然后得到莖稈區(qū)域范圍。這種方法能得到準(zhǔn)確的玉米莖稈位置,并且能準(zhǔn)確定位玉米根莖,再利用莖稈區(qū)域范圍即可準(zhǔn)確剔除偽特征點,圖19c給出了對應(yīng)于圖19b的玉米莖稈區(qū)域。 采用人工標(biāo)記方法獲取最佳導(dǎo)航線及最佳角度,并計算提取到的導(dǎo)航線與最佳導(dǎo)航線的角度差,角度差在-5°~5°時認(rèn)為結(jié)果準(zhǔn)確。為了驗證算法的可行性和實時性,對采集到的50幅樣本圖像利用最小二乘法線性擬合特征點。統(tǒng)計結(jié)果表明,本文算法處理一幅1 280像素×720像素圖像耗時約236 ms,特征點擬合準(zhǔn)確率為92%。本文使用的Matlab屬解釋性語言,便于調(diào)試驗證算法的準(zhǔn)確性,采用面向?qū)ο蟮染幊陶Z言可進(jìn)一步提高處理速度。 為驗證本文算法的魯棒性,以人工標(biāo)記導(dǎo)航線為基準(zhǔn),分別對雜草較多、缺苗、株距不標(biāo)準(zhǔn)3種環(huán)境條件的玉米圖像進(jìn)行處理,如表1所示??梢姳舅惴▽﹄s草較多、缺苗和株距不標(biāo)準(zhǔn)的情況具有較強(qiáng)的魯棒性,3種環(huán)境條件下圖像處理平均耗時233 ms,平均準(zhǔn)確率為90.8%,可以為農(nóng)業(yè)AGV進(jìn)入環(huán)境復(fù)雜的玉米田提供實時性好、可靠性強(qiáng)的導(dǎo)航線提取方法。 表1 不同環(huán)境下的處理結(jié)果Tab.1 Processing results in different environments 試驗結(jié)果如圖20所示,圖20a為玉米缺苗并且株間雜草較多的情況,圖20b為玉米株距不標(biāo)準(zhǔn)并且行間雜草較多的情況??梢钥闯觯槍χ昃嗖粯?biāo)準(zhǔn)的情況,本文算法能準(zhǔn)確提取特征點,提取出的偽特征點數(shù)量較少,基于邊緣檢測和區(qū)域掃描算法能得到準(zhǔn)確的玉米莖稈邊緣,利用區(qū)域定位算法能剔除偽特征點。試驗表明,基于邊緣檢測和區(qū)域定位可實現(xiàn)玉米莖稈區(qū)域準(zhǔn)確定位,玉米株間的偽特征點能被準(zhǔn)確剔除,針對缺苗、雜草較多和株距不標(biāo)準(zhǔn)的情況具有較強(qiáng)的魯棒性。 圖20 基于邊緣檢測和區(qū)域掃描的導(dǎo)航線提取結(jié)果Fig.20 Navigation line extraction based on edge detection and area scanning 提出一種基于邊緣檢測和區(qū)域定位的玉米根莖導(dǎo)航線提取方法。針對傳統(tǒng)方法提取特征點需要設(shè)定距離閾值的不足,引入高斯濾波器平滑列像素累加曲線,運(yùn)用極值法減少玉米根莖偽特征點的干擾。同時,提出基于最遠(yuǎn)莖稈成像寬度的雙側(cè)邊緣判別思路,有效篩選出準(zhǔn)確的根莖特征點,最終基于最小二乘法擬合得到玉米大田作業(yè)導(dǎo)航線。試驗表明,本文算法處理一幅1 280像素×720像素的圖像耗時約236 ms,特征點擬合準(zhǔn)確率為92%。與傳統(tǒng)方法相比,本文算法精度高、實時性好,在缺苗、雜草較多和株距不標(biāo)準(zhǔn)的情況仍具有較強(qiáng)的魯棒性,可以為防治玉米病蟲害的智能化農(nóng)業(yè)機(jī)械提供視覺導(dǎo)航。4 導(dǎo)航基準(zhǔn)線提取與試驗分析
4.1 導(dǎo)航基準(zhǔn)線線性擬合
4.2 算法性能評價
4.3 算法魯棒性分析
5 結(jié)束語