楊 帆,李鵬飛,劉 庚,王偉斌
(西安理工大學 機械與精密儀器工程學院,陜西西安710048)
至2025年,我國水果總產量有望突破3億噸[1],但我國的果蔬產業自動化水平偏低,大多依賴于人工操作。同時,農村人口老齡化以及大量農民涌入城區務工,將使得果蔬產業面臨勞動力不足的問題,所以研發采摘機器人具有重要的現實意義。
近年來,國內外學者在果蔬采摘機器人的目標識別方面已經展開了研究,Wachs等[2]通過采集到的紅外圖像和彩色圖像對目標進行識別。Xiang等[3]利用目標輪廓與遮擋部分輪廓曲率差異,過濾掉具有異常曲率的輪廓點,并利用剩余輪廓信息構建新的輪廓,完成對番茄目標的識別。王海青等[4]采用最小二乘支持向量機算法,分割溫室大棚里的黃瓜圖像。徐越等[5]提出了一種基于重疊目標的識別算法。Nuske等[6]設計了一種可以穿梭在葡萄園中進行葡萄產量預測的裝置。現有文獻主要是針對單一果實的識別與抓取,在處理多個果實的識別與定位時,采摘機器人無法準確、有效地摘取果實。
本文以復雜背景下多個橘子目標為研究對象,針對傳統邊緣檢測算法的不足,提出采用K-means聚類算法與Canny邊緣檢測算法相結合的方法對橘子目標輪廓進行識別。運用單目立體視覺平移測量模型對多個橘子目標進行定位,并進行實驗驗證,為采摘機器人實時摘取多目標技術的研究提供參考。
目標輪廓是圖像中灰度值發生劇烈變化的像素構成的集合,包含了目標形狀的所有信息。通過檢測目標的輪廓,可以完成對目標的識別。在圖像處理中,常用的微分邊緣檢測算法有Robert算子[7]、Prewitt算子[8]、Sobel算子[9]等。這些算法選擇不同的模板遍歷圖像中的每個像素點,對像素點灰度值分別沿x和y方向求偏導,得到偏導分量后,采用不同的范數計算該像素點梯度矢量的幅值,以該幅值作為目標邊緣檢測的依據。
例如采用Robert算子對原始圖像圖1(a)和(c)中橘子目標進行邊緣檢測,其效果圖分別如圖1(b)和(d)所示。從該效果圖中可以看出,圖像中背景線條邊緣與橘子目標邊緣糅雜在一起,無法檢測到完整的橘子輪廓。這是因為圖像背景中含有較多的枝葉,嚴重干擾了橘子輪廓的檢測。
圖1表明傳統的邊緣檢測算法不能有效地檢測出所需的目標輪廓,無法對圖像中復雜背景下橘子目標進行有效識別。故本文采用K-means聚類算法將目標物從復雜背景中提取出來,再運用Canny邊緣檢測算法進行邊緣檢測,以獲得完整的目標輪廓。

圖1 原始圖像及邊緣檢測效果圖Fig.1 Original images and edge detection results
為提高照片質量,降低圖像中的噪聲,凸顯感興趣區域,采用噪聲過濾措施。中值濾波是一種非線性數字平滑技術,對于處理斑點噪聲和椒鹽噪聲非常有效,并且能消除孤立點的干擾。通過對橘子果實圖像的觀察,發現噪聲主要為斑點噪聲,因此選用中值濾波為本研究去噪。
濾波窗選取可以根據目標物的大小形狀和希望達到的效果選用線形、正方形、圓形以及十字形等。對于緩慢變化的輪廓,使用方形或者圓形窗口較為理想。橘子果實外觀輪廓具有緩慢變化且延長的特性,所以本文采用3×3的正方形窗口進行中值濾波。從處理結果可以看出,中值濾波能有效地去除背景和果實表面的斑點噪聲,使果實更加凸顯[10],如圖2所示。

