王 濤,薛少辰,梁 梓
(中國(guó)人民解放軍陸軍裝甲兵學(xué)院車輛工程系,北京 100072)
基于TOF相機(jī)的機(jī)械部件快速重建與測(cè)量方法
王 濤,薛少辰,梁 梓
(中國(guó)人民解放軍陸軍裝甲兵學(xué)院車輛工程系,北京 100072)
針對(duì)機(jī)械類裝備教學(xué)工作開(kāi)發(fā)的維修訓(xùn)練增強(qiáng)輔助系統(tǒng),為修理人員訓(xùn)練提供了與指導(dǎo)人員實(shí)現(xiàn)多維信息交換的交互平臺(tái)?;赥OF相機(jī)的深度圖增強(qiáng)算法原理,基于Kinect的旋轉(zhuǎn)剛體三維重建方法,通過(guò)對(duì)機(jī)械部件三維點(diǎn)的云獲取以及線、面、體的幾何測(cè)量,完成對(duì)整個(gè)部件的三維重構(gòu)建模,以應(yīng)用于機(jī)械維修訓(xùn)練增強(qiáng)輔助系統(tǒng)中。
TOF深度圖像;三維重建;點(diǎn)云計(jì)算;配準(zhǔn)
10.16621/j.cnki.issn1001-0599.2017.12.55
機(jī)械類裝備功能的多樣性需求使得安裝在其上的設(shè)備在結(jié)構(gòu)上和原理上復(fù)雜多樣,對(duì)維修人員的知識(shí)廣度和深度要求較高,多數(shù)維修保障人員的能力還不能滿足現(xiàn)實(shí)維修保證需求。隨著科學(xué)技術(shù)水平的不斷發(fā)展,20世紀(jì)90年代初,增強(qiáng)實(shí)現(xiàn)技術(shù)應(yīng)運(yùn)而生,該技術(shù)英文簡(jiǎn)稱為Augmented Reality,此時(shí)該技術(shù)成為相關(guān)學(xué)者研究熱點(diǎn)。這一技術(shù)實(shí)際應(yīng)用中,主要通過(guò)虛實(shí)結(jié)合實(shí)現(xiàn)零件模型的有效組合,同時(shí),優(yōu)化裝配真實(shí)空間,進(jìn)而有利于優(yōu)化裝配效果,有利于營(yíng)造良好的裝配環(huán)境,此外,交互方式能夠具體應(yīng)用[1]。一套行之有效的對(duì)機(jī)械類裝備各部件進(jìn)行快速三維重構(gòu)和測(cè)量,從而建立虛擬三維模型的方法是必要的。
TOF(Time of Flight)相機(jī)以微軟公司的價(jià)格低廉的Kinect為媒介,包含彩色攝像頭、深度(紅外)攝像頭、紅外線投影機(jī)以及4個(gè)麥克風(fēng)[2]。其中彩色攝像頭用于拍攝彩色視頻圖像;紅外投影機(jī)投射近紅外光譜,接受前方不光滑的物體或毛玻璃產(chǎn)生的扭曲散斑,處理反射信息,獲取物體成像像素的深度值,生成深度圖像。4個(gè)麥克風(fēng)組成四元線性麥克風(fēng)陣列,處理聲音信號(hào),過(guò)濾背景噪聲,定位發(fā)生源方向。由于在深度圖像中,場(chǎng)景中物體到相機(jī)的距離可以其深度值表示,因此場(chǎng)景中物體的三維結(jié)構(gòu)信息可以通過(guò)深度值體現(xiàn)。與傳統(tǒng)的彩色圖像相比,深度圖像在人體姿態(tài)估計(jì)、目標(biāo)檢測(cè)等領(lǐng)域都有著更為廣泛的應(yīng)用前景[3]。
目前,國(guó)內(nèi)學(xué)者以及其他外國(guó)學(xué)者在探究三維重建技術(shù)的過(guò)程中,適當(dāng)應(yīng)用Kinect于其中,主要有4種方式。
(1)保持被研究對(duì)象以及所在場(chǎng)景于靜止?fàn)顟B(tài),與此同時(shí),適度改變Kinect位置,完成深度圖像的有效收集,最終完成重建任務(wù)[4]。
(2)站在特定角度實(shí)施相關(guān)深度圖像獲取活動(dòng),在此期間,提高Kinect的應(yīng)用率,基于此,在短時(shí)間內(nèi)高效重建,某大學(xué)著名研究學(xué)家對(duì)此從不同角度進(jìn)行信息收集和整理,以便為重建工作提供有力數(shù)據(jù)支持[5]。
(3)這種方式不同于上述兩種,它主要變動(dòng)物體位置,此時(shí)Kinect處于靜止?fàn)顟B(tài),以此獲取深度圖像,完成最終的重建任務(wù),文獻(xiàn)[6]中提出了具體的重建方法。
(4)在非勻速非定軸條件下,通過(guò)固定位置Kinect采集二維深度圖像,并通過(guò)點(diǎn)云計(jì)算和配準(zhǔn)完成全局三維坐標(biāo)下所有點(diǎn)的表示[7]。裝甲車輛部件工作時(shí)相互間運(yùn)動(dòng)復(fù)雜,同時(shí)一般屬于剛性物體不存在尺度變換,適用于非勻速非定軸剛體條件下的三維重建算法。
針對(duì)三維重建法進(jìn)行重構(gòu)流程分析時(shí),將分析條件設(shè)定為非勻速非定軸旋轉(zhuǎn),與此同時(shí),應(yīng)用Kinect,具體步驟主要有[10]:深度圖像獲取,固定Kinect獲取部件非勻速非定軸旋轉(zhuǎn)中深度圖像;事先處理,深度圖像獲得后,需要進(jìn)行預(yù)處理操作,處理內(nèi)容分別為去背景、降噪處理;點(diǎn)云計(jì)算。計(jì)算各點(diǎn)的三維坐標(biāo)和法向量,由以上6個(gè)值組成點(diǎn)云;配準(zhǔn),表示坐標(biāo)點(diǎn)的過(guò)程中,應(yīng)做好矩陣變換、坐標(biāo)系轉(zhuǎn)換等工作;映射,求TSDF(Truncated Signed Distance Function,截?cái)喾?hào)距離函數(shù))值的過(guò)程中,常用加權(quán)平均法完成求值工作[11],實(shí)現(xiàn)物體各點(diǎn)從全局三維坐標(biāo)系到各個(gè)體素上的映射;修正,為了提高數(shù)據(jù)處理源質(zhì)量,增加數(shù)據(jù)處理源的準(zhǔn)確性,務(wù)必實(shí)施映射、加權(quán)平均法,針對(duì)所獲得的體素值合理調(diào)整、有效修正,最終獲取點(diǎn)云數(shù)據(jù)[12];表面生成,由于立方體體素?cái)?shù)量相對(duì)較多,針對(duì)等值面獲取的過(guò)程中,適當(dāng)應(yīng)用移動(dòng)立方體算法[13],以此生成整體表面。
Kinect通過(guò)Depth Generate(r深度發(fā)生器)得到實(shí)際的深度值,單位是mm。即該點(diǎn)與Kinect所在呈90°角。確定世界坐標(biāo)系,即[R,t]=[I,0],深度圖像上的值即為世界坐標(biāo)系下的值ZW,對(duì)應(yīng)相應(yīng)的圖像平面的點(diǎn)(u,v),由相機(jī)成像原理及投影方程得式(1)。
由于相機(jī)內(nèi)參K以及u,v,ZW己知,可得世界坐標(biāo)系下坐標(biāo)為式(2)。
XW,YW,ZW,即點(diǎn)(u,v)對(duì)應(yīng)的世界坐標(biāo)系下的坐標(biāo)。通過(guò)計(jì)算各點(diǎn)、在世界坐標(biāo)系下的坐標(biāo),獲得深度圖像。
采用基于迭代的ICP精確配準(zhǔn)算法[14],對(duì)于數(shù)據(jù)集P中的每個(gè)數(shù)據(jù)點(diǎn),在目標(biāo)數(shù)據(jù)集中找到相應(yīng)的最近點(diǎn)集Q,該過(guò)程記為Q=c(P,T),己知控制點(diǎn)集P,Q,變換矩陣參數(shù)的估計(jì)記為(H,d)=q(P,Q)。對(duì)數(shù)據(jù)集中的每個(gè)點(diǎn),經(jīng)過(guò)變換矩陣H更新后記為H(P)=R(P)+T。設(shè)S為源數(shù)據(jù)集,設(shè)T為目標(biāo)數(shù)據(jù)集,初始令 P0=S,R0=I,T0=0,k=0,則 ICP 算法迭代步驟如下。
(1)計(jì)算最近點(diǎn)。對(duì)Pk的每個(gè)數(shù)據(jù)點(diǎn),估計(jì)目標(biāo)數(shù)據(jù)集T中最近點(diǎn)集Qk。
(2)估計(jì)配準(zhǔn)參數(shù)。使目標(biāo)函數(shù)最小化,估計(jì)配準(zhǔn)參數(shù)式(3),計(jì)算估計(jì)誤差 dk。
(3)更新源集,用得到的配準(zhǔn)參數(shù)Hk,對(duì)數(shù)據(jù)集進(jìn)行更新,其中 Pk+1=H(kP0)=R(kP0)+Tk;重復(fù)迭代:當(dāng)閾值 ε>兩次估計(jì)得到的誤差變化時(shí),即||dk-dk+1||<ε時(shí),迭代停止。
在目標(biāo)數(shù)據(jù)集中找出源數(shù)據(jù)集P中每個(gè)點(diǎn)的對(duì)應(yīng)點(diǎn),對(duì)剛體的運(yùn)動(dòng)參數(shù)進(jìn)行估計(jì)。尋求對(duì)應(yīng)點(diǎn)的方法有最近點(diǎn)匹配、法向投影匹配和相機(jī)投影匹配。采用不同的匹配方法通常依賴于數(shù)據(jù)的幾何模型和數(shù)據(jù)集之間的重疊情況。
采用TSDF點(diǎn)云融合和移動(dòng)立方體算法(Marching Cubes)完成模型表面的構(gòu)建[15]。根據(jù)配準(zhǔn)變換參數(shù),與此同時(shí),實(shí)現(xiàn)世界坐標(biāo)的有效轉(zhuǎn)化,數(shù)據(jù)立方體相應(yīng)體素內(nèi)具體投射世界坐標(biāo)。數(shù)據(jù)加入模型時(shí),按照式4和式5融合處理,式中di+1表示加入新點(diǎn)云的數(shù)據(jù)后當(dāng)前點(diǎn)云對(duì)應(yīng)的SDF(Signed Distance Functions)值,Di表示原有的TSDF加權(quán)值。通過(guò)權(quán)重W 進(jìn)行融合,新的權(quán)重為兩權(quán)重之和,在KinectFusion算法中當(dāng)前點(diǎn)的云權(quán)重為1。
移動(dòng)立方體算法是一種基于體素(voxel)的表面構(gòu)建方法。該方法應(yīng)用的過(guò)程中,字母V代表等值面值,同時(shí),假設(shè)立方體的棱上值線性變化。如果8個(gè)頂點(diǎn)TSDF值均>或<V,則等值面重合于該立方體;反之不重合。對(duì)于棱,如果兩個(gè)端點(diǎn)值均>或<V,則該棱與等值面不相交;反之有交點(diǎn),對(duì)于棱與等值面的交點(diǎn),常用線性插值法予以獲取。通過(guò)組合三角片法實(shí)現(xiàn)相同立方體的交點(diǎn)連接,最終形成的面能夠代表等值面。
本文使用帶約束條件的特殊二叉查找樹kd-tree(kdimensional tree)算法[16],采用FLANK,快速最近鄰點(diǎn)檢索庫(kù)搜索每個(gè)頂點(diǎn)半徑為r的鄰域的鄰接點(diǎn)集合,計(jì)算其與頂點(diǎn)間的距離。從點(diǎn)云中構(gòu)建圖結(jié)構(gòu),每個(gè)頂點(diǎn)與其鄰接點(diǎn)相連構(gòu)成圖的邊,歐式距離作為該邊權(quán)值。
圖中兩點(diǎn)之間的最短距離由單源最短路徑算法Dijkstra[17]算法得到。設(shè)G=(V,E)是一個(gè)帶權(quán)無(wú)向圖,V和E分別為圖中所有頂點(diǎn)集合和所有邊集合,假設(shè)源點(diǎn)為V0,針對(duì)最短路徑查找所應(yīng)用的算法主要有:將頂點(diǎn)集合V分成包含所有己計(jì)算出源點(diǎn)到該頂點(diǎn)最短距離的頂點(diǎn)集合S和包含所有未計(jì)算出源點(diǎn)到該頂點(diǎn)最短距離的頂點(diǎn)集合U;初始狀態(tài),S中只有源點(diǎn),即S={V0},U包含了V中除V0外的所有其他頂點(diǎn)。V0到U中任意頂點(diǎn)u的初始距離為:如果存在邊<V0,u>,邊上的權(quán)值由兩頂點(diǎn)間初始距離表示;如果不存在邊<V0,u>,
則兩頂點(diǎn)間初始距離為無(wú)窮大;在u中選擇與V0距離最小的頂點(diǎn)k,把k從U移除并添加到S中,更新U中所有頂點(diǎn)到V0的距離:如果從源點(diǎn)V0經(jīng)k到U中任意點(diǎn)u的距離比原先的距離(即不經(jīng)過(guò)k)短,則更新<V0,u>的距離值,新的值為源點(diǎn)到 k 的距離與邊<k,u>的權(quán)值之和,同時(shí),把<V0,u>加入源點(diǎn) V0到u的最短路徑中。重復(fù)(3),在U中選擇與k距離最小的頂點(diǎn),直到U為空,S中包含所有頂點(diǎn)。
通過(guò)構(gòu)建三角網(wǎng)格模型,指定投影平面,計(jì)算三角面片及其在投影平面上的投影三角形圍成凸五面體的帶符號(hào)體積,整個(gè)模型體積即其代數(shù)和。
與所有三角面片均不相交的任意平面均可作為投影平面,設(shè)其z=zmin,其中zmin為三角網(wǎng)格模型頂點(diǎn)Z坐標(biāo)的最小值。若投影平面不平行于XOY平面,可通過(guò)適當(dāng)?shù)娜S旋轉(zhuǎn)變換使投影平面與XOY平面平行。
任意三角面片t和投影平面圍成的凸五面體Pt可分為一個(gè)三棱柱和2個(gè)四面體,其體積和即為凸五面體體積Vt。4個(gè)頂點(diǎn)坐標(biāo)分別為(x1,y1,z1)(,x2,y2,z2),(x3,y3,z3)和(x4,y4,z4)的四面體體積,見(jiàn)式(6).
需確定各三角面片投影體積的符號(hào):正號(hào)在計(jì)算時(shí)加上該四面體體積,負(fù)號(hào)則減去。判斷符號(hào)依據(jù)如下[18]:
對(duì)于所有三角面片圍成的封閉三角網(wǎng)格模型,令三角面片集合為T,其中任意三角面片t在投影平面的投影三角形為tD,計(jì)算三角面片集合見(jiàn)式(7)。若集合 At中任意 t和 t′均有 tD?tD′或 tD∩tD′=?,則 t投影符號(hào)為(-1)|At|+1。At計(jì)算方法如下。
(1)計(jì)算t與投影三角形tp,判斷兩三角面片的投影三角形的包圍矩陣是否有交集,若無(wú)交集則兩投影三角形無(wú)交集。
(2)若滿足(1),繼續(xù)判斷兩投影三角形各邊是否有交集,若是,則相交;若不滿足(1),判斷兩投影三角形是否相互包含,如果不相互包含,那么兩投影三角形不相交,反之,則相交
同樣指定一個(gè)平行于XOY平面的投影平面z,通過(guò)At和三角面片的方向矢量(x0,y0,z0),可計(jì)算出每個(gè)三角面片的面積A見(jiàn)式(8),部件的表面積可以簡(jiǎn)單的用這些三角面片面積之和表示。
通過(guò)TOF相機(jī)獲取深度圖像,在非勻速非定軸旋轉(zhuǎn)條件下,對(duì)獲取的點(diǎn)云數(shù)據(jù)進(jìn)行精確配準(zhǔn)和修正,根據(jù)數(shù)據(jù)進(jìn)行線、面、體的幾何測(cè)量,并最終形成基于TOF相機(jī)的機(jī)械類裝備的三維重建方法和測(cè)量方法,以應(yīng)用于機(jī)械類裝備維修訓(xùn)練增強(qiáng)輔助系統(tǒng)中,為機(jī)械類裝備維修和教學(xué)工作提供了有效支撐,同時(shí)為增強(qiáng)現(xiàn)實(shí)技術(shù)在維修領(lǐng)域的應(yīng)用研究提供參考。
[1]李陽(yáng).基于NyARToolkit的實(shí)時(shí)增強(qiáng)現(xiàn)實(shí)動(dòng)員仿真系統(tǒng)開(kāi)發(fā)研究[D].北京:北京交通大學(xué),2015.
[2]鄔冠上.基于Kinect的交互式健身游戲的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)院大學(xué),2014.
[3]陳理.Kinect深度圖像增強(qiáng)算法研究[D].長(zhǎng)沙:湖南大學(xué),2013.
[4]劉金榮,李淳亢,歐陽(yáng)建權(quán),等.基于聯(lián)合雙邊濾波的深度圖像增強(qiáng)算法[J].計(jì)算機(jī)工程,2014,40(3):249-252.
[5]劉俊毅.彩色圖像引導(dǎo)的深度圖像增強(qiáng)[D].浙江大學(xué),2014.
[6]Kopf J,Cohen M F,Lischinski D,et al.Joint bilateral upsampling[J].Acm Transactions on Graphics,2007,26(3):96.
[7]Yang Q,Yang R,Davis J,et al.Spatial-Depth Super Resolution for Range Images.[C].//IEEE Conference on Computer Vision and Pattern Recognition.IEEE Computer Society,2007:1-8.
[8]Paris S,Durand F.A Fast Approximation of the Bilateral Filter Approach[J].International Journal of Imaging Systems&Technology,Using a Signal Processing2008,18(2-3):124-136.
[9]NasonovA V,KrylovA S.FastSuper-Resolution Using Weighted Median Filtering[C].//on Pattern Recognition.IEEE Computer Society,2010:2230-2233.
[10]韋羽棉,尚趙緯.基于Kinect的旋轉(zhuǎn)剛體三維重建方法[J].計(jì)算機(jī)與現(xiàn)代化,2014.5
[11]NewcombeR A,IzadiS,Hilliges,etal.KinentFusion:Realimedense surfane mapping and tracking[C].//Pro-needings of the 2011 IEEE International Symposium Mixed and Augmented Reality.2011:127336.
[12]IzadiS,Kim D,Hilliges0,etal.KinectFusion:Real-time 3D reconstruction and interaction using a moving depth camera//Proceedingsofthe 24th AnnualACM Symposium on User Interface Software and Technology.2011:559-68.
[13]Curless B,Levoy M. A volumetric method for building complex modelsfrom rangeimages[C].//ProneedingsofSIGGRAPH 1996.1996:303-12.
[14]Besl P J,McKay H.D.A method for registration of 3-D shapes.IEEE.Transactions on Pattern Analysis and Machine Intelligence,1992,14(2)239-256
[15]Lorensen W E,Cline H E.Marching cubes:a high resolution 3D surfacealgorithm[C].ACM Siggraph ComputerGraphics.ACM,1987,21(4):163-169.
[16]劉艷豐.基于kd-tree的點(diǎn)云數(shù)據(jù)空間管理理論與方法[D].長(zhǎng)沙:中南大學(xué),2009.
[17]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社,2007.
TP75
B
〔編輯 凌 瑞〕