?

基于邊緣檢測和區域定位的玉米根莖導航線提取方法

2020-10-29 11:19宮金良王祥祥張彥斐蘭玉彬
農業機械學報 2020年10期
關鍵詞:莖稈邊緣像素

宮金良 王祥祥 張彥斐 蘭玉彬

(1.山東理工大學機械工程學院, 淄博 255049; 2.山東理工大學農業工程與食品科學學院, 淄博 255049)

0 引言

在玉米病蟲害防治過程中,利用機器人實現田間自主導航作業可以降低人工勞動強度、提高作業效率和作業質量、降低生產成本。目前,自主導航技術主要分為GPS導航和機器視覺導航,與GPS導航相比,機器視覺導航具有實時性好、成本低、適用范圍廣的優點[1-6]。

高國琴等[7]以溫室移動機器人為研究對象,引入K-means算法分割圖像,利用Hough變換擬合離散點,獲取溫室移動機器人導航信息,試驗中導航信息提取準確率為95%,圖像處理平均耗時146 ms。胡丹丹等[8]以玉米收獲機器人為研究對象,根據玉米壟的走勢特征提取導航離散點,基于Hough變換線性擬合導航離散點,得到導航路徑。劉陽等[9]以冬季果樹林間行走機器人為研究對象,采用Mid-to-Side掃描法結合果樹的幾何特征提取兩側樹干信息,以樹干內側角點作為特征點,通過線性擬合特征點生成導航基準線。

目前,移動機器人在行間行走主要利用兩側莖稈在灰度投影曲線的峰值特性。馮娟等[10]利用特征點與鄰近像素灰度的變化規律,通過逐行逐列掃描面積去噪圖像確定莖稈與地面的交點。這種方法適用于面積去噪圖像中莖稈之間沒有葉片和雜草的情況,當莖稈之間葉片和雜草交錯縱橫時,進行列像素累加會在相鄰莖稈之間產生偽特征點,并影響導航線提取效果。宋宇等[11]提出,特征點像素累加值大于左右相鄰像素點的像素累加值,通過設定相鄰特征點的距離閾值剔除偽特征點。實際玉米種植株距存在缺苗或一穴兩株情況,并且與相機距離不同的玉米成像尺寸不同,設定距離閾值篩選偽特征點時,會剔除部分特征點,降低擬合導航線的準確率。楊洋等[12]建立了基于卷積神經網絡的玉米根莖識別算法,實現了機器人在玉米行間行走,并指出傳統方法提取導航線出現錯誤的原因是不能精準確定玉米根莖位置,在不明確峰值點是特征點還是偽特征點的前提下,僅利用相鄰峰值點的位置關系剔除偽特征點,存在錯誤剔除特征點或漏刪偽特征點的情況,降低了擬合導航線的準確率。

針對上述問題,為提高導航線擬合準確率,提出一種基于邊緣檢測和區域掃描方法,準確定位玉米莖稈邊緣直線,結合區域定位方法得到玉米莖稈區域范圍,確定峰值點中的特征點,利用提取的特征點剔除偽特征點,以有效提高擬合導航線的準確率,為農業自動導引車(Automated guided vehicle, AGV)在玉米行間行走提供視覺導航基準。

1 圖像預處理

1.1 圖像采集與灰度化

以四輪獨立驅動的移動機器人作為采集平臺,相機安裝在移動機器人正前方,離地面高度20 cm,俯仰角10°,采集的圖像分辨率為1 280像素×720像素,原始圖像如圖1所示。

圖1 原始圖像Fig.1 Original image

原始圖像包含綠色植物和土壤背景,圖像預處理的目的是將綠色植物與土壤背景分離,圖像灰度化是將含有色彩和亮度的彩色圖像轉換為僅包含亮度的圖像,WOEBBECKE等[13]認為綠色植物中G分量高于B分量和R分量,土壤背景的R、G、B分量相差不大,用2G-R-B可以有效分離綠色植物和土壤背景,得到灰度圖像,如圖2所示。

圖2 灰度圖像Fig.2 Grayscale image

1.2 圖像二值化與形態學處理

圖像二值化用來分割綠色植物和土壤背景,圖3是灰度圖像直方圖,直方圖出現明顯的波谷。因此,本文采用最大類間方差法自動計算灰度圖像的閾值,然后分割圖像,得到二值圖像。如圖4所示,綠色植物與土壤背景被分割。

圖3 灰度圖像直方圖Fig.3 Grayscale image histogram

圖4 二值圖像Fig.4 Binary image

