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