面向时变体数据的特征可视化方法
2022-04-24刘力
刘力
苏州大学计算机科学与技术学院,苏州 215301
0 引 言
自然界中的大部分现象例如燃烧、洋流、飓风和地震等本质上都是在空间上随时间流逝不断发展变化的物理或化学过程,对各种物理和化学过程的动力学研究在很大程度上推动着自然科学的进步。这些物理和化学过程可以表述为含有时间变量的微分方程。求解这样的微分方程,会产生含有时间变量的数据场,这些数据场称为3维时变数据或者时变体数据(time-varying volume data)。随着科学计算技术、计算机仿真技术以及现代观测技术的飞速发展,科学家们能够以前所未有的精度对自然现象进行仿真或者观测,但同时也面临分析海量时变体数据的难题。时变体数据往往具有体积大(百万甚至上亿个体元)、时间长(成百上千个时间片)和变量数目多的特点。如何有效地显示时变体数据并挖掘数据中的关键信息越来越成为许多科学研究工作面临的一项挑战,为针对时变体数据的可视化研究提供了强劲动力,并且提出了许多针对时变体数据可视化的方法。这些方法大体可以分为时间独立算法和时间依赖算法两类。时间独立算法单独处理时变体数据的每一个时间片并通常以动画的形式演示数据的时间片序列。通常包括降低数据的存储容量从而使数据更容易管理(例如时域亚采样、数据压缩和提取轮廓)、为直接体绘制预先设定传递函数以及基于硬件加速的体绘制。时间独立算法的优点是通用性比较强,往往不依赖于数据和专家知识(Ma,2003),然而这些算法通常无法突出数据中对科学研究重要的信息也没有考虑数据的时变和运动特性。与时间独立算法不同,时间依赖算法 (也称基于特征的可视化或特征可视化算法)着眼于数据的特征,并充分利用这些特征在相邻时间片之间运动和相互影响的连贯性跟踪它们的变化规律。在这里,特征(feature)具有两方面的含义,一方面可以表示原始数据集中能够提取出的有意义的部分,如形状、结构、变化和现象等;另一方面表示原始数据集中用户感兴趣的某些子集。特征可视化用基于图像处理和数学形态学的方法从数据的标量场或者矢量场中提取不定形区域,按一定匹配准则在相邻时间步之间建立特征对应关系,在不丢失重要信息的前提下减少了可视化映射的数据量,使用户忽略掉大部分冗余的、不重要或不感兴趣的内容,将注意力集中在数据集中特征的运动上,从而成为研究时空变化过程的最有效的可视化技术。
对时变体数据进行特征可视化一直是数据可视化领域的研究热点,研究的主要方向涉及以下方面:1)从数据中提取与量化特征(Hazarika等,2018;Kraus等,2020);2)从时间和空间中跟踪特征(Saikia和Weinkauf,2017;Schnorr等,2019);3)对特征的形状结构、变量、变化和运动过程进行有效的可视化(Hsu等,2009;Liu等,2020);4)对具体实例进行可视化以解决实际的科学问题(Joshi等,2009;Liu等,2021)。
本文提出一种面向时变体数据的特征可视化方法,用于探索时变体数据中感兴趣区域的特点与变化,方法流程如图1所示。输入的时变体数据首先经过一个包含3个步骤(特征提取、特征跟踪和运动检测)的数据处理转换为特征元数据,然后通过一个数据浏览器将特征元数据转换为一系列的多边形网格,最后利用网络浏览器自带的WebGL (Web Graphics Library)应用程序编程接口和计算机中的GPU(graphics processing unit)将可视化结果呈现在网络浏览器中。本文的贡献主要体现在以下3个方面:1)通过将特征提取、特征跟踪、运动检测和基于WebGL技术的可视交互技术置于同一个方法框架之中,提供一种从时间域、空间域和参数空间观察、探索时变体数据的一站式解决方案;2)在可视化中突出时变体数据的动力学特性,从而更好地理解数据中感兴趣事件的发生和演化;3)开发的交互式可视化工具在网络浏览器上运行,可以适应任何操作系统并且不需要安装客户端,从而降低了使用门槛,有助于促进不同科研之间的合作。
图1 本文方法的流程图Fig.1 A flowchart of the proposed method
1 相关研究
本文的研究主要涉及数据的特征可视化和3维数据可视化工具两个方面。
时变体数据的特征可视化通常包含4个方面的内容:1)根据领域知识或者研究需要定义数据集的特征;2)从数据中提取与量化特征;3)逐时间片地跟踪提取的特征;4)对特征进行等值面绘制或者直接体绘制(Zabusky和Silver,1992)。针对不同的数据集,特征的定义是不同的,比如标量场中用标量的大小而矢量场中用拓扑结构表达特征,医学可视化中更注重不同器官、组织结构之间的区别。有效而清晰地表达出特征是特征提取和跟踪的基础。对特征进行定义的方法包括传统的设定一个固定的阈值或者取值范围将标量数据场二值化(Samtaney等,1994)、利用数据密度的一阶导数和二阶方向导数(Ma等,1996;Schnorr等,2019)、通过逻辑表达式选取满足条件的网格点(Van Walsum等,1996;El-Shehaly等,2015;Kraus等,2020)、用数据的高斯混合分布(Dutta和Shen,2016;Guo等,2016;Hazarika等,2018)和利用机器学习的方法对专家标注的数据进行学习(Athawale等,2016;Bernard等,2018;Kumpf等,2018)。根据特征的定义,特征提取通过遍历时变体数据的一个时间片,将符合特征定义的部分有效提取出来并作为单独的个体,并对提取的特征进行量化分析。特征跟踪是对提取出的特征在不同时间片上进行配对,找出特征的变化规律,揭示特征随时间演变过程产生、消失和变化等一系列现象。当前主流的特征跟踪算法主要包括局部匹配方法和基于全局优化的方法。局部匹配方法包括体积重叠(volume overlap)法和相似属性标准(similar attribute criteria)法两种。体积重叠法利用特征在相邻时间片的体积重叠,定义一个损失函数实现最佳匹配(Silver 和Wang,1997;Ji等,2003)。相似属性标准法通过计算一组特征的属性集合(aggregate attributes),例如质心、体积、方向和形状衡量相邻时刻特征的相似性(Reinders 等,2001;Schnorr等,2019)。全局优化法对相邻的两个时间片或者数据中所有时间片中的特征及组合进行分析,通过距离函数,例如测地线距离(Earth mover’s distance)(Ji和Shen,2006)、时间运动曲线(time activity curve)的距离场(Lee和Shen,2009)和合并树(merger tree)(Saikia和Weinkauf,2017)找出最佳的特征匹配。
在3维数据可视化工具领域,当前主流的商用可视化工具,例如ParaView、VolView、VisIt和EnSight都能提供对时变体数据的交互式可视化。这些软件通常采用时间独立算法并将数据的时间片序列以动画的形式显示,然后用时间轴滑动条或者翻页的形式逐时间片浏览(Liu等,2020)。对于每一个时间片,这些可视化工具通常提供如下可视交互方式:平移、缩小/放大、选择数据中的变量、过滤、切割和改变颜色方案。虽然当前的商用可视化工具具有通用性和不受数据定义的限制等优点,但往往无法反映数据特定区域的情况以及在不同时间片之间的联系,且都需要从客户端安装并且对软件运行环境(例如操作系统和OpenGL的版本)有一定的要求。
2 数据处理
根据数据特征可视化技术、时变体数据的时空特性以及观察数据中感兴趣事件的发生和演化的研究需要,本文方法通过特征提取、特征跟踪和运动检测对时变体数据进行处理,采用一个可视化工具包(Uisualization Toolkit,VTK)支持下的C/C++程序实现,如图1所示。
2.1 特征分割
特征分割算法遍历一个数据帧中的每个体元,根据用户设定的阈值将数据的所有体元分为前景和背景两类,对于含有多个变量的数据,阈值由用户选择的一个主要变量的标量场确定。利用区域生长法将连贯的前景体元从数据中提取出来作为特征。对每个特征的几何特征(体积、质心和边界等)都计算和保存。为了降低可视映射的数据量,本文采用移动立方体(marching cube)算法(Lorensen和Cline,1987)计算特征的等值面。对每个数据帧,特征分割算法生成两个文件:特征点坐标元数据和特征等值面元数据。特征点坐标元数据记录了每个特征点的坐标值以及变量(一个或者多个)在这个点上的值;而特征等值面元数据记录等值面上的点坐标、连接点的多边形和每个特征的几何特征。
2.2 特征跟踪
利用特征提取得到的特征点坐标元数据,依次比较相邻时间片中的特征,并用一种基于体积重叠的方法以确定各自的关联关系(Silver和Wang,1997)。对相邻时刻i和i+ 1中有体积重叠的任意两个特征A和B,其匹配程度R为
依次计算不同特征组合的R值,并找到使R值最大化的特征对。根据特征匹配的映射关系(例如一对一、一对多、多对一等),一个特征在演变过程中可能经历5个状态:诞生、延续、合并、分裂和消失。特征跟踪的结果以特征演化历史的形式记录在一个特征关联表格中。
2.3 运动检测
尽管特征跟踪技术在很大程度上对时变体数据的分析提供了便利,但是从海量的特征中观察某一个特征,追踪这个特征在多个时间片上的演化,并且进一步地从跟踪结果中总结出某一类型的运动仍然是非常困难的,尤其是这些运动过程往往持续多个时间片而且在时空上重叠(Ullah等,2019)。为了解决这个难题,采用佩特里网(Petri net)表示对一个运动过程的描述(Ozer等,2014)。一个佩特里网由运动状态、状态转移、连接以及代表特征的令牌构成。运动检测算法先用令牌表示第1个时间片中的特征,然后根据特征跟踪得到的特征关联表格在每个时间片将令牌在不同状态之间转移,当令牌到达佩特里网的最终状态时,一个运动过程结束,令牌注销。根据检测的结果,将每个运动过程涉及的特征从各个数据帧中分离出来单独存储为一个“运动过程元数据”。
图2展示了一个佩特里网用于模拟和检测数据中的“特征先合并再分裂”运动。图中P1、P2、P3分别表示诞生、合并、结束3种运动状态,T1、T2、T3表示运动状态之间的转移条件,带颜色的实心小圆点是数据中特征的令牌,带箭头的线条指示令牌移动的方向。图2(b)是一个数据帧及其包含的特征,当前活跃的特征以不透明的颜色表示,与图2(a)中的令牌相对应。数据帧中没有参与运动的特征以透明颜色表示。
图2 一个佩特里网用于模拟和检测数据中的“特征先合并再分裂”运动Fig.2 A Petri net is used to model the event “features merge then split”((a)the Petri net;(b)a data frame and the included features)
3 交互式可视化的设计
针对时变体数据的交换可视化,一些研究对常见的任务进行了分类和归纳。Wehrend和Lewis(1990)通过对300多个可视化的分析,归纳出定位、识别、分辨、分类、聚类、排序、比较、关联和相关等一系列通用可视交互任务。Robertson(1990)按任务的范围将数据的可视交互任务分为点状任务、局部任务和全局任务。Haimes和Darmofal(1991)根据这3个范围进一步将用户的可视交互任务分为探究一个具体位置、在数据中定位特征以及扫描整个数据。根据这些任务的分类和时变体数据特征可视化的特点,本文确立了以下6个可视交互任务:1)可视化单个目标特征的几何与物理性质;2)可视化一个数据帧中所有的特征;3)可视化一个特征的运动演化过程;4)多层次的可视化设计并能通过可视交互在不同视图之间切换;5)提供数据中多个特征运动演化过程的概览视图(overview)用于归纳数据的动力学特性;6)允许用户设定某些条件过滤或者选择可视化中的特征。针对这些可视交互任务,提出了3种特征可视化,即数据帧特征可视化、单个运动过程特征可视化和空间多运动过程特征可视化。
为实现上述可视化,开发了一个在网络浏览器上运行的时变体数据浏览器(time-varying volume data viewer,TVDV)。TVDV使用JavaScript语言以及基于JavaScript语言的Three.js库函数开发而成。在TVDV的用户界面上,本文提出的可视化方法以单独的网页显示。网页包含一个控制面板用于操作文件输入输出、变量选择和基本信息查看等。用户可以通过鼠标或者键盘放大/缩小、平移、旋转和选择可视化视图中的物体。TVDV可以适应任何操作系统并且不需要安装客户端,降低了使用门槛。
4 实验数据
研究使用4组时变体数据演示提出的方法,各组实验数据的基本信息如表1所示。
表1 实验数据的基本信息Table 1 Basic information of the experimental datasets
1)数据集1:湍流漩涡。这组数据是对连续湍流漩涡结构的拟谱仿真(pseudo-spectral simulation),包含100个反映漩涡强度的数据帧(维度128×128×128)(Silver和Wang,1997),具有周期性的运动和不规则的边界。待观察的运动是特征先合并、延续若干时间,然后分裂。
2)数据集2:龙卷风Isabel。这组数据是对龙卷风Isabel的计算机仿真(http://vis.computer.org/vis2004contest/),包含48个仿真间隔1 h的数据帧(维度500 × 500 × 100)。每个数据帧以浮点数的形式存储并包含13个时变变量,例如沉淀混合比(precipitation mixing ratio)、气压、温度、风速在3个坐标轴方向的分量。待观察的运动是龙卷风的增强过程。
4)数据集4:海底热液柱。这组数据包含479个位于胡安德福卡洋中脊(Juan de Fuca ridge)的海底热液柱超声扫描文件(Bemis等,2015)。在维度161 × 121 × 181的每个超声扫描文件(数据帧)中,数据值的大小反映了热液柱中金属硫化物和温度变化的背向散射强度(backscatter intensity)。待观察的运动是热液柱在定期涨落的洋流以及其他偶发扰动推动下的周期性摆动(Liu等,2021)。
5 可视化结果
5.1 数据帧特征可视化
通过数据帧特征可视化,可以观察一个数据帧内所有特征的分布、大小和形状,以及从中选择一个特征并对其进一步探索。通过界面左上角的控制面板可以将一个数据帧的特征等值面元数据导入。这个数据帧中所有的特征以列表的形式排列在网页右侧,并在网页中间的可视化视图中显示。对于单变量数据,由于唯一的变量已经在特征提取阶段二值化,所以特征的等值面以单一颜色渲染;而对于多变量数据,特征的等值面以颜色图表达变量在特征表面不同位置的大小和变化。
图3展示的是湍流漩涡(数据集1)中一个数据帧特征可视化,所有特征都以透明的浅黄色渲染,连同一个与数据帧维度一致的边界框显示在网页中央。选中的一个特征(该数据帧中第14个特征)以不透明的红色渲染,该特征同时在网页右边的特征列表中选中,该特征的基本信息(坐标、体积和长度等)显示在控制面板中。
图3 湍流漩涡(数据集1)中一个数据帧特征可视化Fig.3 A feature visualization of data frame in dataset 1
图4是海洋仿真(数据集3)中一个数据帧的特征可视化,所有的特征均显示在图4(a)中的边界框中。选中的一个特征(该数据帧中第24个特征)以不透明的红色渲染。在图4(b)中,选中的特征以Dawnrgb颜色图显示温度在表面的变化情况,网页上端是一个表示变化范围的颜色条。用户还可以在控制面板中选择其他变量并改变可视化的结果。
图4 海洋仿真(数据集3)数据帧特征可视化Fig.4 A feature visualization of data frame in dataset 3((a)all features of a data frame;(b)a feature is selected and visualized individually to show the variance of temperature on the surface)
5.2 单个运动过程特征可视化
通过单个运动过程特征可视化,可以观察一个特征在时间和空间上演化所经历的时间片、从演化过程中选择一个时间片以及进一步探索特征在所选择时间片中的状况。这个可视化功能与数据帧特征可视化类似,通过控制面板将一个运动过程元数据导入,这个特征在运动过程中的所有时间片以列表的形式排列在网页右侧,用于强调特征的运动方向以及运动的连续性。为了避免视觉堵塞,各个时间片之间的距离可以按用户要求放大一个倍数。
图5展示了龙卷风Isabel(数据集2)中一个龙卷风增强过程的特征可视化。龙卷风在运动过程中的气压变化通过一个颜色图以表意可视化形式进行可视化编码,时间片上方的方向线用于强调龙卷风的运动方向以及运动的连续性。在这个过程中,龙卷风在风眼处会出现风速增大和气压减小现象。用户可以观察气压、风速和降雨3个变量在龙卷风表面变化的情况。图5(a)用Parula颜色图对龙卷风在运动过程中的气压变化进行可视化编码。可视化顶部的颜色图表达了气压在当前运动过程中的变化范围。图5(b)是从图5(a)选中的一个时间片(红色)的多边形线框图,可以看出,气压从龙卷风的外部到内部逐渐减小,从而在风眼周围形成了一个低压区(图中蓝色区域)。此外,可以发现在可视化中风眼处的气压会随着龙卷风的增强而降低(表现为颜色加深)。
图5 龙卷风Isabel(数据集2)中的单个运动过程特征可视化Fig.5 A feature visualization of an individual event in dataset 2 ((a)a feature visualization of an individual event;(b)a hurricane feature is selected and visualized individually to show the variance of air pressure on the surface)
图6 海洋仿真(数据集3)中的一个海洋涡流在生命周期内的运动过程的特征可视化Fig.6 A feature visualization of the motion of an ocean eddy within its life cycle in ocean simulation (dataset 3)((a)a feature visualization of an individual event;(b)an eddy feature is selected and visualized individually to show the variance of temperature on the surface)
5.3 空间中多运动过程特征可视化
空间中多运动过程特征可视化用于归纳数据中的多个或者全部运动过程,尤其适用于地理空间数据。在可视化中,运动过程的元数据加载到一个3D地形图上帮助观察数据中各个特征的运动位置、大小和相互作用等。图7的可视化归纳了海洋仿真(数据集3)数据中2005—2007年所有延续时间超过30天的海洋涡流运动过程,每个涡流特征以骨架视图(每个涡流以一个长度等于其深度的圆柱体表示)的形式加载到美国东海岸以及西北大西洋的3D地形图中。可视化中紫色与黄色分别表示气旋(cy-clonic)和反气旋(anti-cyclonic)的涡流。在网页右上角的控制面板中,可以用两个滑动条通过改变涡流的深度(或长度)和持续时间改变可视化中显示的圆柱体(也即涡流)数量。可以看出,气旋涡流更多出现在海湾的南方而反气旋涡流大部分聚集在北方。此外,可以发现大部分涡流的深度小于2 000 m(海底深度最大值为5 500 m)。
图7 归纳了数据集3中延续时间超过30天的海洋涡流运动过程的可视化Fig.7 A visualization that summarizes all the eddy activity processes that last at least 30 days in dataset 3
图8使用图7的3D地形图,并将图7中的圆柱替换为涡流等值面以提供更多的信息,例如涡流的移动距离以及不同涡流过程之间的关系。在每个涡流运动过程的最后一个时间片上放置一个红色小球,用于指示涡流运动的方向和标识该过程的结束。如图8(a)所示,气旋涡流(紫色)倾向于向西移动,而反气旋涡流(黄色)则可能向各个方向移动。用户可以从这个可视化中选择一个运动过程并进入 “单个运动过程的特征可视化”。图8(b)是从图8(a)选中的两个海洋涡流运动过程。
图8 将图7中的圆柱替换为涡流等值面的可视化Fig.8 A visualization created by replacing the cylinders in Fig.7 by authentic eddy features((a)multiple eddy activity processes from dataset 3 are placed in the background of ocean;(b)two selected eddy activity processes)
图9展示的是海底热液柱(数据集4)中海底热液柱的周期性摆动可视化。在每一个周期内,海底热液柱都要穿过中垂线(笛卡儿坐标系的Z轴)两次。图9(a)将一个周期内所有时间片中的海底热液柱都加载到了海底的背景之中。在图9(b)中,这些时间片进一步以表意可视化的方式显示,以更好地表达海底热液柱在每个时间片的弯曲角度以及在各个时间片之间的相对距离。可以看出,海底热液柱的周期性摆动并不是在一个假设的理想平面上。此外,热液柱的摆动有往左倾的趋势,这预示了洋流的运动方向。
图9 海底热液柱周期性摆动的可视化Fig.9 The visualization of a periodic bending event of the hydrothermal plume((a)the plume is placed in the background of seabed;(b)an illustrative visualization of (a))
6 计算性能评估
对本文方法的计算性能以及时间成本进行评估,分别衡量各组实验数据在特征提取(包括数据读取、预处理以及其他相关开销)、特征跟踪、运动检测和3个特征可视化任务的消耗时间。每个可视化任务所需时间等于从数据导入到可视化渲染完成之间的间隔。数据处理和可视化实验在一台戴尔XPS台式机上运行,软硬件配置为Ubuntu 20.04 LTS操作系统、火狐网络浏览器,英特尔Core i7-4770 CPU(3.40 GHz×8)、16 GB DDR内存、Nvidia GTX 760显卡(2 GB显存)、3 TB机械硬盘。各组实验数据在不同部分的时间消耗如表2所示,其中Vis1代表数据帧特征可视化;Vis2代表单个运动过程特征可视化;Vis3代表空间中多运动过程特征可视化。
从表2可见,不同数据在实验中的消耗时间与数据的物理大小与持续时间呈正相关。可视化任务的时间消耗都在10 s以内,最多的是海洋仿真数据(数据集3)在“空间中多运动过程特征可视化”耗时9 s。数据处理的时间消耗较多,4组数据的耗时从1 h到7 h不等。
表2 4组数据实验时间分解Table 2 Breakdown of the elapsed time on the four datasets
7 结 论
时变体数据可视化是一种研究自然现象演化过程的有效方法。对数据中感兴趣区域的运动进行追踪与可视化并减少可视化映射的数据量是该领域的一个关键问题。针对此关键问题,本文提出一种基于特征可视化的可视交互方法,用于探索时变体数据中感兴趣区域的特点与变化。通过将特征提取、特征跟踪、运动检测和本文提出的3种特征可视化方法(数据帧特征可视化、单个运动过程特征可视化和空间多运动过程特征可视化)置于同一个框架之中,提供一种从时间域、空间域和参数空间观察、探索时变体数据的一站式解决方案,并突出时变体数据的动力学特性。本文方法的可用性和有效性在4组不同时变体数据的可视化应用上得到了验证。
尽管本文方法实现了设计目标和预想的结果,但至少还存在两个不足:1)在数据处理部分,基于体积重叠的特征追踪法虽然高效,但是对快速移动或者体积细小的特征的跟踪效果较差;2)在特征可视化部分缺乏对数据中某种特性(比如某个变量)的归纳总结。对于不足1),考虑将其他的特征跟踪算法(比如基于滤波器预测)与基于体积重叠的方法相结合,提高对“快、细、小”特征的跟踪效果。对于不足2),考虑从统计模型的角度探索更多种类的方法(例如高斯混合模型)用于归纳和总结数据。最后,计划采用客户端—服务器的架构将数据处理的任务交给数据的存储端—远程服务器,从而免除在客户端的数据下载和繁重的数据计算任务。
致 谢感谢美国罗格斯大学海洋与沿海系提供的数据和其他支持;感谢美国罗格斯大学Deborah Silver教授、Karen Bemis博士、Enrique Curchitser教授和康杜鹃教授对本文提出的宝贵意见。