APP下载

基于图像的大规模数据集交互可视化

2017-11-07王弘堃

计算机研究与发展 2017年4期
关键词:视点绘制可视化

王弘堃 曹 轶 肖 丽

(北京应用物理与计算数学研究所 北京 100094)

(whk@iapcm.ac.cn)

随着超级计算机性能的不断提升,使得数值模拟专家们可以在数千上万CPU核上进行并行数值模拟,进而产生大规模时变数据集,1次数值模拟输出的数据就可以达到TB甚至PB量级,给数值模拟结果的分析带来巨大的挑战.

数值模拟结果的可视分析是科学数值模拟研究的重要辅助手段,如果能流畅交互进行则会更加有效,但交互性能却受到数据尺寸、分辨率和可视化算法复杂性等诸多因素的影响.大规模3D数据集的可视化是非常耗时的过程,绘制1幅多图耦合的图像,即使使用数百核进行并行可视化,也需要数十秒甚至几分钟的时间,无法快速进行交互可视分析和展示.

通常可视化过程分3个步骤:

1) 选择可视化方法,通常为多种方法的耦合,如网格、伪彩色和体绘制图的组合显示;

2) 各种参数的选择,缺省的参数很少能充分反映数据内在特征,对于体绘制方法,转换函数的定义尤为重要,好的转换函数定义可以很好地反映数据特征;

3) 交互地观察与分析,从不同的角度观察可视化结果图像,对于3D数据的分析是至关重要的.

前2个步骤需要反复地调整才能反映数据中隐藏的特征或现象,一旦确定就可以固化为针对该应用的可视分析模式,并反复使用.经过前2个步骤后,物理特征或现象已经视觉呈现,接下来就是反复观察发现知识与规律,有价值的结果以特定角度的图像或关键帧动画形式保存,用于以后的汇报、交流与回顾.但以图片或关键帧动画这样的方式进行展示,具有主观意志,观察的角度路径都是事先预订好的,不能够全面展示数据.

尽管近年来发展了很多加速的技术手段,但都是通过牺牲精度或完整性等技术获得交互性,由于缺乏高频细节等诸多缺陷,不利于模拟结果的准确分析.基于图像的实时绘制技术提供了一种提高交互性的解决思路,该项技术已经提出了很多年,主要应用于虚拟现实应用领域,其原理是:事先采集多个角度的图像,实时渲染时通过对预先生成的参考图像的插值绘制结果图像,基于图像绘制方法的绘制时间趋于恒定且快速,可以满足实时交互的要求.

为此,我们提出基于图像的实时可视化方法,在以大规模数据集包围盒中心为球心、包含全部数据的3D空间球面上近似均匀布点,并沿球心方向绘制可视化结果图像.在可视分析与展示时,基于这些预先生成的可视化图像,实时交互改变视点方向,以近似于任意角度观察分析数值模拟结果.这对于我们实时交互分析数据、小组或专家会诊的可视化再现以及科研成果展示都有重要意义,特别是我们可以在普通的计算机和高分辨率设备上实时分析和展示数值模拟结果.

1 相关工作

大规模数值模拟结果如此巨大,必须借助于可视化工具进行交互的可视分析.目前可视化方法基本成熟,常用的方法包括等值面[1]和体绘制[2]等,尽管这些方法提出已经20年了,但仍然是目前最常使用的可视化方法.随着计算规模的不断增加,这些传统的方法都遭遇了交互性能瓶颈,特别是计算密集的体绘制方法.于是产生了基于GPU的加速技术[3],但由于量化降低了精度,一批改进质量的算法[4]被提出来,但由于受显卡存储的限制,精度一直是GPU加速体绘制的短板.

数据约减技术也用来提高交互性能,包括空间域和时间域子采样、标量和向量量化、基于变换的压缩和特征抽取等.数据约减可以在模拟结果输出时完成,这为随后的数据传输、存储和处理降低了资源需求.子采样和量化对精度的损失较大,基于小波变换的压缩技术[5-6]牺牲高频细节保持低频特征,更为有效.而特征抽取技术,结果通常要比原始数据小很多,但需要额外的领域知识.

