朱江濤,吳以凡,周 亮
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
基于多Kinect的三維人體重建系統(tǒng)
朱江濤,吳以凡,周亮
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
結(jié)合KinectFusion 技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一種基于多臺(tái)Kinect的三維人體重建系統(tǒng).該系統(tǒng)使用兩臺(tái)Kinect分別采集人體上下兩部分的點(diǎn)云數(shù)據(jù),通過標(biāo)定得到兩臺(tái)Kinect的姿態(tài)關(guān)系,并基于標(biāo)定結(jié)果,使用迭代最近點(diǎn)(ICP)算法對(duì)兩部分點(diǎn)云進(jìn)行配準(zhǔn)得到完整的人體三維模型.試驗(yàn)表明,系統(tǒng)設(shè)備成本低、部署簡(jiǎn)單,能快速并較高精度地獲取人體三維點(diǎn)云.
三維人體重建;Kinect;KinectFusion;標(biāo)定;點(diǎn)云配準(zhǔn)
三維人體重建技術(shù)在虛擬現(xiàn)實(shí)、動(dòng)漫產(chǎn)業(yè)、紡織業(yè)、服裝設(shè)計(jì)等領(lǐng)域有著重要應(yīng)用,也是近年來計(jì)算機(jī)視覺領(lǐng)域的一個(gè)熱門研究課題[1].基于結(jié)構(gòu)光、激光的三維掃描系統(tǒng)目前已經(jīng)比較成熟,重建數(shù)據(jù)精度高,但系統(tǒng)操作復(fù)雜、設(shè)備昂貴,此類人體掃描、重建系統(tǒng)價(jià)格一般在35 000~500 000美元,不適合普通用戶使用[2].隨著微軟Kinect的推出,其體積小、價(jià)格低廉、易使用等特性,使得深度攝像機(jī)走向大眾,出現(xiàn)了許多基于Kinect的三維重建系統(tǒng)[3-5].由于Kinect攝像頭獲取的原始深度數(shù)據(jù)比較粗糙[6],系統(tǒng)在兼顧重建精度和速度方面大多有待提高.文獻(xiàn)[7]提出了一種利用3臺(tái)Kinect對(duì)有輕微形變的人體進(jìn)行重建的方法,通過局部配準(zhǔn)與全局優(yōu)化的反復(fù)迭代來獲得最終人體模型.該方法需先對(duì)人體進(jìn)行建模,會(huì)一定程度地影響效率,對(duì)于某些應(yīng)用場(chǎng)景而言,最終人體模型的質(zhì)量也不夠高且有時(shí)存在配準(zhǔn)失敗問題.文獻(xiàn)[8]提出的KinectFusion技術(shù),通過手持一臺(tái)Kinect并移動(dòng)掃描,在任意光照條件下,能夠?qū)崟r(shí)、快速地創(chuàng)建房間級(jí)大小的復(fù)雜場(chǎng)景且富含細(xì)節(jié)的三維模型.其建立一個(gè)全局表面模型,并將Kinect 深度圖像數(shù)據(jù)不斷融入模型,逐步豐富完善模型,重建精度可達(dá)毫米級(jí).
本文將提出一種基于多臺(tái)Kinect的三維人體重建系統(tǒng),使用兩臺(tái)位置固定的Kinect和一個(gè)勻速轉(zhuǎn)臺(tái).系統(tǒng)運(yùn)行前,先對(duì)兩臺(tái)Kinect進(jìn)行標(biāo)定,獲得兩臺(tái)Kinect之間的姿態(tài)(水平距離、旋轉(zhuǎn)角度)關(guān)系;系統(tǒng)運(yùn)行過程中,人站立于勻速轉(zhuǎn)動(dòng)的轉(zhuǎn)臺(tái),兩臺(tái)Kinect通過KinectFusion技術(shù)分別采集、融合得到人體上下兩部分的點(diǎn)云;采集結(jié)束后,利用標(biāo)定得到的參數(shù)對(duì)兩片點(diǎn)云進(jìn)行預(yù)處理,再使用迭代最近點(diǎn)(iterative closest point,ICP)算法進(jìn)行配準(zhǔn)得到完整的人體點(diǎn)云.該系統(tǒng)硬件成本低,操作部署簡(jiǎn)單.
1.1硬件平臺(tái)
Kinect默認(rèn)模式的可視范圍是0.8~3.5 m,Kinect與待掃描物體間的推薦距離為1.5~2.0 m,可視角度為垂直方向43°、水平方向57°,垂直方向上下傾斜角度為±27°[9].Kinect的可視空間如圖1所示.
圖1 Kinect可視空間Fig.1 Kinect’s field of view
綜合考慮采集數(shù)據(jù)的精度和測(cè)量范圍,系統(tǒng)的平臺(tái)搭建如圖2所示.
圖2 硬件平臺(tái)Fig.2 Hardware platform
待重建人體站立于勻速轉(zhuǎn)臺(tái)上,與轉(zhuǎn)臺(tái)中心距離為D處垂直樹立一固定桿.在固定桿離地高度H1處固定第一個(gè)Kinect,在固定桿上第一個(gè)Kinect上方距離為H2處固定第二個(gè)Kinect,兩臺(tái)Kinect均面向人體.
Kinect與待掃描物體間的距離越近,測(cè)量越精確,為達(dá)到最佳測(cè)量效果,本文設(shè)定Kinect與待重建人體之間的距離為1.5 m,即D=1.5 m.設(shè)在距離為D處兩臺(tái)Kinect分別能掃描的人體高度為H,已知Kinect垂直方向可視角度θ=43°,則由幾何關(guān)系可得:
H =2×tan(q/2)×D
(1)
則計(jì)算可得H=1.18 m.
為確保第一臺(tái)Kinect能完全掃描到人體的雙腳,其離地最大高度為H/2=0.59 m,考慮待測(cè)人體的初始站位可能偏離中心靠外,故取H1=0.5 m 使得第一臺(tái)Kinect的中心離轉(zhuǎn)臺(tái)中心更近,以確保雙腳的精度.設(shè)待測(cè)人體身高為h,則要求兩臺(tái)Kinect的掃描高度不小于h,即
H1+H2+H/2≥h
(2)
h越大,則要求相應(yīng)的H2越大.若H2越大,兩臺(tái)Kinect的重疊部分高度H′ 則越小,H′ 是后續(xù)上下兩部分點(diǎn)云配準(zhǔn)融合的關(guān)鍵,重疊越多(即H′越大)則配準(zhǔn)融合越精確.權(quán)衡可測(cè)人體身高范圍和后續(xù)點(diǎn)云融合精度,取可測(cè)人體身高h(yuǎn)=2.0 m,相應(yīng)的H2取0.9 m.重疊部分H′為
H′=2×(H/2)-H2
(3)
代入H和H2計(jì)算可得H′=0.28 m.
在系統(tǒng)運(yùn)行過程中,轉(zhuǎn)臺(tái)順時(shí)針勻速轉(zhuǎn)動(dòng),Kinect持續(xù)掃描人體,不斷融合并逐步豐富完善細(xì)節(jié),最終得到人體模型.
1.2軟件流程
系統(tǒng)的數(shù)據(jù)處理流程主要包括標(biāo)定、采集、配準(zhǔn)3個(gè)部分,如圖3所示.
圖3 數(shù)據(jù)處理流程Fig.3 Flowchart of data processing
系統(tǒng)啟動(dòng)后,首先初始化系統(tǒng)參數(shù),設(shè)定Kinect深度幀分辨率、幀率,初始化KinectFusion相關(guān)參數(shù).采集階段,上下兩臺(tái)Kinect同時(shí)啟動(dòng),分別執(zhí)行相同的數(shù)據(jù)處理流程:每采集到一幀深度數(shù)據(jù),KinectFusion將其融入全局表面模型,并使用ICP算法估計(jì)當(dāng)前Kinect位置,采集結(jié)束則將其表面模型輸出為人體三維點(diǎn)云.配準(zhǔn)階段,先對(duì)兩片點(diǎn)云分別進(jìn)行去噪處理,再基于Kinect標(biāo)定所得參數(shù),調(diào)整兩片點(diǎn)云,對(duì)調(diào)整后的兩片點(diǎn)云用ICP算法進(jìn)行配準(zhǔn),最終得到完整的人體三維模型.其中,標(biāo)定過程只需在系統(tǒng)硬件平臺(tái)搭建完成后執(zhí)行一次.
2.1KinectFusion 技術(shù)
KinectFusion技術(shù)通過將 Kinect實(shí)時(shí)采集的深度數(shù)據(jù)幀融入一個(gè)全局表面模型,可實(shí)時(shí)、快速地建立物體的三維模型.全局表面模型是待重建物體所在空間中一個(gè)虛擬的立方體(volume),它用來包含物體的三維信息.隨著Kinect的移動(dòng),待重建物體不同視角的深度圖像被不斷地融入該立方體,三維模型也就不斷地精細(xì),最終由該模型得到物體的三維點(diǎn)云.
與已有的一些三維重建技術(shù)相比,KinectFusion有如下一些優(yōu)勢(shì):能夠?qū)崿F(xiàn)實(shí)時(shí)的相機(jī)位置追蹤和三維物體重建;由于KinectFusion只使用了深度幀數(shù)據(jù),因而不受光線影響,重建的精度更高.
2.2點(diǎn)云獲取
為了保證深度數(shù)據(jù)的質(zhì)量,設(shè)定Kinect的深度圖像幀分辨率為640像素×480像素,幀率為30幀/s.初始化KinectFusion立方體參數(shù)并啟動(dòng)掃描過程.點(diǎn)云獲取過程如圖4所示.對(duì)于兩臺(tái)Kinect各自采集的每一幀深度圖像,分別做如下處理:第一步,深度圖像轉(zhuǎn)化,將原始的深度圖像轉(zhuǎn)化為相機(jī)坐標(biāo)系中三維頂點(diǎn)和法線;第二步,相機(jī)追蹤,使用基于GPU實(shí)現(xiàn)的ICP算法,配準(zhǔn)當(dāng)前幀和上一幀數(shù)據(jù),得到當(dāng)前的Kinect相機(jī)姿態(tài)(位置和方向);第三步,立方體融合,已知當(dāng)前的相機(jī)姿態(tài),則可以將當(dāng)前得到的頂點(diǎn)轉(zhuǎn)化到全局坐標(biāo)系中,并更新相應(yīng)小立方體(體素)的數(shù)值;第四步,光線投射,對(duì)立方體進(jìn)行光線投射,得到立方體渲染的可視化圖像.移動(dòng)的Kinect會(huì)從細(xì)微變化的不同視角去看一個(gè)表面,任何在原始Kinect圖像中看不到的孔洞都會(huì)被填充,立方體中的數(shù)據(jù)也會(huì)被不斷改善.考慮到每幀數(shù)據(jù)處理過程存在著大量的計(jì)算,消耗較多的CPU和GPU資源,非中高端硬件配置的計(jì)算機(jī)處理30幀/s的幀率會(huì)出現(xiàn)不流暢現(xiàn)象,掃描過程中,對(duì)幀率作降頻處理,保證處理的流暢性.
掃描完成后,由兩臺(tái)Kinect各自的立方體數(shù)據(jù)計(jì)算得到人體的上下兩部分的網(wǎng)格數(shù)據(jù),并將網(wǎng)格數(shù)據(jù)保存為PCD(point cloud date)點(diǎn)云格式以便后續(xù)的點(diǎn)云預(yù)處理和配準(zhǔn).
圖4點(diǎn)云獲取過程
Fig.4Procedures of point cloud acquisition
2.3點(diǎn)云配準(zhǔn)
兩臺(tái)Kinect姿態(tài)關(guān)系由標(biāo)定過程得到,采用棋盤格標(biāo)定方法[10]對(duì)兩臺(tái)Kinect同時(shí)標(biāo)定,如圖5所示.其中,Oxyz為攝像機(jī)坐標(biāo)系;OXYZ為圖像坐標(biāo)系;OXwYwZw為世界坐標(biāo)系;p1和p2為空間上一點(diǎn)P在圖像坐標(biāo)系上的投影.
圖5 Kinect標(biāo)定Fig.5 Kinect calibration
由棋盤格標(biāo)定結(jié)果可知p1和p2到P點(diǎn)的三維變換分別為
(4)
(5)
其中:A1和A2分別為Kinect的3×3內(nèi)參矩陣;R1和R2為3×3旋轉(zhuǎn)矩陣;T1和T2為3×1平移矩陣.
聯(lián)立式(4)和(5)可得p1到p2的三維變換矩陣(即參數(shù)矩陣)[R|T]:
(6)
其中:R和T分別為旋轉(zhuǎn)矩陣和平移矩陣.
(7)
調(diào)整算法如下:
(1) 調(diào)整開始,創(chuàng)建點(diǎn)云C″1=?;
(8)
然后將P′加入到C″1中;
(3) 輸出C″1,調(diào)整結(jié)束.
調(diào)整后,點(diǎn)云C1″和C2′坐標(biāo)系相同.由于Kinect標(biāo)定存在一定的誤差,經(jīng)過調(diào)整后的兩片點(diǎn)云配準(zhǔn)效果還不理想,需要再通過ICP算法完成兩片點(diǎn)云的進(jìn)一步精確配準(zhǔn).
系統(tǒng)開發(fā)平臺(tái)為Visual Studio 2010,Intel? CoreTM i3-3220 處理器,NVIDIA GeForce GTX 650 顯卡.圖6和7分別為實(shí)際人體和塑料人臺(tái)的三維重建過程.其中圖(a)和(b)分別為上下Kinect采集的人體三維數(shù)據(jù);圖(c)為經(jīng)過去噪和調(diào)整后兩片點(diǎn)云同時(shí)顯示在同一坐標(biāo)系中的結(jié)果;圖(d)為配準(zhǔn)后的最終人體三維點(diǎn)云,且圖(c)和(d)為三維點(diǎn)云數(shù)據(jù),無陰影和光照效果.
圖6(a)中人體所穿背心(厚度約為2 mm)及圖7(a)中模特衣服紋理均清晰可辨,表明由KinectFusion采集獲取的三維人體模型具有較高的精度.由圖6(c)和圖7(c)可知,經(jīng)過去噪、調(diào)整,兩片點(diǎn)云整體上有了初步的匹配效果,但在掃描的重疊部分,仍存在誤差.由圖6(d)和7(d)可知,通過配準(zhǔn)可消除人體上下兩部分點(diǎn)云在旋轉(zhuǎn)角度、平移方面的誤差,配準(zhǔn)后的三維人體點(diǎn)云在拼接處曲面光滑,配準(zhǔn)效果比較理想.
(a)
(b)
(c)
(d)圖6 實(shí)際人體的三維重建Fig.6 3D reconstruction of human body
(a)
(b)
(c)
(d)圖7 塑料人臺(tái)三維重建Fig.7 3D reconstruction of plastic model
由于受成本、操作復(fù)雜度等方面的影響,已有的三維人體重建系統(tǒng)應(yīng)用范圍受到限制.本文介紹了一種基于多臺(tái)Kinect的三維人體重建系統(tǒng),該系統(tǒng)使用兩臺(tái)Kinect同時(shí)分別掃描人體上下兩部分,掃描結(jié)果經(jīng)由數(shù)據(jù)處理系統(tǒng)去噪、調(diào)整、配準(zhǔn),最終得到完整的人體三維點(diǎn)云.系統(tǒng)基礎(chǔ)設(shè)備較少、成本低廉,可在任意光照條件下,快速重建出精度較好的三維人體模型,能滿足一般的應(yīng)用需求.后續(xù)研究將側(cè)重于進(jìn)一步提高系統(tǒng)的穩(wěn)定性,解決偶爾出現(xiàn)的KinectFusion掃描過程中由相機(jī)追蹤失敗引起的掃描失敗問題.
[1] 黃敏,楊念,張劍.基于雅可比算法的著裝人體三維重建[J].東華大學(xué)學(xué)報(bào):自然科學(xué)版,2007,33(5):607-612.
[2] WEISS A,HIRSHBERG D,BLACK M J.Home 3D body scans from noisy image and range data [C]∥ IEEE International Conference on Computer Vision.2011:1951-1958.
[3] 宋詩(shī)超,禹素萍,許武軍.基于Kinect的三維人體掃描、重建及測(cè)量技術(shù)的研究[J].天津工業(yè)大學(xué)學(xué)報(bào),2012,31(5):34-41.
[4] 劉鑫,許華榮,胡占義.基于GPU和Kinect的快速物體重建[J].自動(dòng)化學(xué)報(bào),2012,38(8):1288-1297.
[5] 周瑾,潘建江,童晶,等.使用Kinect快速重建三維人體[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2013,25(6):873-879.
[6] NEWCOMBE R A,IZADI S,HILLIGES O,et al.KinectFusion:Real-time dense surface mapping and tracking [C]//10th IEEE International Symposium on Mixed and Augmented Reality.2011:127-136.
[7] TONG J,ZHOU J,LIU L G,et al.Scanning 3D full human bodies using Kinects[J].Visualization and Computer Graphics,2012,18(4):643-650.
[8] IZADI S,KIM D,HILLIGES O,et al.KinectFusion: Real-time 3D reconstruction and interaction using a moving depth camera[C]//Symposium on User Interface Software and Technology.2011.
[9] Kinect for Windows sensor components and specifications [EB/OL].[2013-11-21].http://msdn.microsoft.com/en-us/library/jj131033.aspx.
[10] ZHANG Z Y.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11): 1330-1334.
[11] LIU Y H.Automatic registration of overlapping 3D point clouds using closest points[J].Image and Vision Computing,2006,24(7):762-781.
[12] 朱德海.點(diǎn)云庫(kù)PCL學(xué)習(xí)教程[M].北京:北京航天航空大學(xué)出版社,2012:302-303.
3D Human Body Reconstruction System Based on Multiple Kinects
ZHUJiang-tao,WUYi-fan,ZHOULiang
(College of Computer,Hangzhou Dianzi University,Hangzhou 310018,China)
A new 3D human body reconstruction system based on multiple Kinects is proposed using the KinectFusion technology.In this system,two Kinects are used to scan the up and down half of human body and acquire the point cloud data respectively,then the relationship between the pose of two Kinects obtained by calibration and iterative closest point(ICP)algorithm are used to complete the registration and build the whole 3D human body model.Experiments prove that this system can obtain whole point cloud of the 3D human body rapidly with a good precision while the devices are cheap and system is easy to install.
3D human body reconstruction; Kinect; KinectFusion; calibration; point cloud registration
1671-0444(2015)02-0227-05
2013-12-09
國(guó)家自然科學(xué)基金資助項(xiàng)目(61202093);浙江省重點(diǎn)科技創(chuàng)新團(tuán)隊(duì)資助項(xiàng)目(2011R50009)
朱江濤(1989—),男,安徽六安人,碩士研究生,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù).E-mail: izhujiangtao@163.com
吳以凡(聯(lián)系人),男,講師,E-mail: yfwu@hdu.edu.cn
TN 401
A