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