高騰飛,曾朝陽,郝剛濤,吳止鍰
(1.裝備學(xué)院 研究生院,北京101416;2.裝備學(xué)院 光電裝備系,北京101416)
空間目標位姿視覺測量是實現(xiàn)空間目標識別、空間交會對接等任務(wù)的關(guān)鍵技術(shù)[1],而目標圖像序列的獲取是進行空間目標位姿視覺測量的前提條件。由于真實圖像源獲取相對困難,在地面開展空間目標的成像仿真便有重要意義,可為目標的位姿視覺測量提供有效數(shù)據(jù)基礎(chǔ)[2]。為了能更高效而準確地提取特征點從而精確計算目標的位姿參數(shù),不僅需要目標的二維可見光圖像還需要目標的三維圖像,其中二維可見光圖像提供灰度信息,三維圖像則提供目標的深度信息。因此,模擬真實場景,實現(xiàn)空間目標的2D/3D 圖像序列仿真具有重要意義[3]。
OpenGL由于其高度的可移植性和逼真性,廣泛應(yīng)用于游戲、醫(yī)學(xué)、地理、氣象模擬等方面,同時在目標的可視化方面有大量應(yīng)用[4,5]。文獻 [6,7]結(jié)合目標識別的背景生成了近距離的空間目標圖像,但僅生成了二維圖像序列,并沒有考慮三維成像。文獻 [8]利用OpenGL建立了三維可視化系統(tǒng),但其更側(cè)重于可視化效果,沒有深入分析成像系統(tǒng)中各個模型的建立方法。本文首先在研究攝影測量理論及OpenGL 成像機理的基礎(chǔ)上,分析了二者之間的內(nèi)在聯(lián)系,通過建立成像系統(tǒng)各個部分的模型設(shè)置有關(guān)參數(shù),使OpenGL 成像模型與攝影測量理論描述模型保持一致,仿真生成了目標模型的二維、三維成像圖像序列,為目標的位姿測量提供了圖像數(shù)據(jù)基礎(chǔ)。
真實世界的成像模型可簡化為小孔成像模型。如圖1所示為攝影測量成像模型,圖2 為放大后的圖像坐標系。該模型主要包含4個坐標系:①世界坐標系OwXwYwZw;②相機坐標系CXcYcZc,與世界坐標系的旋轉(zhuǎn)歐拉角為(α,β,γ),原點C 為相機的光心,CZc為相機光軸,與像平面交點為C1,此點一般位于像平面中心,其中CC1為成像系統(tǒng)焦距f;③圖像坐標系C1xy,又稱物理坐標系,每個像素的物理尺寸為dx,dy;④像素坐標系C0uv,C1的坐標為(u0,v0)。
圖1 攝影測量成像模型
圖2 圖像坐標系
相機坐標系和世界坐標系之間變換關(guān)系可用旋轉(zhuǎn)矩陣R 與平移向量t 來表示,若空間有一點P,其世界坐標為(Xw,Yw,Zw)T,相機坐標系下坐標為(Xc,Yc,Zc)T,圖像物理坐標系下坐標為(x,y),則有
同時由攝影測量成像系統(tǒng)模型可得相機坐標系與圖像物理坐標系及圖像像素坐標系之間的關(guān)系
由式 (1)~式 (3)可得
式中:μ——常數(shù)因子。由此可知,攝影測量成像基本原理即為世界坐標向圖像坐標的轉(zhuǎn)換。
OpenGL成像過程主要由模型、投影、仿射3個變換組成。具體成像過程如圖3所示[9]。
圖3 OpenGL成像過程
成像物體經(jīng)過模型變換確定了與相機之間的相對位置關(guān)系,通過投影變換決定物體哪些部分被裁減到最終的圖像之外。最后經(jīng)過透視除法和仿射變換 (也稱視口變換),決定了窗口大小,將三維物體最終映射到屏幕上,坐標也轉(zhuǎn)換成二維坐標。
則OpenGL成像模型可以表達為
式中:μ——常數(shù)因子,F(xiàn)——視口矩陣,P——投影矩陣,M——模型變換矩陣。
在OpenGL 中 通 過 調(diào) 用glViewport(0,0,scrX,scrY)設(shè)置視口矩陣F,參數(shù)scrX 與scrY 用于設(shè)置窗口大小;調(diào) 用glFrustum (xl,xr,yb,yt,zmap,zobj)確定投影 矩 陣P[9],其 中 (xl,yb), (xr,yt)分 別為成像平面左下和右上角坐標,zmap和zobj是視點到近、遠平面的距離;調(diào)用glTranslatef與glRotatef來確定平移矩陣T 和旋轉(zhuǎn)矩陣R,且TR=M。假設(shè)像主點在像平面中心,則仿射矩陣F 與投影矩陣P 的具體形式如下所示
OpenGL中描述一個復(fù)雜物體時一般使用點描述,需要許多冗雜語句,若對一個目標進行控制,一般采用3DS MAX等專業(yè)建模軟件建好模型后再讀入OpenGL[10]。本文在3DS MAX 建模軟件建立一個衛(wèi)星模型并設(shè)定好材質(zhì)信息。由于OBJ文件格式結(jié)構(gòu)簡單,方便理解,因此在3DS MAX 中導(dǎo)出OBJ格式文件[11],輸入OpenGL進行處理。
OpenGL在模擬光源時,光源的特征是由紅、綠、藍光的數(shù)量決定的。光照模型主要把光分成環(huán)境光、散射光、鏡面光、發(fā)射光4種成分。在空間目標二維可見光成像模擬時,光源一般是太陽,為方向性光源,假設(shè)太陽離成像系統(tǒng)距離遠遠大于相機與目標的距離,因此設(shè)置其位置為無限遠處,到達目標時所有光線都平行。把光照模型設(shè)成散射光,如果從某一方向照射,此方向照射的表面就會顯得很亮,反之則暗,經(jīng)過表面后均勻向各個方向散射。在空間目標三維可見光成像模擬時,光源為激光,它來自某一特定方向,具有很高的準直性,在打到具有鏡面成分的材質(zhì)上反射效果很好,因此設(shè)置其光照模式為鏡面光,光源位置與相機所在位置相同。
本文以二維可見光相機和三維激光雷達為例構(gòu)建2D/3D 相機仿真模型。三維激光雷達與二維可見光相機最大的不同點是它可以探測目標上每個點到相機的距離,即獲取距離信息。在OpenGL 中,獲得三維距離信息的基本原理是將探測到的目標與相機的距離值轉(zhuǎn)化成每個像素的深度值存儲在深度緩存區(qū)中以待讀取。在OpenGL 中相機模擬攝影測量方法及相機參數(shù)的設(shè)置方法如下:
令OpenGL旋轉(zhuǎn)、平移矩陣R、T 與攝影測量系統(tǒng)中R,T 相同,即M=M1。系統(tǒng)焦距為f,水平垂直方向每個像素的物理尺寸為dx,dy,CCD 成像平面物理尺寸為lx,ly,則像素個數(shù)分別為lx/dx,ly/dy。假設(shè)相機距離目標的最大值為s,且在保證最終成像結(jié)果與真實成像分辨率一致的情況下,設(shè)置
此外,仍需要使視口縱橫比與視景體縱橫比相同,這樣圖像才不會發(fā)生變形。此時設(shè)置
將式 (6)至式 (9)整理并代入OpenGL 成像模型式(5)中可得
式 (10)與式 (4)所推得的攝影測量變換方程一致,因此說明相機通過上述的參數(shù)設(shè)置進行模型的建立便可以真實模擬現(xiàn)實的攝影測量成像方法。
圖4 60°/s繞自身垂直軸運動的二維圖像序列
圖5 3.3m/s遠離相機的二維圖像序列
圖6 60°/s繞自身垂直軸的三維圖像序列
為更加直觀顯示三維圖像的距離信息,將保存在世界坐標系下的z坐標信息的文件用Matlab顯示(色度條由下至上為藍至紅),這里僅拿圖6的一幅圖像為例,經(jīng)相對計算其誤差最大值約為0.8%,證明其能真實準確地模擬目標的三維成像。Matlab顯示的空間運動目標三維圖像如圖7所示。
本文結(jié)合空間目標位姿視覺測量的應(yīng)用背景提出了一種基于OpenGL的2D/3D 圖像序列仿真方法,從仿真的二維及三維成像圖像序列來看,此方法利用OpenGL 工具可以很好地模擬真實空間中的成像效果,并可以獲取所需要的具有距離信息的三維圖像序列,經(jīng)計算誤差在允許范圍內(nèi),說明該方法生成圖像序列的正確性。生成的圖像序列為目標的位姿視覺測量提供了有力的數(shù)據(jù)支撐,為了更加真實模擬現(xiàn)實中的目標的空間運動,下一步需要全面考慮如相機畸變、運動模糊等其它因素。
圖7 Matlab顯示的空間運動目標三維圖像
[1]JIN Huanghuang.Non-cooperative space target short-range intersection near relative navigation research [D].Harbin:Harbin Industrial University,2009 (in Chinese).[金煌煌.空間非合作目標近程交會接近相對導(dǎo)航研究 [D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.]
[2]HAN Yi,SUN Huayan.Advances in space target space-based optical imaging simulation [J].Infrared and Laser Engineering,2012,41 (12):3372-3378 (in Chinese).[韓意,孫華燕.空間目標天基光學(xué)成像仿真研究進展 [J].紅外與激光工程,2012,41 (12):3372-3378.]
[3]XU Peizhi,XU Guili,WANG Biao,et al.Non-cooperative target pose measurement based on stereo vision [J].Computer and Modernization,2013 (8):85-91 (in Chinese).[徐培智,徐貴力,王彪,等.基于立體視覺的非合作目標位姿測量[J].計算機與現(xiàn)代化,2013 (8):85-91.]
[4]Reiners Dirk.Climbing longs peak:The steep road to the future of OpenGL [J].Computer Graphics and Applications.IEEE,2007,27 (4):84-89.
[5]Adler D,Murdoch D.rgl:3D visualization device system(OpenGL)[R].R Package Version 0.92,2012.
[6]HAN Yi,SUN Huayan,LI Yingchun,et al.Method of space object imaging simulation based on OpenGL [J].Computer Simulation,2010,27 (6):267-270 (in Chinese).[韓意,孫華燕,李迎春,等.基于OpenGL 的空間目標圖像生成方法[J].計算機仿真,2010,27 (6):267-270.]
[7]YANG Changcai,TIAN Jinwen,YE Jin,et al.Simulation of space targets imaging for a space based optical imaging system[J].Infrared and Laser Engineering,2012,41 (9):2410-2414 (in Chinese). [楊長才,田金文,葉瑾,等.天基光學(xué)成像系統(tǒng)空間目標成像模擬技術(shù) [J].紅外與激光工程,2012,41 (9):2410-2414.]
[8]CHENG Wei,LI Bing,WU Zengqiang,et al.Design and implementation of visual system of spacecraft motion and TT&C[J].Computer Simulation,2010,27 (8):22-27 (in Chinese).[程委,李兵,吳增強,等.航天器飛行及測控過程可視化系 統(tǒng) 設(shè) 計 與 實 現(xiàn) [J].計 算 機 仿 真,2010,27 (8):22-27.]
[9]YAN Long.Research on camera imaging simulation technology[J].Journal of Shandong University (Engineering science),2011,41 (3):67-71 (in Chinese).[閆龍.攝像機成像過程仿真技術(shù)研究 [J].山東大學(xué)學(xué)報 (工學(xué)版),2011,41 (3):67-71.]
[10]Wang X,Zhu W.Three dimensional modeling based on OpenGL and 3DS max [J].Electronic Science and Technology,2012,25 (1):79-80.
[11]WANG Jinfeng,YAO Guoqing.Obj three-dimensional model file format in OpenGL,input and processing [J].Computer Knowledge and Technology,2011,7 (10):2393-2396 (in Chinese).[王金峰,姚國清.三維模型文件中的OBJ格式在OpenGL中的輸入與處理 [J].電腦知識與技術(shù),2011,7 (10):2393-2396.]