張煜軒
摘? ?要:為了彌補現(xiàn)有的利用深度圖像進行體積測量方案中只能針對中小型貨物的缺點,提出了一種基于點云配準的中大型物體體積快速測量方案。首先,利用深度相機獲取物體深度圖像及點云信息。針對難以單次獲取完整表面和深度的中大型物體,多次測量貨物相鄰表面并利用點云配準算法擬合出較為完整的物體表面。最后對擬合表面體素濾波、直通濾波和物體分割提取等處理后,測算提取出的目標物體體積。經(jīng)驗證,該種方法測算物體體積相對誤差低于5%,在固定場景下可實時精準測量,具有較強的魯棒性。
關(guān)鍵詞:點云配準;深度圖像;體積測量;點云濾波;表面擬合
中大型貨物體積測量在各種場景均有廣泛的應(yīng)用需求?,F(xiàn)有貨物體積測量方案以激光搭配旋轉(zhuǎn)舵機收集掃描點云數(shù)據(jù)為主[1-2],這類方案受限于舵機旋轉(zhuǎn)速度,因而估算體積速度較慢,而且使用激光傳感器成本較高。另有部分方案利用雙目相機或者深度相機來估算貨物體積[3-4]。中大型貨物在深度相機單個視角下難以同時獲取完整表面及對應(yīng)的相鄰面深度信息。因此,現(xiàn)有的深度相機測量方案只適用于具有完整表面和深度信息的小型物體。
利用深度相機來有效測量中大型貨物的體積,需將不同視角下捕獲的深度圖像點云信息配準到同一坐標系下,用以聯(lián)合擬合出測量體積所需的完整表面。本研究提出一種基于點云配準的中大型貨物體積快速測量方案,以彌補現(xiàn)有深度相機測量體積方案局限于小型物體的不足。本方案與目前主流的物體體積測量方案的區(qū)別有兩點:(1)針對體積較大的物體,通過最近點搜索法(Iterative Closest Point,ICP)將不同視角下捕獲的物體深度點云配準到同一坐標系下,用以聯(lián)合擬合出測量體積所需的表面信息。(2)區(qū)別于基于二維圖像的目標識別處理算法,直接利用三維點云聚類分割,快速提取出有效目標。
1? ? 算法概述
利用Kinect深度相機獲取的深度圖像,在點云庫(Point Cloud Library,PCL)的支持下,利用點云配準及目標提取算法進行體積測量,主要流程如圖1所示。受Kinect深度相機有效景深影響,對于貨物體積過于龐大、單次采集的點云圖不能完整擬合出目標物體表面的情況,移動深度相機再次測量該側(cè)面,如圖2所示。最終采集到的圖像應(yīng)該包含完整測量信息,即包含待測物體某一完整表面及其對應(yīng)側(cè)面的深度信息。
針對連續(xù)兩次獲取的深度圖像點云數(shù)據(jù),各自提取圖像里的NUFR特征點,并根據(jù)點云描述子將兩幅點云里的特征點進行匹配。最后根據(jù)成功匹配的特征點利用ICP算法求兩個點云的相對位姿,并將后者點云中的所有點根據(jù)相對位姿關(guān)系擬合到前者點云坐標系下[5]。如果匹配后的點云仍不能包含測算體積所需的完整信息,則再次獲取點云深度圖像,與上次配準的點云進行再次配準,直至包含完整信息。對配準以后的點云利用點云濾波、分割算法選取出僅包含待測物體的點云,最后計算體積。
2? ? 點云配準
點云配準是指通過找到目標點云與基礎(chǔ)點云中的特征點,然后利用匹配的特征點來求算兩者的位姿變換關(guān)系,從而把目標點云擬合到基礎(chǔ)點云中[6]。利用點云配準算法將多次采集的各個不同局部表面聯(lián)合擬合出一個完整貨物表面及其對應(yīng)的高度邊。
2.1? 特征提取與匹配
點云特征是指在相機運動過程中觀測到的比較有代表性、辨識度高的一些點,良好的特征點一般具有旋轉(zhuǎn)平移不變形性、抗噪性和抗密度干擾性,一般在角點、邊緣或者別的曲率變化較大的地方相對容易提取到。不同圖像或者點云之間的特征點通過特征描述來進行匹配,成功匹配的特征點對可用來表示不同點云之間的運動關(guān)系。本研究主要利用局部最小二乘法提取兩幅點云圖中的法線特征。設(shè)由N個點組成的點云P{p1, p2, …, pn}中任意一點為,pi其半徑為r內(nèi)的鄰域為,鄰域內(nèi)的質(zhì)心為。點云pi協(xié)方差矩陣為:
(1)
C·vj=λj·vj(2)
其中λj為協(xié)方差矩陣C的特征值。令λj中的最小值λ為pi的特征向量,則法線的偏角為:
(3)
其中為點的法線向量。設(shè)法線的偏角閾值為θ0,若兩個點云之中兩點法線偏角之間的差值小于該閾值,則認為這兩點是成功匹配的特征點。
2.2? 位姿變換
如何準確獲取各次采集的點云之間的相對位姿變換,對于聯(lián)合各次采集的點云數(shù)據(jù)擬合一個完整物體表面至關(guān)重要。使用旋轉(zhuǎn)矩陣(R)、平移向量(t)來聯(lián)合表示相對位姿變換(T)。由于點云具有三維坐標,可采用迭代最近鄰(Iterative Closest Points,,ICP)算法獲取兩對點云之間位姿變換。假設(shè)成功匹配的三維點對的集合為P={p1,p2,…,pn},Q={q1,q2,…,qn}。找到一個歐式變換矩陣T(R,t),使得對i均有:
pi=Rqi+t(4)
定義第i對點對的誤差項:
ei=pi-(Rqi+t)(5)
構(gòu)建最小二乘問題,求使所有誤差項平方和達到極小的T*(R*,t*):(6)
定義兩組點的質(zhì)心:
將兩組質(zhì)心點帶入公式(6):
(7)
由式(7)分析知:左邊只和旋轉(zhuǎn)矩陣R有關(guān),而右邊同時含有R,t,在求解R基礎(chǔ)上,令第二項為0就能得到t。
(8)
其中:
Pi=pi-p,Qi=qi-q(9)
t*=p-Rq
展開關(guān)于R的誤差項,得:
由于上式第一項與R無關(guān),第二項RTR=I,也與R無關(guān),因此優(yōu)化式(9)的目標函數(shù)變?yōu)?/p>
(10)
定義矩陣:
W=
由于W是3x3的矩陣,對W進行奇異值分解,得
W=U(11)
其中,∑為奇異值組成的對角矩陣,對角線元素從大到小排列,而U和V為對角矩陣,當W滿稚時:
R=UVT(12)
解得R后,再按式(6)求解t即可得到變換矩陣T(R,t)。
2.3? 點云擬合
設(shè)待配準的基礎(chǔ)點云和目標點云分別為M(m1,m2,...,mm)以及N(n1,n2,...,nn),通過匹配兩個點云里面對應(yīng)的法線特征后進行奇異值分解得到變換矩陣T(R,t)。對i∈N:
(13)
式中,T為式(11)解得的位姿變換矩陣,經(jīng)過配準后的基礎(chǔ)點云為(m1,m2,...,mm,n1,n2,...,nn)。
3? ? 目標提取及測算
3.1? 目標物體濾波
為準確快速地提取目標點云,需要先對具有噪聲的深度圖像進行體素濾波以提高點云處理速度,再進行平滑濾波處理以排除離群點干擾,最后利用直通濾波限定目標物體ROI區(qū)域。
3.1.1? 體素濾波
由于原始深度圖像點云數(shù)量巨大,直接用其進行點云迭代計算量大、效率低,而體素濾波可在不改變原有幾何結(jié)構(gòu)的前提下,對點云數(shù)量進行降采樣,進而減少計算量,提升后續(xù)點云處理算法運算效率。經(jīng)過各方向上設(shè)置的葉子節(jié)點大小均為1 cm的體素濾波后,可將點云數(shù)量減少到8萬左右,同時保持目標物體的剛性結(jié)構(gòu)不變,加速后續(xù)濾波及目標分割處理算法。
3.1.2? 統(tǒng)計濾波
Kinect相機圖像由于其成像特性,經(jīng)過體素濾波的深度圖像仍然包含有較多的非目標物體噪聲凸點。因此,需要對目標物體再次進行針對噪聲點的濾波處理以排除其干擾。為降低離群點對目標點云長寬高統(tǒng)計的干擾,提升點云處理的準確性,利用統(tǒng)計濾波來對點云進行進一步的平滑處理。
3.1.3? 直通濾波
在測量目標物體時,由于深度相機點云的離散化特性或者底平面不平,目標物體底平面難以完全濾除,因此,可利用相機測量時相機與物體地平面的距離信息進行直通濾波,將物體底平面以下部分直接完全濾除,如圖3所示。
3.2? 分割提取
在過濾掉點云孤立的噪聲以及剔除目標物體底平面干擾以后,可利用歐式聚類分割算法和基于顏色區(qū)域增長的分割算法等對目標物體進行有效的分割提取。
3.2.1? 基于顏色區(qū)域增長
基于顏色區(qū)域增長的分割算法主要思想是利用點云中選取的種子點的顏色差異信息來分割提取目標物體。通過設(shè)置種子點的距離包含范圍、點和小區(qū)域內(nèi)可接受的顏色變化范圍以及最小的聚類分割物體點云數(shù)量大小,可將顏色相近的區(qū)域分割提取出來。
3.2.2? 歐式聚類分割
對于不規(guī)則目標物體或者難以通過特定模型進行分割提取的目標物體,可利用歐式聚類分割算法進行有效的提取。歐式聚類的主要思想是判斷不同點之間的歐式距離并根據(jù)距離閾值將不同的點進行分類,從而分割出目標物體。由于經(jīng)過點云配準和濾波過后待分割提取的目標點云主要呈“L”型,本研究采用上述歐式聚類算法對目標物體進行分割提取。
3.3? 體積計算
通過歐式聚類分割提取目標模型后,求算目標模型的最小包圍盒可找出計算目標體積所需的點云定點坐標參數(shù),如圖4所示。該模型下體積可表示為:
目標模型的深度h:為:
h=
經(jīng)校正后的目標物體體積為:
V=(14)
其中k為深度相機真實深度與測量深度的比值,(x1,y1),(x2,y2),(x3,y3),(x4,y4)分別為如圖4所示的深度相機基準面的4個頂點,h為該面相鄰面的深度。
4? ? 實驗及結(jié)果分析
本實驗采用的硬件平臺為神舟酷睿i5-8300H筆記本和微軟第一代Kinect相機,在Window平臺PCL點云庫的支持下標定了Kinect相機景深參數(shù)。由于Kinect深度相機有效測量深度在0.2~5.0 m,隨著距離的增加,測量的深度誤差逐漸增加。為保證估算深度的準確度,選取合適的參照物,在不同距離下標定了相機的測量深度。標定后利用上述算法對待測物體進行了快速體積測量,測量結(jié)果如表1所示。從表1中不難發(fā)現(xiàn):對于體積在1 m3以內(nèi)的矩形貨物,實測體積的相對誤差可控制在3%以內(nèi);對于體積在1~2 m3的矩形貨物,實測體積的相對誤差可控制在3%以內(nèi);對于體積在2~4 m3的矩形貨物體積測量誤差可控制在5%以內(nèi),可以滿足大部分物流場景體積測量對精度的要求。
5? ? 結(jié)語
針對現(xiàn)有深度相機測量體積方案中,因相機可測景深限制而只能應(yīng)用于小型物體及物流包裹的情況,提出了一種基于點云配準的中大型貨物的快速體積測量方法。首先,利用點云配準將中大型物體在不同視角下的深度圖像擬合到同一基準點云下,從而得到完整的物體表面信息。然后對基準點云通過體素濾波、統(tǒng)計濾波和歐式分割聚類等點云處理算法進行目標提取。最后對提取的目標物體進行體積測量。實驗表明,該方法對不同尺寸的中小型物流箱體的體積測量誤差均能控制在5%以內(nèi),有效彌補了現(xiàn)有的深度相機測量體積方案的不足。此外,本方案相較于激光測量方案更具有成本低、測量速度快等優(yōu)點,能為各種物流航運的體積測算作業(yè)節(jié)省大量的時間成本,在計算機視覺技術(shù)在中大型貨物體積測量領(lǐng)域的應(yīng)用發(fā)展方面具有一定的參考價值。
[參考文獻]
[1]路達,滕奇志,卿粼波,等.基于激光測距的中小型貨物三維體積掃描[J].微型機與應(yīng)用,2015(23):83-86.
[2]王順錄,李黨娟,范源,等.短距離激光測距傳感器系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2016(11):98-102.
[3]翟乃斌,蘇建,劉玉梅,等.基于計算機視覺的汽車整車尺寸測量系統(tǒng)[J].交通與計算機,2006(3):22-26.
[4]王潛,張艷彬.基于雙目視覺的貨車尺寸測量[J].計算機技術(shù)與發(fā)展,2018(6):167-170,175.
[5]BESL P J,MCKAY N D.A method for registration of 3-D shapes[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1992(2):0-256.
[6]PULLI K.Multiview registration for large data sets[C].Ottawa:the Second International Conference on 3-D Digital Imaging and Modeling,1999.