朱啟兵 張 夢 劉振方 黃 敏 李學成
(江南大學輕工過程先進控制教育部重點實驗室, 無錫 214122)
金桔果實的數量及其生長分布狀態是決定盆栽金桔品質和銷售價格的重要指標[1-2]。在果實成熟前進行準確的果實計數和產量預估,能夠幫助種植者做出更具成本效益的決策。
隨著機器視覺技術的發展,機器視覺成像方法被引入水果識別領域。利用RGB圖像進行水果識別已有大量研究[3-4]。RGB圖像易受光照影響,所提供信息有限,不能準確反映果實的真實大小和空間位置信息,當水果顏色與背景差異性較小時更難進行識別,因此有學者將三維信息引入水果識別的研究中。TAO等[5]提出了一種融合顏色特征和三維幾何特征的三維描述子,基于支持向量機分類器并采用遺傳算法優化,對蘋果點云進行分割和識別。NGUYEN等[6]獲取蘋果彩色點云數據,對預處理后的果實點云進行歐氏聚類分割,采用Hough圓檢測識別紅色蘋果和雙色蘋果。上述傳統的圖像處理技術通常需要人為提取特征,耗時較長,深度學習技術通過學習的方式獲取圖像特征,避免了主觀因素的影響,近年來逐漸被引入到水果識別領域。MU等[7]通過遷移學習將Faster R-CNN應用到未成熟番茄的檢測上,并且對番茄的位置和大小進行估計。LIU等[8]融合RGB圖像和近紅外圖像輸入VGG16網絡對獼猴桃進行識別,并比較不同融合方法對識別結果的影響。基于深度學習的水果識別方法雖然能夠達到較高的識別精度和速度,但模型的訓練需要大量標記圖像,采集和標記圖像需要大量的時間和勞動,同時模型的訓練和運行也需要更好的硬件條件[9]。
文獻[3-8]所述方法都是基于單幅圖像進行水果識別,單幅圖像只包含植物局部的三維信息,無法準確展示所有水果的空間生長分布狀態,難以實現整株植物的果實總數估計。一些研究對多個單幅圖像識別結果進行統計的方法存在明顯的重復計數問題[10]。為了更準確的對整株植物進行果實產量估計,有學者通過重建植物的三維模型,基于完整的三維信息進行水果識別和計數。SUN等[11]采用運動恢復結構算法從多視角RGB圖像中重建棉鈴的完整三維點云,采用基于區域的分類算法和基于密度的聚類算法對棉鈴進行識別與產量估計,但該方法所需數據量和計算量較大,難以實現快速的識別估計。GONGAL等[12]對蘋果樹進行產量估計,在樹的正反兩面安裝相同數量的彩色相機和深度相機,同步獲取彩色圖像和深度圖像,基于彩色圖像識別水果,然后通過配準正反兩面的點云數據識別出重復計數的水果。MéNDEZ等[13]使用激光雷達掃描儀獲取柑橘樹的三維點云,基于顏色信息分割背景,采用迭代自組織數據分析算法(Iterative self-organizing data analysis techniques algorithm, ISODATA)對柑橘點云進行分割計數。上述獲取植物完整三維信息的方法存在設備昂貴、計算量大等問題,且仍然要依賴顏色特征,對于未成熟的綠色果實的識別效果較差。本研究提出一種針對整株植物的綠色果實識別和計數方法,以盆栽金桔為研究對象,采用低成本的RGB-D相機采集多角度點云數據,經過配準融合得到完整的植物點云,結合三維輪廓特征進行水果點云分割,最終實現非成熟期盆栽金桔果實的識別與產量估計,以解決因單幅圖像信息不足導致的水果漏識別和重復識別問題,以及果實顏色與背景相近造成的分割困難的問題。
選用RGB-D相機(Kinect 2.0)作為信息采集設備。該相機基于飛行時間原理(Time of flight, TOF)采集深度數據,可以一次性獲取被測對象的彩色圖像(1 920像素×1 080像素)、深度圖像(512像素×424像素)和相應的點云圖像[14],最佳測量范圍為0.8~2.0 m。利用微軟公司提供的軟件開發工具包Kinect for Windows SDK 2.0以及相應程序編程接口獲取數據,基于Visual Studio 2013集成開發環境和點云庫(Point cloud library, PCL)完成相關算法及實驗仿真。盆栽金桔購自無錫花卉市場,品種為四季觀賞型金桔。選擇處于果實生長期的盆栽金桔樹,樹高為55~75 cm,樹寬為30~50 cm。金桔果實直徑為1.0~3.5 cm,果實較小不易識別,且生長期果實大多數呈現青綠色,能夠有效驗證本研究在果實顏色與背景相近情況下果實的識別效果。
將植株放置于可精密控制轉動角度的電動轉盤上,轉盤周長為1.0 m,轉盤中心距相機約1.0 m。轉動轉盤,以60°為間隔獲取植物6個角度的彩色圖像和深度圖像。將每個角度的彩色圖像與深度圖像進行匹配融合,計算得到目標物體在相機坐標系中具有顏色的三維坐標信息,即彩色點云。為減少傳感器系統噪聲與波動,將單個視角下的多幀點云數據疊加融合獲得最終彩色點云圖像。對獲取的彩色點云圖像進行預處理得到目標點云,通過初配準和精配準得到完整的植株點云,最后采用歐氏聚類算法和隨機采樣一致性(Random sample consensus, RANSAC)算法分割識別果實并進行計數,圖1為果實整體識別計數流程圖。

