2. 四川大学 视觉合成图形图像技术国家级重点实验室, 成都 610065
2. National Key Laboratory of Fundamental Science on Synthetic Vision, Sichuan University, Chengdu 610065, China
大尺度战场是指军队部署规模、作战范围、作战持续时间等都远超出一般战场范畴的战场区域. 随着联合作战理论日趋成熟, 大尺度战场仿真是未来作战概念及战法研究、作战方案评估、武器装备论证、模拟对抗训练的核心[1]. 全球地形可视化是大尺度战场仿真中不可或缺的一环. 地貌晕渲技术可以增强三维地形仿真的真实感, 为其增加更多的纹理细节. 地貌晕渲技术是一种通过计算机输出灰度或彩色的像素点, 形成随光度近似连续变化的色调从而模拟太阳光照射在凹凸地形上产生明暗对比的技术. 该项技术常见于战场仿真应用中, 它不仅能够给使用者带来更加立体的视觉感受, 还能增强地貌的形态特征, 为战场态势呈现绝佳的效果[2]. 在构建大尺度战场环境时, 目前业内的主流方法是将卫星影像数据附着到三维地形表面, 以此来增强地形的可视化效果. 但当卫星影像级别较低时, 受限于卫星影像本身的质量, 传统计算机自动地貌晕渲方法得到的地貌晕渲效果十分模糊, 无法真实地体现全球地形在细节处的重要纹理特征. 因此, 如何增强地貌晕渲技术在地貌细节处的表达能力、提高地貌的三维视觉效果一直是研究者们关注的焦点.
为了增强三维地形的可视化效果, 国内外众多学者在数字地形地貌晕渲技术上做了大量的研究. 如李少梅[3]建立了数字地貌晕渲相关理论, 并阐述了地貌晕渲的实现方法. 陈艳丽[4]对光照模型、光源选择和渲染色调选择进行优化, 使晕渲对地貌特点的表示更加突出、更加准确. 姜文亮等[5]利用变比例参数调整垂直因子的方式增强晕渲图效果. 陈星宇[6]针对小比例尺地形进行滤波处理后再进行地貌晕渲, 去除了破碎地形的干扰细节, 还有基于重采样和各向异性的方法. 这些方法通过降低地形的复杂度, 提高了整体渲染效率, 但会使地形的主要特征模糊失真, 视觉效果变差, 且无法解决地貌在细节处纹理特征不明显的问题.
本文将分为突出地貌特征线和增加地貌环境光遮蔽两个步骤来增强地貌晕渲效果. 第1步, 基于数字高程数据(digital elevation models, DEM)计算地形平面曲率值, 通过自适应对比度增强方法处理后生成曲率图. 曲率图与卫星影像叠加可以突出显示大尺度战场中的地貌特征线, 从而带来更佳的视觉效果. 第2步, 提出一种基于深度可分离卷积的环境光遮蔽计算方法, 来实时生成更加贴近真实光线追踪形成的环境光遮蔽, 进而模拟在光照过程中山脉产生的自阴影效果, 增加地貌的细节, 为大尺度战场仿真中地形地貌分析提供重要依据. 最后将曲率图、环境光遮蔽与卫星影像三者融合生成实时地貌晕渲效果. 图1为总体技术流程的示意图.
综上, 本文相较于现有的地貌晕渲方法主要创新在以下3个方面.
(1)本文站在大尺度战场的角度, 从突出地貌特征线和增加环境光遮蔽两步出发, 对现有的地貌晕渲技术进行了扩展.
(2)本文提出了一种基于曲率的地貌特征线增强方法. 根据数字高程数据求得平面曲率值后, 利用自适应对比度增强方法对特征地形曲率值进行增强, 然后生成曲率图, 将曲率图与卫星影像融合后可显著提升山脊和山谷位置的锋锐程度.
(3)本文提出了一种基于深度可分离卷积的环境光遮蔽方法, 可以实时生成贴近光线追踪形成的环境光遮蔽效果.
1 基于曲率的地貌特征线增强方法
地貌特征线是地理形态的骨架线, 是描述地貌形态时的控制线, 主要包括山脊线、山谷线等[7], 它在分析战场环境的地貌特征、增强地形可视化效果上起着至关重要的作用. 山脊和山谷常位于地形起伏变化剧烈的位置, 常用地形的二阶因子来抽象描述. 地表曲率是常见的确定山脊线和山谷线位置的方法之一, 可以用来突显地形的主要地理特征. 它是表达地形曲面结构的重要参数之一, 是对地形曲面在各截面方向上的局部形状、凹凸变化的反映, 是对地表物质运动和曲面形态的刻画[8, 9]. 地表曲率影响着水文特征、地貌形态和土壤侵蚀状况等, 这些对战场态势的推演有着重要的研究意义和价值.
1.1 基于栅格数据的平面曲率算法地表曲率包含水平方向的平面曲率和垂直于水平方向的剖面曲率, 本文主要利用平面曲率来做地貌特征线的提取与效果增强. 平面曲率是指过地形曲面上任意一点的水平面与曲面形成的交线在该点处的曲率值. 平面曲率测量的是曲面上任意点在小范围内坡向的变化程度, 即曲面沿水平方向的弯曲速率. 如图2所示, 地形表面
平面曲率(plane curvature)表示曲线
$ {planc = - \frac{{{b^2}c - 2abe + {a^2}d}}{{\left({a^2} + {b^2}\right)^{3/2}}}} $ | (1) |
在数字高程栅格数据中进行地形曲率计算的常用方法是通过对3×3窗口(图3)中的高程值进行局部曲面拟合来实现的[8,10,11].
本文采用 Zevenbergen等[12]提出的不完全四次曲面模型来拟合局部曲面, 该模型将高程曲面
$ \begin{split} {\textit{z}} = & A{x^2}{y^2} + B{x^2}y + Cx{y^2} + D{x^2} + E{y^2} \\ & + Fxy + Gx + Hy + I \end{split} $ | (2) |
那么上述的各阶偏导可以表示为:
$ \left\{ { \begin{split} &{a = \frac{{ - {Z_4} + {Z_6}}}{{2L}}} \\ &{b = \frac{{{Z_2} - {Z_8}}}{{2L}}} \\ &{c = \frac{{{Z_4} + {Z_6} - 2{Z_5}}}{{{L^2}}}} \\ &{d = \frac{{{Z_2} + {Z_8} - 2{Z_5}}}{{{L^2}}}} \\ &{e = \frac{{ - {Z_1} + {Z_3} + {Z_7} - {Z_9}}}{{4{L^2}}}} \end{split} } \right.$ | (3) |
之后将窗口中
通过上述计算得到平面曲率值后, 本文在伽马(Gamma)变换的基础上提出了综合考虑分界系数和对比度系数的自适应对比度增强方法, 来增强山脊和山谷位置的锋锐程度, 从而得到更好的视觉效果. 伽马变换是对输入图像灰度值进行的非线性操作[13], 使输出图像灰度值与输入图像灰度值呈指数关系, 在对比度偏低且整体亮度偏高时有明显增强效果, 式(4)为变换公式:
$ \begin{array}{*{20}{c}} {s = c{r^\gamma }} \end{array} $ | (4) |
其中,
本文提出的自适应对比度增强方法中
$ \gamma =\frac{1}{{(1-m+r)}^{k}} $ | (5) |
其中,
从图5中可以看出, 平坦的地势平面曲率为0表现为灰色, 山谷位置的平面曲率为负表现为黑色, 山脊位置的平面曲率为正显示为白色, 自适应对比度增强方法可以使山脊和山谷的颜色区分更加明显. 图6展示了指数变换前后曲率图对应的灰度直方图. 图6(a)为指数变换前灰度直方图, 图像灰度值集中在一个较小的范围, 这样会产生图像细节不清晰的问题. 由图6(b)可知, 经过指数变换后灰度值被拉伸到了更大的范围, 可以在一定程度上解决先前图像不清晰的问题. 另外, 通过调整分界系数
在三维渲染领域, 用户的真实感很大一部分来源于光照技术, 更深层次更丰富的光照能给观众带来更好的视觉效果. 近年来行业内一直致力于高效和可扩展的实时真实感渲染研究, 环境光遮蔽技术(ambient occlusion, AO)就是其中之一. 环境光遮蔽技术是优秀的模拟低频全局光照的方法, 它能够表示出物体之间以及物体自身由于遮挡而产生的阴影. 在三维场景的角落处, 环境光由于会受到周围狭小环境的遮挡而无法全部反射进入人眼, 因此该位置的亮度相较于无遮挡的位置会更暗. 该项技术被广泛应用于数据可视化、实时(离线)渲染和三维游戏等相关领域.
传统的基于光线追踪的环境光遮蔽计算方法十分复杂且计算量庞大, 在较低端的显卡上难以做到实时渲染, 所以当前许多环境光遮蔽技术的具体实现都是基于屏幕空间环境光遮蔽技术(screen-space ambient occlusion, SSAO)[14], 它是根据屏幕空间中的相邻像素深度信息来计算物体遮挡关系的经典算法. 屏幕空间技术依靠着它与场景复杂性无关、实现简单和计算速度快等特性得到了广泛应用.
然而, 由于基于屏幕空间的处理技术丢失了场景相关的完整信息, 这就导致在屏幕空间的计算往往会伴随着一些微小的渲染瑕疵, 并且这些瑕疵情况复杂且难以预测. 针对现有的屏幕空间环境光遮蔽技术会出现渲染瑕疵的问题, Holden等[15]率先提出了基于卷积神经网络的环境光遮蔽方法. 本文利用深度可分离卷积优化其网络结构, 在保证渲染效果相近的前提下, 大幅提升渲染效率. 实验表明, 该方法能够为大尺度战场环境生成更加真实的环境光遮蔽效果. 基于深度可分离卷积的环境光遮蔽方法主要包含离线训练和实时渲染两个阶段, 图7展示了基于深度可分离卷积的环境光遮蔽方法流程图.
2.1 数据预处理
首先对原始数据集进行数据预处理(原始数据集中包括: 场景深度纹理、相机空间法线纹理和真实环境光遮蔽纹理). 从上述描述同一场景的每组图像中随机选取1 024个采样点作为采样像素点, 之后将各个采样像素点邻域的深度和法线数据融合为神经网络的输入, 将其对应于真实AO纹理的环境光遮蔽值作为神经网络的输出. 上述将采样像素点邻域的深度和法线数据融合的过程通过以下步骤来实现.
(1)针对单一采样像素点, 根据该采样像素点的深度值, 通过相机投影矩阵的逆矩阵计算出其在相机空间下的位置. 在以此位置为中心的视图空间中获取其周围
(2)针对步骤(1)所获取到的每个邻近样本, 取其与中心采样像素的法线和深度之间的差值, 把这些值存入一个四维向量中. 然后利用如下表达式计算缩放因子
$ {\sigma }_{i}=1-\frac{\sqrt{{{\displaystyle \sum }}_{k=1}^{n}{\left({x}_{ik}-{x}_{0k}\right)}^{2}}}{r}$ | (6) |
其中,
(3)将步骤(2)中所有样本的四维输入向量连接成神经网络的输入向量. 这表示单个像素点输入向量的维度为
标准的卷积操作会同时学习特征图的空间特征和通道特征, 而Kaiser等提出的深度可分离卷积[16]可以将卷积层的空间相关性和通道相关性解耦, 它将标准卷积拆解为逐深度卷积(depthwise convolution)与逐点卷积(pointwise convolution). 图8展示了由标准卷积拆解为逐深度卷积和逐点卷积的过程.
图8中
如图9所示, 本文设计的神经网络模型主要包含5层, 其中绿色模块对应逐深度卷积层, 黄色模块对应逐点卷积层, 灰色模块包含了3层全连接操作.
第n层的激活函数
$ {{{{\Phi }}_n}\left( {{x}} \right) = {\text{PReLU}}\left( {{{{W}}_n}{{x}} + {{{b}}_n}, {\alpha _n}, {\beta _n}} \right)} $ | (7) |
其中,
在训练过程中寻找最优解时, 利用均方回归误差作为该神经网络的代价函数(cost function). 假设
$ \begin{array}{*{20}{c}} {{{Cost}}\left( {x, y} \right) = \parallel y - {{{\Phi }}_4}\left( {{{{\Phi }}_3}\left( {{{{\Phi }}_2}\left( {{{{\Phi }}_1}\left( {{{{\Phi }}_0}\left( x \right)} \right)} \right)} \right)} \right){\parallel ^2}} \end{array} $ | (8) |
之后利用该代价函数, 通过随机梯度下降方法学习网络参数. 算法借助PyTorch框架进行训练, 利用自适应梯度下降算法Adam优化算法[18]完成神经网络参数的迭代更新, 为解决过拟合问题, 实际训练时使用概率为0.5的Dropout算法[19].
2.3 着色器渲染过程训练完成后, 需要在着色器中重现数据预处理和神经网络操作, 以供渲染时使用. 首先, 将最佳的训练模型中各项参数转化成着色器实时渲染时可调用的形式. 针对逐点卷积层和全连接层, 可以直接将它们的权重参数转化为着色器中的矩阵和向量. 但存储逐深度卷积层网络权重所需的总内存超过了着色器里变量要求的最大内存, 无法将其存储在着色器代码中. 观察发现, 逐深度卷积层的乘积操作可以描述为矩阵和输入
在渲染过程中利用延迟渲染技术得到几何缓存(G-Buffer), 之后将几何缓存作为输入送入片段着色器, 根据上述流程完成神经网络前馈的过程, 计算出采样片段的遮蔽值, 生成神经网络环境光遮蔽纹理.
3 实验及结果分析在搭建大尺度战场环境时, 给地球表面叠加卫星影像纹理是目前业内公认的提高三维地形真实度的方法, 但当卫星影像级别较低时, 地形表面的纹理细节就会十分模糊, 即使给三维地形添加了光照渲染效果, 也很难从低精度卫星影像纹理中得到很好的视觉效果. 实验将分为基于曲率的地貌特征线增强、基于深度可分离卷积的环境光遮蔽和整体效果对比3步来进行.
3.1 基于曲率的地貌特征线增强对比实验首先, 根据上述的平面曲率算法计算出地形曲率图, 之后将曲率图与卫星影像进行叠加, 效果对比如图11和图12所示.
对比图11和图12可以看出, 在只添加卫星影像的图中, 观察者只能了解到三维地形的大致走势, 但由于卫星影像在局部区域放大后模糊失真, 无法得到地貌细节处的纹理特征, 而根据平面曲率计算的曲率图与卫星影像进行叠加后可以看到山谷线和山脊线等地貌特征线得到了增强, 便于观察者对细节处的地貌特征进行分析, 同时带来了更好的视觉效果.
通过以上实验可以总结出, 将曲率图与卫星影像叠加, 能够突出显示地貌的骨架线, 帮助观察者更加清晰地分析大尺度战场细节处的地形走向, 通过这种方式可以增强大尺度战场场景中地貌晕渲效果, 同时也能明显感觉到平面曲率在三维地形细节纹理刻画上所拥有的巨大潜力.
3.2 基于深度可分离卷积的环境光遮蔽方法对比实验接下来考虑为大尺度战场地貌添加基于深度可分离卷积神经网络生成的环境光遮蔽, 在渲染管线中利用片段着色器完成神经网络的前馈过程, 将生成好的环境光遮蔽贴图和卫星影像融合. 图13展示了大尺度战场部分区域的环境光遮蔽图, 图14展示了不添加AO效果(图14(a))和添加AO效果(图14(b))的对比图.
受限于卫星影像本身的生成方式, 在拍摄时会存在大块的太阳光产生的自然阴影, 但这些阴影很模糊, 无法正确表达沟壑之间的相对关系, 且它们的存在会弱化环境光遮蔽的对比效果. 因此, 本文在另一个战场场景中常用的地貌纹理渲染方法——高程着色上也进行了对比试验, 如图15所示. 根据图14和图15可以明显地观察到, 开启环境光遮蔽后, 整个山体拥有了更多的阴影细节, 这些阴影细节对人们理解地貌细节处的相对位置关系有着重要作用.
为表明本方法具有渲染效率高、生成的环境光遮蔽贴图更接近真实情况的特点, 将本文方法与传统SSAO、基于SSAO改进的算法SSAO+[20]、水平环境光遮蔽(horizon-based ambient occlusion, HBAO)[21]和基于卷积神经网络的环境光遮蔽(neural network ambient occlusion, NNAO)在原始数据集上进行对比实验, 利用图像间的结构相似度(SSIM)和均方根误差(RMSE)以及渲染单帧所耗时间来对上述各个算法进行评估, 实验结果如表1所示. 另外, 针对不同采样数量, 将本文方法与上述算法在单帧渲染用时上作对比, 实验结果如表2所示(加粗部分均为本方法的指标).
针对上述两种图像相似度评价指标, 当RMSE值越小, SSIM值越接近1时, 表明该图像与原图的相似度越高. 因此由表1可以看出本文提出的方法相较于NNAO算法而言, 该方法在渲染效果相近的情况下, 单帧渲染时间得到了一定提升. 由表2可知, 随着采样数增加, 基于深度可分离卷积的渲染效率提升也越明显.
通过以上实验的对比分析, 从定性和定量两个角度清晰地展示了本方法可以为大尺度战场地形添加更加真实的环境光遮蔽效果. 生成的沟壑处的阴影能够带来更加丰富的视觉效果, 帮助观察者正确理解地貌之间的相对位置关系. 由此可见, 为大尺度战场地貌实时添加动态环境光遮蔽也对增强地貌晕渲效果起着至关重要的作用.
3.3 总体对比实验最后, 将本文提出的方法与传统地貌晕渲方法和陈星宇[6]提出的地貌晕渲增强方法进行实时渲染效果对比, 如图16, 图17所示. 图16为本文方法与传统地貌晕渲方法对比效果图, 对比图16(a)和图16(b)可知本文提出的方法能够有效增强大尺度战场场景中的地貌晕渲效果, 帮助指战员理解地形细节处纹理特征.
图17是本文与文献[6]中基于曲率的地貌晕渲增强方法的效果对比图. 现有的基于曲率的增强方法是对地形进行整体滤波, 然后对特征地形的高程值进行夸大处理. 这种方法可以在一定程度上增强地貌晕渲的渲染效果, 但针对大尺度战场场景主要有以下两个局限性. 一是修改了地形原本的高程值, 二是滤波会导致地貌细节处的渲染效果不佳(图17中框选的位置). 本文方法是通过计算曲率值, 自适应对比度增强后生成曲率图. 方法本身不会去修改地形原本的高程值, 在保留细节的同时, 加深了地貌特征线的锋锐程度. 另外, 因为自适应对比度方法的存在, 可以很方便地调整曲率图的图像对比度和山脉粗细程度. 环境光遮蔽的加入也可以进一步增强地貌细节处的视觉表现.
4 结束语在大尺度战场仿真中, 利用卫星影像数据叠加光照渲染的传统地貌晕渲模式难以体现地貌在细节处的纹理特征, 本文从突出地貌特征线和增加环境光遮蔽两步来对现有的地貌晕渲技术进行了扩展, 得到了更好的三维地形可视化效果. 首先, 通过分析数字高程数据的平面曲率属性, 提取地貌特征线生成曲率图, 对山谷和山脊进行效果增强. 之后, 提出了一种基于深度可分离卷积的环境光遮蔽方法, 训练神经网络去学习从像素邻域深度和法线等信息到该像素真实环境光遮蔽值的映射. 该方法相较于现有的基于卷积神经网络的环境光遮蔽方法有着更好的渲染效率. 最后, 将曲率图、环境光遮蔽与卫星影像融合实现实时地貌晕渲效果增强. 通过上述方法可以使观察者在宏观了解地貌整体走势的同时, 也能对地貌细节特征进行进一步分析.
[1] |
徐享忠, 郭齐胜. 军用仿真发展现状与展望. 装甲兵工程学院学报, 2019, 33(1): 75-86. |
[2] |
汤国安, 李发源, 刘学军. 数字高程模型教程. 第3版, 北京: 科学出版社, 2016.
|
[3] |
李少梅. 数字地貌晕渲理论与技术的研究[博士学位论文]. 郑州: 解放军信息工程大学, 2004.
|
[4] |
陈艳丽. 数字地貌晕渲技术的优化与实现[硕士学位论文]. 郑州: 解放军信息工程大学, 2009.
|
[5] |
姜文亮, 李霖, 应申. 计算机地貌晕渲效果增强方法研究. 武汉大学学报·信息科学版, 2007, 32(12): 1176-1179. |
[6] |
陈星宇. 小比例尺地貌晕渲图生成方法研究与实现[硕士学位论文]. 北京: 北京林业大学, 2014.
|
[7] |
郭明武, 黄宇. 基于规则格网DEM自动提取地性线的算法研究. 测绘学院学报, 2005, 22(3): 201-203. |
[8] |
周启鸣, 刘学军. 数字地形分析. 北京: 科学出版社, 2006.
|
[9] |
Minár J, Jenčo M, Evans IS, et al. Third-order geomorphometric variables (derivatives): Definition, computation and utilization of changes of curvatures. International Journal of Geographical Information Science, 2013, 27(7): 1381-1402. DOI:10.1080/13658816.2013.792113 |
[10] |
Wilson JP. Digital terrain modeling. Geomorphology, 2012, 137(1): 107-121. DOI:10.1016/j.geomorph.2011.03.012 |
[11] |
Pike RJ, Evans IS, Hengl T. Geomorphometry: A brief guide. In: Hengl T, Reuter HI, eds. Geomorphometry: Concepts, Software, Applications. Amsterdam: Elsevier, 2008. 3–30.
|
[12] |
Zevenbergen LW, Thorne CR. Quantitative analysis of land surface topography. Earth Surface Processes and Landforms, 1987, 12(1): 47-56. DOI:10.1002/ESP.3290120107 |
[13] |
Shi YH, Yang JF, Wu RB. Reducing illumination based on nonlinear gamma correction. Proceedings of the 2007 IEEE International Conference on Image Processing. San Antonio: IEEE, 2007. 529–532.
|
[14] |
Mittring M. Finding next gen: CryEngine 2. Proceedings of the ACM SIGGRAPH 2007 Courses. California: ACM, 2007. 97–121.
|
[15] |
Holden D, Saito J, Komura T. Neural network ambient occlusion. Proceedings of the 2016 SIGGRAPH Asia Technical Briefs. Macao: ACM, 2016. 9.
|
[16] |
Kaiser L, Gomez AN, Chollet F. Depthwise separable convolutions for neural machine translation. Proceedings of the 6th International Conference on Learning Represen-tations. Vancouver: ICLR, 2018.
|
[17] |
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
|
[18] |
Kingma DP, Ba J. Adam: A method for stochastic optimization. Proceedings of the 3rd International Conference on Learning Representations. San Diego: ICLR, 2015.
|
[19] |
Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958. |
[20] |
Filion D, McNaughton R. Effects & techniques. Proceedings of ACM SIGGRAPH 2008 Games. California: ACM, 2008. 133–164.
|
[21] |
Bavoil L, Sainz M, Dimitrov R. Image-space horizon-based ambient occlusion. Proceedings of ACM SIGGRAPH 2008 Talks. California: ACM, 2008. 22.
|