基于OpenGL的空间目标图像序列仿真
2014-12-20高腾飞曾朝阳郝刚涛吴止锾
高腾飞,曾朝阳,郝刚涛,吴止锾
(1.装备学院 研究生院,北京101416;2.装备学院 光电装备系,北京101416)
0 引 言
空间目标位姿视觉测量是实现空间目标识别、空间交会对接等任务的关键技术[1],而目标图像序列的获取是进行空间目标位姿视觉测量的前提条件。由于真实图像源获取相对困难,在地面开展空间目标的成像仿真便有重要意义,可为目标的位姿视觉测量提供有效数据基础[2]。为了能更高效而准确地提取特征点从而精确计算目标的位姿参数,不仅需要目标的二维可见光图像还需要目标的三维图像,其中二维可见光图像提供灰度信息,三维图像则提供目标的深度信息。因此,模拟真实场景,实现空间目标的2D/3D 图像序列仿真具有重要意义[3]。
OpenGL由于其高度的可移植性和逼真性,广泛应用于游戏、医学、地理、气象模拟等方面,同时在目标的可视化方面有大量应用[4,5]。文献 [6,7]结合目标识别的背景生成了近距离的空间目标图像,但仅生成了二维图像序列,并没有考虑三维成像。文献 [8]利用OpenGL建立了三维可视化系统,但其更侧重于可视化效果,没有深入分析成像系统中各个模型的建立方法。本文首先在研究摄影测量理论及OpenGL 成像机理的基础上,分析了二者之间的内在联系,通过建立成像系统各个部分的模型设置有关参数,使OpenGL 成像模型与摄影测量理论描述模型保持一致,仿真生成了目标模型的二维、三维成像图像序列,为目标的位姿测量提供了图像数据基础。
1 摄影测量理论
真实世界的成像模型可简化为小孔成像模型。如图1所示为摄影测量成像模型,图2 为放大后的图像坐标系。该模型主要包含4个坐标系:①世界坐标系OwXwYwZw;②相机坐标系CXcYcZc,与世界坐标系的旋转欧拉角为(α,β,γ),原点C 为相机的光心,CZc为相机光轴,与像平面交点为C1,此点一般位于像平面中心,其中CC1为成像系统焦距f;③图像坐标系C1xy,又称物理坐标系,每个像素的物理尺寸为dx,dy;④像素坐标系C0uv,C1的坐标为(u0,v0)。
图1 摄影测量成像模型
图2 图像坐标系
相机坐标系和世界坐标系之间变换关系可用旋转矩阵R 与平移向量t 来表示,若空间有一点P,其世界坐标为(Xw,Yw,Zw)T,相机坐标系下坐标为(Xc,Yc,Zc)T,图像物理坐标系下坐标为(x,y),则有
同时由摄影测量成像系统模型可得相机坐标系与图像物理坐标系及图像像素坐标系之间的关系
由式 (1)~式 (3)可得
式中:μ——常数因子。由此可知,摄影测量成像基本原理即为世界坐标向图像坐标的转换。
2 OpenGL成像机理
OpenGL成像过程主要由模型、投影、仿射3个变换组成。具体成像过程如图3所示[9]。
图3 OpenGL成像过程
成像物体经过模型变换确定了与相机之间的相对位置关系,通过投影变换决定物体哪些部分被裁减到最终的图像之外。最后经过透视除法和仿射变换 (也称视口变换),决定了窗口大小,将三维物体最终映射到屏幕上,坐标也转换成二维坐标。
则OpenGL成像模型可以表达为
式中:μ——常数因子,F——视口矩阵,P——投影矩阵,M——模型变换矩阵。
在OpenGL 中 通 过 调 用glViewport(0,0,scrX,scrY)设置视口矩阵F,参数scrX 与scrY 用于设置窗口大小;调 用glFrustum (xl,xr,yb,yt,zmap,zobj)确定投影 矩 阵P[9],其 中 (xl,yb), (xr,yt)分 别为成像平面左下和右上角坐标,zmap和zobj是视点到近、远平面的距离;调用glTranslatef与glRotatef来确定平移矩阵T 和旋转矩阵R,且TR=M。假设像主点在像平面中心,则仿射矩阵F 与投影矩阵P 的具体形式如下所示
3 成像系统仿真模型构建
3.1 空间目标3D仿真模型
OpenGL中描述一个复杂物体时一般使用点描述,需要许多冗杂语句,若对一个目标进行控制,一般采用3DS MAX等专业建模软件建好模型后再读入OpenGL[10]。本文在3DS MAX 建模软件建立一个卫星模型并设定好材质信息。由于OBJ文件格式结构简单,方便理解,因此在3DS MAX 中导出OBJ格式文件[11],输入OpenGL进行处理。
3.2 光源仿真模型
OpenGL在模拟光源时,光源的特征是由红、绿、蓝光的数量决定的。光照模型主要把光分成环境光、散射光、镜面光、发射光4种成分。在空间目标二维可见光成像模拟时,光源一般是太阳,为方向性光源,假设太阳离成像系统距离远远大于相机与目标的距离,因此设置其位置为无限远处,到达目标时所有光线都平行。把光照模型设成散射光,如果从某一方向照射,此方向照射的表面就会显得很亮,反之则暗,经过表面后均匀向各个方向散射。在空间目标三维可见光成像模拟时,光源为激光,它来自某一特定方向,具有很高的准直性,在打到具有镜面成分的材质上反射效果很好,因此设置其光照模式为镜面光,光源位置与相机所在位置相同。
3.3 2D/3D相机仿真模型
本文以二维可见光相机和三维激光雷达为例构建2D/3D 相机仿真模型。三维激光雷达与二维可见光相机最大的不同点是它可以探测目标上每个点到相机的距离,即获取距离信息。在OpenGL 中,获得三维距离信息的基本原理是将探测到的目标与相机的距离值转化成每个像素的深度值存储在深度缓存区中以待读取。在OpenGL 中相机模拟摄影测量方法及相机参数的设置方法如下:
令OpenGL旋转、平移矩阵R、T 与摄影测量系统中R,T 相同,即M=M1。系统焦距为f,水平垂直方向每个像素的物理尺寸为dx,dy,CCD 成像平面物理尺寸为lx,ly,则像素个数分别为lx/dx,ly/dy。假设相机距离目标的最大值为s,且在保证最终成像结果与真实成像分辨率一致的情况下,设置
此外,仍需要使视口纵横比与视景体纵横比相同,这样图像才不会发生变形。此时设置
将式 (6)至式 (9)整理并代入OpenGL 成像模型式(5)中可得
式 (10)与式 (4)所推得的摄影测量变换方程一致,因此说明相机通过上述的参数设置进行模型的建立便可以真实模拟现实的摄影测量成像方法。
4 空间目标成像仿真
4.1 二维图像序列仿真
4.2 三维图像序列仿真
图4 60°/s绕自身垂直轴运动的二维图像序列
图5 3.3m/s远离相机的二维图像序列
图6 60°/s绕自身垂直轴的三维图像序列
为更加直观显示三维图像的距离信息,将保存在世界坐标系下的z坐标信息的文件用Matlab显示(色度条由下至上为蓝至红),这里仅拿图6的一幅图像为例,经相对计算其误差最大值约为0.8%,证明其能真实准确地模拟目标的三维成像。Matlab显示的空间运动目标三维图像如图7所示。
5 结束语
本文结合空间目标位姿视觉测量的应用背景提出了一种基于OpenGL的2D/3D 图像序列仿真方法,从仿真的二维及三维成像图像序列来看,此方法利用OpenGL 工具可以很好地模拟真实空间中的成像效果,并可以获取所需要的具有距离信息的三维图像序列,经计算误差在允许范围内,说明该方法生成图像序列的正确性。生成的图像序列为目标的位姿视觉测量提供了有力的数据支撑,为了更加真实模拟现实中的目标的空间运动,下一步需要全面考虑如相机畸变、运动模糊等其它因素。
图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].哈尔滨:哈尔滨工业大学,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).[韩意,孙华燕.空间目标天基光学成像仿真研究进展 [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].计算机与现代化,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). [杨长才,田金文,叶瑾,等.天基光学成像系统空间目标成像模拟技术 [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).[程委,李兵,吴增强,等.航天器飞行及测控过程可视化系 统 设 计 与 实 现 [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).[闫龙.摄像机成像过程仿真技术研究 [J].山东大学学报 (工学版),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].电脑知识与技术,2011,7 (10):2393-2396.]