圖2 中值濾波橘子果實圖像Fig.2 Median filter image of oranges
K-means聚類算法可將復雜背景下多果圖像處理成二值區域圖像和彩色區域圖像,能夠完整、清晰地分割出目標輪廓,為目標輪廓的邊緣檢測提供有效保障。
K-means聚類算法的原理是通過迭代過程把原始圖像的像素數據集劃分為不同的類別,使得評價聚類性能的準則函數達到最優,生成的每個聚類(又稱簇)類內緊湊、類間獨立[11]。
平均誤差準則函數是常用的聚類準則函數,其定義為:

(1)
式中,E為平均誤差;P為橘子圖像中像素點的像素值;mj為橘子圖像中簇Cj的像素值的平均值;Cj為橘子圖像中第j個像素聚類;k為像素點聚類的數目。
K-means聚類算法的具體步驟為:
1) 給定大小為n的數據集,令迭代次數I=1,選取k個初始聚類中心Zj(I),j=1,2,… ,k;
2) 計算出橘子圖像中每個像素坐標(xi,yi)與聚類中心的距離D[(xi,yi),Zj(I)],i=1,2,… ,n;
如果滿足:
D[(xi,yi),Zk(I)]=minD[(xi,yi),Zj(I)],I=1,2,…,n
(2)
則(xi,yi)∈Ck,Ck為橘子圖像中像素聚類點數目。
3) 計算k個新的聚類中心
(3)

4) 判斷:
若Zj(I+1)≠Zj(I),則I=I+1,返回步驟2;否則算法結束。
針對圖1(a)和(c),圖中主體顏色為橘黃色和綠色,經多次試算,將圖像中的像素數據劃分為兩類,聚類數目k取值為2,應用K-means聚類算法對原始圖像進行聚類處理。
分割后,獲得枝葉遮擋下橘子目標的二值區域圖及彩色區域圖分別如圖3和圖4所示。
從圖3和圖4可以看出,采用K-means算法可以有效地分割出復雜背景下橘子目標的輪廓區域。

圖3 雙果分割圖像Fig.3 Segmentation image of double oranges

圖4 多果分割圖像Fig.4 Segmentation image of multiple oranges
圖3和圖4顯示,雖然對橘子的目標區域進行了有效分割,但并沒有提取橘子目標的輪廓信息。
由于果實所處的自然環境是隨機、開放的,選擇一種合適的輪廓提取方法非常重要。輪廓提取方法主要有數學形態學邊緣提取法、boundaries邊緣追蹤法以及Canny邊緣檢測法等方法,其中Canny邊緣檢測算法具有較好的信噪比、較高的定位精度以及邊緣響應次數較少的性能[12],可以提高檢測邊緣的敏感性,且能很好地抑制圖像中的噪聲[13]。因此,本文選用Canny邊緣檢測算法對橘子圖像輪廓進行檢測,效果如圖5所示。可以看出,圖像中背景邊緣線條得到有效去除,處理效果得到進一步改善。
對圖5中的圖像局部放大后,發現目標輪廓內部仍有部分孔洞存在,如圖6所示。這些細小的孔洞噪聲會影響機器視覺系統對目標識別定位的精確度。