上述提高交互性能的方法,都是通过降低精度或完整性等方式获得交互性,并且仍然需要使用3D算法来可视化这些数据,计算性能受拓扑结构和复杂性限制,难以在交互性和准确性之间达到平衡.近年来,基于图像的绘制方法提供了另一种超大数据集交互可视化的解决方案,其思想来源于虚拟现实领域中的虚拟视点绘制技术.该技术大致可以分为基于模型的绘制(MBR)和基于图像的绘制(IBR)两种.MBR技术所需的计算量和场景复杂度息息相关,因此不适合处理场景复杂度较高的自然景象;而基于图像的绘制技术则避免了复杂的3D建模过程,直接根据参考视点图像生成虚拟视点图像,其绘制的速度较快且与场景的复杂度无关,生成的图像真实感较强,因此提出了多种IBR技术[7-8]并得到了广泛应用.超大规模数据集可视化类似于MBR方法,复杂的网格和3D可视化算法带来大量密集计算,为此一系列基于图像的体数据绘制技术[9-13]应运而生,这些方法采用一种紧凑的、便于传输和存储的表示格式,可以将传统的3D数据探查操作延迟作用在更合适的中间表示上,以提供交互的探究能力.这些操作不需要访问原始的3D数据、不需要重新绘制和高端的图形硬件,基于事先生成的图像集,支持3D数据的有效探查,包括旋转、放大和平移空间域探查、修改颜色和不透明度映射的转换函数域探查等能力.

基于图像的绘制方法,其中间表示数据远小于原始的3D数据集,也属于数据约减技术的范畴,不可避免要引入误差.但因其提供了与数据复杂度无关的交互性能,作为一种预览技术是非常合适的,可以通过这种快速的交互方法选择合适的绘制参数和视点.

我们的方法吸收了基于图像绘制技术快速、资源占用少的优点,基于领域或数值模拟程序的可视分析模式,通过并行可视化直接从3D时变数据集创建精确绘制的密集图像集,进而可以在普通设备上基于事先创建的图像集进行精确的可视分析和展示.

2 图像集生成与管理

图像集是实现交互展示的基础,下面详细介绍图像集的生成和管理方法.

2.1 视点定义

通常虚拟视点绘制技术的参考图像获取不太方便,需要谨慎选取参考图像的视点,许多技术研究都专注于如何减少参考图像数目以及如何提高合成视点图像的精度减少失真.与此相反,可视化图像集的获取相对要容易很多,我们基于JaVis通用可视化平台[14]可以方便地自动生成图像集.与基于图像的实景浏览系统要求不同,基于参考图像插值生成新图像的方法容易引入误差,所以基于参考图像合成任意视点图像的方法不必要也不适用于可视化结果绘制.

为了更全面显示可视化结果图像,将观察视点近似均匀布点在包围3D数据集的球面上,亦即在经纬度网格上均匀布点,相邻经度线或纬度线的张角为k度.采用此布点方案便于实现,视点与图像的映射关系简单,而且也符合我们的日常习惯.

假设3D原始数据集包围盒的中心坐标为(x0,y0,z0),布点半径为R,每个观察点对应一对参数(α,β),可以理解为经纬度坐标,则对应的视点位置坐标(x,y,z)的计算公式为

(1)

其中,0≤α≤35,-8≤β≤8,k=10°.

通常我们选取k=10°,这样经度方向36个点,从0°~350°,纬度方向19个点,去除上下2个极点共17个点,总点数为36×17=612,再补齐2个极点共计614个视点.为了更精细地展示可视化的结果,可以选取更小的k值,后面的分析表明所需增加的存储也是有限的.

2.2 流程建立与参数准备

目前许多成熟的可视化方法用于数值模拟结果的可视化显示,也提出了一系列数据抽取、变换和挖掘方法辅助对数值模拟结果的分析处理.其中可视化参数的设置至关重要,合适的参数设置可以很好地展示数据的内在特征.比如我们使用体绘制方法可视化3D人体核磁共振数据时,转换函数的设置非常重要,颜色和不透明度的适当选择,可以很好地展现皮肤、骨骼和神经等组织.

实际上,可视化参数的设置具有领域特性,比如人体不同组织器官的密度都具有相似的区间范围,在其他领域的数值模拟结果中也存在类似的特点.对于一个领域专用数值模拟程序,用于可视分析的方法、流程和参数有基本定式,我们将这种定式固化为可视分析模式并反复使用,可视分析模式的使用可以简化可视分析的操作过程,提高数值模拟的分析效率.

在我们的方法中,并没有提供参数域的交互手段,而是基于领域的可视分析模式生成图像集.这些模式是通过与数值模拟专家共同讨论反复斟酌形成的分析定式,其中确定了使用什么变量、采用什么可视化方法以及使用什么样的可视化参数等,形成了耦合若干可视化方法的可视化绘制模式.基于这些模式生成的可视化结果图像可以较全面展示模拟结果的内在特性,提供后续空间域的交互展示与分析,并在后续的数值模拟结果分析时反复使用.

