賈挺猛,荀 一,鮑官軍,董 茂,楊慶華
(浙江工業(yè)大學(xué) 特種裝備制造與先進(jìn)加工技術(shù)教育部/浙江省重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310014)
在葡萄生產(chǎn)作業(yè)中,為了提高果實(shí)品質(zhì),增加產(chǎn)量,果農(nóng)需要對(duì)葡萄樹進(jìn)行整枝修剪。葡萄樹修剪作業(yè)勞動(dòng)強(qiáng)度較大,而目前機(jī)械化水平非常低,果農(nóng)迫切需要高效省力的設(shè)備[1],將他們從繁重的手工勞動(dòng)中解救出來。因此,開展剪枝機(jī)器人的研究具有重要的實(shí)用價(jià)值[2]。
將機(jī)器視覺技術(shù)應(yīng)用于工程中可以實(shí)現(xiàn)農(nóng)業(yè)生產(chǎn)與管理的自動(dòng)化和智能化。鑒于葡萄樹枝上的各個(gè)芽粗細(xì)不均勻、形狀不規(guī)則,直接從形態(tài)上檢測(cè)并確定芽點(diǎn)位置具有一定的難度。
本研究采用機(jī)器視覺技術(shù)識(shí)別葡萄樹枝干并提取葡萄樹枝骨架,作為進(jìn)一步確立葡萄樹的芽點(diǎn)以及剪枝點(diǎn)的基礎(chǔ)[3]。樹枝骨架提取的優(yōu)劣直接影響葡萄樹枝芽點(diǎn)的識(shí)別。
實(shí)驗(yàn)研究的對(duì)象是葡萄冬剪之前的樹枝,品種采用我國(guó)栽種面積最廣的巨峰葡萄樹,實(shí)驗(yàn)樣本取自于杭州市蕭山區(qū)海棠葡萄園,樣本采用Y型種植方式,樹齡為3年。
本研究以室內(nèi)白色墻為背景采集葡萄樹枝圖像,在主動(dòng)光源下,通過CCD工業(yè)攝像機(jī)采集巨峰葡萄樹圖像。
本研究采集到的圖像是24位的彩色圖像。為了減少圖像數(shù)據(jù)計(jì)算量,筆者將彩色圖像中的3種基本顏色分量的亮度作為3個(gè)灰度圖像的灰度值,輸出R、G、B3個(gè)分量的直方圖,對(duì)目標(biāo)圖像樹枝和背景圖像的灰度值分布情況進(jìn)行了對(duì)比分析,發(fā)現(xiàn)B分量圖中目標(biāo)圖像樹枝的灰度值較為集中,與背景圖像的灰度值區(qū)分最明顯,相對(duì)較適合提取樹枝對(duì)象。
因此,本研究選用B分量圖作為后續(xù)處理圖像,葡萄樹B分量圖像如圖1所示。
圖1 葡萄樹B分量圖像
本研究根據(jù)圖像中背景與目標(biāo)像素灰度值的分布特點(diǎn),采用領(lǐng)域加權(quán)平均去除圖像中的污點(diǎn)和部分背影,選擇合理的閾值進(jìn)行圖像分割,即可消除鐵絲、陰影,并得到葡萄樹枝二值圖像。鑒于葡萄樹枝二值圖像提取不夠完整,且出現(xiàn)空洞的現(xiàn)象,本研究運(yùn)用閉運(yùn)算,以填充空白區(qū)域。
經(jīng)過以上處理后得到的葡萄樹二值圖像如圖2所示。
圖2 預(yù)處理后的葡萄樹二值圖像
骨架的提取一般采用細(xì)化算法。已有的細(xì)化算法按迭代方式不同分為串行算法和并行算法。串行細(xì)化即是一邊檢測(cè)滿足細(xì)化條件的點(diǎn)一邊刪除細(xì)化點(diǎn),并行細(xì)化即是檢測(cè)細(xì)化點(diǎn)的時(shí)候不進(jìn)行點(diǎn)的刪除只進(jìn)行標(biāo)記,而在檢測(cè)完整幅圖像后一次性去除要細(xì)化的點(diǎn)。由于串行細(xì)化算法的處理結(jié)果依賴于對(duì)像素處理的先后順序,像素點(diǎn)的消除或保留不可預(yù)測(cè);而并行細(xì)化算法在對(duì)圖像進(jìn)行細(xì)化時(shí)利用相同的條件同時(shí)檢測(cè)所有像素點(diǎn),其結(jié)果具有各向同性,因此從算法原理上看,并行方法優(yōu)于串行方法[4]。目前應(yīng)用比較廣泛的并行細(xì)化算法有形態(tài)學(xué)細(xì)化算法[5]、Zhang細(xì)化算法[6]、Rosenfeld細(xì)化算法[7]。
數(shù)學(xué)形態(tài)學(xué)的基本運(yùn)算有膨脹(或擴(kuò)張)、腐蝕(或侵蝕)、開啟和閉合4種。研究者通過基本運(yùn)算還可推導(dǎo)和組合成各種數(shù)學(xué)形態(tài)學(xué)實(shí)用算法,進(jìn)行圖像形狀和結(jié)構(gòu)的分析及處理。擊中/擊不中變換是在腐蝕和膨脹的基礎(chǔ)上提出的[8-9]。
本研究設(shè)A為目標(biāo)圖像,Ac為圖像A的補(bǔ)集,結(jié)構(gòu)元素S由不相交的兩部分S1和S2組成,即S=S1∪S2,且S1∩S2= ? ,而S2v表示關(guān)于原點(diǎn)的反射集,則A被S擊中的結(jié)果可表示為:
由此可看出,A被S的擊中結(jié)果可以理解為A中具有S1幾何特征的部分除去A中具有S2幾何特征的部分的差集,另外,擊中/擊不中運(yùn)算也可以利用腐蝕和膨脹操作來實(shí)現(xiàn)。借助于腐蝕、膨脹兩個(gè)基本運(yùn)算來理解,A被S擊中的結(jié)果相當(dāng)于A被S1腐蝕的結(jié)果與A被S2的反射集S2v膨脹的結(jié)果之差。
擊中/擊不中運(yùn)算可以用于保持拓?fù)浣Y(jié)構(gòu)的形狀細(xì)化,以及形狀的識(shí)別和定位。
數(shù)學(xué)形態(tài)學(xué)細(xì)化算法便是一種常見的使用擊中/擊不中變換的形態(tài)學(xué)算法。其基本思想是:在給定系列具有一定形狀的結(jié)構(gòu)元素后,順序循環(huán)地刪除滿足擊中變換的像素,具體描述如下:
對(duì)于結(jié)構(gòu)元素對(duì)S=(B,C),利用S細(xì)化A定義為:AS=A-(A·S)。即AS為在A中去掉A被S擊中的結(jié)果。
更一般地,利用結(jié)構(gòu)元素對(duì)序列S1,S2,…SK,迭代地產(chǎn)生輸出序列:
換而言之,該過程是先用S1細(xì)化一遍,然后再用S2對(duì)前面結(jié)果細(xì)化一遍,如此繼續(xù)直到用SK細(xì)化一遍,整個(gè)過程可再重復(fù),直到?jīng)]有變化產(chǎn)生為止。假設(shè)輸入集合是有限的,最終得到一個(gè)細(xì)化的對(duì)象。結(jié)構(gòu)對(duì)的選擇僅受結(jié)構(gòu)元素不相交的限制。事實(shí)上,每一個(gè)Si都可以是相同的結(jié)構(gòu)對(duì),即在不斷重復(fù)的迭代細(xì)化過程中使用同一個(gè)結(jié)構(gòu)對(duì)。如果在對(duì)圖像細(xì)化的過程中,僅使用一個(gè)結(jié)構(gòu)對(duì),則細(xì)化是有方向的。如果循環(huán)使用8個(gè)方向的結(jié)構(gòu)元素對(duì),則細(xì)化可以以更對(duì)稱的方式完成。
Zhang快速并行細(xì)化算法是Zhang在1984年提出的。設(shè)已知目標(biāo)點(diǎn)標(biāo)記為1,背景點(diǎn)標(biāo)記為0。定義邊界點(diǎn)是本身標(biāo)記為1而其8連通鄰域中至少有1個(gè)點(diǎn)標(biāo)記為0的點(diǎn)。
(1)考慮以邊界點(diǎn)為中心的8鄰域,設(shè)P1為中心點(diǎn),對(duì)其鄰域的8個(gè)點(diǎn)逆時(shí)針繞中心點(diǎn)分別標(biāo)記為P2,P3,…,P9,其中P2位于P1的上方。如果P1=1(即黑色像素),若同時(shí)滿足下面4個(gè)條件:
其中,B(P1)是P1的非零領(lǐng)點(diǎn)的個(gè)數(shù);A(P1)是以P2,P3,…,P9為序時(shí)這些點(diǎn)的值從0~1變化的次數(shù)。對(duì)所有邊界點(diǎn)檢驗(yàn)完畢后,將所有標(biāo)記點(diǎn)去除。
(2)第2步與第1步類似,僅需將條件③和④替換為條件⑤和⑥。如果P1=1(即黑色像素),同時(shí)滿足下面4個(gè)條件:
同樣對(duì)所有邊界點(diǎn)都檢驗(yàn)完畢后,將所有標(biāo)記點(diǎn)去除。
(3)以上兩步操作構(gòu)成一次迭代,多次迭代運(yùn)算直至沒有點(diǎn)再滿足條件,算法結(jié)束,這時(shí)剩下的點(diǎn)組成區(qū)域的骨架[10]。
Rosenfeld細(xì)化算法屬于并行細(xì)化算法,實(shí)際上是基于模板匹配的一種算法。設(shè)已知目標(biāo)點(diǎn)標(biāo)記為1,背景點(diǎn)標(biāo)記為0。定義邊界點(diǎn)是本身標(biāo)記為1而其8連通鄰域中至少有1個(gè)點(diǎn)標(biāo)記為0的點(diǎn)。目標(biāo)像素3×3領(lǐng)域以P1為中心點(diǎn),對(duì)其鄰域的8個(gè)點(diǎn)逆時(shí)針繞中心點(diǎn)分別標(biāo)記為P2,P3,…,P9,其中P2位于P1的上方。Rosenfeld細(xì)化實(shí)質(zhì)上需要對(duì)目標(biāo)像素點(diǎn)進(jìn)行兩步模板匹配,算法的具體步驟如下:
步驟一:首先用如圖3所示的模板一中4個(gè)模板進(jìn)行匹配。如果模板匹配成功,表明目標(biāo)點(diǎn)P1位于邊界位置,那么進(jìn)行步驟二的8個(gè)模板匹配;如果模板匹配失敗則跳過P1點(diǎn),進(jìn)行下一個(gè)像素的檢驗(yàn)。圖中4個(gè)模板中X代表0或1。
圖3 模板一
步驟二:在步驟一中4個(gè)模板匹配成功之后,就進(jìn)行如圖4所示的模板二中的8個(gè)模板匹配。如果8個(gè)模板中有任何一個(gè)匹配,表面P1屬于單像素連接點(diǎn),刪除P1會(huì)破壞目標(biāo)圖像的連通性;如果8個(gè)模板都沒有匹配成功,則P1點(diǎn)刪除,即由1變?yōu)?。然后進(jìn)入下一像素的檢驗(yàn)。以下8個(gè)模板中,X代表為0或1;3個(gè)Y中至少有一個(gè)Y為1,即Y+Y+Y 1。
圖4 模板二
步驟三:對(duì)于圖像中所有像素進(jìn)行步驟一、二中的模板匹配,迭代運(yùn)算直至整幅圖像沒有可以再刪除的像素點(diǎn),最終得到的圖像即為骨架。
本研究使用VC++6.0編程工具,分別將以上3種經(jīng)典細(xì)化算法應(yīng)用于葡萄樹枝的骨架提取,骨架圖像如圖5~7所示。
圖5 形態(tài)學(xué)細(xì)化
圖6 Zhang細(xì)化算法
圖7 Rosenfeld細(xì)化
合理的骨架提取算法應(yīng)該達(dá)到以下要求:①骨架圖像必須保持原圖像的連通性;②骨架圖像應(yīng)盡可能是原圖像的中心線;③骨架圖像應(yīng)盡可能細(xì),最好單像素。
本研究依據(jù)合理骨架的基本要求,對(duì)3種骨架提取的效果進(jìn)行對(duì)比分析。
樹枝在某些局部位置,因其樹皮粗糙、枝干粗細(xì)不均勻,形狀不規(guī)則等問題,樹枝邊緣難免出現(xiàn)一些細(xì)微毛刺。局部毛刺對(duì)比如圖8所示,從圖8中可以看出,3種細(xì)化算法中,形態(tài)學(xué)細(xì)化算法對(duì)于此類毛刺干擾較為敏感,細(xì)化后容易出現(xiàn)冗余的細(xì)小分支。
局部連通性對(duì)比如圖9所示,圖9中Zhang細(xì)化圖像在樹枝的分枝處易發(fā)生形變、錯(cuò)位,改變了原圖像的連通性。而形態(tài)學(xué)細(xì)化和Rosenfeld細(xì)化較好地維持了圖像的連通性。
局部中心位置對(duì)比如圖10所示,圖10中Zhang細(xì)化所得局部圖像中,中間連接部分枝干明顯發(fā)生移位,偏離了原圖中對(duì)應(yīng)的中心線位置。而形態(tài)學(xué)細(xì)化和Rosenfeld細(xì)化相對(duì)較接近中心線位置。
圖8 局部毛刺對(duì)比
圖9 局部連通性對(duì)比
圖10 局部中心位置對(duì)比
由于目標(biāo)圖像樹枝像素占總圖像像素比例不高,計(jì)算量不大,3種細(xì)化算法均能快速取得計(jì)算結(jié)果,滿足實(shí)際應(yīng)用要求。
綜合以上因素,Rosenfeld細(xì)化算法滿足骨架提取的3個(gè)基本要求,所提取的葡萄樹枝骨架圖像較為理想。
本研究介紹了葡萄樹枝實(shí)驗(yàn)圖像的采集環(huán)境和方法,通過濾波、閾值分割等預(yù)處理提取了葡萄樹枝二值圖像。筆者分別采用圖像形態(tài)學(xué)細(xì)化算法、Zhang細(xì)化算法以及Rosenfeld細(xì)化算法對(duì)葡萄樹枝進(jìn)行骨架提取,并分析比較了3種算法的處理效果。形態(tài)學(xué)細(xì)化算法對(duì)于樹枝邊緣毛刺較為敏感,容易產(chǎn)生冗余小分支;Zhang細(xì)化在樹枝的分枝處的連通性及中心性較差。
實(shí)驗(yàn)結(jié)果表明,Rosenfeld細(xì)化算法最為理想,更適用于提取葡萄樹枝圖像的骨架,為進(jìn)一步檢測(cè)葡萄樹枝的芽點(diǎn)奠定了基礎(chǔ)。
(References):
[1]胡 偉.葡萄生產(chǎn)機(jī)械化作業(yè)環(huán)節(jié)及要求[J].農(nóng)業(yè)機(jī)械,2005(5):82-83.
[2]GAO Ming,LU Tien-fu.Image Processing and Analysis for Autonomous Grapevine Pruning[C]//Proceedings of the 2006 IEEE.Luoyang:[s.n.],2006:922-927.
[3]LEE M F.An Intelligent Computer Vision Control and Tar?get Tracking System Design of an Agricultural Grapevine Pruning Robot[D].Ithaca:Cornell University,1996.
[4]王家隆,郭成安.一種改進(jìn)的圖像模板細(xì)化算法[J].中國(guó)圖象圖形學(xué)報(bào),2004,9(3):297-301.
[5]江 萍,徐曉冰,方 敏.基于形態(tài)學(xué)骨架提取算法的研究及其實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2003,23(S1):297-137.
[6]ZHANG T Y,SUEN C Y.A fast parallel algorithm for thin?ning digital patterns[J].Communications of the ACM,1984,27(3):236-239.
[7]PAVLIDIS T.Algorithms for Graphics and Image Process?ing[M].Washington DC:Rockville Computer Science Press,1982.
[8]左 飛,萬晉森,劉 航.數(shù)字圖像處理與實(shí)踐:基于Visu?al C++開發(fā)[M].北京:電子工業(yè)出版社,2011.
[9]崔 屹.圖象處理與分析-數(shù)學(xué)形態(tài)學(xué)方法及應(yīng)用[M].北京:科學(xué)出版社,2000.
[10]吳選忠.Zhang快速并行細(xì)化算法的擴(kuò)展[J].福建工程學(xué)院學(xué)報(bào),2006,4(1):89-92.