圖1 果實整體識別計數流程圖Fig.1 Flow chart of overall method
通過RGB-D相機獲取的點云數據包含墻壁等背景信息,同時存在大量噪聲,容易對后續的點云配準及果實分割識別工作產生干擾,需要去除背景和噪聲。
在背景去除階段,主要根據感興趣區域的深度信息去除背景。設定目標植株所在的空間范圍,范圍外的點云視為無效點云并去除。根據實驗條件,將三維空間中的z軸范圍設定為0.1~1.2 m,x軸范圍設定為-0.5~0.5 m,y軸范圍設定為-0.2~0.6 m。通過此方法能夠快速地去除背景區域,保留感興趣區域點云。
本實驗的噪聲主要有目標物體邊緣的白色噪聲點、離群點以及懸空點3類,針對噪聲數據的不同特點,采用不同的去噪方法進行處理。
背景去除后,物體邊緣殘留有白色背景噪聲[15],這些噪聲與植物主體顏色差異較大,因此基于顏色閾值的分割方法去除這些噪聲。植物點云周圍分布有大量離散點,這些點即為離群點。采用半徑濾波算法去除這些離群點。本研究設置最大搜索半徑為0.01 m,當前點的最大搜索半徑內的近鄰點數最少為10,若點數小于10,則判斷此點為離群點。
懸空點廣泛存在于采用TOF技術的傳感器所得三維點云中,即懸浮于前后兩個物體之間的噪聲點[16]。該現象在本研究使用的RGB-D相機所得點云中也普遍存在,在葉片之間以及果實與葉片之間都存在相連的懸空點,嚴重影響點云描述物體輪廓的真實性。 因此本研究采用胡楊[17]提出的方法,若當前點的法向量和該點與視點連線的夾角大于70°,則判斷此點為懸空點。該方法對物體間的懸空點去除效果較好,但無法去除物體邊緣的噪聲點,本研究加入基于距離的歐氏聚類[18]算法對殘留噪聲點進行去除。點云邊緣噪聲分布較為離散,與主體點距離較遠,因此通過歐氏聚類可有效去除不符合距離閾值的點。經過實驗驗證,選取歐氏聚類的距離閾值為0.005 m,每個類別含有的點數范圍為20~1 000。
植株枝葉之間相互遮擋,單視角下的點云無法呈現出植物的完整形態,在計算整株植物的果實數量時容易出現漏檢和重復識別的問題。為解決上述問題,獲取植物多角度點云數據,經過配準融合得到植物的完整三維點云,再利用所得完整點云進行水果識別。首先采用隨機采樣一致性算法對轉臺點云進行圓柱擬合,并得到轉臺的旋轉中心軸參數,將點云繞中心軸旋轉相應角度進行初配準,然后采用點到面的迭代最近點算法實現精配準,完整的配準方法流程如圖2所示。

