張潤芝 張 曉 吳 剛
(塔里木大學信息工程學院,新疆 阿拉爾 843300)
隨著新疆庫爾勒香梨知名度的提高,產業不斷擴大,對香梨采后包裝、深加工的技術與設備提出了新要求[1-2]。香梨包裝銷售與深加工中的一個重要環節是香梨分級,該環節可使香梨分級定價銷售,提高香梨的經濟價值[3]。重量是庫爾勒香梨采后分級的重要標準之一,眾多學者[4-8]研究了不同結構與方法的機械稱重式分級機,降低了人工成本、提高了分級效率。阿克蘇紅旗坡的農場也引進了果品自動稱重分級流水線,但因稱重時頻繁碰撞果損率過高[9]。
因果蔬的體尺參數與其重量有一定的關系,國外有研究[10-14]通過蘋果、獼猴桃、杏子、櫻桃等果實的體尺參數建模來估計其重量。國內有研究[9,15]通過機器視覺獲取香梨、蘋果的幾何外形特征預測果實的重量。通過機器視覺非接觸式測量果實的體尺參數預測果實重量并分級可有效降低機械分級果損率過高的問題,但二維圖片只能提供果實的二維信息,構建果實重量預測模型的精度不高。
陳炳舟等[16-17]運用超聲波傳感器陣列及雙目攝像頭獲取被測物點云數據并擬合表面模型計算體尺參數。RGB-D相機也可獲取被測物點云數據,常用的RGB-D相機有微軟推出的Kinect系列;通過采集被測物的彩色和深度圖像生成點云數據,其深度圖像通過ToF(渡越時間)法獲取,不易受外界環境光變化影響,被廣泛應用于三維重建領域[18]。研究擬選取Kinect DK相機搭建香梨圖像采集裝置;通過RGB圖像和深度圖提取香梨的點云,對香梨點云進行預處理,去除噪聲、空間坐標校正、分離香梨點云與背景點云;最后通過插值法計算香梨表面模型,計算其長、寬、高與體積并通過體積預測香梨重量,以期為香梨分級裝置的開發提供依據。
Kinect相機拍攝香梨經RGB圖像與深度圖像對齊后生成原始三維點云,包含冗余背景點和噪聲點,且點云可視化后呈倒立傾斜的像,故需對原始點云進行濾波、坐標變換、背景去除等預處理工作,得到正立豎直香梨點云。
由圖1可知,預處理不但可去除大量冗余和錯誤點云,而且方便后續計算體尺參數。

圖1 點云預處理流程圖

li=
(1)
(2)
(3)
1.1.2 點云的坐標變換與校正 初始點云數據以Kinect相機鏡頭為坐標原點計算坐標,試驗時Kinect相機不是絕對平行于地面,故被測物在原始坐標系下的點云是倒立傾斜的。為方便后續計算被測物體尺參數,需將被測物點云豎直,故提出一種坐標變換的方法。

(4)

(ux,uy,uz),
(5)
(6)

(7)
(8)
運用Ransac算法再次擬合平面,找出x=0、y=0時z的坐標值z0,將每一個點云的z坐標值減去z0,使點云背景平面與z=0的平面重合,完成坐標校正。
1.1.3 背景濾除 Ransac算法擬合平面時,擬合平面點云作為內點,除擬合平面外的點作為外點。處理后,點云中只包含背景平面和香梨表面,故提取外點即可得到僅包含香梨的點云。
經點云預處理后,輸出香梨點云如圖2所示,需將其插值構成香梨表面模型后計算其體尺參數。一部分香梨(宿萼果)尾端會有突起,針對突變點云,在插值時選用基于網格的自然鄰點插值法,可更好地擬合真實香梨表面,使后續計算更精準。具體過程:首先檢測全部香梨點云,找出X軸、Y軸的最大值與最小值,分別將X軸、Y軸最大值與最小值間的距離等分為n份,構成一個n×n的網格;然后用z=f(x,y)形式的曲面與香梨點云數據擬合,擬合曲面始終經過香梨點云,在網格點(xi,yj)進行曲面插值計算出zk;最后通過網格點構建網格圖,網格圖為三維曲面,網格曲面無顏色,網格邊有顏色其顏色因zi值而定。

圖2 香梨表面模型構建圖
(9)
(10)
zk=f(xi,yj),k=0,1,…,n2。
(11)
將香梨模型最大橫截面矩形的長記為香梨的長,最大橫截面矩形的寬記為香梨的寬,香梨模型的最高值記為高。
通過自然鄰點插值后,香梨由n2個六面體構成,所有六面體體積之和即為香梨體積V。隨著網格數目逐漸增多,六面體個數增加,體積計算越精確,但網格數越多,插值算法的計算速度越慢。兼顧精度與速度,n取1 000。體積計算示意圖如圖3所示,為方便示意圖展示體積計算原理,示意圖中n取30。六面體為香梨網格模型中任取的最小網格單位,將其近似看作長方體,故香梨體積為所有長方體的體積之和。為方便編寫體積計算算法,將每個網格點的Z坐標值視為長方體的高,長方體的底面積S與香梨點云X軸、Y軸的最大值和最小值與n有關,若n確定,則底面積確定且唯一,體積的計算式可表示為:

