鄒 謎,伍世虔,王 欣
(武漢科技大學 冶金裝備及其控制教育部重點實驗室,武漢 430081)
我國屬于水果生產大國,產量居世界前列。然而,我國的出口總量卻很低,在國際市場上缺乏競爭力,主要原因在于我國基于人工種植和采摘水果的成本太高。隨著計算機視覺和機器人技術的迅猛發展,機器人取代傳統的人工水果采摘方式能有效節約采摘成本,提高我國在國際市場的競爭力。而利用機器視覺技術將生長在自然環境下的水果果實準確地識別出來,是機器人實現水果成功采摘的前提。為此,Jimenez等人首次提出在電磁光譜下根據紅外區域反射率的不同來進行果疏的檢測與識別[1]。
此外,Unay[2]提出通過提取蘋果的幾何特征,使用統計分類器訓練的方式進行蘋果的識別。Yimyam 提出了采用遺傳規劃技術來對果蔬進行識別的方法[3]。莊路路等人提出了基于SURF算法和BP神經網絡的水果識別方法[6]。這些方法雖能達到很高的識別率,但一個好的分類器的訓練耗時較大。此外,通過設定顏色閾值的方式來進行水果果實識別的方法被許多學者所青睞[5-8],此方法最大的缺點就是受光照等外界環境的干擾較大,且通過直接閾值獲取的果實圖像往往殘缺不全,需要后續大量算法來排除干擾和確定果實的位置信息。另外,蔡健榮等人對比分析了幾種用于水果識別的方法,并提出了將水果的顏色信息和形態信息相結合的方法來進行成熟水果的識別,但其沒有很好地解決果實被遮擋的情況[9]。
基于此,本文提出了基于顏色分量統計的特征匹配水果識別方法,該方法事先提取水果模板圖像,將水果的顏色分量作為圖像塊的描述值,通過匹配的方法找出所期望的成熟水果類型,有效避免了上述方法中的不足。
被搜索圖為機器人攝像機獲取的圖像,模板圖為從獲取的圖像中截取的一個水果果實大小的圖像。本文算法在進行水果識別前事先提取兩個模板,第1個模板包含圖像中最大的水果果實圖像,第2個模板包含所需采摘的最小果實圖像。兩個模板圖像具有相同的尺寸,如圖1和圖2所示。

圖1 第1個模板圖Fig.1 The first template

圖2 第2個模板圖Fig.2 The second template
如圖3所示,圖中1個小方格表示1個像素,被搜索圖S(W×H個像素)用8×8像素來表示,模板T(m×n個像素)用3×3像素表示。

圖3 匹配圖
Fig.3 Match the
Figure
模板圖T在被搜索圖S上每隔一個像素地滑動,其所覆蓋下被搜索圖的那塊區域叫子圖Sij,i、j為子圖左上角在被搜索圖S上的坐標。搜索范圍為

(1)
首先,分別計算出兩個模板圖像的描述值和每個子圖的描述值,然后計算第一個模板圖像的描述值與每個子圖描述值的二范數,用此值來衡量模板圖與子圖的相似度,此值越小,說明兩個圖像塊越相似;再計算兩個模板圖的相似度,將此值作為所需識別果實相似度的閾值;最后,獲取每次匹配在此閾值范圍內的最佳匹配點位置,將匹配出的坐標位置對應到被搜索圖中即為識別出的水果的位置。
本文先將模板圖像和被搜索圖從BGR顏色空間轉化到HSV顏色空間,如圖4~圖6所示。

圖4 模板1HSV顏色空間圖Fig.4 The first template Figure in HSV color space

圖5 模板2HSV顏色空間圖Fig.5 The second template Figure in HSV color space
HSV顏色空間中代表紅色分量的H值范圍為

(2)
從圖1、圖2中可以看到:因光照的影響,水果表面會出現白斑,實驗得出此部分紅色分量H在(156,180)范圍內,其余未受光照影響的部分紅色分量H在(0,10)范圍內。計算代表果蔬顏色分量的H值之和(包括這兩部分紅色成分),將此值作為模板圖像的描述值;然后,在被搜索圖中每個模板覆蓋下的區域進行同樣的描述值計算,最后計算模板圖描述值與每個子圖描述值的相似度。

圖6 被搜索圖HSV顏色空間圖Fig.6 The search Figure in HSV color space
計算模板圖描述值T的公式為

(3)
其中,f(i,j)表示模板圖像在HSV空間中每個像素點對應的H分量值,(m,n)為模板圖像的大小。
計算每個被搜索子圖描述值S(i,j)的公式為

(4)
其中,f(h,k)表示被搜索圖在HSV空間中每個像素點對應的H分量值;(m,n)為模板圖像的大小;(i,j)代表任一子圖的位置。通過逐一計算每個子圖Sij的描述值將其存儲于一個二維矩陣中,則矩陣大小為(H-n,W-m)。
用下式衡量模板T和子圖Sij相似度為
D(i,j)=[T-S(i,j)]2
(5)
根據相似度來選取出匹配相似的區域,完成匹配過程。
如果對模板在被搜索圖中每滑動一個像素位置對應的子圖直接進行描述值的計算,計算重復量相當大,導致匹配耗時大。為實現水果識別的實時性,提高水果識別采摘效率,在提取被搜索子圖描述值的過程中采用積分求和[10]的思想,來對被搜索子圖進行描述值的計算,則在整個計算過程中圖像的每個像素參與計算的次數可以做到僅此一次,無重復運算,故能大大提高算法的識別匹配效率,如圖7所示。