图1所示为2种典型的可视分析模式图.其中图1(a)为内爆阻滞阶段的流体力学不稳定性机理数值模拟可视化结果图,其中耦合了AMR网格、伪彩色和等值抽取可视化方法,并进行了切割筛选操作.其中物质密度用灰度图表示,灰度的深浅代表不同的物质密度值,灰色波纹区域表现的是流体不稳定性中特有的物质混合现象;温度采用彩色颜色图表示,蓝色代表低温区域,红色代表高温区域;在变量空间上采用等值抽取技术,获取感兴趣的数据变化特征,充分刻画在不稳定过程中产生的钉和泡.

图1(b)为飞机整机瞬态平面电磁波照射下的电磁散射特性数值模拟可视化结果图,其中耦合了飞机表面网格和体绘制可视化方法.表面网格展示了飞机的精细结构,体绘制展示了飞机在复杂电磁环境下飞机的电磁散射特性和电磁环境效应.

Fig. 1 Typical visual analysis patterns图1 典型可视分析模式图

2.3 图像生成与映射

我们实现的软件系统是与JaVis可视化平台配套的大规模数据集可视分析与展示工具,在JaVis平台中执行Python脚本,自动创建图像集.

在脚本中,选择10°作为布点单位,为M个时间步的时变数据集生成图像集,图像的分辨率可根据需要指定.图像文件名view_xxx和视点(α,β)间建立如下的映射关系:

(2)

按上述映射关系生成的图像集,文件名则从view_0~view_max,其中max是图像集长度减1.

图2是针对1次数值模拟的典型组织方式,其中原始的时变数据集包含N个时间步的数据.生成的图像集包含K种可视分析模式,每种模式包含614个视点.

Fig. 2 Structure of image sets图2 图像集组织结构

基于按上述结构组织的图像集,就可以进行交互的分析与展示,第3节将详细介绍如何进行交互分析和展示.

3 交互展示

基于按照图2的组织方式创建的图像集,就可以使用我们的系统交互地分析数值模拟结果数据.用户指定可视分析模式目录,就可以显示该分析模式的结果图像,进行如下的交互分析过程.

3.1 缩 放

在示例的脚本中,我们将生成图像的分辨率设置为1 000×1 000,为了更清晰地显示可视化的细节,我们可以设置更高的分辨率,只是更高的图像分辨率,其创建图像集的时间也会成倍增加.

我们可以对当前的可视化图像进行缩放,图像整体放大后更多的细节将得以显示.当图像的尺寸超过窗口的尺寸时会出现滚动条,拖动滚动条可以观察不同区域的细节.而通常可视化软件在放大时就只能看见局部,观察其他区域时只能基于重绘制实现,不仅交互时间无法保证,也不能保证观察视点的一致性.

3.2 旋 转

用户可以交互地进行旋转观察,通过鼠标在窗口中按下的位置或者键盘的方向键控制旋转的方向,每按下1次,旋转1个角度单位,亦即10°.实际上,我们就是改变了视点参数(α,β),依据式(2)指定的映射关系快速显示对应图像.

在经度方向,旋转到上下极点后,就不能继续沿此方向旋转,原因是在生成图像的时候我们需要指定视点的向上向量,也就是指定了相机的拍照方向,当越过极点后,我们得到的图像将是反转的图像,会造成视觉不连续.在纬度方向则可以沿左或右的方向任意旋转.

提供视点记忆功能,可以人工选择若干最佳视点记录下来,使用者可以仅在最佳视点间切换,以便更有效地展示分析结果.

旋转操作和缩放操作可以叠加,放大后旋转将保持放大比率不变.

通常我们在交流或汇报工作的时候,由于数据量太大无法现场进行交互可视化,只能使用若干固定角度的2D图片展示数值模拟的分析结果,这很难充分展示3D的空间结构,而使用本工具可以方便地交互展示大规模复杂模拟的分析结果.

3.3 时变动画

同样,缩放和旋转操作也可以叠加进行,在动画的过程中随时缩放和改变观察角度.

通常,我们在展示完整的数值模拟结果时,都是绘制关键帧动画,观察的角度都是事先确定的,持续显示的时间也是固定的,因此带有主观倾向,专家们若期望切换到其他角度观察时由于并未创建相应角度的图像而无法办到.基于本系统的动画,则可以随时切换观察角度观察动态过程,可以充分展示数值模拟的全过程.

