雷旺雄, 盧 軍
(陜西科技大學機電工程學院,陜西 西安 710021)
視覺識別定位系統(tǒng)是農(nóng)業(yè)采摘機器人中不可或缺的一部分,影響著機器人采摘的準確率和效率。由于農(nóng)業(yè)采摘機器人面對的采摘環(huán)境惡劣,并且背景干擾較大,所以視覺識別定位算法的魯棒性和實時性就變得至關(guān)重要。
近年來,科研人員對葡萄采摘機器人的視覺識別定位進行了大量探索。葡萄果實的分割檢測是葡萄采摘機器人采摘點定位的首要任務(wù)。Luo等[1]通過提取葡萄有效顏色分量,并結(jié)合AdaBoost分類器來檢測成熟的葡萄。羅陸鋒等[2]使用改進的人工蜂群算法對夏黑葡萄進行分割。宋西平等[3]使用快速模糊C均值聚類(FFCM)算法對采集圖像的色調(diào)分量進行分割,完成對夏黑葡萄的檢測。田銳等[4]對RGB顏色模型的顏色樣本值進行計算,并根據(jù)樣本值對紫色和紅色葡萄進行分割,準確率達到90%。馬本學等[5]使用大津法或雙閾值法對3種不同光照條件下的葡萄進行分割,再基于輪廓做外接矩形,然后結(jié)合角點檢測的方法獲得葡萄果實的位置信息。在葡萄采摘機器人的定位研究中,果實重疊是影響定位準確率的重要因素。羅陸鋒等[6]通過圖像分割和輪廓分析,再結(jié)合幾何約束模型,對雙串葡萄進行識別和提取。葡萄果粒直徑的大小反映了葡萄的水分缺失情況,曾慶兵等[7]和陳英等[8]分別基于輪廓分析和數(shù)字形態(tài)學方法對堆疊葡萄果粒進行尺寸檢測。有學者采用澤爾尼克(Zernike)矩邊緣檢測算法對葡萄果實輪廓進行提取,實現(xiàn)了葡萄果實幾何特征的實時檢測[9]。在葡萄生長過程中,套袋是很重要的措施,可以預防病蟲害,并避免農(nóng)藥與葡萄果實的直接接觸。為了獲得葡萄果實的位置信息,楊慶華等[10]提出結(jié)合葡萄顏色和形狀特征來獲取葡萄果實位置信息的方法。張凱等[11]基于遺傳算法對葡萄果實的套袋目標特征進行快速提取與識別。在葡萄的采摘過程中會對葡萄果實造成外在損傷,為解決這一問題,羅陸鋒等[12]通過雙目立體視覺技術(shù)對葡萄包圍體進行求解和定位,實現(xiàn)葡萄采摘機器人的防損采摘。針對葡萄串采摘點的定位問題,張同勛等[13]利用逆向識別算法結(jié)合模板匹配和測距儀來實現(xiàn)葡萄串采摘點的定位。熊俊濤等[14]針對非結(jié)構(gòu)環(huán)境中擾動葡萄的定位問題,通過對葡萄串進行形態(tài)分析并計算單擺運動的周期和擺角進行視覺定位,再使用霍夫直線擬合,結(jié)合角度計算方法獲取采摘點的位置信息。為了對重疊葡萄果實進行采摘,Luo等[15]使用輪廓分析方法對重疊的葡萄果實進行分離,再采用幾何約束法獲取感興趣區(qū)域采摘點的位置信息。羅陸鋒等[16]使用葡萄圖像分割結(jié)合點線最小距離約束方法,實現(xiàn)葡萄采摘機器人采摘點的精確定位。
綜上所述,目前對葡萄采摘機器人的視覺檢測研究主要集中在葡萄果實的分割,葡萄果實尺寸信息的獲取以及葡萄采摘點的定位。現(xiàn)有的葡萄果實采摘點定位研究中,在復雜的葡萄種植環(huán)境下使用霍夫直線檢測容易將葉脈以及其他枝干檢測為直線,影響采摘的準確性。因此,本研究擬基于果梗、樹葉和背景灰度級的不同,提出一種基于分水嶺果梗圖像分割和最小角度約束的采摘點定位方法,然后分別在晴天順光、晴天遮陽和晴天逆光3種條件下進行驗證,以期提高葡萄采摘點視覺定位的準確率和實時性,為實現(xiàn)葡萄自動化采摘提供技術(shù)支撐。
本研究所用葡萄圖像采集于陜西省鄠邑區(qū)戶太8號葡萄園,使用相機為佳能EOS M200,其分辨率為2 340像素×1 080像素,由于葡萄采摘機器人通常在白天進行采摘,故采集了在晴天順光、晴天逆光和晴天遮陽這3種情況下的夏黑葡萄圖像各40張,并用高斯濾波法去除圖像采集中產(chǎn)生的噪聲,使采集的圖像變得較為平滑。
圖1顯示,本研究提出的葡萄采摘點定位方法主要由3部分組成。第一,葡萄果實識別,主要是識別葡萄串并獲取其位置信息;第二,果梗圖像分割,根據(jù)獲取到的葡萄串信息定位果梗區(qū)域,對該區(qū)域進行分水嶺分割;第三,采摘點確定,基于果梗二值化檢測到的角點數(shù)據(jù),通過線性回歸和最小角度確定目標果梗,最后K均值聚類算法獲得的聚類中心就是采摘點。
采摘點的準確定位是基于目標果實串的位置信息進行的,因此分別對不同情況下的夏黑葡萄圖像進行分割,將夏黑葡萄圖像轉(zhuǎn)換到Y(jié)UV顏色模型中,Y表示亮度通道,U、V是2個代表色度的通道,U通道受光照影響最小。在YUV通道下對葡萄串圖像進行拆分,得到U分量圖(圖2a)。在U分量直方圖中,灰度值主要分布在[50,180](圖2b),葡萄圖像的對比度比較低,然后對拆分后的U分量圖進行直方圖均衡化處理,使葡萄果實在U通道下的灰度值盡可能分布在[0,255],從而增強圖像的對比度。葡萄串的灰度級分布函數(shù)如公式1:
圖1 采摘點定位流程圖Fig.1 Flowchart of picking point positioning
a:U分量圖;b:U分量直方圖;c:均衡化U分量圖;d:均衡化U分量直方圖。圖2 葡萄串圖像U分量均衡化處理Fig.2 U component equalization of grape clusters
(1)
直方圖線性變換:
(2)
式中,N表示圖像的像素總數(shù),nk表示灰度級為rk的像素個數(shù),rk表示第k個灰度級,p(rk)表示灰度級rk出現(xiàn)的概率,sk表示輸出圖像的灰度級,L是圖像中灰度級數(shù)量。
將輸入圖像中灰度級為rk的各像素根據(jù)公式(2)進行映射,可得到均衡化U分量圖(圖2c),從中可以看出目標區(qū)域與背景的對比度更加明顯,便于后期的閾值分割。均衡化U分量直方圖(圖2d)顯示,經(jīng)過均衡化處理之后,葡萄串的灰度值映射在[0,255],圖像灰度的動態(tài)范圍得到了增加,對比度得到了提高。因此,更容易找到葡萄串閾值分割的下限(thresh1)和上限(thresh2),并且thresh1
(3)
式中,g(x,y)表示二值圖像灰度值,f(x,y)表示原圖灰度值,thresh1表示閾值下限,thresh2表示閾值上限。
a:提取U分量;b:直方圖均衡化;c:雙閥值分割;d:形態(tài)學開操作。圖3 葡萄串圖像分割過程Fig.3 Image segmentation process of grape clusters
葡萄串果梗ROI區(qū)域的獲取可以減小果梗檢測的噪聲干擾。葡萄串果梗在葡萄串的正上方,因此葡萄串的位置可以作為葡萄串果梗感興趣區(qū)域定位的先驗信息。首先,對葡萄串做最小外接矩形,對葡萄串輪廓進行測量;其次,按照公式(4)計算,得出葡萄串區(qū)域和果梗區(qū)域;最后,針對果梗ROI區(qū)域進行采摘點檢測。
(4)
式中,ROI_x表示感興趣區(qū)域的橫坐標,ROI_y表示感興趣區(qū)域的縱坐標,w和h分別表示矩形框的長和寬,(x,y)和(x+w,y+h)分別為矩形框的左上角和右下角坐標。
為了提高葡萄串果梗分割的泛化性,對晴天順光、晴天逆光和晴天遮陽這3種情況下的果梗進行不同顏色空間通道以及|V-U|灰度圖的對比分析,果梗、樹葉和背景呈現(xiàn)出不同的灰度級別,|V-U|直方圖(圖4)、果梗原圖(圖5a)、|V-U|灰度圖(圖5b)顯示,果梗區(qū)域的灰度值為[20,70],樹葉的灰度值為[208,255],背景的灰度值為[119,151]。
圖4 |V-U|直方圖Fig.4 |V-U| histogram
葡萄串果梗與細的樹枝粘連交錯,圖像分割困難,使用距離變換的分水嶺分割能夠較好分割出葡萄串果梗。圖5顯示,果梗ROI區(qū)域分割,首先根據(jù)|V-U|直方圖對果梗區(qū)域進行雙閾值分割,對分割后的二值圖像進行形態(tài)學開操作,消除噪點,然后對二值圖像進行距離變換。數(shù)字圖像中對距離的定義有很多,本研究采用歐氏距離,通過計算每個像素點之間的距離獲得灰度值,實現(xiàn)二值圖像的距離變換,對距離變換后的灰度圖做閾值分割,得到前景,也就是果梗和細小的樹枝區(qū)域。其次將距離變換之前的二值圖像與距離變換之后的二值圖像進行相減,便得到前景與背景交界區(qū)域,定義為邊界區(qū)域或者未知區(qū)域,然后進行連通域標記,用0來表示未知區(qū)域,背景區(qū)域及前景區(qū)域轉(zhuǎn)變?yōu)槠渌麛?shù),例如+1。最后進行分水嶺操作,將灰度圖像視為拓撲表面,圖像中的像素值f(x,y)相當于地形海拔高度,局部極小值的區(qū)域為匯水盆地,隨著注水量的增加,水位線不斷上升,不同匯水盆地的山脊阻止水的匯聚,就會形成分水嶺。
a:果梗原圖;b:|V-U|灰度圖;c:果梗二值化;d:形態(tài)學開操作;e:距離變換;f:前景與背景交界區(qū)域;g:連通域標記;h:分水嶺操作。圖5 果梗ROI區(qū)域分割過程Fig.5 Region of interest(ROI) segmentation process of fruit stalk
分水嶺操作可以將葡萄串果梗很好地分割出來,然后對分割的每個果梗進行顏色閾值分割,并對每個果梗的二值圖像做Harris角點檢測。Harris角點檢測是滑動窗口W向任意方向移動,然后比較窗口滑動前與滑動后灰度值的變化情況,如果灰度值變化程度大,那么該窗口就存在角點,灰度變化值Ex,y定義為:
Ex,y=∑wu,v[Ix+u,y+v-Iu,v]2
(5)
式中,Ex,y表示灰度變化值,wu,v表示窗口函數(shù),Ix+u,y+v表示平移后的灰度值,Iu,v表示平移前的灰度值,x,y表示窗口平移量。
為每個果梗二值圖像檢測到的角點尋找擬合直線,要使角點數(shù)據(jù)離擬合直線盡可能近一點。定義損失函數(shù)如公式(6),用梯度下降法對其進行優(yōu)化,尋找最優(yōu)的權(quán)重參數(shù)和偏置值(圖6)。
圖6 擬合直線Fig.6 Fitting straight line
(6)
式中,Loss表示損失值,N表示樣本總數(shù),xi、yi分別表示第i個角點數(shù)據(jù)實際的x軸和y軸坐標值,w表示權(quán)重參數(shù),b表示偏置值。
由于受葡萄果實重力的影響,葡萄串果梗基本是垂直向下的,計算每個果梗與垂直于地面直線的夾角,夾角角度最小的擬合直線所在的果梗就是葡萄串果梗,即目標果梗(圖7)。
圖7 葡萄采摘點的計算模型Fig.7 Calculation model of grape picking point
對目標果梗檢測到的角點數(shù)據(jù)進行K均值聚類分析,首先初始化C個聚類中心Z(i),本研究中C=1,在接下來的k次迭代過程中,會按照以下步驟來計算每個樣本與聚類中心的距離,以任一樣本點X及樣本個數(shù)i=1,2,3,…,m為例,如公式(7)。
j=arg min‖X-Zi(k)‖
(7)
j表示樣本X與C個聚類中心距離最近的類別,Zi(k)表示聚類中心,X表示任一樣本點。
(8)
根據(jù)公式8計算新的聚類中心,則X∈Sj(k),式中,X表示任一樣本點,Sj(k)是Zi(k)聚類中心的樣本集合,ni為Sj(k)中的樣本數(shù),i表示樣本個數(shù),Zi(k+1)表示i個樣本經(jīng)過k+1次迭代之后的聚類中心。
在得到聚類中心之后,通過計算使得誤差平方、誤差平方和均最小。如果Zi(k+1)=Zi(k)(i=1,2,…,m),則說明算法收斂,算法結(jié)束,否則k=k+1,從公式(7)循環(huán),最終得到的聚類中心即為采摘坐標點,算法迭代了3次,最終目標果梗角點數(shù)據(jù)聚類結(jié)果如圖8顯示。
圖8 目標果梗角點K均值聚類Fig.8 K-means clustering of the corner points of target fruit stem
(9)
式中,X表示任一樣本點,Zi(k)表示i個樣本經(jīng)過k次迭代之后的聚類中心,Sj(k)是Zi(k)聚類中心的樣本集合,E表示誤差平方和。
在本次試驗中,分別對晴天順光、晴天逆光和晴天遮陽這3種情況下的夏黑葡萄圖像進行果梗采摘點檢測,將采集后的圖片分辨率壓縮為600像素×700像素,每張圖片中目標果梗面積為1 200~1 700像素。通過公式(10)對本研究方法得到的目標果梗聚類中心坐標點A(u,v)和目標果梗輪廓坐標點B(xi,yi)進行平均距離計算。圖9顯示,在晴天順光條件下,目標果梗聚類中心坐標點與目標果梗輪廓坐標點之間的距離(Avg)為5~48像素,平均值為26像素;在晴天逆光條件下,Avg為4~44像素,平均值為24像素;在晴天遮陽條件下,Avg為5~45像素,平均值為20像素。經(jīng)分析,本研究算法在晴天遮陽條件下的圖像分割效果最佳,采摘點定位成功率較高。
(10)
式中,Avg表示目標果梗聚類中心坐標點與目標果梗輪廓坐標點之間距離的平均值;n表示目標果梗輪廓坐標點的總個數(shù);u,v表示目標果梗聚類中心坐標點;xi,yi表示目標果梗輪廓坐標點。
Avg:目標果梗聚類中心坐標點與目標果梗輪廓坐標點之間距離的平均值。圖9 采摘點與目標果梗輪廓的距離平均值Fig.9 Mean distance between picking point and target fruit-stalk contour
采摘點定位在葡萄串所連目標果梗范圍內(nèi)定義為采摘點定位成功,采摘點定位到背景、葡萄果實以及其他果梗范圍內(nèi)定義為采摘點定位失敗(圖10)。采摘點定位算法的復雜度直接影響著葡萄采摘機器人的采摘效率,對3種不同采摘環(huán)境下采摘點定位算法運行的時間進行了統(tǒng)計,得到平均定位時間為0.65 s(表1)。定位失敗的原因:第一,在晴天順光、晴天逆光情況下受光照影響,算法分割不穩(wěn)定,會直接影響采摘點定位的成功率;第二,在自然環(huán)境下,有些葡萄串果梗被樹葉遮擋,檢測不到目標果梗;第三,多個果梗交錯,干擾較大。
圖10 采摘點定位過程示意圖Fig.10 Schematic diagram of picking point positioning
表1 不同試驗條件下葡萄采摘點定位情況
本研究提出了基于分水嶺果梗圖像分割和最小角度約束的采摘點定位方法。通過葡萄果實位置信息定位果梗ROI區(qū)域,根據(jù)ROI區(qū)域中果梗、樹葉和背景呈現(xiàn)不同的灰度級,對該區(qū)域進行分水嶺分割,然后對每個果梗進行二值化操作,最后對分割后的圖像進行角點檢測。對每個果梗的角點數(shù)據(jù)進行線性回歸分析,將擬合到的直線分別與垂直于地面直線進行角度計算,角度最小的擬合直線所在的果梗作為葡萄串所連的果梗,也就是目標果梗。對目標果梗的角點數(shù)據(jù)進行K均值聚類分析,聚類中心作為采摘機器人的最佳采摘點。
利用晴天順光、晴天逆光、晴天遮陽條件下采集的圖像進行驗證,采摘點定位成功率為89.2%,與羅陸鋒等[16]的結(jié)果相比提高了0.87%,平均定位時間為0.65 s。葡萄采摘機器人的工作環(huán)境存在葡萄串果梗被樹葉遮擋和多個果梗交錯的情況,所以在未來的工作中,將針對這2種情況下的葡萄串采摘點定位進行深入研究。