晁建刚,王金坤,陈学文,张 炎
(1.中国航天员科研训练中心,北京100094;2.中国航天员科研训练中心人因工程重点实验室,北京100094)
载人航天器交会对接任务按照航天员的参与程度通常分为自主和人控两种操作模式[1]。自主模式下两个航天器通过多种测量信息进行自主/自动控制达到对接目的;人控模式下航天员借助舷窗(美国)、光学瞄准镜(俄罗斯)或电视图像(美国、俄罗斯等)等视觉测量设备,人控操作追踪飞行器完成对接。我国人控对接时,需要航天员实时观察图像信息操作追踪航天器完成对接[2];自主对接时航天员不直接参与操作,但需要监控图像和应急情况下人控干预。
对接任务地面训练中,很难采用实物或者半实物模式实现追踪与目标的空间运动,通常采用数字方法仿真两航天器的轨道运动、导航制导及动力控制,利用计算机图形学建立虚拟空间,实时渲染生成目标空间运动图像。我国交会对接采用电视图像进行目标捕捉[1],训练仿真图像渲染需要考虑近地空间光照亮度高动态变化,也需要考虑电视摄像机曝光特效、光度调节特性和最终显示特性。太阳光照射在目标飞行器上会有部分光线反射进入电视摄像机,在特定条件下进入电视摄像机的光强过大,超过电视摄像机的瞬时调节能力导致曝光过度,图像中局部区域特别亮。当航天器处于阴影区时,在交会对接灯开启前,进入电视摄像机的光强太弱,导致曝光不足,图像中局部区域特别暗。实际交会对接电视摄像机工作时,为清楚对接靶标,会对电视摄像机参数进行自动或者手动调节,使视场中的物体的亮度均值处于指定的范围内。会缩短曝光时间、减少增益,当均值亮度太小时增加曝光时间、增加增益,使之回到指定的范围内。
电视图像仿真时建立了包括地球、追踪飞行器、目标飞行器、太阳等所有仿真对象的三维场景。电视图像仿真软件首先计算出所有仿真对象的位置、姿态、方向等参数并设置到三维场景中,接下来进行原始渲染,然后对原始渲染图像进行饱和特效、均值亮度计算等处理,最后输出最终仿真电视图像并根据均值亮度设置下一次渲染所有光源亮度相关属性。本文主要针对近地空间光照及摄像机的特性,提出了训练仿真电视图像的实时渲染模式,阐述了高动态范围(High Dynamic Range)成像、特效、调光和色调映射的实现方法。
真实任务中摄像机工作在近地空间,自然光源有太阳、地球、月亮、星光、银河和宇宙光等[3],光照强度变化范围很大。如图1所示:空间的光照强度通常从10-6cd/m2变到108cd/m2,即光强从暗适应范围(Rod Function Scotopic)经过度范围(Mescopic)变化到亮适应范围(Cone Function Photopic),变化范围大概为1014∶1。人的视觉系统(Human Visual System,HVS)对于亮度的感知范围通常为10000∶1,摄像机与人的视觉光照敏感度一致。而通常图形仿真的范围为256∶1,显示设备范围为100∶1,适用于低动态范围(Low Dynamic Range,LDR)的变化。研究表明,人对图像的亮度对比度感知最明显[4],采用亮度一一对应的方式仿真很难保证亮度对比度感知的一致性;电视图像仿真中采用高动态色调映射方法将较大亮度范围内的亮度层次映射到人对亮度的感知范围内,保证人对亮度对比度感知一致性。
图1 视觉感知及显示亮度范围图Fig.1 Illumination range of visual perception and display
由于阳照区和阴影区不断交替变化摄像机入射光强度变化很大。摄像图像在两种情况下无法识别,一种是入射光强度过高,目标成像区域产生光饱和,形成强烈的白色模糊区域;一种是入射光强度过低,引起目标欠饱和,成像过暗。为得到清晰的图像,工程上摄像机采用自动或者手动调光,通过调节可变光阑孔径的大小改变入射CCD靶面上的照度,得到合适的照度以保证成像清晰[5]。电视图像仿真中,除模拟光饱和和光暗两种成像模式,也要模拟实时光亮度统计进行自动或者手动调光。
为满足对近地空间条件下摄像机动态曝光特性等功能的仿真以及最终图像的亮度感知一致性,需要对目标材质光照特性进行二次光特效、光调节特性等处理。具体方法为在一次原始成像渲染的基础上,实时对整个图像进行特性统计计算、实现光学特效、亮度调节和高动态计算后再次渲染形成最终显示的逼真图像,实现过程比较复杂。
采用传统图形学仿真时,需要在渲染周期内完成对渲染对象的初步光照渲染、图像亮度统计、特效光照计算、亮度调节和适应性高动态,累计进行多次光照渲染[6]。如图2所示,当场景中包含m个光源以及n个物体时,在最坏的情况下,传统渲染方法的复杂度为O(m×n),实时生成图像效率受到影响。文献[7-8]等提出了一种延迟着色(Deferred Shading)技术,周期内仿真只需设置完三维渲染状态(Rendering State)后,在几何阶段(Geometry Stage)提交场景几何图元一次,在几何内存G-Buffer(Geometry Buffer)中存储了每个像素的属性(片元几何位置、片元法线、漫反射、镜面反射系数、材质其他属性等),用于随后的通道进行渲染,如图2所示,延迟渲染方法在最坏情况下复杂度降为O(m+n)。在几何缓存的基础上设置二维渲染状态后,如图3所示,光照阶段(Lighting Stage)、后处理阶段(Post-Processing Stage)和最终阶段(Final Stage)每个像素是各自独立着色,后处理经过 P-Buffer(Pixel Buffer)实现,减少了显卡内存和渲染通道交互,提高了效率。
图2 传统与延迟着色伪代码Fig.2 Pseudo code for traditional shading and deferred shading
图3 延迟着色技术架构图Fig.3 Architecture of deferred shading technique
为提高渲染的逼真度和实时性,电视图像仿真采用了延迟着色的渲染模式进行图像仿真。在几何内存中建立了图形几何及法线矢量特性、不同光照模式下目标的材质特性以及特效模式下的处理模型。光照阶段采用浮点模式完成原始图像的高动态渲染;后处理阶段,模拟摄像机对原始亮度进行平均统计,用于光饱和特效仿真及调光处理;在最终阶(Final Stage)段,采用色调映射实现图像的高动态渲染。信息交互主要通过G-Buffer和P-Buffer,实现了几何与光照的分离、特效处理、最终渲染与源图像的处理、并行运算的有效匹配[6]。
传统渲染系统通常只能产生低动态范围的渲染结果。对于一般的场景对象而言,这种渲染结果基本上可以接受,但是对于近地空间对接任务所包含的具有高亮度的光源(太阳、对接聚光灯、标志灯等)或者高光反射物体(目标航天器对接环和对接瓣等)的场景,渲染结果通常严重失真。问题的主要原因是此类场景通常具有高动态范围,而在传统固定流水线仅能够操作8 bit整型数值,对比度只有255∶1。为了模拟真实的电视摄像机光学特效和适应性调光功能,需要渲染的原始图像具备与空间摄像机接近的光学亮度范围(10000∶1),传统的整型纹理渲染已经无法满足需要[6]。
为了解决动态范围不足问题,为场景中的每个表面创建一张浮点格式的光照贴图,贴图的每个像素代表了表面相应位置的光强。使用Open-GL的FBO(Frame Buffer Object,帧缓冲对象)将绑定浮点光照贴图的场景渲染到一个与屏幕大小一致的浮点纹理中,可以提高像素的亮度对比度。
目标航天器进行三维建模,采用了GL_RGBA16F模式的浮点纹理,将每个像素的RGB以及亮度值用实际物理参数或是线性函数表示,参数不再限于整数,可以达到更大的范围和更高的精度。这种方法从源头上保证了渲染的逼真度,避免了渲染处理过程中的纹理失真。
受空间环境因素影响,电视摄像机容易出现饱和,亮度比较高的地方出现光晕和光饱和现象。这种饱和与摄像机特性相关,对浮点纹理内存中的高亮部分采取高通滤波,滤波后的图像缩比后分别进行横向和纵向高斯混合,最后再与原始图像进行融合,形成饱和特效。
在计算机图形学和传统色彩学中,每个像素点的光强亮度值通过公式(1)来获取[9],其中R、G、B表示像素点三个颜色分量。
高通滤波时对原始图像每个像素亮度值进行统计,亮度值LW大于高通阈值的像素点保留进行高斯混合,形成光学特效[8]。阈值的选取根据摄像机特性来实施,文中通过实验,选取为0.665。
光亮度调节和最终色调映射都需要对渲染的原始图像亮度进行统计,求取平均亮度值,作为调节和映射参考值。
获取图像平均亮度有两种方法:一是对图像逐像素亮度统计,方法简单可行、统计精度高,耗时较大,很难满足实时性要求;第二种为在延迟着色模式下,在GPU中对图像进行多次降采样实现平均亮度的统计,统计精度稍低,运行耗时较小。
延迟着色模式下降采样是指将初步渲染并在屏幕空间裁减的图像映射到规定的浮点纹理内存中,通过多次纹理信息亮度比例压缩、平均融合,最终把亮度值采样到一个1×1的内存纹理中,如图4所示。
图4 降采样示意图Fig.4 Illustration of downsampling
采用降采样方法进行平均亮度计算前,通常先将图像平均分割成N×N的多个区域,对每一个区域内的N×N个采样点的亮度相加求平均值,即降采样平均亮度计算采用公式(2)进行计算。按照公式(2)计算出来的所有平均亮度均作为新图像的采样点组成下一层采样图像。将下一层采样图像作为输入图像重复上面的步骤,最后当采样图像只剩下一个采样点时,该采样点的亮度值即为原始图像的平均亮度。公式(2)中x、y是每个像素的2D坐标。
电视图像仿真分辨率为1024*768,首先将初步渲染的场景图像信息拷贝出来,在后处理加工阶段进行4×4像素信息降采样,将采样的图像信息拷贝到128×128的浮点内存纹理中,通过2×2亮度降采样,拷贝到64×64浮点内存纹理中,再次连续两次4×4降采样,分别形成16×16和4×4浮点内存纹理,最后通过4×4降采样,形成1×1内存纹理,其值包含了整场景的平均亮度值。
由于人眼对亮度的感知成对数关系,首次亮度降采样时每个像素点采用亮度值的对数求平均值,在最后一次采样时恢复到指数亮度的平均值,如公式(3)所示[10]。其中,δ是一个很小的值,用以避免对亮度为0的全黑像素进行对数运算,通常取δ为0.001,N是降采样时所取像素的个数。
真实摄像机光亮度调节方法为:视频AD芯片对CCD输出的模拟视频信号进行采样,获得每一帧的图像数据,即灰度矩阵[11],对灰度矩阵求平均值即可获取图像的平均亮度。通常调光策略方法为:设取平均灰度结果为,当灰度值在内,表明当前的CCD摄像机接收的光照度合适,不调光;如果>,则调整电子快门使平均亮度调整到;反之如果则调整电子快门使平均亮度调整到
实际任务中,光源发出的光作用在物体上后再进入真实电视摄像机形成电视图像,光源强度和物体材质属性不会发生改变。通过调整真实电视摄像机的曝光时间、增益等参数可以改变实际电视图像的亮度。由于模拟真实电视摄像机工作过程比较复杂,电视图像仿真过程中可以通过调整光源强度、调整物体材质中的光学属性、调整成像像素亮度来影响最终仿真图像亮度。仿真时为达到调光的目的,改变光源亮度的方法可以称为光源亮度调节法;通过延迟渲染调节每个像素点亮度的方法可以称为成像像素亮度调节法;改变物体材质中漫反射、镜面反射等光学属性系数的方法可以称为材质光学属性调节法。考虑到运算的实时性和实际空间光学特点,电视图像仿真采用光源亮度调节法和成像象素调节法混合模式。
电视图像仿真中,采用平均值亮度作为参考,通过平均亮度值与调光策略规定的最大值和最小值相比较,确定调光系数Ca。根据神舟九号飞船(SZ-9)电视摄像机实际工作原理,仿真中采用的调整算法如公式(4)所示。
仿真过程中航天器在阳照区时,通过调节太阳光和地球的漫反射光的亮度系数(定义为太阳光的0.3倍)来实施;在阴影区时,以调节交会对接灯(图像仿真中采用聚光灯)的亮度系数来实施;在过渡伪影区时,因太阳光和对接聚光灯同时存在,且贡献因子强度变化级数较大,不宜采用光源亮度法,采用成像象素调节法更逼真。前者适用于单一主光源条件下,后者适用于多光源条件下。两种模式的调节算法如公式(5)、(6)所示[7]。
色调映射其实就是一种曝光控制,即将近地空间摄像机捕获的高动态范围(0,10000)的图像映射到一个固定的低范围,既屏幕能够显示的(0,100)的低动态范围内,保证人的视觉亮度感知不失真。关于色调映射,有很多具体的方法,每个方法都是从高动态范围到低范围的一个映射,统称为TMO(Tone Mapping Operating)。电视图像仿真中采用了文献[12]中的调和算法。
色调算法模拟人的视觉系统通过视觉调节适应高动态的范围,其核心还是在平均亮度的基础上对场景的亮度进行人眼视觉性再适应性重新计算分配,更好的满足在低动态显示器逼真显示。
色调算法采用公式(7)[12]来求取每个像素点的融合亮度值L(x,y)。其中α为键值,表示整个图像的主观亮度,用户可以自行调整,通常取0.045,0.09,0.18,0.36 以及 0.72。文中太空环境阴影区,通常可取0.09,在阳照区一般取0.18或0.36。像素点最终渲染的亮度值在融合亮度值的基础上,通过公式(8)[13]平衡压缩计算获取,其中Lwhite是最大光强值,文中设置为1.2247。
基于延迟着色方法,原始光照图像经过平均亮度统计、特效处理和调光处理,在合成阶段通过色调映射对每个象素点亮度重新计算,渲染生成的图像保持了与实际一致。
基于上述方法,采用3Dmax对空间场景、飞行器进行几何和材质属性浮点建模,在Windows系统下,以Microsoft Visual C++编程,用OpenGL图形引擎模式实现电视图像仿真。生成的仿真软件运行在英特尔®至强®四核处理器W3565(3.20 GHz)、内存 4 GB、显卡 NVIDIA Quadro FX3800(1 GB)的工作站上。按照空间目标运动规律,每40ms提供太阳、月亮、地球、追踪飞行器、目标飞行器空间坐标/姿态位置驱动图形仿真,经测试,图像渲染流畅,FPS(Frame Per Second)接近50,已经充分满足人的视觉需要。
根据SZ-9下传图像,对仿真图像光饱和、光调节和色调映射显示等进行了比对,结果见图5~7。
图5为进行高动态渲染前后的两幅图像。可以看出进行高动态渲染后图像的细节层次更清晰,更有利于人的视觉感知,更接近SZ-9任务实飞图像。
图5 传统仿真图像和高动态仿真图像Fig.5 Traditional simulated image and high dynamic range simulated image
图6 过饱和仿真图像和调光后的仿真图像Fig.6 Simulated overexposure image and lightadjusted simulated image
图7 SZ-9任务中过饱和图像和调光后的图像Fig.7 Simulated overexposure image and lightadjusted simulated image in SZ-9 task
图6 为光过饱和仿真图像和模拟手动调光过程后的仿真图像的对比图。从光过饱和仿真图像中已不能分辨天宫及对接靶标,而从调光后的仿真图像中已能较为清楚地分辨天宫和对接靶标。图7为SZ-9实际任务中电视摄像机拍摄到的光过饱和图像和航天员手动调光后的图像的对比图。将仿真图像与SZ-9任务图像进行对比,图像过饱和时以及调光前后的图像细节层次与亮度的变化基本一致,并且手动调光过程中的图像变化趋势以及手动调光次数也基本一致。
上述比对过程可以看出,当目标过饱和、图像均值亮度过大时,通过减少亮度系数来仿真电视摄像机的调光减少效果的方法是有效的。因此当入射光强度过低、图像均值亮度过低时,增加亮度系数可以使图像均值亮度回到指定范围内,即通过增加亮度系数来仿真电视摄像机的调光增加效果的方法也是适用的。
本文研究了近地空间光照特点、摄像机特性和仿真显示特点和难点,提出了一种基于延迟着色模式下的图形渲染模式;建立了适应于空间高动态的浮点纹理渲染和特效渲染方法;基于降采样平均亮度统计方法实现调光和最终显示色调映射,试验表明渲染与实际工程下传图像一致,可以满足航天员训练需要。
[1]周建平.载人航天交会对接技术[J].载人航天,2011,17(2):5-12.
[2]杨进,姜国华,晁建刚.基于靶标图像的航天员手控对接方法[J].宇航学报,2010,31(5):1398-1404.
[3]Hoffleit D,Jaschek C.The Bright star catalogue[J].New Haven,Conn.:Yale University Observatory,|c1991,5th rev.ed.,edited by Hoffleit,Dorrit;Jaschek,Carlos|v(coll.),1991,1.
[4]Kunkel T,Reinhard E.A reassessment of the simultaneous dynamic range of the human visual system[C]//Proceedings of the 7th Symposium on Applied Perception in Graphics and Visualization.New York,ACM Press,2010:17-24.
[5]李松.航天员对地观察望远镜设计与研究[D].长春:中国科学院长春光学精密机械与物理研究所,2003:19-29.
[6]Policarpo F,Fonseca F.Deferred shading tutorial[EB/OL].http://fabio.policarpo.nom.br/docs.
[7]Soler C,Hoel O,Rochet F.A fast deferred shading pipeline for real time approximate indirect illumination[J].ACM SIGGRAPH 2010 Talks(2010)18:65-68.
[8]Randi J.Rost.天宏工作室,译.OpenGL着色语言[M].北京:人民邮电出版社,2006:151-203.
[9]Lee S,Kwak B,Han H,et al.Dynamic range compression algorithm for mobile display devices using average luminance values[C]//Proceedings of the 12th International Symposium on Integrated Circuits.Washington DC:IEEE Computer Society Press,2009:340-343.
[10]Jinno T,Mouri K,Okuda M.HDR video tone mapping based on gamma blending[C]//Proceedings of 17th IEEE International Conference on Image Processing.Washington DC:IEEE Computer Society Press,2010:2521-2524.
[11]张宇,赵贵军,李国宁,等.用于目标跟踪的大视场CCD相机自动调光方法及实现[J].液晶与显示,2009,24(6):928-933.
[12]Reinhard E,Stark M,Shirley P,et al.Photographic tone reproduction for digital images[J].ACM Transactions on Graphics,2002,21(3):267-276.
[13]Kuang J T,Yamaguchi H,Johnson G M,et al.Testing HDR image rendering algorithms[C]//Proceedings of the 12th Color and Image Conference.Virginia:Society for Imaging Science and Technology Press,2004:315-320.