本发明涉及一种成像仿真方法,特别涉及一种基于opengl的双目夜视镜的成像模拟方法及系统。
背景技术:
夜晚天空并非完全没有光辐射。空中具有月光、星光、大气辉光以及太阳光、月光和星光的散射光,但由于光幅度太小人眼无法识别,被称为微光。微光包括可见光和近红外光,波长在0.4~2.0um。微光夜视技术是利用电真空和电子光学等技术,实现光子图像-电子图像-光子图像的转换,并在转换过程总,通过对电子图像的增强实现了对光子图像的增强,从而达到在微弱光线照明下的夜间观察的技术。
随着计算机性能的提高和计算机仿真成像技术的发展,在军事训练或者飞行员训练中还会采用模拟器来仿真训练环境,其中就有夜视环境的模拟器。目前的夜视环境模拟器的在仿真效果上的真实性和通用性较差,开发成本较大。
技术实现要素:
本发明要解决的技术问题是提供一种基于opengl的双目夜视镜的成像模拟方法及系统,以在双目夜视镜上呈现质量稳定、可靠的模拟画面。
为了解决上述技术问题,本发明的技术方案为:
一种基于opengl的双目夜视镜的成像模拟方法,计算机加载所述成像模拟方法,以在所述双目夜视镜上生成图像,包括以下步骤:
s1:建立用于模拟环境的三维场景模型,其中,所述三维场景模型具有每一物体模型中对光的反射、吸收性质的材质属性;
s2:计算每一物体模型在设定环境下的微光辐射值,以生成在所述三维场景模型中所有物体模型的微光辐射图像;
s3:根据佩戴者头部的位置数据,调节三维场景模型呈现于所述双目夜视镜的所述微光辐射图像的可视位置和视觉角度;
s4:利用着色器算法渲染处理对应于所述可视位置和所述视觉角度的微光辐射图像,以得到微光夜视镜图像;
s5:将所述微光夜视镜图像进行第一调节以形成呈现于左目镜的第一图像,将同一所述微光夜视镜图像进行第二调节以形成呈现于右目镜的第二图像,所述第一调节和所述第二调节数值相同,方向相反。
优选的,s2具体包括以下步骤:
s201:计算每一物体模型的反射光辐射强度,所述反射光辐射强度为环境光强度、漫反射光强度、镜面反射光强度以及自发光强度之和,其计算式为:
ir=ia+id+is+ie(1)
其中,ir是反射光辐射强度;ia是环境光强度;id是漫反射光强度;is是镜面反射光强度;ie是自发光强度;
s202:确定所述设定环境下的大气衰减值和路径辐射值;
s203:计算每一物体模型到达所述双目夜视镜的辐射光强,其计算式为:
io=ir*τ+ip(2)
其中,io是到达所述双目夜视镜的辐射光强;τ是所述设定环境下的大气衰减值;ip是所述设定环境下的路径辐射值;
s204:根据真实夜视镜的性能参数,增益放大到达所述双目夜视镜的辐射光强,得到每一物体模型在设定环境下的微光辐射值,以生成所述微光辐射图像。
优选的,s3具体包括以下步骤:
s301:采集所述位置数据,所述位置数据包括佩戴者头部的俯仰量θ、横滚量φ、偏航量ψ、以及三维位移x值,y值,z值;
s302:将所述位置数据转换为空间变换矩阵,以得到包含所述可视位置和所述视觉角度的综合空间变换矩阵,其计算式为:
其中,mθ是俯仰量的空间变换矩阵;
优选的,s4具体包括以下步骤:
s401:截取所述微光辐射图像中亮度高于预定值的高亮图像,以在所述微光辐射图像中提亮并扩大所述高亮图像;
s402:在s401生成的图像上进行噪声处理;
s403:在s402生成的图像上剪切出圆形图像,并对所述圆形图像的边缘部分进行模糊处理,以得到微光夜视镜图像。
优选的,所述第一调节为将所述综合空间变换矩阵做左平移变换,对变换后的左矩阵进行逆变换作为拍摄左图像的左模型视点矩阵,然后做左拍摄角度变换,以得到所述第一图像。
优选的,所述第二调节为将所述综合空间变换矩阵做右平移变换,对变换后的右矩阵进行逆变换作为拍摄右图像的右模型视点矩阵,然后做右拍摄角度变换,以得到所述第二图像。
根据本发明的另一个方面,本发明还提供了一种基于opengl的双目夜视镜的成像模拟系统,其包括上述的成像模拟方法,所述左目镜和所述右目镜采用oled显示屏。
与现有技术相比,本发明的有益效果在于本发明的有益之处在于:1)首创性:双目夜视成像系统目前在国内并没有,属于首创;2)仿真度高,本发明辐射算法中的光照采用真实统计数据,大气传输衰减和路径辐射均采用成熟的大气分析软件计算然后进行拟合得到较真实的辐射值,为了模拟真实夜视镜效果添加了噪声、高亮、模糊等效果;3)可移植性强,本发明采用开源opengl图像渲染引擎,不受平台限制,可在多种硬件平台和操作系统上运行。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1为本发明一种基于opengl的双目夜视镜的成像模拟方法的软件流程图;
图2为本发明一种基于opengl的双目夜视镜的成像模拟系统的设施关系图;
图3为本发明设定环境时参考的不同月相相对照度的曲线图;
图4为本发明设定环境时不同环境下大气衰减值的拟合曲线对比图;
图5为本发明呈现于双目夜视镜的图像,其中,左边为第一图像,右边为第二图像。
图中各符号表示的含义如下:
1-计算机,2-双目夜视镜,3-头盔跟踪设备。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
如图2所示,本发明的双目夜视镜2、头盔跟踪设备3与计算机1中加载成像模拟方法的成像模拟系统连接。计算机1能够加载所述成像模拟方法,以在所述双目夜视镜2上生成图像。双目夜视镜2为仿真双目夜视镜,其仿真显示部件由双目透射式显示器构成。在本实施例中,双目透射式显示器采用左右两个oled显示屏,用于显示模拟的夜视图像。显示驱动板将视频信号处理后分别传输给与其相连的双路oled显示屏。头盔跟踪设备3为一个陀螺仪,用来采集佩戴者头部的位置姿态,并通过usb将位置数据输入处理计算机。其中,头盔跟踪设备3采用mems微型惯性测量单元(imu)。而用于数据图像处理的计算机1用于仿真夜视成像,并根据头部的位置数据,实时陀螺仪的姿态方向、线性加速度以及海拔高度等数据,从而实时更改显示于左右两个oled显示屏上的模拟画面。
基于上述的硬件设备,如图1所示,本发明基于opengl的双目夜视镜的成像模拟方法,主要包括以下步骤。
s1:建立用于模拟环境的三维场景模型,其中,所述三维场景模型景模型具有每一物体模型中对光的反射、吸收性质的材质属性。
在s1中利用3dsmax或multigencreator生成三维场景模型,地图中包含有用于模拟的所有物体,并将物体的不同材质对光的反射性质添加到物体材质属性中。
s2:计算每一物体模型在设定环境下的微光辐射值,以生成在所述三维场景模型中所有物体模型的微光辐射图像。
微光仿真的辐射来自太阳、月亮、星光及大气辐射。这里采用太阳常数e0=1353w/m2作为地球大气层上界的太阳辐射值。实际的太阳辐射根据天气、时间、物体倾斜角等进行调节。月亮辐射主要反射太阳辐射。如图3所示的不同月相相对照度的曲线图,满月时月亮亮度约为0.2lx。不同月相下月光亮度呈余弦变化。即使在无月环境,天空也充满星光、大气辉光、银河光及其散射光,但辐射值较低约为满月的0.01。因此,s2首先要在计算机1中设置三维场景模型在模拟时所采用的环境,以完成设定环境的环节。
s2的计算具体包括以下步骤。
s201:计算每一物体模型的反射光辐射强度,所述反射光辐射强度为环境光强度、漫反射光强度、镜面反射光强度以及自发光强度之和,其计算式为:
ir=ia+id+is+ie(1)
其中,ir是反射光辐射强度;ia是环境光强度;id是漫反射光强度;is是镜面反射光强度;ie是自发光强度。
s201中采用phone光照模型计算各模型反射的光辐射强度。首先获取当前各种辐射源的总辐射值i、生成三维模型时的材质属性ρ、物体表面法线值
ia=i*ρ(101)
is=i*ρ*(r→·e→)s(103)
环境光为任意方向,任意观察视角都相同的光。漫反射光为迎着光源方向最亮、背对光源最暗。镜面反射光体现了物体的光滑程度,当视线正好迎向在物体的反射光线最亮的光强度,在镜面反射光的计算式中,
s202:确定所述设定环境下的大气衰减值和路径辐射值。
最终模拟中的物体模型和双目夜视镜2之间存在大气。大气会影响微光夜视成像的显示效果。大气影响成像体现在:一、大气会对辐射产生衰减,一般用τ表示系统的设定环境下的大气衰减值;二、传输过程会有月光、星光等散射到传输路径中成为路径辐射,用ip表示系统的设定环境下的路径辐射值。这里采用modtran软件计算大气衰减值和路径辐射值。由于motran计算较为耗时,不能把modtran软件嵌入到系统中。传统方法是计算各个环境下不同的衰减和辐射值,制作成多个3d纹理。由于3d纹理采样较为复杂,我们采用拟合曲线模拟,由于衰减和辐射在短距离满足指数函数关系,我们使用下面的公式(8)为基础模型:
f(x)=e-g(x)*x(8)
其中,g(x)也是关于x的函数,用于对模型进行修改。图4为分别是在夏季中纬度、海洋消光环境下晴天和中雨天气模拟曲线与实际曲线对比图。本发明采用modtran软件计算不同路径长度、海拔高度、空气颗粒状态、空气水汽状况等因素影响下大气衰减值和路径辐射值,然后对计算的结果进行曲线拟合生成曲线方程,与传统的生成大气衰减和辐射纹理映射方法相比,此方法省去了非常耗时三维纹理采样步骤,较大的提高了程序运行效率。
s203:计算每一物体模型到达所述双目夜视镜的辐射光强,其计算式为:
io=ir*τ+ip(2)
其中,io是到达所述双目夜视镜的辐射光强;ir是反射光辐射强度;τ是所述设定环境下的大气衰减值;ip是所述设定环境下的路径辐射值。
s204:根据真实夜视镜的性能参数,增益放大到达所述双目夜视镜的辐射光强,得到每一物体模型在设定环境下的微光辐射值,以生成所述微光辐射图像。
因此根据上述s201到s204的步骤,能够得到每一物体模型在设定环境下的到达双目夜视镜可是的微光辐射图像。
为了增强模拟现实的真实性,除了上述对模型进行夜间光辐射计算以得到三维地图模型全体的微光辐射图像外,还需要捕捉佩戴者头部的位置数据,以使得计算机实时根据头部的移动来调节显示屏所显示的图像位置和角度。
s3:根据佩戴者头部的位置数据,调节三维场景模型呈现于所述双目夜视镜的所述微光辐射图像的可视位置和视觉角度。
s3的计算具体包括以下步骤。
s301:采集所述位置数据,所述位置数据包括佩戴者头部的俯仰量θ、横滚量φ、偏航量ψ、以及三维位移x值,y值,z值;
s302:将所述位置数据转换为空间变换矩阵,以得到包含所述可视位置和所述视觉角度的综合空间变换矩阵,其计算式为:
其中,mθ是俯仰量的空间变换矩阵;
首先,s4是对s3中的微光辐射图像进行夜视处理。
s4:利用着色器算法渲染处理对应于所述可视位置和所述视觉角度的微光辐射图像,以得到微光夜视镜图像。
s4的渲染处理具体包括以下步骤。
s401:截取所述微光辐射图像中亮度高于预定值的高亮图像,以在所述微光辐射图像中提亮并扩大所述高亮图像。
s401是对图像高亮处理。将s3生成的微光辐射图像根据亮度进行裁剪,获取亮度较高的部分。通过对获取的图像进行下采样、高斯模糊、图像放大等处理,将原来亮度较高的区域进行提亮并且扩大。
s402:在s401生成的图像上进行噪声处理。
s402是对图像噪声处理。在s401生成的图像上添加一层带有噪点的图像,噪点图像可用photoshop软件自动生成。根据系统时间的三角函数值对早点图像进行偏移,偏移模型为
nc=c+sin(t)*f(9)
其中,c为噪点图像原始位置;t为系统时间;f为偏移因子。
s403:在s402生成的图像上剪切出圆形图像,并对所述圆形图像的边缘部分进行模糊处理,以得到微光夜视镜图像。
s403是对图像边缘处理。在s402生成的矩形图像上勾勒出最大内切圆,将内切圆外部的图像去除,将内切圆的的边缘部分进行高斯模糊,得到夜视管的圆形区域且边缘模糊的特性。
基于计算出的可视位置、视觉角度、在这一可视位置和视觉角度s4处理后的微光夜视镜图像,进一步地进行立体图像处理,以得到左右目镜有偏差的两幅图像,增强立体现实效果。其中,立体成像特点在于两眼视差不同,大脑根据两眼不同的视差自动生成立体效果,根据该特点对两幅图像进行偏移得到视差图像。opengl生成画面相当于相机对物体进行拍照,视点矩阵相当于相机的位置和照射角度,投影矩阵相当于相机的镜头,通过调节视点矩阵和投影矩阵控制生成两幅具有视差的图像。
s5:将所述微光夜视镜图像进行第一调节以形成呈现于左目镜的第一图像,将同一所述微光夜视镜图像进行第二调节以形成呈现于右目镜的第二图像,所述第一调节和所述第二调节数值相同,方向相反。
在s5中,所述第一调节为将所述综合空间变换矩阵做左平移变换,对变换后的左矩阵进行逆变换作为拍摄左图像的左模型视点矩阵,以得到所述第一图像。所述第二调节为将所述综合空间变换矩阵做右平移变换,对变换后的右矩阵进行逆变换作为拍摄右图像的右模型视点矩阵,以得到所述第二图像。
由于两幅图像的位置差值为人的瞳间距。人眼瞳间距在0.6左右,相当于对两个视点矩阵分别做左右平移0.3的变换,其变换矩阵分别为:
综上,通过上述s1到s5的步骤,计算机能够根据头盔的实时位置数据,调节双目夜视镜显示屏上图像的位置和角度。在计算机中,显示屏上的图像已经经过了夜视处理和左右眼立体处理。因此,最终显示屏能够实现三维场景模型中夜视景象的实时观察模拟。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。