二值圖像中存在的雜草圖像噪聲對特征點提取產生干擾。構造半徑為5像素的圓形結構元素對二值圖像開運算處理,圖5是經過形態學處理后的圖像,形態學處理的圖像還有噪聲存在,而玉米區域的面積較大,可以利用面積特征進一步處理,即去除圖像中面積小于1/20圖像面積的區域[10],處理后的圖像如圖6所示。面積去噪圖像還存在大面積的噪聲區域,可通過增大圖像面積的比例來剔除,但也會剔除距離相機較遠的玉米植株。為進一步優化剔除效果,可以充分利用圖像干擾區域的位置特征,即玉米莖所在的區域與圖像的上邊界相接,而干擾區域多數集中在圖像的下半部分。利用八鄰域算子得到各個非聯通區域,判斷每個非聯通區域,如果區域與圖像上邊界相接,則保留該區域,反之剔除該區域。圖7是結合位置特征剔除噪聲得到的圖像,其中獨立的干擾區域被全部剔除掉。

圖5 形態學圖像Fig.5 Morphological image

圖6 面積去噪圖像Fig.6 Denoised image using area features

圖7 位置去噪圖像Fig.7 Denoised image using position features

1.3 特征點獲取

按列累加得到的列像素累加值能夠反映玉米根莖區域的輪廓,也可減少后期提取玉米根定位的計算量[14],即

(1)

式中S(i)——圖像第i列的列像素累加值

M、N——圖像縱向和橫向像素尺寸

i、j——圖像像素的列序號和行序號

I(i,j)——點(i,j)處的像素

以圖像左下角為坐標原點,橫坐標為圖像列序號,縱坐標為S(i),累加曲線如圖8所示,可見玉米根莖區域輪廓與列像素累加曲線基本吻合。

圖8 列像素累加曲線Fig.8 Curve image of column pixel accumulation

構造邊長為30像素的方形高斯濾波模板對列像素累加曲線S(i)進行平滑處理,取平滑曲線極小值點為特征點,用(Xn,Yn)表示特征點坐標值。如圖9所示,玉米株間葉片交錯縱橫,導致存在偽特征點。

圖9 平滑曲線及特征點Fig.9 Smooth curve and feature points

2 玉米莖稈邊緣檢測

玉米生長筆直,莖稈邊緣近似為直線,通過提取莖稈邊緣得到玉米莖稈在圖像水平方向上的區域范圍,以剔除偽特征點。用于提取圖像中莖稈邊緣的直線檢測算法有Hough變換法、邊緣鏈接法和基于梯度方法[15-17]。其中,Hough變換法應用最廣泛,Hough變換法是將平面坐標系中的像素點映射到參數坐標系,在參數坐標系中提取直線。本文利用Canny算子提取面積去噪圖像的梯度邊緣,Hough變換算法檢測直線,其中,Hough變換檢測直線的角度范圍為±10°,角度變化梯度為2°,Hough變換的極徑間隔為1,峰值直線的數量最大為20條,圖10是經Canny算子檢測出的梯度邊緣,圖像經過加粗處理,圖11是對梯度邊緣圖像利用Hough變換檢測出的直線邊緣。

圖10 加粗處理后的梯度邊緣圖像Fig.10 Edge image after thickening

圖11 Hough圖像Fig.11 Hough image

Hough圖像中的部分直線能準確反映莖稈邊緣,部分直線是由于葉片交錯產生的偽邊緣,需要剔除偽邊緣,得到準確的莖稈邊緣。在面積去噪圖像中白色部分表示莖稈和葉片,黑色部分表示土壤,玉米莖稈區域的白色像素數量與區域內像素總數量的比值較高,而莖稈之間葉片區域的白色像素點數量與區域內像素總數量的比值低于莖稈區域的比值,根據多次試驗效果選定像素數量比值b=0.8。區域寬度選擇最遠莖稈成像的寬度,取d=15像素。

如圖12所示,以圖像左上角為坐標原點,設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組成的封閉區域,Le為Ae、De、Fe、Be組成的封閉區域。區域Re中白色像素數量與像素總數量的比值為qr(e),qr(e)為s維行向量Qr的元素,s維列向量Ql的元素ql(e)為區域Le中白色像素數量與像素總數量的比值。定義矩陣Q2×s的元素q(1,e)=Max{qr(e),ql(e)},元素q(2,e)存儲標志位值,其中0表示Re和Le區域均不存在莖稈,1表示僅Re區域存在莖稈,2表示僅Le區域存在莖稈,3表示Re、Le區域均存在莖稈。

圖12 區域掃描示意圖Fig.12 Area scanning diagram

邊緣檢測算法流程如圖13所示,具體步驟為:

(1)計算點Ae、Be、Ce、De、Ee、Fe的坐標值,在面積去噪圖像上裁剪出封閉區域Re和Le。

圖13 邊緣檢測流程圖Fig.13 Flowchart of edge detection