圖2 點云配準流程圖Fig.2 Flow chart of point cloud registration
1.3.1點云初配準
點云初配準的一般方法為直接計算三維點云的特征,以三維特征為約束尋找兩幅點云匹配點,基于這些匹配點計算轉換矩陣進行初配準[19-20]。植物結構復雜,較難提取出有效特征,為解決此問題,一些學者在被測物體附近放置規則的輔助物體,通過對輔助物體配準實現對被測物體的配準[21],但該方法操作復雜,對環境條件要求較高,物體的分割識別步驟非常耗時。因此在室內環境下,不少學者基于電動轉盤獲取物體多角度點云數據[22-23],計算轉盤的中心軸,將點云繞中心軸旋轉相應角度進行配準。由于配準中旋轉角度已知,因此相較于其他配準方法,此方法的配準結果更加準確,配準效率更高。目前的旋轉中心軸計算方法依然要提前通過輔助物體進行計算,為提高效率同時降低操作的復雜度,本研究采用一種基于圓柱擬合的旋轉中心計算方法,只需要轉盤的點云數據即可計算出旋轉中心。
首先通過深度信息分割出轉盤點云,然后對轉盤點云進行圓柱擬合,最后獲得圓柱中心軸及半徑參數。模型擬合最常見的方法是最小二乘擬合,但是此方法容易受到噪聲影響,在噪聲大的點云中效果較差。隨機采樣一致性算法是從一組包含局外點的觀測數據集中,用迭代的方式估計數學模型參數的模型擬合方法[24]。在點云分割中,該算法可在含有大量噪聲的點云中提取出物體的三維模型,擬合精度高且簡單快速,具體算法如下:
(1) 從點云中隨機選取一組點,計算這組點所擬合出的模型參數。
(2) 若步驟(1)得到的模型測試點云中的剩余點與模型的距離小于設定的誤差閾值,則將該點確定為局內點,統計該模型下局內點的個數。
(3) 若有足夠多的點作為局內點,則認為所估計模型合理。
(4) 利用所有假設的局內點重新估計模型參數,獲取最佳模型。
(5) 重復步驟(1)~(4),若當前模型局內點數量大于已經保存的最大局內點數量,則更新模型參數。不斷迭代直到達到迭代閾值,停止迭代,找到局內點個數最多的模型參數,即為最終估計模型參數。
圓柱擬合中,法線權重設置為0.1,內點到模型最大距離為0.05 m,圓柱半徑為0.150~0.165 m。
圖2中相機采集到6個角度的點云。以0°和180°點云為目標,分別將60°、300°點云配準到0°點云,將120°、240°點云配準到180°點云,即60°、240°點云繞旋轉中心旋轉60°,120°、300°點云繞旋轉中心反向旋轉60°,實現兩兩點云的初始配準。
1.3.2點云精配準
經過初配準,點云的部分區域在空間位置上接近或重疊,由于計算誤差等原因局部還存在間隙,沒有完全拼合,因此需要精配準對配準結果做進一步的改進和完善[25]。
迭代最近點(Iterative closest point, ICP)算法[26]廣泛應用于圖像與點云的配準[27],具有計算簡單、精度高等特點[28]。ICP算法的基本原理是在目標點云Q和源點云P中,以歐氏距離為約束條件找到當前點最近鄰的點,根據這些匹配點對通過迭代計算出最優的變換矩陣,包括旋轉矩陣R和平移矩陣T,使得誤差函數E最小,誤差函數為
(1)
式中n——對應點對的數目
pi——源點云中的一點
qi——目標點云中的對應點
ICP算法具體步驟如下:①在源點云P中確定點集{pi}。②在目標點云Q中尋找對應最近點集{qi},使得‖qi-pi‖最小。③根據{pi}和{qi},求得旋轉矩陣R和平移矩陣T。④使用R和T對源點云P進行變換,得到新的點云P′,同時得到新的對應點集{p′i}。⑤計算新點集{p′i}和目標點集{qi}的距離誤差d。⑥k為迭代計算次數,dk為第k次迭代時得到的距離誤差,如果|dk-dk-1|小于某一給定的閾值或者k大于預設的迭代次數,則停止迭代。⑦如果步驟⑥條件不成立,則將轉換后的點云P′作為源點云返回步驟①進行下一次迭代。
ICP算法對于初始位置要求較高,容易陷入局部最優,因此有不少學者對此提出改進方法。傳統的ICP算法采用兩點之間的歐氏距離作為誤差函數,容易產生錯誤匹配,導致陷入局部最優。點到面的ICP算法將源點云中的點到目標點云對應點所在平面的歐氏距離作為誤差函數,其定義為
(2)
式中Ni——源點云法向于曲面較多的物體,這樣定義能夠減少錯誤匹配的情況發生,同時加快迭代收斂速度[29]。
由于植物枝葉結構交錯復雜,金桔盆栽果實及葉片較小,容易出現無法找到足夠的對應點或對應點尋找錯誤的情況,因此在花盆底部加放一個長方體盒子以提高配準精度。經過精配準后,將0°、60°、300°點云合并記為點云Pose0,將120°、180°、240°點云合并記為點云Pose3。最后將點云Pose3繞旋轉中心軸旋轉180°進行初配準,繼續采用點到面的ICP算法配準到點云Pose0,最終得到完整點云。點云配準完成后會出現點云重疊和噪聲,本研究通過體素下采樣算法和統計濾波算法對點云進行簡化和去噪。
單幅點云圖像的果實點云不夠完整,點數較少,容易出現部分果實無法擬合識別的情況,經過多幅圖像配準后的果實點云球形輪廓完整,更適合采用球形擬合的方法進行識別。本研究首先對植物點云進行歐氏聚類分割,然后基于RANSAC算法對聚類后點云團進行球形擬合分割出果實點云,最后統計識別結果,整體的果實分割識別流程如圖3所示。

