吳艷娟 王 健 王云亮
(1.天津理工大學(xué)電氣工程與自動化學(xué)院,天津 300384;2.天津理工大學(xué)天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點實驗室,天津 300384)
在農(nóng)作物幼苗時期,雜草會極大地影響其生長,使其得不到充足的光照和養(yǎng)分。全球已發(fā)現(xiàn)的雜草中超過60%會影響農(nóng)作物的產(chǎn)量[1]。所以,除草作業(yè)對農(nóng)業(yè)生產(chǎn)有重要意義。化學(xué)除草和人工除草是當(dāng)前農(nóng)業(yè)生產(chǎn)中應(yīng)用最多的兩種除草方式,長期大量使用化學(xué)除草劑存在引起環(huán)境污染、破壞土壤生態(tài)平衡、從源頭影響食品安全等問題。而人工除草雖然能有效識別并清除雜草,但由于勞動力短缺和成本上升,會提高農(nóng)作物種植成本,并且人工除草效率低,難以實現(xiàn)大規(guī)模種植。
由此,機械除草成為最理想的除草方式,在減少人工成本的同時,除草效率大幅提高。然而大多數(shù)除草機只能鏟除壟間雜草,株間雜草只能通過人工除草等方式進行處理,隨著計算機、機器視覺和自動化等技術(shù)的持續(xù)發(fā)展,農(nóng)業(yè)機械自動化水平發(fā)展迅速,除草機也逐漸向智能化方向發(fā)展,研究能真正取代人工作業(yè)的智能型除草機是發(fā)展趨勢。
而智能型除草機具技術(shù)關(guān)鍵是雜草和農(nóng)作物禾苗精確辨識與定位。通過對雜草禾苗顏色、位置、形狀和紋理特征展開研究[2-9],可以對田間禾苗和雜草進行有效辨識,若不能保證除草時對幼苗的具體位置進行精準(zhǔn)判斷,作業(yè)時會對幼苗造成傷害。
本文提出基于HSV和Zhang-Suen細化算法的骨架提取方法進行禾苗辨識,并進一步實現(xiàn)對農(nóng)作物禾苗莖稈中心的識別與定位。首先對采集圖像進行處理,將采集到的RGB圖像轉(zhuǎn)換到HSV顏色空間,通過對H通道閾值的設(shè)定,分割掉土壤背景,而后轉(zhuǎn)回到RGB空間進行二值化處理;再通過腐蝕算法對雜草進行腐蝕操作并得到只包含農(nóng)作物禾苗信息的圖像;然后用Zhang-Suen細化算法進行骨架提??;最后通過對骨架交叉點的計算與篩選完成對農(nóng)作物禾苗莖稈中心的識別與定位。
本文算法采用背景分割、腐蝕和Zhang-Suen細化骨架提取的多級混合方法對攝像頭采集的彩色圖像進行分級遞進式處理,實現(xiàn)農(nóng)作物禾苗的識別和定位,算法整體結(jié)構(gòu)模型如圖1所示,首先把原始彩色圖像的RGB圖像轉(zhuǎn)換到HSV顏色空間,通過對HSV顏色空間中H通道閾值的設(shè)置,清除掉土壤背景,再轉(zhuǎn)換到RGB顏色空間完成圖像的背景分割。為了方便后續(xù)操作,對背景分割后的圖像進行二值化處理,然后用腐蝕算法腐蝕掉大部分雜草,并使雜草與作物分離,選取連通區(qū)域面積最大的部分就是作物圖像。最后對作物圖像進行骨架提取,通過對交叉點的檢測和計算,對作物莖稈中心進行識別和定位。
圖1 算法整體結(jié)構(gòu)模型
第1級處理方法是對攝像頭采集的原始彩色圖像進行農(nóng)作物圖像信息與背景圖像信息分割,即對原始彩色圖像采用RGB到HSV色彩空間轉(zhuǎn)換方法,將與農(nóng)作物色彩相差較大的土壤等背景分割出來[10-11]。
由于雜草與作物顏色相近,而土壤背景顏色與作物顏色相差較大,因此在該級處理中主要是通過對HSV顏色空間[12-14]中H通道閾值的設(shè)定分割掉土壤背景。
將圖像轉(zhuǎn)換到HSV顏色空間后,對H通道的閾值進行設(shè)定,將閾值以外的像素透明度V設(shè)置為0,完成對圖像的背景分割。
經(jīng)過第1級的圖像處理后,提取出的是農(nóng)作物和雜草等顏色相近的圖像。第2級圖像處理即采用腐蝕算法進行雜草和農(nóng)作物禾苗的辨識,剔除雜草圖像,提取農(nóng)作物禾苗圖像。
經(jīng)過第1級圖像的背景分割之后,可提取出包含作物與雜草的二值圖像,由于雜草與作物的形態(tài)差異,可把雜草視為作物圖像中的噪點,利用膨脹腐蝕算法可以有效減少噪聲干擾[15-17],減少雜草同時分離作物與雜草。
本文腐蝕算法和膨脹算法結(jié)構(gòu)元素尺寸為3×3的正方形,結(jié)構(gòu)元素中各點分布如圖2所示。
圖2 腐蝕膨脹算法結(jié)構(gòu)元素
經(jīng)過前2級的處理完成雜草和禾苗的辨識,但為了獲得精準(zhǔn)的禾苗位置信息,還需要對禾苗圖像進行骨架提取和禾苗定位,即進行第3級處理的農(nóng)作物禾苗骨架提取和第4級處理的農(nóng)作物禾苗莖稈中心定位,該2級處理也是苗間除草機能真正實現(xiàn)機器視覺感知的最關(guān)鍵環(huán)節(jié)之一,也可稱為農(nóng)業(yè)機械具有機器視覺感知的軟接口。
經(jīng)過第2級圖像處理的膨脹腐蝕操作后,得到的二值圖像中僅含有農(nóng)作物禾苗圖像,而要精準(zhǔn)獲得作物的中心位置,就要先對作物整體進行細化,得到作物的骨架。骨架提取算法能有效對骨架進行提取[18-23]。本文采用Zhang-Suen細化算法進行骨架提取[24-27]。該算法每一次迭代標(biāo)記符合特定條件的目標(biāo)像素,在遍歷完所有圖像之后,再對標(biāo)記點進行統(tǒng)一刪除,直到某一次迭代中沒有任何一個像素被標(biāo)記,則迭代結(jié)束,得到的圖像則為細化后的骨架圖像。為了方便描述,先定義幾個基本概念。
算法中黑像素為1,白像素為0,輸入圖像是由1和0組成的n×m序列。算法對有8個鄰域的所有黑色像素P1進行操作。鄰域中各像素標(biāo)號按照圖3所示的8鄰域像素次序圖依次排列。
圖3 8鄰域像素次序圖
對圖3中的8鄰域像素做出如下定義:
定義1:A(P1)=P2→P3→P4→P5→P6→P7→P8→P9→P2序列中從白到黑的轉(zhuǎn)換次數(shù)。
定義2:B(P1)=P1鄰域像素為黑色的個數(shù)。
骨架提取算法共分為2個步驟:
(1)若同時滿足以下4個條件,則標(biāo)記P1為可刪除的點。① 2≤B(P1)≤6。②A(P1)=1。③ P2、P4、P6中至少有1個為白色。④ P4、P6和P8中至少有1個為白色。
(2)若同時滿足以下4個條件,則標(biāo)記P1也為可刪除的點。① 2≤B(P1)≤6。②A(P1)=1。③ P2、P4、P8中至少有1個為白色。④ P2、P6、P8中至少有1個為白色。
在上述過程中,2個步驟的條件①和條件②相同。條件①判斷P1是否為端點,如果P1的鄰域只有1個像素為黑色,則為端點,不能被標(biāo)記;如果P1的鄰域有7個像素為黑色,為保證骨架的連通性,也不能被標(biāo)記。條件②檢測P1的鄰域順時針方向是否有從0到1之間的變化,以保證骨架像素點不被標(biāo)記。
步驟(1)的條件③和條件④同時成立的條件是P4為白色或P6為白色或P2和P8同時為白色,以此來標(biāo)記東邊或南邊或西北邊的邊界點;步驟(2)的條件③和條件④同時成立的條件是P2為白色或P8為白色或P4和P6同時為白色,以此來標(biāo)記西邊或北邊或東南邊的邊界點。
Zhang-Suen骨架提取算法流程如圖4所示。
圖4 骨架提取流程圖
最初,原始圖像存儲在矩陣IT中,計數(shù)器C設(shè)為0。處理后的圖像結(jié)果覆蓋原圖像并存儲在矩陣IT中。為了節(jié)省內(nèi)存空間,在計算中只使用了矩陣IT和M。其中M為步驟(1)和步驟(2)中所標(biāo)記的點的集合。
為了精準(zhǔn)定位農(nóng)作物禾苗莖稈中心,對第3級圖像處理后提取的農(nóng)作物禾苗骨架圖像,繼續(xù)采用模板匹配的方法搜尋莖稈中心,對農(nóng)作物禾苗進行精準(zhǔn)定位。
模板匹配[28-29]是最基礎(chǔ)、最常用的模式識別方法,主要用于尋找某一關(guān)鍵部分位于圖像的位置,從而對目標(biāo)進行特征識別,這就是一個匹配問題。本文中,根據(jù)骨架交叉點的特征,共定義12個模板,其結(jié)構(gòu)如圖5所示。
圖5 交叉點匹配模板
得到莖稈的像素坐標(biāo)之后,計算出行列像素偏差,代表直線距離。通過對空間坐標(biāo)的轉(zhuǎn)換,由小孔成像原理[30-31]計算出農(nóng)作物的莖稈位置與實際位置偏差。
于自然光照環(huán)境采集圖像,圖像尺寸為640像素×480像素,算法實現(xiàn)環(huán)境為Matlab仿真平臺。于2019年4月,在實驗玉米田地采集圖像,玉米幼苗播種14 d后,葉片為5~6葉,葉片長度約為 8 cm,幼苗間距約為30 cm,相機距離地面40 cm,共選取100幅圖像進行實驗檢測,示例如圖6所示。
圖6 相機采集的部分作物幼苗圖像
由圖6可以看出,圖中雜草與作物顏色相近,而土壤背景顏色與作物顏色相差較大,因此通過對HSV顏色空間中H通道閾值的設(shè)定分割掉土壤背景,閾值設(shè)置的范圍為0.17~0.5。
將分割掉土壤背景后的圖像再轉(zhuǎn)換到RGB空間進行二值化,圖7為背景分割后轉(zhuǎn)回RGB空間的圖像,圖8為二值化后的圖像。
圖7 背景分割后的RGB圖像
圖8 背景分割后的二值化圖像
在用膨脹腐蝕算法進行處理時,出現(xiàn)由于拍攝時的角度與光照問題,導(dǎo)致部分圖像的莖稈中心位置處為黑色,影響禾苗骨架提取的準(zhǔn)確度,因此再運用閉運算,把圖像中的黑色部分填充為白色,得到的結(jié)果如圖9所示。
圖9 膨脹腐蝕后的二值化圖像
由圖9可以看出,利用膨脹腐蝕算法可以有效消除大部分雜草噪點,還有一小部分無法去除,但是剩下的雜草噪點已經(jīng)與作物分離,因此,選取圖中連通區(qū)域最大的部分進行提取,就可得到只含有作物的二值圖像。提取后的作物圖如圖10所示。
圖10 作物提取圖像
在得到作物圖像之后,為了獲得作物的莖稈信息,先對作物進行骨架提取,在提取過程中,重復(fù)迭代Zhang-Suen骨架提取算法的2個步驟,每次迭代后對作物圖像中的非骨架點進行標(biāo)注。在迭代過程中,每次迭代完檢測是否有被標(biāo)記的點,如果有則刪除本次迭代中所有被標(biāo)記的點,然后進行下一次迭代;如果沒有任何點被標(biāo)記,則迭代結(jié)束,剩下的點所構(gòu)成的區(qū)域即為骨架。采用Zhang-Suen細化算法處理后的作物骨架如圖11所示。
圖11 作物骨架圖像
在運用Zhang-Suen細化算法對作物骨架進行提取后,以圖5交叉點匹配模板對圖11的作物骨架進行模板匹配,所得到的骨架交叉點如圖12所示,根據(jù)作物的形態(tài)特征對其進行最大外接矩形的對角線交點計算,所有交叉點中,距離對角線交點最近的點即判定為作物的中心點,得到作物中心點如圖13所示。
圖12 骨架交叉點
圖13 作物中心點
作物原圖莖稈中心和實驗莖稈定位結(jié)果如表1所示。
表1 莖稈定位結(jié)果
依據(jù)小孔成像原理,計算原圖莖稈中心點坐標(biāo)與定位結(jié)果圖的中心點坐標(biāo)的像素距離偏差,部分實驗數(shù)據(jù)見表1,然后再將像素距離偏差轉(zhuǎn)換為實際距離偏差,結(jié)果表明實際位置偏差小于12 mm的準(zhǔn)確率為95%,滿足除草機對莖稈位置的定位精度要求。并且,在該實驗中識別不準(zhǔn)確的都是禾苗和雜草距離太近的情況,而距離禾苗太近的雜草也不能用除草機鏟除,會誤傷作物幼苗,不考慮這些與禾苗太近的情況,定位準(zhǔn)確率會更高。
為進一步驗證本文方法的優(yōu)越性,與文獻[32]采用的K3M算法進行了實驗對比,該文方法對誤差10 mm以內(nèi)準(zhǔn)確率為85.9%。而本文所采用的Zhang-Suen骨架提取和模板匹配算法對誤差 10 mm 內(nèi)準(zhǔn)確率為88%,并且誤差12 mm內(nèi)準(zhǔn)確率達到95%。
提出了一種基于顏色空間轉(zhuǎn)換、腐蝕膨脹算法、Zhang-Suen細化骨架提取算法以及模板匹配等多算法混合分級圖像處理的方法,實現(xiàn)雜草和農(nóng)作物禾苗辨識,并且該方法利用作物骨架的交叉點來篩選出作物中心點,實現(xiàn)通過農(nóng)作物禾苗骨架莖稈中心精確定位禾苗位置的方法。首先在HSV色彩空間中,通過對H通道閾值的設(shè)定完成背景分割,根據(jù)作物與雜草的分布特點,對圖像進行多次腐蝕操作后,通過對最大連通區(qū)域的提取,得到作物圖像。然后用Zhang-Suen細化算法提取作物骨架,通過對交叉點的模板匹配得到骨架交叉點。最后利用骨架的外接矩形計算出作物的莖稈中心。通過對100幅圖像進行實驗測試,完成了對苗期作物莖稈中心的精準(zhǔn)識別和定位,定位誤差小于12 mm。該方法能對作物進行精準(zhǔn)識別并精確定位苗期作物的莖稈中心位置,為進一步使用機械除草奠定了基礎(chǔ)。