方 政,胡曉輝,陳 永,李蘭鳳
(蘭州交通大學 電子與信息工程學院,甘肅 蘭州 730070)
基于圖像處理的番茄識別方法
方政,胡曉輝*,陳永,李蘭鳳
(蘭州交通大學 電子與信息工程學院,甘肅 蘭州 730070)
針對重疊番茄識別的特點和要求,提出一種新的田間環境下重疊番茄的識別方法。該算法融合了最小二乘法曲線擬合以及Hough變換,首先獲取重疊番茄的輪廓曲線,并進行凹點檢測,實現了輪廓曲線的分段;再利用最小二乘法對輪廓曲線進行分段擬合,得到重疊情況下的多個目標圓;再利用Hough變換方法對輪廓曲線進行變換識別,獲取Hough變換識別的結果;最后利用最小二乘法得到的分段擬合結果修正Hough變換的結果。算法既保留了Hough變換獲得的目標整體性,又保證了最小二乘法分段擬合的精確性。通過試驗證明,算法識別的平均誤差為5.1%。
重疊番茄;最小二乘法擬合;Hough變換;輪廓曲線;分段擬合
文獻著錄格式:方政,胡曉輝,陳永,等.基于圖像處理的番茄識別方法 [J].浙江農業科學,2015,56(12):1941-1946.
計算機視覺技術已經在農業環境中得到了廣泛的應用,科研人員在作物果實識別領域已經進行了較為深入的研究,也提出了多種識別方法。在番茄識別領域中,趙杰文等[1]研究了基于 HIS顏色特征的田間成熟番茄識別技術,利用H分量分離出成熟番茄區域,計算番茄質心坐標,實現了對成熟番茄相互分離情況的識別;呂小蓮等[2]研究了基于顏色特征的日間番茄識別方法,利用顏色指標的差異建立顏色模型,并利用OTSU法將成熟番茄從背景中分離出來;鄭小東等[3]根據顏色特征利用閾值自動設定的方法對圖像進行分割,自動、快速識別紅色番茄;蔣煥煜等[4]利用雙目立體視覺技術和成熟番茄與背景顏色特征的特點,實現成熟番茄位置信息的獲取;紀平等[5]在進行輪廓提取的基礎上,用圓對番茄輪廓進行擬合,可以識別各種光照條件下的果實;王玉飛等[6]選擇了3個形狀特征和5個紋理特征參數,進行統計分析,對相互分離的成熟番茄的識別度較高。
以上算法對番茄的識別基本上都是基于顏色或者形狀特征分析的,識別的重點在于番茄形態和位置,而對于重疊番茄這一情況的識別考慮較少。但在實際情況中,番茄的生長是簇狀的,基本上都伴隨著重疊的生長情況,因而考慮實際應用的情況下,需要對重疊番茄進行識別,并且盡可能地提高識別的準確率,已經有一些學者對于重疊番茄的識別進行了一些研究。尹建軍等[7]提出了不同生長狀態下多目標番茄圖像的識別方法,項榮等[8]對于重疊番茄識別提出了基于邊緣曲率分析的算法。這些研究都是基于輪廓形態的識別方法,所考慮的因素都是基于輪廓形態的,如果出現假輪廓,則會影響識別效果,因此適應性不強。因而要想進一步提高識別的準確度,選擇增強算法的適應性,就需要考慮更多的因素,結合多方面的識別方法,開發出新的重疊番茄識別方法。
為提高重疊番茄識別的精確度,本文提出一種基于最小二乘法擬合[9]修正的 Hough變換[10]算法,該算法的主要思想是用最小二乘法擬合所得的結果對傳統的Hough變換結果進行修正,將二者的優點結合起來,相互彌補不足,達到提高識別準確度的目的。已有研究結合Hough變換與改進最小二乘法,對于直線進行了檢測研究,實現了檢測精度的提升,但未對圓形檢測進行研究[11]。由于番茄果實呈現圓球形的體態,因此本算法對于重疊番茄的識別比較適用。
該算法主要包括圖像分割、二值化、輪廓提取、凹點檢測、最小二乘法擬合、Hough變換等步驟,算法流程圖如圖1所示。