4 性能分析

如图2中的电磁散射特性模拟,1次数值模拟大约模拟上万步,通常每隔数百步会保存1次,因此几十个时间步的时变数据集的存储总量需要数百TB,其中每个时刻的原始数据就包含300亿结构网格单元,不仅耗费存储,而且可视分析模式的1帧画面并行处理也需要数秒到数十秒的时间.如表1所示为天河1A上的测试结果,1 500个核上的绘制时间也需要5 s,所以基于大规模原始数据的交互可视化是无法实现的.

Table 1 Results of Parallel Scalable Tests on Electromagnetic Scattering Simulation

在我们的方法中,每幅图片若采用4 096×4 096的分辨率,采用png格式保存图像,每张图像约需要500 KB存储(png格式最好质量每幅450 KB,jpeg格式最好质量每幅1 070 KB,bmp格式每幅49 MB),1个时刻的图像集共计约300 MB,如果考虑1次数值模拟包含50个时间步、4种可视分析模式,则整体需要60 GB的存储空间,与原始数据集相比减少数个量级.

在图像生成时推荐采用2 000×2 000或4 000×4 000的图像分辨率生成图像集,这样生成的图像细节更丰富,在分析或展示图像时既能观察整体,也可以放大图像观察局部细节,且缩放图像的时候不会产生明显的走样现象.

采用基于图像的绘制方法,绘制时间与原始数据的复杂度无关,只与图像的分辨率有关.实测表明,在普通的计算机上可以达到每秒数帧的交互效率,非常适合于大规模数值模拟结果的交互分析与展示.

5 讨 论

我们的方法采用均匀密集的方式布点,并没有考虑到数据的特征,难免会错过最佳视点.我们将在后续的工作中基于领域知识研究特征提取技术,基于特征自适应分布视点,以便能更好地分析与展示数值模拟结果.

对于每个数值模拟程序,使用60 GB的存储空间用于结果展示仍然觉得过大.以可视分析的角度提供600多视点是必要的,但对于交流与展示需求而言,通常仅需若干最佳视点就可以满足要求.因此,我们提供了一个简化版本,每个时间步仅保存若干特殊视点的图像,视点切换仅在这些视点间循环,如果仅保存6~7个视点,图像集的存储空间就可以下降到GB以下,非常适合交流使用.除了视点数目减少外,其他功能皆保持不变.而若干最佳视点可以在完整版的可视分析过程中人工交互指定,基于指定的最佳视点构造简化图像集.

我们针对电磁散射和流体不稳定性等领域的常用数值模拟程序,已经总结了若干可视分析模式,可供生成图像集时使用.对于新的数值模拟程序,还需要与专家共同凝练模式.现在积累的可视分析模式还局限于特定的数值模拟程序,需要在这些模式的基础上加以凝练,形成领域可视分析模式,以支撑在线可视分析以及基于图像可视分析的图像集生成.

最佳视点的选择目前还需要专家利用经验交互指定.目前,也有一些方法用于转换函数或视点的自动选择,比如使用信息熵的方法来选择最佳视点[15-18]等.在后续的工作中我们将利用信息熵等方法,研究自动视点选取和可视化参数选择技术.

为了更好地展示3D可视分析的结果,也可以考虑提供立体显示功能,JaVis可视化平台已经提供了立体可视化结果输出功能,为立体显示奠定了基础.

我们的方法本质上是基于视点的切换实现实时绘制,由于图像集是有限集,旋转的角度是不连续的,浏览过程中会有跳跃现象.我们考察了文献[9-13]中所描述的,利用相邻图像生成当前视点图像的插值方法,其中都进行了不同程度的量化处理,不可避免会引入误差,这可能会引入伪特征进而影响对模拟结果的分析,为此我们没有采用插值方法,绘制的结果图像精确度完全取决于图像生成系统的绘制精度,可以通过减小生成图像集的旋转单位增加旋转的连续性,而存储成本的增加则在可控范围之内.

6 结 论

本文提出了一种基于图像集实现大规模数值模拟结果交互可视化的方法,并开发了相应的软件系统,基于该系统可以实时交互地缩放和从不同角度观察分析时变数据集的可视化结果.基于我们的JaVis可视化平台,可以方便地自动生成图像集,图像集的存储远小于原始的时变数据集.本系统对大规模数值模拟结果的分析、汇报和展示提供了有效支撑.

猜你喜欢

视点绘制可视化
Art on coffee cups
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
放学后
视点
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点
在转变中绘制新蓝图