孟繁昌 梁晉 張桁維 徐勁瀾 趙鵬亮



摘要:為解決目前人體掃描系統價格昂貴、操作復雜、占用面積大等問題,基于微軟推出的Kinect相機具有快速、安全、經濟的特點,提出利用3個Kinect相機和一個旋轉臺來構建三維人體掃描系統,研究該系統涉及的深度相機成像原理、多相機標定以及點云配準等技術。首先利用KinectFusion技術重建出單個傳感器的三維點云,然后采用多相機標定技術,計算各傳感器之間的相對位置關系,實現點云的初始拼接,并使用ICP算法實現點云的精確配準,從而重建出完整的三維人體點云模型。實驗結果表明,該方法能夠重建出高精度點云,并且該人體掃描設備成本低,占地面積小,可行性與實時性強。
關鍵詞:三維人體重建;Kinect傳感器:多相機標定;ICP算法
文獻標志碼:A
文章編號:1674-5124(2018)02-0072-06
0引言
人體三維測量廣泛應用于3D打印、服裝定制、虛擬試衣以及運動分析等領域。非接觸式的三維人體掃描系統精確度高、速度快,其主要原理方法有:激光測量法、莫爾條紋測量法、紅外線法等。
國內外目前基于以上原理的商業化人體掃描系統測存在共同缺陷:掃描速度較慢,價格昂貴,設備復雜,操作繁瑣,體積龐大,這些因素限制了三維人體模型應用的推廣。
近幾年興起的深度相機通過采集深度圖像,可以獲取物體表面的三維點云。與傳統的三維掃描設備相比,深度相機掃描系統設備組成簡單,操作方便快捷,并且成本大大降低。
近年來,一些研究者將Kinect深度相機用于場景、人體以及人臉的三維建模中。Weiss等提出使用單臺Kinect傳感器拍攝人體多個角度來獲取人體三維點云,通過點云的輪廓信息估計人體的姿勢和體型。Newcombe等提出了基于KinectFushion技術,在任意可變照明條件下,使用一臺Kinect傳感器,準確實現了室內復雜場景的實時三維重建。宋詩超等采用Kinect掃描人體數據,對人體表面特征數據進行測量,最后通過Pro/E軟件重建人體模型,該方法主要適用于人臺的建模。
本文采用由微軟推出的Kinect相機組建人體掃描系統,獲取人體三維點云。該系統結構簡單,價格低廉且操作簡單,對人體無害。本文采用3臺Kinect傳感器以及一個旋轉平臺等硬件組成旋轉人體掃描系統,研究了深度圖像重建,并結合KinectFushion算法、多相機標定技術和ICP配準方法獲取人體表面三維點云數據,實現三維人體模型的建立。
1Kinect簡介
Kinect是微軟公司推出的一款3D體感傳感器,如圖1所示,主要由紅外投射器,彩色相機,紅外相機,安裝于底座上的電機馬達,麥克風陣列以及一個由PrimeSense提供的PS1080芯片組成。PS1080芯片具有強大運算能力,通過控制紅外投射器向空間場景中投射近紅外光譜,并利用紅外相機拍攝投射有散斑圖案的空間場景圖像,彩色相機采集空間場景的彩色圖像,然后執行Kinect的關于深度數據處理相關算法。
Kinect傳感器的具體參數如表1所示。
2人體掃描裝置和技術流程
2.1人體掃描裝置
如圖2所示,實驗測試裝置主要由3個Kinect傳感器,1個圓形旋轉平臺,1個USB3.0的Hub,一塊標定板以及一臺電腦等硬件組成。單個Kinect傳感器的垂直方向測量角度為43。,測量距離為100cm,則單個傳感器能夠觀測的范圍是80cm,為了保證掃描設備能夠觀察到整個人體并保證相鄰兩個傳感器之間有重疊部分,本文選取3個傳感器的測量方案。3個Kinect傳感器在一條直線上豎直固定,傳感器之間的距離約為60cm,保證最上面的測量頭能夠看到人體的頭頂部位,并留出一定的余量;最下面的測量頭能夠看到旋轉臺平面:并保證相鄰兩個傳感器觀測的人體部位之間有重合部分,以對3個測頭生成的點云進行配準。
2.2技術流程
在進行人體掃描前,首先標定3個Kinect傳感器的相對位置關系,將標定板放置在旋轉臺處,3個Kincct傳感器采集標定板圖像,然后計算出3個Kinect傳感器的外參數。掃描人體時,旋轉臺開始旋轉,同時Kinect開始進行圖像采集:基于深度圖像重建原理重建出單幀圖像的三維點云,并采用KinectFushion技術獲取在旋轉過程中單個傳感器生成的單幅人體三維點云。在點云配準過程中,本文采用兩步配準的方法實現3幅點云的精確配準:1)通過多相機標定技術,解算出3個相機的相對位置關系,然后將3個傳感器生成的點云注冊在一起,實現點云的初始配準;2)本文采用迭代最近點算法(iterativeclosest point,ICP)進行配準,以克服在掃描過程中人體晃動造成的誤差,從而實現點云精確穩定的配準,最終得到完整的三維人體點云模型。
3關鍵技術
3.1Kinect傳感器成像原理
根據描述,紅外投射器投射一種激光散斑,該散斑具有高度隨機性,并且會隨著距離的不同變換圖案。為了獲得物體的深度值,Kinect傳感器在使用之前需把場景中的散斑圖案記錄下來。所以在使用之前需要進行一次光源標定。在距離傳感器不同的地方設置參考平面P1,P2,P3,…,并把參考平面上的散斑圖案記錄下來,這些散斑圖案作為參考圖像。如圖3所示,參考圖像的位置分別記為Z1,Z2,Z3,…。
當物體A放在圖示場景中時,紅外相機獲取物體A表面散斑圖案。然后Kinect傳感器芯片將該獲取的散斑圖像與所有的參考圖像進行相關性計算,選取相關系數最大的參考圖像,并認為物體就位于該參考圖像處。圖中物體A的紅外圖像與P2處的散斑圖案相關性最大,即認為A就在P2處。物體A在z方向上的距離就是Z2。
但是,由于參考圖案是通過在傳感器每隔一段距離設置參考平面獲取的,這樣參考圖案不是連續的,所以物體A距離傳感器距離Z2不是一個準確值,因而需要進行矯正。
單個Kinect輸出的點云如圖9所示。
通過標定結果將3幅點云進行拼接,然后經過ICP算法實現點云的精確配準。實驗現場與經過配準得到的點云如圖10所示。最終得到130672個點的人體點云模型。
5結束語
本文提出的基于3個Kinect傳感器和旋轉平臺的三維人體掃描系統使用當前流行的KinectFushion算法實現了單個傳感器的重建,并采用多相機標定技術和ICP算法的兩步配準法實現多幅點云的精確配準,從而完成完整的三維人體點云模型的重建。實驗表明,該系統重建出的點云精度高,能夠滿足量體裁衣訂制、虛擬試衣等領域的應用。與傳統設備及方法相比,簡單易于操作,造價便宜,并且占用空間小重建時間短,在實際生產中有著廣闊的應用前景。