(2) 對Re進行列掃描并計算其中白色像素數量與像素總數量的比值,存儲到qr(e)中;對Le進行列掃描并計算其中白色像素數量與像素總數量的比值,存儲到ql(e)中。

(3) 將qr(e)與ql(e)分4種情況進行設置:

①qr(e)≥b且ql(e)≥b,表示當前直線是莖稈邊緣,并且直線左邊和右邊鄰近區域都有玉米莖稈,求qr(e)和ql(e)的最大值,將最大值存入q(1,e)中,標志位3賦給q(2,e)。

②qr(e)

③qr(e)≥b且ql(e)

④qr(e)

(4)重復步驟(1)~(3),計算每條直線對應的q(1,e)和q(2,e),為消除莖稈邊緣上多條直線的影響,循環判斷兩條直線是否相交,如果第e和e+1條直線相交,比較q(1,e)和q(1,e+1)的值。當q(1,e)>q(1,e+1)時,q(1,e+1)和q(2,e+1)置0,當q(1,e)≤q(1,e+1)時,則q(1,e)和q(2,e)置0。所有相交直線循環完成,程序結束。

圖14是基于區域掃描剔除莖稈偽邊緣后的結果,可以看出,莖稈之間的偽邊緣直線都被剔除,并且圖像中不存在相交的邊緣直線。

圖14 莖稈邊緣線Fig.14 Stalk boundary line

3 莖稈區域定位

得到準確莖稈邊緣直線后,利用標志位q(2,e)和邊緣直線位置可獲得莖稈的區域范圍。設圖14中有W條直線,e∈[1,W],定義全零數組T(i),i∈[1,N],用來記錄玉米莖稈在圖像水平方向上的區域范圍,T(i)=0表示圖像第i列不存在莖稈,T(i)=1表示圖像第i列存在莖稈。區域檢測算法流程如圖15所示,具體步驟如下:

(1)依次判斷圖14中的每條直線,如果直線e的標志位q(2,e)的值為1,則數組T(i)在區間[x2,x2+d]的值為1,類似的,q(2,e)的值為2,則數組T(i)在區間[x2-d,x2]的值為1,q(2,e)的值為3,則數組T(i)在區間[x2-d,x2+d]的值為1。

(2)考慮到莖稈左右兩條邊緣的情況,在e

圖15 區域檢測算法流程圖Fig.15 Flowchart of area detection algorithm

圖16是莖稈在圖像上的區域范圍,用來剔除偽特征點。

圖16 莖稈區域范圍Fig.16 Stalk area range

以圖像左半部分的特征點為例,特征點橫坐標值Xn依次遞增,縱坐標值Yn也應該依次遞增,即如果點(Xn,Yn)在莖稈區域范圍內(T(Xn)=1),那么1~n-1個特征點的縱坐標值都應該小于Yn,大于Yn的特征點都是偽特征點。利用區域范圍剔除偽特征點的具體方法如下:

(1)將圖像分割為尺寸相同的左右兩幅圖像,左半幅圖像的特征點坐標值存入矩陣G,右半幅圖像的特征點坐標值存入矩陣H。

(2)對矩陣G、H中的特征點進行二次判斷,沿圖像水平方向,從左向右依次掃描,判斷每個特征點(Xn,Yn)和對應的數組T(Xn)。以矩陣G為例,當T(Xn)=1時,對1~n-1個特征點進行判斷,縱坐標值大于Yn的特征點置為空。對矩陣H的處理方式正好相反,沿圖像水平方向,從左向右掃描,判斷每個特征點(Xn,Yn)和對應的數組T(Xn),當T(Xn)=1時,對第n個特征點右側的特征點進行判斷,縱坐標值大于Yn的特征點置為空。剔除偽特征點之后的特征點圖像如圖17所示,圖中藍色點表示特征點,綠色點表示已經剔除的偽特征點。

圖17 特征點圖像Fig.17 Feature points image

4 導航基準線提取與試驗分析

4.1 導航基準線線性擬合

直線擬合方法主要有最小二乘法、Hough變換和穩健回歸法[18-20],利用最小二乘法分別擬合G和H的特征點,分別得到左、右兩個導航基準線,左導航基準線和右導航基準線角平分線即為導航線。設左導航基準線斜率為k1,右導航基準線斜率為k2,則導航線的斜率k滿足方程

(2)

圖18為擬合效果,圖中以左上角為坐標系原點,向右為橫坐標軸正方向,向下為縱坐標軸正方向。

圖18 導航基準線和導航線Fig.18 Navigation datum line and navigation line

4.2 算法性能評價

試驗圖像采集于山東省淄博市周村區試驗田,圖像處理軟件為Matlab 2018b,計算機為英特爾Xeon E5-2643 @ 3.30 GHz(×2)、32 GB內存、Windows 7(64位)操作系統。對本文算法和傳統方法[11]進行比較,處理結果如圖19所示。