圖1 算法的流程
1.1圖像預處理
圖像預處理階段主要包括圖像分割、形態學填補孔洞以及輪廓提取3個步驟。
1.1.1圖像分割
圖像分割的目標是將目標與背景較為明顯的區分開來,為下一步輪廓提取提供便利。本文采用的圖像分割算法是提取HSI彩色圖像模型中的色調(Hue)分量[12], 通過灰度閾值分割[13], 獲取圖像的灰度圖,達到分割的目的。
1.1.2形態學填補[14]
利用數學形態學閉運算,獲取二值化圖像。
1.1.3輪廓提取
采用文獻 [15]中所使用的8-領域邊界跟蹤算法,提取番茄圖像的邊緣輪廓。按照從左到右,從下到上的順序掃描二值圖像,從找到的第1個黑色像素點開始,記為目標物體最左下方的邊緣點P0,依次掃描其右、右上、上、左上,得到下一個邊緣點P1,再按照右、右上、上、左上、左、左下、下、右下的順序尋找其8領域中的邊緣點P2。如果一個點的左、右、上、下都不是黑色像素點,則其為邊緣點。依次查找,直到所找到的邊緣點和第一個邊緣點重合,即Pn=P0,則說明邊緣輪廓追蹤完成,獲得的各個邊緣點即組成了邊緣輪廓,輪廓提取完成。通過邊緣跟蹤提取的番茄輪廓是一條封閉曲線 (P0,P1,…,Pn-1)。
預處理的情況如圖2所示。經過預處理后,獲取的輪廓圖像可以轉入下一個階段,即凹點檢測。

圖2 預處理后的二值圖和輪廓圖
1.2凹點檢測
提取的番茄輪廓是一條封閉曲線 (P0,P1,…,Pn-1),線寬為單像素,可以近似看成由一系列首尾相連的圓弧組成。多段圓弧相交處有明顯的曲率突變,稱為凹點,對于凹點做出準確的識別是正確做出識別的關鍵。本文采用的是文獻 [16]中所提出的方法,該方法對于輪廓曲線的判別設定判別準則,基于凹點的性質,即凹點在曲線旋轉變換中始終保持局部極值特性,而非凹點不具備這種特性。進行旋轉處理后,凹點依然滿足判定條件:

對圖像作連續的旋轉,并判斷旋轉后的各點是否滿足 (1)式,最后統計各點滿足式 (1)的次數,次數超過閾值Tp(Tp=200)的點即為凹點。如圖3中,A,C,D,E,G點經過旋轉后,仍然滿足判別條件,故為非凹點,B和F經過旋轉后,不再滿足判別條件,為凹點。

圖3 局部極值點與曲線旋轉后的局部極值點
通過凹點檢測出的點,將原有的輪廓曲線劃分成一段段圓弧,對于輪廓曲線可以使用Hough變換和最小二乘法曲線擬合對其進行處理。
1.3Hough變換
Hough變換由Paul Hough于1962年提出,是尋找能把圖像空間內具有一定關系的像元用某一解析形式聯系起來的參數空間累積對應點,其實現的是一種從圖像空間到參數空間的映射關系。
Hough變換的抗干擾能力較強,對于待檢測曲線上含有細小的斷裂帶、波動,或者是含有噪聲等,都能較準確地檢測出曲線,現在已經主要用于圓或者橢圓的檢測。Hough變換幾乎不受待識別形狀大小和在圖像中所處位置的影響,因而在計算機圖像處理中獲得了廣泛的應用。
由于番茄圖像類圓的特點,本文首先采用Hough變換對其進行檢測。在利用Hough變換對圓進行檢測之前,首先要進行一些關于圓的設定,設圓是以(a,b)為圓心,以r為半徑,用數組(a,b,r)來表示。若有一個圓經過點 (x1,y1),則下式成立:

利用Hough變換檢測圓的主要思想和步驟是:
1)所有的經過點(x1,y1)的圓都可以表示為(a1(i),b1(i),r1(i)),r1∈(0,+∞),i∈(0,+∞),每個不同的 i值都對應一個不同的圓,(a1(i),b1(i),r1(i))表示為i個過點(x1,y1)的圓。
2)同理,過點 (x2,y2)的圓可以表示為(a1(i),b1(i),r1(i)),r2∈(0,+∞),i∈(0,+∞),過點(xn,yn)的圓可以表示為(an(i),bn(i),rn(i)),rn∈(0,+∞),i∈(0,+∞)。
3)如果這些點在同一個圓上,就存在一個值(a0,b0,r0),使得a0=a1=a2=… =an,b0=b1= b2=…=bn,r0=r1=r2=…=rn,也就是說這些點同時在圓(a0,b0,r0)上。
過點 (x1,y1)的圓(a1(i),b1(i),r1(i)),當r1(i)已經確定時,(a1(i),b1(i))的軌跡是一個以(x1,y1,r1(i))為中心,半徑為 r1(i)的圓。所有的圓(a1(i),b1(i),r1(i))就組成了一個以(x1,y1,0)為頂點,錐角為90°的圓錐面。同理,過點(x2,y2)的所有圓(a2(i),b2(i),r2(i))和過點(x3,y3)的所有圓(a3(i),b3(i),r3(i))都分別組成了一個以(x2,y2,0)和(x3,y3,0)為頂點,錐角為90°的圓錐面。這3個錐面的交點A(xa,ya,za)在平面XOY上的投影A′(xa,ya,0)就是同時過這3個點的圓的圓心 (圖4和圖5)。
以上Hough變換實現了對于圓的識別。本文對于前文獲取的重疊番茄的輪廓曲線圖像,首先采用Hough變換方法對其進行處理,對于輪廓曲線中獲取的輪廓邊緣,Hough變換可以較為準確地識別,但是由于存在重疊、相互遮蔽現象,要想提高識別的準確度,單靠Hough變換是不夠的,因此,提出利用最小二乘法對輪廓曲線進行擬合,并以擬合結果對Hough變換的結果進行修正,從而提高識別準確度。

圖4 3個點的Hough變換

圖5 3個點的Hough變換俯視圖
1.4最小二乘法曲線擬合
最小二乘法 (又稱最小平方法)能夠較快地求出未知的數據,并使得這些求得的數據與實際數據之間誤差的平方和為最小。高斯-馬爾科夫定理(Gauss-Markov theory)已經證明了在給定經典線性回歸的假定下,最小二乘估計量是具有最小方差的線性無偏估計量。最小二乘法也可用于對各種曲線進行擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。
最小二乘法的基本公式:

將最小二乘法用于曲線擬合,就是尋求與給定點的距離平方和為最小的曲線p(x)。函數p(x)稱為擬合函數或最小二乘解,求擬合函數p(x)的方法稱為最小二乘法的曲線擬合[17]。
對于重疊番茄圖像來說,由于擬合所參照的曲線包含多個凹點,直接進行擬合的話,誤差會非常大,因此要采用分段的方法,對各凹點之間的圓弧進行分段擬合,計算圓心和半徑。
采用最小二乘法對圓進行擬合,計算圓弧的圓心和半徑。
將圓弧上的各像素點的坐標記作(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)。設圓心坐標為 (xc,yc),半徑為 R,則可通過圓的方程:

依據最小二乘法原理,計算各像素點到擬合圓距離的平方和,即:


對于圓弧分段進行擬合,存在一個問題,即如果兩段圓弧出現幾近相切的情況下,則在該點處可能出現對于凹點的漏檢,分別代表2個果實的圓弧被誤判為同一段圓弧,這會造成擬合出的圓弧直徑遠遠大于實際直徑,但是限于番茄的成長情況,這種情況極少出現,因此本文不予考慮。
1.5最小二乘法擬合修正的Hough變換結果
大多數番茄的輪廓是橢圓,而不是一個真正的圓,因此Hough變換對于同一個番茄輪廓的檢測結果可能不唯一,每個受到檢測的番茄輪廓都有多個檢測出的圓心,但這些同屬于一個番茄輪廓的圓心彼此之間比較接近,可以采用去平均值的方法,確定圓心,將鄰近10個像素區域以內的圓心作為同一個圓心的波動區域,對區域內的圓心坐標(x1,y1),(x2,y2),…,(xn,yn)等進行求取平均值(ˉx,ˉy),同時對于(x1,y1),(x2,y2),…,(xn,yn)所對應的半徑r1,r2,…,rn等求取平均值ˉr,以(ˉx,ˉy)為圓心,為半徑,作為Hough變換的最終結果,寫作:

最小二乘法擬合曲線方程記作:

在利用最小二乘法獲得擬合曲線后,計算擬合曲線方程與Hough變換獲得的圓的方程的相似度σ,計算公式:

其中,a,b,c為x,y,z3個元素差值所占的權值比重,本文取a=0.2,b=0.2,c=0.6。
當σ≤2時,將2個圓進行均值化處理,取二者的坐標均值和半徑均值,生成新的圓的方程;σ >2時,2種方法取得的方程之間偏差較大,則舍棄最小二乘法計算的結果,以Hough變換的結果為最終結果。
為驗證提出的算法的有效性,采用多幅圖像進行實驗。在蘭州交通大學農業物聯網實驗室溫室內通過專用監測攝像頭 (型號:環宇飛揚 V8,感光元件:CMOS,對焦方式:自動對焦,白平衡:自動)獲取多張含有成熟番茄的圖像 (分辨率800× 600),以獲取圖像作為實驗圖像,采用提出的算法,測試軟件為Matlab7.0,進行實驗。
圖像分割所獲取的輪廓圖像如圖6所示。

圖6 原圖與獲得的輪廓圖像
由圖7可以看出,最小二乘法對于邊緣輪廓曲線的擬合,與邊緣的重合度不高,這是因為最小二乘法擬合是根據輪廓邊緣上多個點的綜合考量,因此存在著不同程度的偏移值。而圖8中,Hough變換的識別,使用Hough變換后,使用本文的均值化法,獲得的識別圓,基本上能切合番茄的輪廓邊緣,但是由于番茄本身并不完全呈現圓形的輪廓邊緣,因此Hough變換存在一定的誤識別,邊緣與變換圓之間有一些空隙存在。圖9是利用最小二乘法修正Hough變換的結果,結合這2種方法獲得的邊緣,既保留了 Hough變換獲得的目標整體性,又保證了最小二乘法分段擬合的精確性,效果較為理想。通過50幅圖像的測試,對測試圖像進行直徑檢測,與其理論值的最大絕對誤差為6像素,最大相對誤差為6.6%。

圖7 最小二乘法擬合結果

圖8 Hough變換識別標記結果

圖9 最小二乘法修正Hough變換結果
通過本文算法的識別,得到識別結果 (表1)。從表1中可以看到,對于遮掩度為0,即未被遮擋番茄來說,誤差為3.2%,而遮掩度<50%的番茄的誤差為5.5%,對于遮掩度>50%的番茄的識別誤差為6.6%。
整體來看,單獨使用最小二乘法擬合或者是僅使用Hough變換對輪廓曲線進行識別的效果,都存在著一定的誤差,而結合了最小二乘法曲線擬合修正的Hough變換識別,不僅能解決Hough變換中對于重疊果實的識別錯誤率較高的問題,也能夠對最小二乘法擬合的曲線做出校正,使得誤差更小,結果更加準確,證明本算法在識別重疊番茄的問題上更具有有效性。