圖7 快速匹配圖Fig.7 Fast matching Figure
如圖7所示:設當模板滑動到被搜索子圖任一位置 (I,J)時與模板子圖所對應的描述值為S(I,J),當模板m×n沿水平方向滑動一個像素時,S(I,J)在列上只有新的一列Y(1,1+n)加入,舊的一列移出,其它保持不變。因此,對于第一行有

(6)
對于模板覆蓋下的每一列所對應像素值之和Y(1,J),有

(7)
其中,f(i,J)表示圖像中(i,J)點像素的H分量值。
對于任意一行有

(8)
同樣,在列方向上的每一列有

(9)
對于模板覆蓋下的每一行所對應像素值(H分量值)之和X(I,1)有

(10)
對于任意一列有

(11)
對式(8)用I-1代替I得
S(I-1,J)=S(I-1,J-1)-Y(I-1,J-1)+
Y(I-1,n+J-1)
(12)
將式(12)帶入式(11)可得任意一點像素值之和S(I,J)
S(I,J)=S(I-1,J-1)+
[X(m+I-1,J)-X(I-1,J)]+
[Y(I-1,n+J-1)-Y(I-1,J-1)]
(13)
則式(13)是計算被搜索圖中每個模板塊覆蓋下的搜索子圖描述值的通式。其中,S(I,J)代表被搜索圖中任一子圖的描述值,S(I-1,J-1)代表前一子圖計算出的描述值,X(m+I-1,J)代表相比上一子圖新增的一行像素H分量值之和,X(I-1,J)代表相比上一子圖減少的一行像素H值分量之和,Y(I-1,n+J-1)代表相比上一子圖新增的一列H值分量之和,Y(I-1,J-1)代表相比上一子圖減少的一列像素H值分量之和。根據此通式能快速計算出每個子圖的描述值,將其存儲為一個大小為(H-n,W-m)的矩陣中,用于與模板描述值進行匹配。
1)分別將兩個模板圖和從機器人視覺裝置獲取圖像(被搜索圖)轉化到HSV顏色空間,分離出表示顏色的分量H值。
2)計算兩個模板圖像的描述值分別設為D1和D2根據推導的式(11)計算被搜索圖中每個子圖的描述值,將計算出的描述值存儲為一個矩陣,則矩陣的大小為(W-n,H-m)。其中,(W,H)為原圖大小,(n,m)為模板圖大小。
3)計算D1和D2的二范數設為D,將此值設定為相似度的閾值,當匹配相似度超出此閾值范圍時則結束匹配過程。
4)計算D1與矩陣中每個點的二范數,則二范數最小的即為最佳匹配點,獲取閾值D范圍內的每次匹配得到的最佳匹配點位置,其中對上一次識別出的目標區域,下一次不在重復識別。
5)將上一步驟匹配出的所有目標點對應到被搜索圖中(目標點在二維矩陣中的位置與被搜索圖一一對應),即為識別出的果實位置。
算法流程圖如圖8所示。

圖8 算法流程圖Fig.8 Algorithm flow chart
利用本文提出的算法對獲取的50幅自然環境下拍攝的水果圖片進行識別,識別準確率及識別時間結果如表1所示,識別結果圖如圖9所示。
通過提取所要識別水果的顏色分量H值作為匹配的描述值,由于代表描述值的H分量值是從攝像機獲取的圖片中實時提取,始終與其它待匹配果蔬對象處于同一光照環境下,且其表述水果特征的描述值不因水果表面的反射光而受到影響,故能有效避免光照對識別產生的影響。同時,根據兩個模板圖像的相似度所設定的閾值范圍包含了部分被遮擋的果實,所以可以將部分被遮擋的果實一并識別出。

表1 識別結果Table 1 Recognition result

圖9 識別結果圖Fig.9 Recognition result Figure
從對水果識別的匹配結果可以看出:本文所提出的水果識別算法準確率能達到91.75%。分析未能識別出的水果,其原因在于果實被嚴重遮擋,遮擋部分占據了水果總面積的2/3以上,導致子圖提取出的描述值與模板圖匹配的相似度在閾值范圍之外,從而誤認為果實不在需要采摘的范圍內。若考慮到采摘的實際情況,機器人將識別出的水果采摘完后,則因被前面果實過度遮擋的果實自然會出現,機器人在接下來的采摘中將能夠將其識別出。所以,本算法用于實際的采摘中識別率將在91.75%以上。
本文提出的基于顏色分量統計的特征匹配水果識別方法,有效解決了機器人水果采摘中識別易受遮擋、光照等因素影響的問題,算法能在實際的自然光環境下準確識別出所需采摘的成熟水果類型。從算法識別的準確率和識別速度來看,本方法滿足一般機器人水果采摘中識別的實時性和準確率的要求。