圖19 不同方法特征點提取和導航線擬合結果Fig.19 Feature point extraction and navigation line fitting results of two methods

傳統方法均采用固定閾值法尋找列像素累加曲線峰值點,其中,采用findpeaks函數按照固定閾值尋找峰值點,設置相鄰峰值點閾值MinPeakDistance為20。圖19a利用固定閾值法得到的特征點中偽特征點較多,主要原因是采用了固定閾值尋找列像素累加曲線的峰值點。實際上玉米莖稈在圖像上不是等寬度分布的,根據相機“近大遠小”原理,距離相機近的株距投影值較大,距離相機遠的株距投影值較小,距離相機近的兩株玉米之間會檢測到多個偽特征點。本文利用高斯濾波平滑列像素累加曲線,對平滑后的曲線取峰值點作為特征點,曲線經過平滑之后,位于兩株玉米之間的偽特征點不具備峰值點的特性,與圖19a相比,圖19b玉米之間的偽特征點明顯減少。當利用左右特征點的位置關系剔除偽特征點定位玉米莖稈時,存在誤刪除根莖特征點的情況,并且兩株玉米之間的雜草也容易被誤判為特征點。本文基于Hough變換檢測玉米莖稈邊緣,經過區域掃描剔除偽邊緣直線,然后得到莖稈區域范圍。這種方法能得到準確的玉米莖稈位置,并且能準確定位玉米根莖,再利用莖稈區域范圍即可準確剔除偽特征點,圖19c給出了對應于圖19b的玉米莖稈區域。

采用人工標記方法獲取最佳導航線及最佳角度,并計算提取到的導航線與最佳導航線的角度差,角度差在-5°~5°時認為結果準確。為了驗證算法的可行性和實時性,對采集到的50幅樣本圖像利用最小二乘法線性擬合特征點。統計結果表明,本文算法處理一幅1 280像素×720像素圖像耗時約236 ms,特征點擬合準確率為92%。本文使用的Matlab屬解釋性語言,便于調試驗證算法的準確性,采用面向對象等編程語言可進一步提高處理速度。

4.3 算法魯棒性分析

為驗證本文算法的魯棒性,以人工標記導航線為基準,分別對雜草較多、缺苗、株距不標準3種環境條件的玉米圖像進行處理,如表1所示??梢姳舅惴▽﹄s草較多、缺苗和株距不標準的情況具有較強的魯棒性,3種環境條件下圖像處理平均耗時233 ms,平均準確率為90.8%,可以為農業AGV進入環境復雜的玉米田提供實時性好、可靠性強的導航線提取方法。

表1 不同環境下的處理結果Tab.1 Processing results in different environments

試驗結果如圖20所示,圖20a為玉米缺苗并且株間雜草較多的情況,圖20b為玉米株距不標準并且行間雜草較多的情況??梢钥闯?,針對株距不標準的情況,本文算法能準確提取特征點,提取出的偽特征點數量較少,基于邊緣檢測和區域掃描算法能得到準確的玉米莖稈邊緣,利用區域定位算法能剔除偽特征點。試驗表明,基于邊緣檢測和區域定位可實現玉米莖稈區域準確定位,玉米株間的偽特征點能被準確剔除,針對缺苗、雜草較多和株距不標準的情況具有較強的魯棒性。

圖20 基于邊緣檢測和區域掃描的導航線提取結果Fig.20 Navigation line extraction based on edge detection and area scanning

5 結束語

提出一種基于邊緣檢測和區域定位的玉米根莖導航線提取方法。針對傳統方法提取特征點需要設定距離閾值的不足,引入高斯濾波器平滑列像素累加曲線,運用極值法減少玉米根莖偽特征點的干擾。同時,提出基于最遠莖稈成像寬度的雙側邊緣判別思路,有效篩選出準確的根莖特征點,最終基于最小二乘法擬合得到玉米大田作業導航線。試驗表明,本文算法處理一幅1 280像素×720像素的圖像耗時約236 ms,特征點擬合準確率為92%。與傳統方法相比,本文算法精度高、實時性好,在缺苗、雜草較多和株距不標準的情況仍具有較強的魯棒性,可以為防治玉米病蟲害的智能化農業機械提供視覺導航。

猜你喜歡
莖稈邊緣像素
水稻莖稈接觸物理參數測定與離散元仿真標定
像素前線之“幻影”2000
四川玉米生理成熟后抗倒性能變化及其影響因素*
“像素”仙人掌
一張圖看懂邊緣計算
高像素不是全部
基于ADAMS的玉米割臺的仿真測試
小麥莖稈與電線桿
您的像素,飽和嗎?[上]
在邊緣尋找自我
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合