表1 番茄果實的識別情況
本文提出了一種新的重疊番茄檢測算法,在目標輪廓提取后,分別進行Hough變換和最小二乘法擬合,利用最小二乘法擬合的結果對Hough變換的結果進行修正,從而達到提高識別率和識別準確度的目的。經過實驗驗證,該算法識別率較傳統Hough變換算法和最小二乘法擬合,對于番茄在重疊情況和非重疊情況下的識別率均有了較為明顯的提高,降低了誤識別率,證明本算法的有效性。
[1] 趙杰文,劉木華,楊國彬.基于H IS顏色特征的田間成熟番茄識別技術 [J].農業機械學報,2004,35(5):122-135.
[2] 呂小蓮,張祖立,呂小榮.機器視覺識別田間成熟番茄的研究 [J].安徽農業科學,2008,36(4):1322-1323.
[3] 鄭小東,趙杰文,劉木華.基于雙目立體視覺的番茄識別與定位技術[J].計算機工程,2004,30(22):155-157.
[4] 蔣煥煜,彭永石,申川,等.基于雙目立體視覺技術的成熟番茄識別與定位 [J].農業工程學報,2008,24(8):279-283.
[5] 紀平,王俊,陳鶴碧,等.基于圖像的番茄識別與幾何尺寸測量 [J].安徽農業科學,2012,40(33):16426-16428.
[6] 王玉飛,尹建軍,仲蘇玉,等.基于特征分析的番茄識別及其軟件的快速開發 [J].計算機工程與設計,2011,32 (11):3824-3827.
[7] 尹建軍,毛罕平,王新忠,等.不同生長狀態下多目標番茄圖像的自動分割方法 [J].農業工程學報,2006,22 (10):149-153.
[8] 項榮,應義斌,蔣煥煜.基于邊緣曲率分析的重疊番茄識別 [J].農業機械學報,2012,43(3):157-162.
[9] 李婷,柳寧.基于機器視覺的圓定位技術研究 [J].計算機工程與應用,2012,48(9):153-156.
[10] Hough P V.Machine analysis of bubble chamber pictures [G]//Proc.Int.Conf.H igh Energy Accelerators and Instrumentation.Switzerland:Geneva,1959:554-556.
[11] 郭斯羽,翟文娟,唐求.結合Hough變換與改進最小二乘法的直線檢測 [J].計算機科學,2012,39(4):196-200.
[12] Schertz C E,Brown G K.Basic considerations in mechanizing citrus harvest[J].Transactions of the ASAE,1968,11 (2):343-346.
[13] 劉金,金煒東.噪聲圖像的快速二維Otsu閾值分割 [J].計算機應用研究,2013,30(10):3169-3171.
[14] 岡薩雷斯.數字圖像處理 [M].3版.北京:電子工業出版社,2011.
[15] 夏澤邑,劉沖,王躍宗,等.視覺模型標定中的高精度圖像特征提取算法 [J].計算機輔助設計與圖形學學報,2005,17(4):819-824.
[16] 陳英,李偉,張俊雄.基于圖像輪廓分析的堆疊葡萄果粒尺寸檢測 [J].農業機械學報,2011,42(8):168-172.
[17] 王穗輝.誤差理論與測量平差 [M].上海:同濟大學出版社,2010.
(責任編輯:張 韻)
S 641;TP 391
A
0528-9017(2015)12-1941-05
10.16178/j.issn.0528-9017.20151210
2015-07-01
國家自然科學基金 (61163009);甘肅省科技支撐計劃 (144NKCA040);甘肅省教育廳科研資助項目 (110405)
方 政 (1990-),男,安徽合肥人,碩士研究生,主要研究方向為智能信息處理。E-mail:fangzh0415@163.com。
胡曉輝 (1963-),男,甘肅武威人,教授,博士,碩士研究生導師,主要研究方向為軟件形式化、智能信息處理。E-mail:hxh-6302@163.com。