圖6 局部圖像Fig.6 Part of orange contour image
孔洞定義為由前景像素相互連接的邊界所包圍的背景圖像。針對橘子目標物由于光照和果實本身斑點造成的孔洞提出利用一種膨脹、求補和交集的方法。令A表示一個包含子集的集合,其子集的元素是區域的8連通邊界點,每個邊界包圍一個背景區域(即一個孔洞)。確定出孔洞面積閾值,用8連通域模板遍歷整副圖像,尋找需要填充的孔洞。
定義圖像中第一個像素點X0,形成一個陣列從X0開始逐行遍歷圖像填充孔洞,其過程為:
Xl=(Xl-1⊕B)∩Acl=1,2,3,…
(4)
式中,B為膨脹結構元;Ac為集合A的補集。
接下來對果實重疊部分的輪廓進行分離,以雙果圖像為例,圖3(a)中數據所對應的矩陣為D=(aij)mn,圖5(a)中數據所對應的矩陣為E=(bij)mn(i=1,2,…,m,j=1,2,…,n),其中m、n為矩陣的行數與列數。將圖3(a)和圖5(a)中的數據按式(5)進行疊加,疊加后可得到圖7所示的圖像。
(5)
仿真結果顯示,通過以上操作有效地去除了噪聲斑點干擾。
對圖1(a)和(c)中原始橘子圖像若不進行圖像分割,直接采用Canny邊緣檢測算法進行目標輪廓檢測,其效果如圖8所示。對比圖7與圖8的測試效果后發現,圖7中目標輪廓完整,完成了復雜背景下橘子多目標物輪廓的有效檢測。

圖7 去除橘子輪廓殘留物后的圖像Fig.7 Orange contour image removing residue

圖8 Canny邊緣檢測效果圖像Fig.8 Test effect image using the Canny edge detection method
本文采用Hough梯度圓變換檢測算法[14-15]對類圓形橘子果實輪廓進行擬合重建,計算出橘子目標物的圓心和半徑,從而為采摘機器人的機械手爪摘取果實提供依據,該方法能夠有效降低目標自身形變等因素的干擾。
Hough梯度圓變換檢測算法步驟為:
1) 利用Canny算子,計算邊緣二值圖像中非零像素點的x方向導數和y方向導數,得到輸出圖像;沿著邊緣點梯度和梯度的反方向,對參數指定的最小半徑到最大半徑的距離范圍中的像素點進行累加次數統計;
2) 根據Hough圓變換參數設定中的累加閾值,將二維累加中不滿足大于累加閾值的元素排除,同時比較累加器中元素與其鄰域半徑值的大小,如果鄰域中不存在更大的點,則將對應累加器中元素保留,反之排除;
3) 將經過步驟2處理的候選中心按照累加次數降序排序,對候選中心中不滿足預定的圓心間距最小值的點進行排除;
4) 對于每一個中心,將所有的非零像素(梯度值不為零)按照與其中心的距離排序,如果滿足最小半徑與最大半徑范圍,則將該距離值作為候選半徑從小到大排序;
5) 從候選半徑中第一個元素開始,選擇邊緣圖像中非零像素點支持度最高的半徑,根據參數中所設定的圓心的最小距離和半徑閾值,將滿足要求的候選圓心坐標和半徑保存到序列,作為所檢測到圓的圓心與半徑。
圖1(a)和(c)所示復雜背景下的類圓形橘子圖像,經過Hough梯度圓變換檢測后,確定出橘子目標物的圓心和半徑,如圖9所示。圖中包絡橘子目標的圓為橘子輪廓的重建圓,綠色原點表示重建圓的圓心。

圖9 橘子果實定位效果圖Fig.9 Location results of orange fruits
獲取空間目標物的三維信息是實現采摘機器人躲避障礙物、采摘果實的前提。將單目攝像機安裝在采摘機器人手抓末端構成手眼視覺系統(即眼在手系統),具有成本低、工作空間大、能避免自身結構遮擋造成的視野盲區等優勢。
圖像矩主要表示圖像區域的幾何特征,其中采用一階幾何矩與零階幾何矩的比值能夠計算出目標圖像的質心位置。該方法對噪聲不敏感,當有外部噪聲干擾時,計算出的目標物質心不會有太大的偏離。
目標輪廓的質心坐標(u,v)為:

(6)
(7)
式中,f(x,y)為目標圖像的灰度值函數;M10為u方向的一階幾何矩;M01為v方向的一階幾何矩;M00為零階幾何矩;M為u方向的像素值;N為v方向的像素值。
要計算出目標物的深度信息,僅依靠單目攝像機在一個固定點拍攝一副圖像是不夠的。本文建立單目立體視覺平移測量模型,完成橘子目標物的深度測量。
如圖10所示,將攝像機沿著自身坐標系的u軸方向從位置C移動到D,對固定不動的空間目標點W(XW,YW,ZW)進行拍攝,所拍攝的兩幅圖像中目標點W對應的像平面坐標分別為W1(u1,v1)和W2(u2,v2)。由于攝像機是沿著自身u方向平移,則v1=v2,那么點W對應的視差為MW=u1-u2。

圖10 單目立體視覺平移測量模型Fig.10 Translational measurement model of monocular
此時,目標點W在攝像機坐標系下的三維坐標值分別為:
(8)
式中,b為C和D兩位置攝像機的中心連線距離;f*為攝像機焦距,通過張氏平面法[16]獲得;u0、v0為主點坐標。
建立如圖11所示的系統實驗臺,它由XYZ三坐標平臺、攝像機、控制計算機等組成,其中XYZ三坐標平臺的Z軸上安裝有KS352攝像機和手爪。
以橘子為實驗對象,隨意抓取橘子拋灑在實驗平臺上,并隨機在其上覆蓋樹葉,模擬自然條件下橘子所在的環境。通過單目立體攝像機采集橘子目標物原始圖像,如圖12所示。采用本文算法對圖12所示原始圖像進行識別與定位處理,效果如圖13所示。運用單目立體視覺平移測量模型,計算出橘子目標物在攝像機坐標系下的位置坐標,如表1所示。

圖11 系統實驗臺Fig.11 Experimental platform

圖12 橘子原始圖像Fig.12 Orange original image

圖13 橘子目標的識別與定位結果Fig.13 Identification and location results of orange targets
在實驗中,抓取大棗目標的場景如圖14所示,氣動手爪抓取橘子目標的場景如圖15所示。

圖14 氣動手抓抓取大棗目標場景圖Fig.14 Scenes of grasping jujube

圖15 氣動手爪抓取橘子目標場景圖Fig.15 Scenes of grasping orange

序號計算坐標/mm實際坐標/mm坐標誤差/mmxdydzdxsyszsexeyez1238.71282.73211.35669.81378.14340.713252.135253.125252.2481185147280432502502502.2882.2682.6442.1871.8572.2872.1353.1252.248
為了證明本文所提方法的通用性,將目標物換為果型為類圓型的大棗,對其進行識別與定位處理并進行抓取實驗。將大棗隨機拋灑于實驗平臺上,人為地使大棗間形成一定的高度差,再用葉子將其部分遮擋。橘子實驗中每個目標物的深度信息相同,大棗實驗中每個目標物的深度信息不盡相同。對大棗進行識別定位后,攝像機坐標系下的大棗位置坐標如表2所示。
從表1和表2可看出,獲得的各目標物的計算坐標與實際坐標基本吻合,精度較高,但還存在著一定誤差。表中顯示各目標物的坐標誤差基本在5 mm以下,可以滿足農業采摘機器人對目標的識別與抓取要求,從而驗證了本文識別算法的有效性及可行性。

表2 大棗目標實驗結果
1) 將K-means聚類算法與Canny 邊緣檢測算法相結合,有效地將復雜背景下枝葉遮擋或重疊的橘子目標分離出來,連續、完整地檢測出了目標的輪廓。該方法可進一步推廣應用到大棗等類圓目標物的分離與識別。
2) 通過一階幾何矩計算出目標物的質心坐標,再利用Hough梯度圓變換對類圓形橘子果實輪廓進行擬合重建,然后計算出橘子目標物的圓心和半徑。
3) 利用單目立體視覺平移測量模型,移動攝像頭拍攝出不同位置的兩幅圖片,計算出目標物的深度信息,完成了對目標物的三維重構。
4) 將算法移植到XYZ三坐標平臺上,對復雜背景下的橘子和大棗進行抓取實驗。實驗結果表明,所提算法可以對橘子和大棗類圓目標進行有效地識別、定位與抓取。