《電子技術(shù)應用》
您所在的位置:首頁 > 顯示光電 > 設(shè)計應用 > 基于Kinect深度圖像的三維重建
基于Kinect深度圖像的三維重建
2016年微型機與應用第05期
李務軍,吳斌
(西南科技大學 信息工程學院,四川 綿陽 621000)
摘要: 隨著機器視覺理論的發(fā)展和硬件技術(shù)的進步,三維重建在生產(chǎn)、生活中的應用越來越廣泛,基于Kinect傳感器的三維重建得到廣泛的應用。針對于現(xiàn)有的Kinect傳感器獲得的深度圖像深度信息丟失的問題,提出了一種新的基于均值濾波的方法對深度圖像進行去噪,并對深度圖像進行預處理,獲取三維點云,用迭代最近點(Iterative Closest Point, ICP)算法完成點云的精確配準,從而得到配準后物體表面三維點云,并完成物體的三維重建。
Abstract:
Key words :

  李務軍,吳斌

 ?。ㄎ髂峡萍即髮W 信息工程學院,四川 綿陽 621000)

  摘要:隨著機器視覺理論的發(fā)展和硬件技術(shù)的進步,三維重建在生產(chǎn)、生活中的應用越來越廣泛,基于Kinect傳感器的三維重建得到廣泛的應用。針對于現(xiàn)有的Kinect傳感器獲得的深度圖像深度信息丟失的問題,提出了一種新的基于均值濾波的方法對深度圖像進行去噪,并對深度圖像進行預處理,獲取三維點云,用迭代最近點(Iterative Closest Point, ICP)算法完成點云的精確配準,從而得到配準后物體表面三維點云,并完成物體的三維重建。

  關(guān)鍵詞:Kinect傳感器; 點云配準;ICP算法;三維重建

0引言

  三維重建技術(shù)是人工智能、機器視覺和虛擬現(xiàn)實等領(lǐng)域的熱點和難點,也是人類目前研究內(nèi)容的重大難題之一。三維重建技術(shù)已經(jīng)廣泛用于生物醫(yī)學成像、機器人遙操作系統(tǒng)、人機交互等領(lǐng)域。三維重建主要針對人機交互界面中重構(gòu)出的虛擬場景,目前國內(nèi)外對于現(xiàn)實場景的三維重建也有所研究[12]。

  三維重建工作可以分為3個步驟。首先,通過對待構(gòu)建物體的大量信息點坐標的檢測來獲取點云信息;其次,對于已獲取的散亂點云進行預處理;最后,對于由不同方向得到的點云進行配準[3],使它們同處于同一世界坐標下。通過融合這些點云信息,就可對實際場景進行三維重構(gòu)。

  現(xiàn)有的三維重建技術(shù)可分為被動式技術(shù)和主動式技術(shù)。被動式技術(shù)利用自然光反射拍攝的圖片,通過一系列算法計算得到物體的三維坐標,如structure from motion[4]和multi-view stereo[5]。主動式技術(shù)是直接測量物體的深度信息,如采用結(jié)構(gòu)光的Kinect[6]和采用time of fliht技術(shù)的CamCube[7]。在本文中,將會根據(jù)Kinect傳感器得到的深度圖像,并以用戶的視角來對真實場景進行三維重構(gòu)。通過三維重建技術(shù),可以在計算機中生成一個可交互的可視化系統(tǒng),當用戶在一個固定的攝像機前面移動時,就可以通過可視化系統(tǒng)觀看到重構(gòu)的三維場景,并且可以看到其自身所處的環(huán)境情況。這也是三維重構(gòu)研究所要達到的效果。

1Kinect工作原理

  1.1Kienct標定

  Kinect是一種主動傳感器,有3個鏡頭,中間鏡頭是RGB彩色攝像機,左右兩邊鏡頭分別是紅外線發(fā)射器和紅外線CMOS攝像機所構(gòu)成的3D結(jié)構(gòu)光深度信息感應器。

  在使用Kinect的攝像頭之前,需要先對其進行標定,包括對彩色攝像頭和紅外攝像頭。通過標定可以獲取Kinect攝像頭的內(nèi)外參數(shù)。在此次標定實驗中,獲取10幅標定所需要的圖像數(shù)目,以獲取更高的精度和更好的穩(wěn)定性,拍攝到的深度圖像和RGB圖像如圖1所示(此處只顯示1幅)。

  

001.jpg

  1.2圖像坐標轉(zhuǎn)換

  真實世界坐標系與深度圖像坐標系的示意圖如圖2所示。真實世界坐標系是以Kinect為坐標原點的右手坐標系。而在深度圖像坐標系中,是以深度圖像的原點作為坐標系原點的。因此,需要進行坐標轉(zhuǎn)換,將深度圖像的坐標系轉(zhuǎn)換為以Kinect深度攝像機中心為原點的真實世界坐標系。

  標定之后的Kinect攝像機,可以看做理想的針孔成像模型。根據(jù)Kinect的參數(shù)以及本文需要,設(shè)定彩色圖像和深度圖像的分辨率均為640×480。根據(jù)簡單的相似三角形原理,得到轉(zhuǎn)換之后的X、Y坐標分別為:

 12.png

  式中,X、Y分別為世界坐標中的橫坐標和縱坐標,u、v分別為深度圖像中的橫坐標和縱坐標,Z為深度信息,f為標定后獲取的焦距。

2三維重建

  Kinect深度攝像頭可以獲取周圍場景的深度信息,同時也可以得到三維場景的點云信息,繼而重建出物體的三維表面模型,而不必接觸物體。三維場景重構(gòu)的流程如圖3所示。

  