圖3 果實識別流程圖Fig.3 Flow chart of fruit recognition
植物點云在三維空間中以多個浮空的點云團的形式存在,為了有效檢測果實并統計個數,需要先確定點云團的數量,再分別處理每個點云團,避免識別產生遺漏或分割錯誤[30]。因此首先采用基于距離的歐氏聚類算法將植物點云分割成多個點云團,再分別對每個點云團進行處理。
點云團可分為3類:不含果實部分的點云團、只含果實部分的點云團以及同時包含非果實部分和果實部分的點云團。果實輪廓與枝葉形狀不同,因此在球形擬合時更容易對果實點云提取三維球體形狀,不易對枝葉點云產生錯誤分割。對每個點云團進行球形分割,如果聚類中含有果實點云,即可擬合出相應的球形,獲得其球心及半徑。最后統計所有點云團所擬合出的球形個數,進行整株植物的果實計數。
采用RANSAC算法進行點云球面擬合,球形參數模型為
(3)
式中 (x,y,z)——球面點坐標
(xl,yl,zl)——識別出的第l個果實的球心坐標
rl——識別出的第l個果實的球形半徑
分割出每個點云團中的果實點云,同時獲得每個果實的球模型參數(球心Al(xl,yl,zl)和半徑rl)。一個點云團中可能含有多個果實,因此多次擬合分割球形點云,直到點云團中剩余未擬合的點云小于設定值結束分割。根據所測量的果實半徑,將球模型的半徑范圍設為0.005~0.017 5 m,內點到模型的誤差閾值設置為0.006 m,分割出一個球模型最少需要點數為20。
在球形擬合過程中,會出現對同一個果實重復擬合出兩個球模型的情況,即兩個球形呈現包圍關系,從外部只能看出半徑較大者的球模型。因此本研究在擬合出球形之后,將當前球模型參數與上一個球模型參數比較,兩者球心距離與較小球半徑之和小于較大球半徑,則判斷兩個球模型存在包圍關系,將當前模型擬合結果視為錯誤識別結果,不保留此次擬合出的球模型,僅保留上一次擬合出的球模型作為識別結果。
為了對本研究的識別結果進行評價,采用查準率Pr、查全率Re和F1值對識別準確率進行評價。查準率為模型準確率,即識別正確的果實數量占總識別結果的比例,反映了模型對正樣本的分類精度;查全率為識別正確的果實數量占實際果實數量的比例,反映了模型對正樣本的識別能力;F1值為查準率和查全率調和平均值,為兩者綜合結果。
本研究還將計數結果與實際果實數量進行比較,計算平均絕對百分比誤差MAPE和決定系數R2對產量估計的準確性進行評價。MAPE越小,模型性能越好,R2越大,表示模型預測越準確。
圖4給出了一株金桔的0°點云去除噪聲前后的結果,從圖4a可以看到點云中存在較多離群點和其他噪聲點。從圖4b可以看到離群點以及葉片間的懸空點等噪聲被去除,植物主體點云被保留,能夠清晰地看到果實及葉片輪廓。

