王亞琪?k陳成軍++李希彬++李全寶
摘要:使用Kinect采集的深度數(shù)據(jù),進(jìn)行了軸類零件三維重建算法的研究。首先借助Kinect獲取深度和彩色數(shù)據(jù),通過坐標(biāo)轉(zhuǎn)換將深度信息轉(zhuǎn)換成三維點(diǎn)云數(shù)據(jù);其次提取出感興趣目標(biāo)的點(diǎn)云數(shù)據(jù),根據(jù)點(diǎn)云數(shù)據(jù)的噪聲特點(diǎn),并對其進(jìn)行濾波降噪處理;然后進(jìn)行點(diǎn)云分割獲得點(diǎn)云集,最后對各點(diǎn)云集進(jìn)行結(jié)構(gòu)參數(shù)化分析。實(shí)驗(yàn)結(jié)果表明,本文算法能夠精確、高效地實(shí)現(xiàn)軸類零件的重建。
關(guān)鍵詞:Kinect;三維重建;三維點(diǎn)云;點(diǎn)云分割
中圖分類號:TP391文獻(xiàn)標(biāo)識碼:A
1引言
三維重建技術(shù)是指通過計(jì)算機(jī)數(shù)字化手段,對客觀世界中的三維實(shí)體建立數(shù)學(xué)模型的過程,它是計(jì)算機(jī)視覺、人工智能、虛擬現(xiàn)實(shí)等前沿領(lǐng)域的熱點(diǎn)和難點(diǎn)。隨著立體視覺技術(shù)的發(fā)展,激光雷達(dá)和三維掃描儀等設(shè)備逐漸出現(xiàn),常見有手持激光系統(tǒng)和TOF相機(jī),手持激光系統(tǒng)發(fā)射激光感測距離值,需多次掃描獲取數(shù)據(jù),且通常需要搭配額外裝置。TOF相機(jī)通過時(shí)間換算得到深度數(shù)據(jù),但價(jià)格昂貴、數(shù)據(jù)計(jì)算量過大。
微軟推出的Kinect[1]深度傳感器采用光編碼技術(shù)通過紅外定位獲取物體的RGBD信息,由于其擁有廣泛的應(yīng)用潛力而在近兩年備受人們關(guān)注,許多學(xué)者利用Kinect對三維重建技術(shù)展開了深入研究。2011年微軟官方驅(qū)動Kinect for Windows SDK1.7[2]中引入了Kinect Fusion[3-4]功能,在支持GPU加速的開發(fā)環(huán)境中,該技術(shù)可以對物體進(jìn)行三維建模,實(shí)時(shí)性強(qiáng)。通過手持Kinect對物體環(huán)繞一周掃描,幾秒鐘后就能創(chuàng)建足夠平滑的重建的靜態(tài)場景,產(chǎn)生點(diǎn)陣云以及3D表面模型。Chatterjee[5]創(chuàng)建了一個(gè)基于Kinect的幾何一致的三維模型系統(tǒng),首先利用雙邊濾波器平滑深度圖,采用ICP全局配準(zhǔn)實(shí)現(xiàn)對視角數(shù)據(jù)的拼接,最后求解符號距離函數(shù)完成完整的三維模型。2013年,Daniela[6]提出了重建3D數(shù)字化模型的解決方案,利用Kinect獲取數(shù)據(jù),基于HIS的顏色分析算法分割數(shù)據(jù),基于數(shù)據(jù)的形狀特征與組件庫里的虛擬元件比較識別3D對象,從而創(chuàng)建一個(gè)可靠地3D模型。在國內(nèi),劉鑫[7]等人提出了一種基于Kinect并借助GPU的全自動快速物體重建方法。葉日藏[8]利用Kinect對數(shù)據(jù)獲取、預(yù)處理、多視角配準(zhǔn)、點(diǎn)云融合進(jìn)行了理論分析,完成了對日常生活物品的數(shù)字化重建。然而,由于Kinect本身獲取數(shù)據(jù)的精度不高,噪聲大,質(zhì)量低,其數(shù)據(jù)的不完整性和二義性往往不能滿足機(jī)械類零件重建的要求。
本文通過 Kinect 深度傳感器采集深度信息,并將其應(yīng)用于機(jī)械軸類零件掃描重建,針對過程中出現(xiàn)的數(shù)據(jù)噪聲問題,本文采用一種快速雙邊濾波器將其對二維圖像處理擴(kuò)展到對三維點(diǎn)云數(shù)據(jù)進(jìn)行去噪操作。針對聚類分割不適于具有相似形狀的軸類零件,點(diǎn)云分割誤差大這一不足,本文通過計(jì)算點(diǎn)云數(shù)據(jù)的法向矢量及曲率,對聚類分割算法進(jìn)行改進(jìn),將軸類零件點(diǎn)云數(shù)據(jù)分割成不同點(diǎn)云集,提高了算法性能并使結(jié)果更加精確。針對Kinect的精度問題,本文對分割后的各個(gè)點(diǎn)云集進(jìn)行結(jié)構(gòu)參數(shù)化分析與識別,從而重建出完整的三維模型。
2總體設(shè)計(jì)方案
本文利用Kinect深度傳感器作為輸入設(shè)備,對三維重建流程中的數(shù)據(jù)獲取、預(yù)處理、點(diǎn)云分割、結(jié)構(gòu)分析進(jìn)行了研究及理論分析,提出了一個(gè)基于Kinect深度傳感器的三維重建方案:首先,借助 Kinect 獲取深度和彩色數(shù)據(jù),通過坐標(biāo)轉(zhuǎn)換獲得目標(biāo)物體表面每個(gè)點(diǎn)的三維空間坐標(biāo),以此形成一個(gè)點(diǎn)的集合—點(diǎn)云。其次,根據(jù)圖像內(nèi)容的屬性和特點(diǎn),將圖像分割成各個(gè)區(qū)域,并提取出感興趣目標(biāo)的點(diǎn)云數(shù)據(jù)。并根據(jù)深度數(shù)據(jù)的噪聲特點(diǎn),分析比較幾種濾波算法,優(yōu)化選擇一種雙邊濾波算法對三維點(diǎn)云數(shù)據(jù)進(jìn)行降噪平滑處理。然后,估計(jì)過濾后點(diǎn)云的表面法線并計(jì)算每個(gè)點(diǎn)云的曲率,進(jìn)而實(shí)現(xiàn)基于法線和曲率的點(diǎn)云分割。最后對軸類零件的各個(gè)點(diǎn)云集進(jìn)行結(jié)構(gòu)參數(shù)化分析并顯示。三維重建流程如下圖:
3三維點(diǎn)云數(shù)據(jù)獲取與預(yù)處理
3.1深度圖像與彩色圖像的獲取
Kinect傳感器通過發(fā)射紅外光利用彩色和深度攝像頭采集原始數(shù)據(jù),兩種數(shù)據(jù)結(jié)合生成三維數(shù)據(jù)。由于Kinect內(nèi)部已對深度攝像頭和彩色攝像頭進(jìn)行了徑向畸變的矯正處理,則可以將捕捉的深度數(shù)據(jù)和彩色信息直接應(yīng)用于生成三維點(diǎn)云數(shù)據(jù)。從深度攝像頭獲取的紅外數(shù)據(jù),分別代表深度圖像坐標(biāo)系統(tǒng)的 X、Y、Z 坐標(biāo),Z坐標(biāo)值表示某點(diǎn)到鏡頭的深度值。圖2顯示由 Kinect 獲取的彩色圖像和原始深度圖像。
由于深度攝像頭和彩色攝像頭在Kinect中的位置不同,兩者采集數(shù)據(jù)的角度不同,得到的原始數(shù)據(jù)的坐標(biāo)在水平方向存在一定的偏差。通過 OpenNI 的校正函數(shù)可修正兩個(gè)相機(jī)產(chǎn)生的視差問題,使得目標(biāo)物兩種圖像對齊到相同的位置,為后續(xù)的點(diǎn)云處理提供可靠數(shù)據(jù)。校準(zhǔn)后的兩圖像視角一致,如圖3所示:
通過與之前未校準(zhǔn)的結(jié)果相比,可以發(fā)現(xiàn)校準(zhǔn)后的結(jié)果周圍的黑邊明顯比較大,同時(shí)也有一些幾何上的修正(四邊有稍微內(nèi)凹),這是因?yàn)閷⑸疃葦z像頭的視角調(diào)整為彩色攝像頭的視角,這樣兩幅圖像的內(nèi)容就完全一致,沒有偏差。
6實(shí)驗(yàn)結(jié)果與分析
本文使用c++編程對聚類分割進(jìn)行了改進(jìn),實(shí)現(xiàn)了基于法線和曲率特征的分割算法,比較兩種算法的實(shí)驗(yàn)結(jié)果圖9和圖11可知,在處理具有相似特征的大數(shù)據(jù)時(shí),聚類分割算法粗糙,分割結(jié)果誤差大。本文算法通過對點(diǎn)云數(shù)據(jù)的法線估計(jì)與曲率計(jì)算,將軸類零件精確分割成四部分如圖11(a)(b)(c)(d),本文算法在分割性能與精度上遠(yuǎn)遠(yuǎn)優(yōu)于原始聚類分割算法。針對分割后的零件各點(diǎn)云集,本文對其分別進(jìn)行結(jié)構(gòu)參數(shù)分析,結(jié)果如下:
由表1結(jié)果看出,與軸類零件實(shí)際測量結(jié)果相比,本文算法得到的實(shí)驗(yàn)結(jié)果誤差在毫米級,與實(shí)際偏差很小,尚在允許范圍內(nèi),滿足工業(yè)需求。至此本文將軸類零件分割成4個(gè)點(diǎn)云集,并識別其模型類型和參數(shù)計(jì)算,準(zhǔn)確進(jìn)行了結(jié)構(gòu)分析,將最初采集的單視角、噪聲大、誤差大的不完整數(shù)據(jù)轉(zhuǎn)化為平滑且高質(zhì)量的完整的點(diǎn)云數(shù)據(jù),為后續(xù)三維重建提供可靠保證的點(diǎn)云集。
7結(jié)論
本文利用kinect實(shí)現(xiàn)了軸類零件的三維重建技術(shù)。由于kinect自身技術(shù)原因,采集的三維點(diǎn)云數(shù)據(jù)精度低噪聲大且不完整。首先利用雙邊濾波算法對數(shù)據(jù)進(jìn)行降噪平滑處理,然后針對現(xiàn)有的聚類分割,提出了一種改進(jìn)的分割算法。新算法分析了點(diǎn)云的法線和曲率特征,結(jié)合聚類思想將零件數(shù)據(jù)精確分割為4個(gè)點(diǎn)云集。實(shí)驗(yàn)表明新算法的分割性能遠(yuǎn)遠(yuǎn)優(yōu)于原始聚類分割算法。最后本文對各部件進(jìn)行結(jié)構(gòu)參數(shù)化分析與識別,提高了數(shù)據(jù)質(zhì)量和精度,從而重建出完整可靠地軸類零件。
參考文獻(xiàn)
[1]Microsoft Kinect[EB/OL].http://www.xbox.com /en-us/kinect.
[2]Introducing Kinect for Windows[EB/OL]. (2013)[2013-8-20].http:// www.k4w.cn/.
[3]Newcombe R A,Izadi S,Hilliges O,et al. KinectFusion: Real-time dense surface mapping and tracking:Proceedings of the 2011 10th IEEE International Symposium on Mixed and Augmented Reality,2011[C].IEEE Computer Society.
[4]余濤.Kinect應(yīng)用開發(fā)實(shí)戰(zhàn)用最自然的方式與機(jī)器對話[M].北京: 機(jī)械工業(yè)出版社, 2013.
[5]Chatterjee A,Jain S,Govindu V M.A pipeline for building 3D models using depth cameras:Proceedings of the Eighth Indian Conference on Computer Vision,Graphics and Image Processing,Mumbai,India,2012[C].ACM.
[6]Daniela Alexandra,Esteves Gil Borges.3D Object Reconstruction Using Kinect[J].2013.
[7]劉鑫,許華榮,胡占義.基于GPU和Kinect的快速物體重建[J].自動化學(xué)報(bào),2012(08);1288-1297.
[8]葉日藏.基于Kinect深度傳感器的三維重建技術(shù)應(yīng)用研究[D].廣州:華南理工大學(xué), 2013.
[9]TOMASIC,MANDUCHI R.Bilateral filtering for gray and color image[C]//Proc of the 6th International Conference on Computer Vision.1998:839-846.
[10]Rusu R.Semantic 3D Object Maps for Everyday Manipulation in Human Living Environments[J].KI-Kunstliche Intelligenz,2010,24(4):345-348.
[11]R.I.Hartley and A.Zisserman.Multiple View Geometry in Computer Vision[C].Cambridge University Press,second edition,2004.ISBN 0521540518.