圖3 體積計算示意圖
(12)
(13)
同品種的成熟香梨含水量大致相同,可以通過測量香梨的體積V與重量M計算出香梨密度ρ。隨機選取10個香梨作為樣本,通過高精度電子秤測量其重量,通過排水法測量其體積,計算得平均密度為0.997 g/cm3,標準差為0.012 7,說明樣本香梨密度偏差不大,可以用香梨樣本平均密度0.997 g/cm3表示香梨密度。按式(14)預測香梨重量。
M=ρ×V。
(14)
于2022年10月1日購買70個庫爾勒香梨,采用排水法測量香梨的體積,使用游標卡尺測量香梨的長、寬、高,并使用電子秤測量香梨重量。
利用Kinect相機設計試驗平臺,其深度相機工作在NFOV(窄視場)非裝箱模式下,分辨率為640×576,工作區間為0.50~3.86 m;彩色相機分辨率為4 096×3 072。采用銳能牌數顯游標卡尺(精度0.1 mm,誤差±0.2 mm);量程為1 000 mL的量筒(精度為10 mL);記號筆;精度為1 g的電子秤。
使用Matlab驅動Kinect相機采集圖像,相機由支架固定豎直朝下,相機鏡頭距地面500 mm。為減少干擾,在鏡頭下方放置一半徑為150 mm的白色圓形底板,采集圖像時,將香梨樣本臥倒放置于底板內,然后激活上位機采集圖像,將生成的點云保存為pcd格式。采用自主編寫的上位機程序處理點云數據,生成香梨表面模型,最終計算出香梨的體尺參數及重量。
采用排水法測量香梨體積,使用游標卡尺測量香梨的長、寬與高,每個樣本重復測量3次取平均值,將排水法及游標卡尺測得的值看作真實值。采用Kinect分別對25個香梨樣本拍照,經預處理及插值建模后計算其體尺參數(見表1)。由表1可知,長、寬、高、體積測量值與真實值的誤差較大,無法用于分級。長、寬測量誤差分析是因為tof(渡越時間)獲取深度圖技術本身邊緣精度低,如圖4所示,Kinect獲取的香梨邊緣點云坐標不準確,與真實香梨相差較大,故點云預處理時將邊緣點云濾除,因此長、寬的測量值偏小;高度誤差產生的原因是Kinect不是絕對垂直于地面,高的測量值是果實表面最高點在地面的投影到Kinect的距離Z2減去果實表面最高點到Kinect的距離Z1,而果實高的真實值是果實表面最高點到地面的投影距離,故高的測量值總是小于真實值;香梨體積是由香梨點云插值建模得到的,香梨點云的長、寬、高均偏小,因此體積也偏小。其中,長、寬、高的平均誤差分別為11.62,12.41,13.54 mm,體積的平均誤差為60.51 cm3。

表1 香梨體尺參數測量值與真實值對比

圖4 香梨邊緣點云濾除圖
香梨長、寬、高、體積檢測結果的精度為長>寬>高>體積,是因為香梨果實的長比寬大,所選25個香梨果實長的平均值為76.6 mm,寬的平均值為61.4 mm。香梨寬度在梯度變化上比長度變化明顯,因此在獲取香梨果實RGB圖像時,寬度方向上信息缺失比長度方向上多。雖然長、寬檢測原理相同,但是寬度的檢測結果相對較差。體積估算值誤差包含了長、寬、高的誤差,故體積檢測的誤差最大。長、寬、高、體積的測量誤差都具有單向性,系統誤差起主導作用,因此通過誤差修正,減少系統誤差,使測量值更精確。


表2 誤差補償后香梨體尺參數對比分析
由表2可知,經補償后,25個香梨樣本體尺參數測量值誤差減小,長、寬、高、體積的平均相對誤差分別為2.8%,1.9%,3.9%,2.8%。經誤差修正后,各參數的測量誤差顯著降低,滿足實際生產需要。
選取10個新的香梨樣本,采用經過誤差修正后的體尺參數測量方法在相同條件下測量其體積,再將體積代入式(14)計算出重量作為預測值;最后用電子秤測量其重量作為真實值,試驗數據見表3。

表3 香梨重量預測值與真實值對比
由表3可知,樣本重量絕對誤差最大為4.3 g,最小為0.1 g,最大相對誤差為3.5%,平均相對誤差為1.96%。
搭建了簡易試驗平臺,在距地面50 cm處對25個香梨樣本拍照,進行體尺參數測量試驗,通過點云預處理獲得香梨表面的豎直點云;通過插值算法從離散點云中找到香梨曲面構建出香梨模型;使用微元法的思想通過香梨模型計算出香梨體積,計算香梨各體尺參數的測量誤差;通過分析測量誤差找出誤差補償值后重新選取25個香梨樣本,重復上述步驟,計算經過誤差補償后的各香梨體尺參數并計算測量誤差,經分析得出,在距地面50 cm處采集圖像的前提下,香梨各體尺參數測量值的平均相對誤差均不超過5%,驗證了Kinect相機測量體尺參數方法的可行性。選取10個新的香梨樣本進行香梨重量預測試驗,結果顯示香梨重量的平均相對誤差為1.96%。后續可進行大量實際測量構建從體尺參數到重量的深度神經網絡模型,與該方法進行數據融合,進一步降低誤差。