圖4 0°點云去除噪聲前后兩個角度視圖Fig.4 Results of removing noise points
在預處理時,會將形狀纖細的枝干點云、形態復雜的葉片點云去除。由于枝干形狀纖細,相機采集到的點數極少且誤差較大,枝干點云分布離散,因此預處理時將枝干點云作為離群點而去除。對于形態復雜的葉片(例如卷曲或互相折疊遮擋的樹葉),因為其不規則的形狀導致相機無法獲得其準確深度,點云數據雜亂且離散,因此容易在預處理中被去除。
對一株盆栽金桔的點云數據進行配準,圖5a為兩片相隔60°點云的初始位置,其中紅色為0°點云,綠色為60°點云,白色直線為計算出的旋轉中心軸。圖5b為60°點云經過初配準和精配準之后與0°點云重合的結果。圖5c為6片點云經過配準融合的結果。經過配準之后水果點云輪廓更加完整,同時完整的植物點云也能夠更全面地展示出水果的分布狀態。

圖5 點云配準結果Fig.5 Results of point cloud registration
將識別結果與真實值進行對比,如表1所示,總計識別查全率為85.91%,查準率為79.01%,F1值為82.32%,MAPE為16.02%,R2為0.97。
圖6為金桔識別結果,其中圖6a和圖6b分別為一株金桔的實際彩色圖像和果實擬合結果。圖6c和圖6d分別為不同遮擋情況下果實識別效果,對于在單幅圖像中果實被完全遮擋時,本文方法融合多角度信息能夠有效識別出果實。圖6e和圖6f為果實相鄰或成簇狀態下的識別效果,果實成簇且互相遮擋嚴重時,本文方法也能夠將不同果實區分識別。圖6g為深綠色果實識別效果,受光照影響且果實本身顏色較深,與背景顏色相近,本文方法從空間形狀特征出發將其分割識別。

表1 果實識別及計數結果Tab.1 Fruit recognition and counting results