002.jpg

  2.1噪聲處理

  在Kinect獲取的深度圖像中,有些像素值為0的點,是深度無法確定的點。這些點的存在會使得到的三維場景產(chǎn)生很大的空洞。所以為了避免大部分的空洞出現(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幅相同視角下的深度圖像進行處理,其結(jié)果如圖4所示。

 

003.jpg

  2.2預處理

  由于Kinect設(shè)備本身原因或測量環(huán)境等帶來的影響,Kinect攝像機獲取的深度圖像通常會產(chǎn)生一定的噪聲,而這些噪聲會對后面的計算有著較大的不利影響,因此首先需要對原始的深度圖像進行去噪。

  一般圖像濾波可以用式(4)表示:

  I′(x,y)=1wp∑i,j∈Ωw(i,j)*I(i,j)(4)

  其中,I′(x,y)為濾波噪聲后的圖像;Ω為像素(x,y)的鄰域范圍;w(i,j)為濾波器在(x,y)點處的權(quán)值;wp是唯一化參數(shù);I(i,j)是原圖像。

  對于雙邊濾波[8],其權(quán)值系數(shù)由空間域權(quán)值ws和圖像灰度域權(quán)值wr組成,即w=ws×wr,其中:

  56.png

  式中,σs、σr為基于高斯函數(shù)的標準差,決定了雙邊濾波器的效果,限定了像素點的相對空間位置和灰度變化范圍。

  2.3點云配準

  由于Kinect攝像頭的視角不同,因此可獲得不同視角下的深度圖像,這時就需要對這些深度圖像進行配準,使其能匹配到同一坐標系下。常用的配準方法為ICP算法[911],其可提高配準精度。

  ICP算法為基于最小二乘法的最優(yōu)匹配方法,通過不斷迭代變換找到目標點集和參考點集的旋轉(zhuǎn)矩陣R和平移向量t,使兩片點云滿足某種條件下的最優(yōu)匹配。假設(shè)待匹配點云為P={pi}Npi=1和X={xi}Nxi=1,對點集P中的每個點pi,尋找其在點集X上的最近鄰點作為對應點,假設(shè)P={pi}Npi=1的對應點集為Y={yi}Npi=1,點云配準就是尋找P和Y之間的最優(yōu)變換關(guān)系,即尋找最小的旋轉(zhuǎn)矩陣R和平移向量t,使目標函數(shù)f最小。

  7.png

  2.4點云精簡

  在完成上述步驟之后,會產(chǎn)生大量多余的點云特征點,直接對其操作進行三角化會消耗大量內(nèi)存和時間,因此需要對點云信息進行精簡。

  本文采用降采樣濾波器對點云進行濾波。通過一個邊長約為1 cm的小立方格,將點云空間劃分成多個等體積的小立方體。然后,將這些立方體中的點用該立方體的重心來取代,如式(8)所示:

  x=1n∑xi

  y=1n∑yi

  z=1n∑zi (8)

  如下圖5所示,在立方體內(nèi)部,所有點的信息都會被中間的黑色的點所代替。

004.jpg

  3實驗結(jié)果

  本文使用C++編程和PCL庫實現(xiàn)了依靠點云信息的三維場景重構(gòu)。本文的實驗環(huán)境為Kinect傳感器及相關(guān)設(shè)備;操作系統(tǒng)為32位Microsoft Window7的臺式計算機一臺,處理器為Intel酷睿i53470M,主頻為3.2 GHz,內(nèi)存為4 GB,硬盤為1 TB。

  在本文所述的實驗中,用Kinect傳感器獲取周圍場景的彩色圖像和深度圖像,對深度圖像進行處理并修補孔洞。根據(jù)Kinect傳感器標定結(jié)果得到三維點云信息,并通過ICP算法對點云信息進行精確配準,然后對其進行三角化從而得到三維場景,結(jié)果如圖6所示。

  

005.jpg

  4結(jié)論

  本文基于Kinect傳感器進行物體三維重建,通過Kinect傳感器獲取場景的彩色和深度圖像,通過對深度圖像去噪并進行預處理以及點云匹配等捕捉得到場景的精確三維點云,從而重建出場景的三維模型。實驗表明,本文提出的方法得到的虛擬三維場景比較精確,可以看到其細節(jié)信息。但是,本文方法還需要進一步優(yōu)化,以在提高精確性的同時降低處理時間,從而達到更好的實時效果。

參考文獻

  [1] CHU J, NIE C M.Multiview point clouds registration and stitching based on SIFT feature[C]. In Proc. Int. Conf. Computer Research and Development, Shanghai, China, 2011:274278.

 ?。?] HENRY P, KRAININ M, HERBST E, et al. RGBD mapping: using depth cameras for dense 3D modeling of indoor environments[C]. In Proc. Int. Symp. Experimental Robotics, New Delhi, India, 2010,477491.

 ?。?] 李懷澤.基于旋轉(zhuǎn)平臺的多視角三維重建[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:557564.

 ?。?] 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:519526.

 ?。?] NEWCOMBE R A, IZADI S, HILLIGES O, et al. KinectFusion: realtime 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: 127136.

 ?。?] 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:17.

 ?。?] TOMASI C, MANDUCHI R. Bilateral filtering for gray and color images[C]. Proceedings of the Sixth International Conference on Computer Vision, 1998:839846.

 ?。?] 賀永興, 歐新良, 匡小蘭. 鄰域特征在點云配準中的應用[J]. 計算機應用, 2012, 32(3): 762765.

  [10] 蔣成成, 胡同森, 周維. 一種改進的迭代最近點算法[J]. 計算機系統(tǒng)應用, 2009, 18(8):8487.

 ?。?1] 郭連朋, 陳向?qū)? 徐萬鵬, 等. 基于kinect傳感器的物體三維重建[J]. 四川兵工學報, 2014(11):119123.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。