張潤芝 張 曉 吳 剛
(塔里木大學(xué)信息工程學(xué)院,新疆 阿拉爾 843300)
隨著新疆庫爾勒香梨知名度的提高,產(chǎn)業(yè)不斷擴大,對香梨采后包裝、深加工的技術(shù)與設(shè)備提出了新要求[1-2]。香梨包裝銷售與深加工中的一個重要環(huán)節(jié)是香梨分級,該環(huán)節(jié)可使香梨分級定價銷售,提高香梨的經(jīng)濟(jì)價值[3]。重量是庫爾勒香梨采后分級的重要標(biāo)準(zhǔn)之一,眾多學(xué)者[4-8]研究了不同結(jié)構(gòu)與方法的機械稱重式分級機,降低了人工成本、提高了分級效率。阿克蘇紅旗坡的農(nóng)場也引進(jìn)了果品自動稱重分級流水線,但因稱重時頻繁碰撞果損率過高[9]。
因果蔬的體尺參數(shù)與其重量有一定的關(guān)系,國外有研究[10-14]通過蘋果、獼猴桃、杏子、櫻桃等果實的體尺參數(shù)建模來估計其重量。國內(nèi)有研究[9,15]通過機器視覺獲取香梨、蘋果的幾何外形特征預(yù)測果實的重量。通過機器視覺非接觸式測量果實的體尺參數(shù)預(yù)測果實重量并分級可有效降低機械分級果損率過高的問題,但二維圖片只能提供果實的二維信息,構(gòu)建果實重量預(yù)測模型的精度不高。
陳炳舟等[16-17]運用超聲波傳感器陣列及雙目攝像頭獲取被測物點云數(shù)據(jù)并擬合表面模型計算體尺參數(shù)。RGB-D相機也可獲取被測物點云數(shù)據(jù),常用的RGB-D相機有微軟推出的Kinect系列;通過采集被測物的彩色和深度圖像生成點云數(shù)據(jù),其深度圖像通過ToF(渡越時間)法獲取,不易受外界環(huán)境光變化影響,被廣泛應(yīng)用于三維重建領(lǐng)域[18]。研究擬選取Kinect DK相機搭建香梨圖像采集裝置;通過RGB圖像和深度圖提取香梨的點云,對香梨點云進(jìn)行預(yù)處理,去除噪聲、空間坐標(biāo)校正、分離香梨點云與背景點云;最后通過插值法計算香梨表面模型,計算其長、寬、高與體積并通過體積預(yù)測香梨重量,以期為香梨分級裝置的開發(fā)提供依據(jù)。
Kinect相機拍攝香梨經(jīng)RGB圖像與深度圖像對齊后生成原始三維點云,包含冗余背景點和噪聲點,且點云可視化后呈倒立傾斜的像,故需對原始點云進(jìn)行濾波、坐標(biāo)變換、背景去除等預(yù)處理工作,得到正立豎直香梨點云。
由圖1可知,預(yù)處理不但可去除大量冗余和錯誤點云,而且方便后續(xù)計算體尺參數(shù)。
圖1 點云預(yù)處理流程圖
li=
(1)
(2)
(3)
1.1.2 點云的坐標(biāo)變換與校正 初始點云數(shù)據(jù)以Kinect相機鏡頭為坐標(biāo)原點計算坐標(biāo),試驗時Kinect相機不是絕對平行于地面,故被測物在原始坐標(biāo)系下的點云是倒立傾斜的。為方便后續(xù)計算被測物體尺參數(shù),需將被測物點云豎直,故提出一種坐標(biāo)變換的方法。
(4)
(ux,uy,uz),
(5)
(6)
(7)
(8)
運用Ransac算法再次擬合平面,找出x=0、y=0時z的坐標(biāo)值z0,將每一個點云的z坐標(biāo)值減去z0,使點云背景平面與z=0的平面重合,完成坐標(biāo)校正。
1.1.3 背景濾除 Ransac算法擬合平面時,擬合平面點云作為內(nèi)點,除擬合平面外的點作為外點。處理后,點云中只包含背景平面和香梨表面,故提取外點即可得到僅包含香梨的點云。
經(jīng)點云預(yù)處理后,輸出香梨點云如圖2所示,需將其插值構(gòu)成香梨表面模型后計算其體尺參數(shù)。一部分香梨(宿萼果)尾端會有突起,針對突變點云,在插值時選用基于網(wǎng)格的自然鄰點插值法,可更好地擬合真實香梨表面,使后續(xù)計算更精準(zhǔn)。具體過程:首先檢測全部香梨點云,找出X軸、Y軸的最大值與最小值,分別將X軸、Y軸最大值與最小值間的距離等分為n份,構(gòu)成一個n×n的網(wǎng)格;然后用z=f(x,y)形式的曲面與香梨點云數(shù)據(jù)擬合,擬合曲面始終經(jīng)過香梨點云,在網(wǎng)格點(xi,yj)進(jìn)行曲面插值計算出zk;最后通過網(wǎng)格點構(gòu)建網(wǎng)格圖,網(wǎng)格圖為三維曲面,網(wǎng)格曲面無顏色,網(wǎng)格邊有顏色其顏色因zi值而定。
圖2 香梨表面模型構(gòu)建圖
(9)
(10)
zk=f(xi,yj),k=0,1,…,n2。
(11)
將香梨模型最大橫截面矩形的長記為香梨的長,最大橫截面矩形的寬記為香梨的寬,香梨模型的最高值記為高。
通過自然鄰點插值后,香梨由n2個六面體構(gòu)成,所有六面體體積之和即為香梨體積V。隨著網(wǎng)格數(shù)目逐漸增多,六面體個數(shù)增加,體積計算越精確,但網(wǎng)格數(shù)越多,插值算法的計算速度越慢。兼顧精度與速度,n取1 000。體積計算示意圖如圖3所示,為方便示意圖展示體積計算原理,示意圖中n取30。六面體為香梨網(wǎng)格模型中任取的最小網(wǎng)格單位,將其近似看作長方體,故香梨體積為所有長方體的體積之和。為方便編寫體積計算算法,將每個網(wǎng)格點的Z坐標(biāo)值視為長方體的高,長方體的底面積S與香梨點云X軸、Y軸的最大值和最小值與n有關(guān),若n確定,則底面積確定且唯一,體積的計算式可表示為:
圖3 體積計算示意圖
(12)
(13)
同品種的成熟香梨含水量大致相同,可以通過測量香梨的體積V與重量M計算出香梨密度ρ。隨機選取10個香梨作為樣本,通過高精度電子秤測量其重量,通過排水法測量其體積,計算得平均密度為0.997 g/cm3,標(biāo)準(zhǔn)差為0.012 7,說明樣本香梨密度偏差不大,可以用香梨樣本平均密度0.997 g/cm3表示香梨密度。按式(14)預(yù)測香梨重量。
M=ρ×V。
(14)
于2022年10月1日購買70個庫爾勒香梨,采用排水法測量香梨的體積,使用游標(biāo)卡尺測量香梨的長、寬、高,并使用電子秤測量香梨重量。
利用Kinect相機設(shè)計試驗平臺,其深度相機工作在NFOV(窄視場)非裝箱模式下,分辨率為640×576,工作區(qū)間為0.50~3.86 m;彩色相機分辨率為4 096×3 072。采用銳能牌數(shù)顯游標(biāo)卡尺(精度0.1 mm,誤差±0.2 mm);量程為1 000 mL的量筒(精度為10 mL);記號筆;精度為1 g的電子秤。
使用Matlab驅(qū)動Kinect相機采集圖像,相機由支架固定豎直朝下,相機鏡頭距地面500 mm。為減少干擾,在鏡頭下方放置一半徑為150 mm的白色圓形底板,采集圖像時,將香梨樣本臥倒放置于底板內(nèi),然后激活上位機采集圖像,將生成的點云保存為pcd格式。采用自主編寫的上位機程序處理點云數(shù)據(jù),生成香梨表面模型,最終計算出香梨的體尺參數(shù)及重量。
采用排水法測量香梨體積,使用游標(biāo)卡尺測量香梨的長、寬與高,每個樣本重復(fù)測量3次取平均值,將排水法及游標(biāo)卡尺測得的值看作真實值。采用Kinect分別對25個香梨樣本拍照,經(jīng)預(yù)處理及插值建模后計算其體尺參數(shù)(見表1)。由表1可知,長、寬、高、體積測量值與真實值的誤差較大,無法用于分級。長、寬測量誤差分析是因為tof(渡越時間)獲取深度圖技術(shù)本身邊緣精度低,如圖4所示,Kinect獲取的香梨邊緣點云坐標(biāo)不準(zhǔn)確,與真實香梨相差較大,故點云預(yù)處理時將邊緣點云濾除,因此長、寬的測量值偏小;高度誤差產(chǎn)生的原因是Kinect不是絕對垂直于地面,高的測量值是果實表面最高點在地面的投影到Kinect的距離Z2減去果實表面最高點到Kinect的距離Z1,而果實高的真實值是果實表面最高點到地面的投影距離,故高的測量值總是小于真實值;香梨體積是由香梨點云插值建模得到的,香梨點云的長、寬、高均偏小,因此體積也偏小。其中,長、寬、高的平均誤差分別為11.62,12.41,13.54 mm,體積的平均誤差為60.51 cm3。
表1 香梨體尺參數(shù)測量值與真實值對比
圖4 香梨邊緣點云濾除圖
香梨長、寬、高、體積檢測結(jié)果的精度為長>寬>高>體積,是因為香梨果實的長比寬大,所選25個香梨果實長的平均值為76.6 mm,寬的平均值為61.4 mm。香梨寬度在梯度變化上比長度變化明顯,因此在獲取香梨果實RGB圖像時,寬度方向上信息缺失比長度方向上多。雖然長、寬檢測原理相同,但是寬度的檢測結(jié)果相對較差。體積估算值誤差包含了長、寬、高的誤差,故體積檢測的誤差最大。長、寬、高、體積的測量誤差都具有單向性,系統(tǒng)誤差起主導(dǎo)作用,因此通過誤差修正,減少系統(tǒng)誤差,使測量值更精確。
表2 誤差補償后香梨體尺參數(shù)對比分析
由表2可知,經(jīng)補償后,25個香梨樣本體尺參數(shù)測量值誤差減小,長、寬、高、體積的平均相對誤差分別為2.8%,1.9%,3.9%,2.8%。經(jīng)誤差修正后,各參數(shù)的測量誤差顯著降低,滿足實際生產(chǎn)需要。
選取10個新的香梨樣本,采用經(jīng)過誤差修正后的體尺參數(shù)測量方法在相同條件下測量其體積,再將體積代入式(14)計算出重量作為預(yù)測值;最后用電子秤測量其重量作為真實值,試驗數(shù)據(jù)見表3。
表3 香梨重量預(yù)測值與真實值對比
由表3可知,樣本重量絕對誤差最大為4.3 g,最小為0.1 g,最大相對誤差為3.5%,平均相對誤差為1.96%。
搭建了簡易試驗平臺,在距地面50 cm處對25個香梨樣本拍照,進(jìn)行體尺參數(shù)測量試驗,通過點云預(yù)處理獲得香梨表面的豎直點云;通過插值算法從離散點云中找到香梨曲面構(gòu)建出香梨模型;使用微元法的思想通過香梨模型計算出香梨體積,計算香梨各體尺參數(shù)的測量誤差;通過分析測量誤差找出誤差補償值后重新選取25個香梨樣本,重復(fù)上述步驟,計算經(jīng)過誤差補償后的各香梨體尺參數(shù)并計算測量誤差,經(jīng)分析得出,在距地面50 cm處采集圖像的前提下,香梨各體尺參數(shù)測量值的平均相對誤差均不超過5%,驗證了Kinect相機測量體尺參數(shù)方法的可行性。選取10個新的香梨樣本進(jìn)行香梨重量預(yù)測試驗,結(jié)果顯示香梨重量的平均相對誤差為1.96%。后續(xù)可進(jìn)行大量實際測量構(gòu)建從體尺參數(shù)到重量的深度神經(jīng)網(wǎng)絡(luò)模型,與該方法進(jìn)行數(shù)據(jù)融合,進(jìn)一步降低誤差。