圖6 果實識別結果Fig.6 Results of fruit recognition
果實識別過程中,存在少量的誤識別和漏識別的情況。出現誤識別的情況是在采用RANSAC算法進行球形擬合時,葉片點云足夠滿足該算法的相關條件,從而錯誤擬合出球形。出現漏識別的原因主要為果實點云點數過少或形狀不規則,無法滿足RANSAC算法所設置的擬合條件。一般有以下3種情況:處于枝葉深處的果實被嚴重遮擋,從相機采集的所有角度都很難獲取足夠的點云數據;果實本身形狀極小,采集到的點云較少且邊緣點誤差較大,預處理時容易被當作噪聲去除;金桔果實空間分布較為分散,果實與葉片互相接觸遮擋,存在少量果實點云經過配準和濾波后,球形輪廓不完整或不規則導致無法擬合出球形。
將本文結果分別與文獻[12]和文獻[13]結果對比。文獻[12]中采集多幅RGB圖像和深度圖像,基于顏色和圓形輪廓特征對彩色圖像處理,然后將識別結果映射到點云中,通過對齊正反兩面點云識別重復計數的果實,最終實現整棵樹的果實識別和產量估計,總計識別查全率66.8%,查準率87%,產量估計MAPE為18%。基于顏色信息能夠有效去除大量的枝葉背景,同時也會去除未成熟的青色果實。因此該方法對于去除枝葉背景后剩余的成熟紅色果實識別效果較好,查準率略高于本文結果,但對于青色果實會產生大量的漏識別,查全率遠低于本文結果。文獻[12]中對綠色果實識別效果較差,且容易將距離較近的果實錯誤識別為重復果實,而本文方法能夠更準確地獲得整株植物上青色果實的空間分布信息,識別準確度更高,因此在總體計數結果中精度更高。
將文獻[13]方法應用于本文的數據中,和本文方法對比結果如表2所示。文獻[13]通過激光雷達獲取植物點云,基于顏色濾波去除背景獲得柑橘點云,然后采用改進的ISODATA算法對點云進行聚類。本文將文獻[13]中的顏色濾波方法和改進的ISODATA算法用于配準后的完整點云中,并修改了相應的參數使其更適用于本文數據。由于顏色濾波方法會將大量綠色果實去除,剩余黃色果實較少,因此識別查準率較高,但大量綠色果實無法識別,且文獻[13]中的算法更適用于生長比較分散的大果實,對于本文中存在成簇情況較多、果實較小的識別效果較差,最終查全率、F1值、R2都低于本文方法。結果表明,本文方法對于果實識別和產量估計能夠提供可靠的指導。

表2 果實識別與計數結果對比Tab.2 Comparison of fruit identification and counting results
在處理器為IntelR CoreTM i7-8550U CPU,1.80 GHz×4,內存8 GB的計算機硬件配置條件下,本文方法識別一盆金桔果實并計數的耗時約90 s,其中數據預處理耗時較長,約60 s。考慮到本文的應用背景主要是面向植物的產量預估以及果實生長分布狀態的估計,對實時性的要求遠低于面向機器采摘的果實識別方法,識別一株金桔果實所用時間基本可以滿足應用需求。同時隨著硬件技術的發展,處理時間有進一步降低的空間。
(1)為解決整株金桔盆栽果實識別與總體計數的問題,提出了一種基于點云配準的盆栽金桔果實識別與計數方法。通過RGB-D相機獲取植物的多角度點云數據并進行預處理,采用隨機采樣一致性算法對轉盤點云進行圓柱擬合獲得旋轉中心軸參數,再根據旋轉中心進行初配準,避免了增加輔助物體使配準步驟更復雜耗時的情況。采用點到面的迭代最近點算法完成精確配準得到植物完整點云。最后采用歐氏聚類和基于隨機采樣一致性算法的球形擬合方法分割識別果實,不依賴顏色信息,依據三維球形輪廓特征進行識別,適用于在生長期還未成熟的青色果實識別,對產量估計和后續的培育及銷售定價等都有重要意義。
(2)本研究對9株金桔(共149個果實)進行果實識別,總計識別查全率為85.91%,查準率為79.01%,F1值為82.32%。將果實計算總量和真實值比較,決定系數為0.97,平均絕對百分比誤差為16.02%,該方法能夠有效識別被遮擋或成簇的綠色果實,同時可進行整株果實的識別和計數。