李務軍,吳斌
?。ㄎ髂峡萍即髮W 信息工程學院,四川 綿陽 621000)
摘要:隨著機器視覺理論的發(fā)展和硬件技術的進步,三維重建在生產、生活中的應用越來越廣泛,基于Kinect傳感器的三維重建得到廣泛的應用。針對于現(xiàn)有的Kinect傳感器獲得的深度圖像深度信息丟失的問題,提出了一種新的基于均值濾波的方法對深度圖像進行去噪,并對深度圖像進行預處理,獲取三維點云,用迭代最近點(Iterative Closest Point, ICP)算法完成點云的精確配準,從而得到配準后物體表面三維點云,并完成物體的三維重建。
關鍵詞:Kinect傳感器; 點云配準;ICP算法;三維重建
0引言
三維重建技術是人工智能、機器視覺和虛擬現(xiàn)實等領域的熱點和難點,也是人類目前研究內容的重大難題之一。三維重建技術已經(jīng)廣泛用于生物醫(yī)學成像、機器人遙操作系統(tǒng)、人機交互等領域。三維重建主要針對人機交互界面中重構出的虛擬場景,目前國內外對于現(xiàn)實場景的三維重建也有所研究[12]。
三維重建工作可以分為3個步驟。首先,通過對待構建物體的大量信息點坐標的檢測來獲取點云信息;其次,對于已獲取的散亂點云進行預處理;最后,對于由不同方向得到的點云進行配準[3],使它們同處于同一世界坐標下。通過融合這些點云信息,就可對實際場景進行三維重構。
現(xiàn)有的三維重建技術可分為被動式技術和主動式技術。被動式技術利用自然光反射拍攝的圖片,通過一系列算法計算得到物體的三維坐標,如structure from motion[4]和multi-view stereo[5]。主動式技術是直接測量物體的深度信息,如采用結構光的Kinect[6]和采用time of fliht技術的CamCube[7]。在本文中,將會根據(jù)Kinect傳感器得到的深度圖像,并以用戶的視角來對真實場景進行三維重構。通過三維重建技術,可以在計算機中生成一個可交互的可視化系統(tǒng),當用戶在一個固定的攝像機前面移動時,就可以通過可視化系統(tǒng)觀看到重構的三維場景,并且可以看到其自身所處的環(huán)境情況。這也是三維重構研究所要達到的效果。
1Kinect工作原理
1.1Kienct標定
Kinect是一種主動傳感器,有3個鏡頭,中間鏡頭是RGB彩色攝像機,左右兩邊鏡頭分別是紅外線發(fā)射器和紅外線CMOS攝像機所構成的3D結構光深度信息感應器。
在使用Kinect的攝像頭之前,需要先對其進行標定,包括對彩色攝像頭和紅外攝像頭。通過標定可以獲取Kinect攝像頭的內外參數(shù)。在此次標定實驗中,獲取10幅標定所需要的圖像數(shù)目,以獲取更高的精度和更好的穩(wěn)定性,拍攝到的深度圖像和RGB圖像如圖1所示(此處只顯示1幅)。
1.2圖像坐標轉換
真實世界坐標系與深度圖像坐標系的示意圖如圖2所示。真實世界坐標系是以Kinect為坐標原點的右手坐標系。而在深度圖像坐標系中,是以深度圖像的原點作為坐標系原點的。因此,需要進行坐標轉換,將深度圖像的坐標系轉換為以Kinect深度攝像機中心為原點的真實世界坐標系。
標定之后的Kinect攝像機,可以看做理想的針孔成像模型。根據(jù)Kinect的參數(shù)以及本文需要,設定彩色圖像和深度圖像的分辨率均為640×480。根據(jù)簡單的相似三角形原理,得到轉換之后的X、Y坐標分別為:
式中,X、Y分別為世界坐標中的橫坐標和縱坐標,u、v分別為深度圖像中的橫坐標和縱坐標,Z為深度信息,f為標定后獲取的焦距。
2三維重建
Kinect深度攝像頭可以獲取周圍場景的深度信息,同時也可以得到三維場景的點云信息,繼而重建出物體的三維表面模型,而不必接觸物體。三維場景重構的流程如圖3所示。
2.1噪聲處理
在Kinect獲取的深度圖像中,有些像素值為0的點,是深度無法確定的點。這些點的存在會使得到的三維場景產生很大的空洞。所以為了避免大部分的空洞出現(xiàn),需要對像素值為0的點進行處理。本文采用的方法為拍攝獲取同一視角下的n幅圖像Ii,對這些圖像Ii(x,y)的相同像素點(x, y)取均值再取整,得到處理后的圖像I(x,y),如式(3)所示,同時,在處理的過程中,如發(fā)現(xiàn)深度值為0(即深度值為隨機值)的點數(shù)多于深度值不為0的點數(shù),則視此點的深度值為隨機值。
I(x,y)=avgi=1,2…nIi(x,y)(3)
本文選取n的值為10,即獲取10幅相同視角下的深度圖像進行處理,其結果如圖4所示。
2.2預處理
由于Kinect設備本身原因或測量環(huán)境等帶來的影響,Kinect攝像機獲取的深度圖像通常會產生一定的噪聲,而這些噪聲會對后面的計算有著較大的不利影響,因此首先需要對原始的深度圖像進行去噪。
一般圖像濾波可以用式(4)表示:
I′(x,y)=1wp∑i,j∈Ωw(i,j)*I(i,j)(4)
其中,I′(x,y)為濾波噪聲后的圖像;Ω為像素(x,y)的鄰域范圍;w(i,j)為濾波器在(x,y)點處的權值;wp是唯一化參數(shù);I(i,j)是原圖像。
對于雙邊濾波[8],其權值系數(shù)由空間域權值ws和圖像灰度域權值wr組成,即w=ws×wr,其中:
式中,σs、σr為基于高斯函數(shù)的標準差,決定了雙邊濾波器的效果,限定了像素點的相對空間位置和灰度變化范圍。
2.3點云配準
由于Kinect攝像頭的視角不同,因此可獲得不同視角下的深度圖像,這時就需要對這些深度圖像進行配準,使其能匹配到同一坐標系下。常用的配準方法為ICP算法[911],其可提高配準精度。
ICP算法為基于最小二乘法的最優(yōu)匹配方法,通過不斷迭代變換找到目標點集和參考點集的旋轉矩陣R和平移向量t,使兩片點云滿足某種條件下的最優(yōu)匹配。假設待匹配點云為P={pi}Npi=1和X={xi}Nxi=1,對點集P中的每個點pi,尋找其在點集X上的最近鄰點作為對應點,假設P={pi}Npi=1的對應點集為Y={yi}Npi=1,點云配準就是尋找P和Y之間的最優(yōu)變換關系,即尋找最小的旋轉矩陣R和平移向量t,使目標函數(shù)f最小。
2.4點云精簡
在完成上述步驟之后,會產生大量多余的點云特征點,直接對其操作進行三角化會消耗大量內存和時間,因此需要對點云信息進行精簡。
本文采用降采樣濾波器對點云進行濾波。通過一個邊長約為1 cm的小立方格,將點云空間劃分成多個等體積的小立方體。然后,將這些立方體中的點用該立方體的重心來取代,如式(8)所示:
x=1n∑xi
y=1n∑yi
z=1n∑zi (8)
如下圖5所示,在立方體內部,所有點的信息都會被中間的黑色的點所代替。
3實驗結果
本文使用C++編程和PCL庫實現(xiàn)了依靠點云信息的三維場景重構。本文的實驗環(huán)境為Kinect傳感器及相關設備;操作系統(tǒng)為32位Microsoft Window7的臺式計算機一臺,處理器為Intel酷睿i53470M,主頻為3.2 GHz,內存為4 GB,硬盤為1 TB。
在本文所述的實驗中,用Kinect傳感器獲取周圍場景的彩色圖像和深度圖像,對深度圖像進行處理并修補孔洞。根據(jù)Kinect傳感器標定結果得到三維點云信息,并通過ICP算法對點云信息進行精確配準,然后對其進行三角化從而得到三維場景,結果如圖6所示。
4結論
本文基于Kinect傳感器進行物體三維重建,通過Kinect傳感器獲取場景的彩色和深度圖像,通過對深度圖像去噪并進行預處理以及點云匹配等捕捉得到場景的精確三維點云,從而重建出場景的三維模型。實驗表明,本文提出的方法得到的虛擬三維場景比較精確,可以看到其細節(jié)信息。但是,本文方法還需要進一步優(yōu)化,以在提高精確性的同時降低處理時間,從而達到更好的實時效果。
參考文獻
?。?] CHU J, NIE C M.Multiview point clouds registration and stitching based on SIFT feature[C]. In Proc. Int. Conf. Computer Research and Development, Shanghai, China, 2011:274278.
?。?] HENRY P, KRAININ M, HERBST E, et al. RGBD mapping: using depth cameras for dense 3D modeling of indoor environments[C]. In Proc. Int. Symp. Experimental Robotics, New Delhi, India, 2010,477491.
?。?] 李懷澤.基于旋轉平臺的多視角三維重建[D].杭州:浙江大學,2013.
?。?] DELLART F, SEITZ S M, THORPE C E, et al. Structure from motion without correspondence[C]. Proc of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2000:557564.
?。?] SEITZ S M, CURLESS B, DIEBEL J, et al. A comparison and evaluation of multi-view stereo reconstruction algorithms[C]. Proc of IEEE Conference on Computer Vision and Pattern Recognition,2006:519526.
?。?] NEWCOMBE R A, IZADI S, HILLIGES O, et al. KinectFusion: realtime dense surface mapping and tracking[C]. Proc of the 2011 10th IEEE Int. Symposium on Mixed and Augmented Reality, ISMAR ’11, Washington, DC, USA, 2011: 127136.
?。?] LEJEUNE A, PIERARD S, VAN DROOGENBROECK M. A new jump edge detection method for 3D camera[C]. Proc of the 2011 International Conference on 3D Imaging(IC3D),2011:17.
?。?] TOMASI C, MANDUCHI R. Bilateral filtering for gray and color images[C]. Proceedings of the Sixth International Conference on Computer Vision, 1998:839846.
[9] 賀永興, 歐新良, 匡小蘭. 鄰域特征在點云配準中的應用[J]. 計算機應用, 2012, 32(3): 762765.
?。?0] 蔣成成, 胡同森, 周維. 一種改進的迭代最近點算法[J]. 計算機系統(tǒng)應用, 2009, 18(8):8487.
[11] 郭連朋, 陳向寧, 徐萬鵬, 等. 基于kinect傳感器的物體三維重建[J]. 四川兵工學報, 2014(11):119123.