科学计算可视化

                           科学计算可视化

link:http://www.cgn.net.cn/wsdj/z7.htm

7.1  什么是科学计算可视化

    科学计算可视化 ( 简称可视化,英文是 Visualization in Scientific Computing ,简称 ViSC) 是计算机图形学的一个重要研究方向,是图形科学的新领域。

    Visualization ”一词 , 来自英文的“ Visual , 原意是视觉的、形象的,中文译成“图示化”可能更为贴切。事实上,将任何抽象的事务、过程变成图形图像的表示都可以称为可视化。与计算机有关的如可视化界面( Windows ),可视化编程( Visual C++ )等。但作为学科术语,“可视化”一词正式出现于 1987 2 月美国国家科学基金会( National Science Foundation ,简称 NSF )召开的一个专题研讨会上。研讨会后发表的正式报告给出了科学计算可视化的定义、覆盖的领域以及近期和长期研究的方向。这标志着“科学计算可视化”作为一个学科在国际范围内已经成熟。

    科学计算可视化的基本含义是运用计算机图形学或者一般图形学的原理和方法,将科学与工程计算等产生的大规模数据转换为图形、图象,以直观的形式表示出来。它涉及计算机图形学、图像处理、计算机视觉、计算机辅助设计及图形用户界面等多个研究领域,已成为当前计算机图形学研究的重要方向。

    研究表明,人类获得的关于外在世界的信息 80% 以上是通过视觉通道获得的。经过漫长的进化,人类视觉信息处理具有高速、大容量、并行工作的特点。常言所说“百闻不如一见”,“一图胜过千言”,就是这个意思。这些特点早已为祖先们所认识和应用。 古长城上的烽火台,显示了先民的智慧,可以将重要的信息迅速大范围传递。作为千百年来文明载体的“图书”,“图”是在“书”前的!“河图洛书”的传说,显示出“图”在我们文明的发端及以后的发展中所起的作用。今天,设计图是借助纸张的媒介表达创意,工程图是现代工业生产的依据。可视化依然继续着借助形象化方法表达人类意图的传统。我们将看到,可视化技术产生的图是一种全新的形式。

    可视化技术的出现有着深刻的历史背景,这就是社会的巨大需求和技术水平的进步。可视化技术由来已久,早在 20 世纪初期,人们已经将图表和统计等原始的可视化技术应用于科学数据分析当中。随着人类社会的飞速发展,人们在科学研究和生产实践中,越来越多地获得大量科学数据。计算机的诞生和普及应用,使得人类社会进入了一个信息时代,它给人类社会提供了全新的科学计算和数据获取手段,使人类社会进入了一个 `` 数据的海洋 '' ,而人们进行科学研究的目的不仅仅是为了获取数据,而是要通过分析数据去探索自然规律。传统的纸、笔可视化技术与数据分析手段的低效性, 已严重制约着科学技术的进步。随着计算机软、硬件性能的不断提高和计算机图形学的蓬勃发展,促使人们将这一新技术应用于科学数据的可视化中。

    借助航天航空、遥感、加速器、 CT (计算机断层扫描)、 MRI (核磁共振)、计算机模拟(如核爆炸)等手段,人类获取数据的能力飞速提高,每天产生的数据已经不是大量,而是称为海量。一项统计表明,人类每天需要处理的数据量在 80 年代一般是在百万字节数量级, 90 年代已经增加 1000 倍以上,而且增加的趋势还在加强。面对堆积如山的数据,及时解读,获取有用的信息成为人类面临的巨大挑战。传统的数字或字符形式的处理显然无法满足需要。可视化技术,在这个意义上就成为了“科学技术之眼”, 它是科学发现和工程设计的工具!

    以上我们更多地谈到的是数据( Data ),是数据的可视化( Data Visualization )。习惯上,人们将许多种类的数据也广义地称为信息,或者知识。对此,学者们有许多争论和不同的定义。一般认为,数据( Data )、信息( Information )和知识( knowledge )还是有区别的。为明确起见,下面的介绍限定于狭义的数据的可视化,即将抽象的数字或者字符表示转换成图形图像的技术(信息可视化和知识可视化,被认为是数据可视化的进一步发展,本文暂不涉及)。此外,计算、模拟或者遥感等得到的数据总是在一定的时间或空间范围内获得的。与在其他学科中类似,数据在一定空间内的分布,也称为数据场( Data Field ),比如二维数据场,三维数据场,或者更高维数的数据场。自然地,三维数据场更容易引起人们的兴趣。本文主要介绍数据场可视化,特别是与三维数据场有关的可视化技术。应当注意的是,数据场的分布在大多数情况下是离散的。这是因为数据场的分布规律暂时是未知的,可视化的任务正是协助人们找出这些规律;或者由于客观情况的限制,我们只能在有限的离散的点上获得有限精度和数量的数据。另一方面,由于现代通用的计算机是数字计算机,即使是存在连续的模型也需要将其离散化为数字才能够由计算机处理。因此,科学计算可视化的研究限定为将离散的数字化的数据转变为图形图像的表示,由此决定了它的一系列技术特征。

7.1.1  科学计算可视化的意义

    早期,由于计算机软、硬件技术水平的限制, 科学计算只能以批处理方式进行,而不能进行交互处理,对于大量的输出数据,只能用人工方式处理,或者用绘图仪输出二维图形。这种处理方式不仅效率低下,而且丢失了大量信息。而近年来,随着计算机应用的普及和科学技术的迅速发展,来自超级计算机、卫星遥感、 CT 、天气预报以及地震勘测等领域的数据量越来越大,但由于没有有效的处理和观察理解手段,科学家们和工程师们惊呼 `` 我们可以做的仅仅是将数据收集和存放起来 '' 。再者,随着科学的发展,对传统的实验设备和实验精度的要求也越来越高,这直接导致了传统实验方法的实验费用的持续增长。另一方面,由于计算机技术的高速发展, 使得计算成本不断下降,计算精度和速度不断提高。这使得对复杂问题的数值模拟成为一种更直接、更有效的方法。而三维大规模数值模拟可产生上百兆、上千兆的大量数据,我们已无法用传统的方法来理解大量科学数据中包含的复杂现象和规律。因此, 科学计算可视化技术已经成为科学研究中的必不可少的手段。它是科学工作者以及工程技术人员洞察数据内含信息,确定内在关系与规律的有效方法,使科学家和工程师以直观形象的方式揭示理解抽象科学数据中包含的客观规律,从而摆脱直接面对大量无法理解的抽象数据的被动局面。

    实现科学计算可视化技术的意义重大,具体来讲有以下几点 :

    1 )大大加快数据的处理速度, 使目前每日每时都在产生的庞大数据得到有效的利用。

    2 )实现人与人和人与机之间的图象通讯,而不是目前的文字或数字通讯,从而使人们观察到传统方法难以观察到的现象和规律。

    3 )使科学家不仅被动地得到计算结果,而且知道在计算过程中发生了什么现象,并可改变参数,观察其影响,对计算过程实现引导和控制。

    4 )可提供在计算机辅助下的可视化技术手段, 从而为在网络分布环境下的计算机辅助协同设计打下了基础。

    总之,科学计算可视化技术的发展将使科学研究工具和环境进一步现代化,从而使科学研究的面貌发生根本性的变化,具有极为重要的意义。

7.1.2  科学计算可视化的过程

    在科学研究领域,研究的主要目的是理解自然的本质。科学家要达到这个目的,要经过从观察自然现象到模拟自然想象并分析模拟结果的过程。在分析实验结果的过程中,可视化是一个十分重要的辅助手段。可视化的过程可进一步细化为以下四个步骤:

    1 )过滤:对原始数据进行预处理,可以转换数据形式、滤掉噪声、抽取感兴趣的数据等;

    2 )映射:将过滤得到的数据映射为几何元素,常见的几何元素有:点、线、面图元、三维体图元和更高维的特征图标等;

    3 )绘制:几何元素绘制,得到结果图象;

    4 )反馈:显示图象,并分析得到的可视结果;

    可视化的上述四个步骤是一个周而复始的循环迭代的过程。由于研究人员并不知道原始数据集中那些部分对分析更重要,得靠实践探索,因此整个分析过程是一个反复求精的过程。

7.1.3  科学计算可视化研究的是什么

    可视化的研究主要分为两大部分,可视化工具的研究和可视化应用的研究。科学计算可视化研究的重点是有关可视化参考模型的内涵,即可视化过程的组成内容,其中包括:

    1 )数据预处理:可视化的数据来源十分丰富,数据格式也是多种多样的,这一步将各种各样的数据转换为可视化工具可以处理的标准格式。

    2 )映射:映射就是运用各种各样的可视化方法对数据进行处理,提取出数据中包含的各种科学规律、现象等,将这些抽象的、甚至是不可见的规律和现象用一些可见的物体点、线、面等表示出来的。

    3 )绘制:将映射的点、线、面等用各种方法绘制到屏幕上,在绘制中有些物体可能是透明的,有些物体可能被其他物体遮挡。

    4 )显示:显示模块除了完成可视信息的显示,还要接受用户的反馈输入信息,其研究的重点是三维可视化人机交互技术。

7.1.4  科学计算可视化处理的数据

科学计算可视化技术处理的对象是科学数据,这些科学数据的来源是多种多样的,数据中包含的科学规律和现象有很多。这些科学数据都是离散的采样数据,它们有很多属性,主要有:来源、维数、定义域的维数、组织形式、时间特性及数据量等等。其中数据的时间特性表示数据是否与时间相关,是否表示随时间变化的物理现象;数据的维数表示标量数据、向量数据及高维的张量数据等;数据定义域的维数分为一维、二维、三维数据等;数据的组织形式分为有网格数据和无网格散乱数据,有网格数据的组织形式也不一样,图 1-1 给出了一些二维网格的组织形式,这些二维网格的处理由易到难。维数( Dimension )是一个数学概念 , 可以认为是对空间的几何广延性的一种度量。传统经典的几何学对空间维数的定义都是整数。粗略地说,如果一个物体的运动轨迹可以用一个坐标参数描述,它的轨迹就是一维的。例如,火车的运动,给定了起始点,再给定它到起始点的距离,就可以唯一确定它在轨道上的位置。不难理解,一个蚂蚁在地球仪上运动时,须同时给定经度和纬度才能唯一确定它的位置。这时它的运动轨迹就是二维的。一般认为,我们生活在三维空间,是说一般需要三个独立参数才能确定我们的位置。对应于数学中的元素,点是零维的,线(包括曲线)是一维的,曲面是二维的,体是三维的等等。 ( 关于分数维数的几何 , 叫做分形几何。 )

1-1  数据场网格分类

7.1.5  科学计算可视化的应用

    从可视化技术的诞生之日起,便受到了各行各业的欢迎。在过去的十年里,可视化的应用范围已从最初的科研领域走到了生产领域,到今天它几乎涉及到了所有能应用计算机的部门。在这里,我们将简要列举一些应用可视化技术的例子。

    1 )医学

    在医学上由核磁共振、 CT 扫描等设备产生的人体器官密度场,对于不同的组织,表现出不同的密度值。通过在多个方向多个剖面来表现病变区域,或者重建为具有不同细节程度的三维真实图像,使医生对病灶部位的大小、位置,不仅有定性的认识,而且有定量的认识,尤其是对大脑等复杂区域,数据场可视化所带来的效果尤其明显。借助虚拟现实的手段,医生可以对病变的部位进行确诊,制定出有效的手术方案,并在手术之前模拟手术。在临床上也可应用在放射诊断、制定放射治疗计划等。

    2 )生物、分子学

    在对蛋白质和 DNA 分子等复杂结构进行研究时,可以利用电镜、光镜等辅助设备对其剖片进行分析、采样获得剖片信息,利用这些剖片构成的体数据可以对其原形态进行定性和定量分析,因此可视化是研究分子结构必不可少的工具。

    3 )航天工业

    飞行器高速穿过大气层时周围气流的运动情况和飞行器表面的物理特性的变化,在现有的流场可视化技术下,可以非常直观的展现出来。尤其是对飞行器的不稳定现象、超音速流的研究,这是计算流体力学里的新课题,借助可视化技术,许多意想不到的困难都可以迎刃而解了。

    4 )工业无损探伤

    在工业无损探伤中,可以用超声波探测,在不破坏部件的情况下,不仅可以清楚地认识其内部结构,而且对发生变异的区域也可以准确地探出。显然,能够及时检查出有可能发生断裂等具有较大破坏性的隐患是有极大现实意义的

    5 )人类学和考古学

    在考古过程中找到古人类化石的若干碎片,由此重构出古人类的骨架结构。传统的方法是按照物理模型,用粘土来拼凑而成。现在,利用基于几何建模的可视化系统,人们可以从化石碎片的数字化数据完整地恢复三维人体结构,因而向研究人员提供了既可以作基于计算机几何模型的定量研究,又可以实施物理上可塑的化石重现过程。

    6 )地质勘探

    利用模拟人工地震的方法,可以获得地质岩层信息。通过数据特征的抽取和匹配,可以确定地下的矿藏资源。用可视化方法对模拟地震数据的解释,可以大大地提高地质勘探的效率和安全性。

    总之,科学计算可视化的发展,将使科学研究工具和环境进一步现代化,从而使科学研究的面貌发生根本性的变化,具有极为重要的意义。

7.2  科学计算可视化的常用方法

7.2.1  二维平面数据场的可视化方法

    二维数据场是科学计算可视化处理的最简单的一类数据场,二维数据场是在某一平面上的一些离散数据,可看成定义在某一平面上的一维标量函数 F=F(x,y) 。二维数据场可视化的方法主要有颜色映射法、等值线、立体图法和层次分割法等,这些方法的原理都比较简单。

7.2.1.1  颜色映射方法

    可视化系统中,常用颜色表示数据场中数据值的大小,即在数据与颜色之间建立一个映射关系,把不同的数据映射为不同的颜色。在绘制图形时,根据场中的数据确定点或图元的颜色,从而以颜色来反映数据场中的数据及其变化。

可视化系统处理的数据一般为离散网格数据,网格之间的数据采用插值的方法计算。可视化系统的绘制模块一般不直接插值计算网格间的数据,而是利用计算机硬件提供的功能直接对颜色的 RGB 基色值进行插值计算,这样有助于提高绘制速度。但也由此引起了误差。由于大部分颜色映射模型都采用非线性的映射,对颜色的线性插值实际上是对数据的非线性插值,从而造成误差,导致完全错误的颜色。实践中可采用颜色表方式来解决这一问题。由于颜色表索引与数据间是完全线性的映射关系,因而不会引起插值误差。

2-1  神舟号宇宙飞船周围空气分布密度

7.2.1.2  等值线方法

    所谓等值线是由所有这样的点 (xi, yi) 定义,其中 F(xi, yi)=Fi(Fi 为一给定值 ) ,将这些点按一定顺序连接组成了函数 F(x,y) 的值为 Fi 的等值线。常见的等值线如等高线,等温线,是以一定的高度,温度作为度量的。等值线的抽取算法可分为两类,网格序列法和网格无关法。网格序列法的基本思想是按网格单元的排列顺序,逐个处理每一个单元,寻找每一单元内相应的等值线段。处理完所有单元后,自然就生成了该网格中的等值线分布。网格无关法则通过给定等值线的起始点,利用起始点附近的局部几何性质,计算等值线的下一点;然后利用计算出的新点,重复计算下一点,直至达到边界区域或回到原始起始点。网格序列法按网格排列顺序逐个处理单元,这种遍历的方法效率不高。网格无关法则是针对这一情况提出的一种高效的算法。下面就举例说明计算等值线的方法。

    假设网格单元都是矩形,其等值线生成算法的主要步骤如下:

1)  逐个计算每一个网格单元与等值线的交点;

2)  连接该单元内等值线的交点,生成该单元内的等值线线段;

3)  由一系列单元内的等值线线段构成该网格中的等值线;

    网格单元与等值线的交点计算主要计算各单元边与等值线的交点,可采用顶点判定,边上插值的方法计算。设等值线的值为 Ft ,若 Fij(Ft ,则记顶点为 ‘-’ ;若 Fij>Ft ,则记顶点为 ‘+’ 。若单元的四个顶点全为 ‘+’ ‘-’ ,则网格单元内无等值线;否则对两个顶点分别为 ’+’ ‘-‘ 的单元边插值计算等值线的交点,并在单元内连线,连线情况见图 2-2

2-2  单元内等值线连接情况

    在图 2-2(d) 的情况下,实际上存在着两种连接方式的二义情况,不可能判断哪种连接情况是正确的。为了避免这种二义性情况,可采用单元剖分法,算法的基本思想是利用对角线将矩形单元分成四个三角形单元,求出中心点的函数值,等值线的抽取直接在三角单元中进行。三角单元中至多只包含一条等值线,从而避免了二义性问题,但处理单元数目增加了四倍。

2-3  剖分法连接情况

7.2.1.3  立体图法和层次分割法

    立体图法就是以一个立体图形来显示平面数据场,因为将平面数据场的数据转换为高度,从整体上可以看成三维图形。使用立体图方法显示,可以用多种方法拟合数据场,如:三角面片、曲面逼近等,曲面逼近会产生更好的效果。但由于数据场的密度较大,完全可以使用三角面片模型来显示整个数据场。在显示中,可以采用法向量插值来消除 Mach 效应,使用多光源来增强立体效果。

    层次划分法是立体图法的扩展,首先用户定义层次范围及各层的颜色。在绘制每个三角面片时,若三角面片的最大值、最小值都在一个层内,则按该层的颜色绘制;否则要将三角面片进一步剖分为 m 个多边形,每个多边形处于一层,并以各层颜色绘制。这样各层之间就有一个明显的层次分割线。在实际应用中可用于显示等值线、等高线等。

    这两种方法特别适合于对地形数据场进行可视化处理。

2-4  三维中国地形图

7.2.2   三维空间数据场方法

    三维空间数据场与二维数据场不同,它是对三维空间中的采样,表示了一个三维空间内部的详细信息,这类数据场最典型的医学 CT 采样数据,每个 CT 的照片实际上是一个二维数据场,照片的灰度表示了某一片物体的密度。将这些照片按一定的顺序排列起来,就组成了一个三维数据场。此外,用大规模计算机计算的航天飞机周围的密度分布也是一个三维数据场的例子。

7.2.2.1  抽取表面信息的可视化方法

    1 )断层间的构造等值面

    CT 采样数据场这样的三维数据,可以看成是由一些二维数据场按一定顺序排列组成的,各断层数据之间有很大的相关性。断层数据广泛存在于医学、生物、地质、无损探伤等应用领域,其各断层间相互平行,每一断层与实体的交线就是实体在该断层的轮廓线。如果先在各层之间找出物体的边界线,再利用断层之间的连贯性,就可以从一系列断面上的轮廓线中推导出相应物体的空间几何结构。

    在一个断层中找出物体的轮廓线可以利用上面介绍的等值线方法。找到所有轮廓线后,第二步是在各个相邻的轮廓线之间构造出物体的表面,然后进行绘制。物体的表面可以用三角面片拼接出来,拼接的方法如图 2-5 所示,就是在相邻的两层上找出三个点,其中两个点在同一层,另一个点在另一层。在拼接过程中,一次加入一条边,就可以组成一个三角面片,但加入一条边有两种选择,例如图中 P1Q2 P2Q1 ,如果选择不恰当,则拼接出的表面比较乱,也不光滑。最简单的选择方法可以采用贪心方法,就是每次选择一条较短的边加入,这样可以保证构造出的表面比较光滑。

2-5  三角面片拼接物体表面

    2 )等值面生成

    构造物体的表面也可以采用等值面的方法。等值面可以看成是等值线的三维扩展。等值面的构造也就是等值线构造方法的三维扩展,最典型的就是 Marching Cube 方法。二维数据场的基本单元是矩形,在三维空间的基本单元是一个小立方体。如果我们找出每个小立方体中的等值面,这些等值面也就构成了整个物体的表面。

一个小立方体上有八个顶点,如过立方体一条边上的顶点分别大于和小于等值面的值,则该边上必然与等值面相交。首先对立方体的八个顶点进行分类:如顶点数据值大于等于等值面值,则记为“ + ”,否则记为“ - ”。由于每个体素有八个顶点,每个顶点有两个状态,共有 256 种组合,考虑到顶点状态旋转与旋转对称,可归结为 15 种情况,见图 2-6

2-6  立方体中等值面的模式

2-7  表面绘制方法绘制的动物骨骼表面

7.2.2.2  直接体绘制方法

    在自然环境和计算模型中,许多对象和现象只能用三维数据场表示,对象体不是用几何曲面和曲线表示的三维实体,而是以体素为基本造型单元。例如人体里面就十分复杂,如果仅仅用几何表示各器官的表面,不可能完整显示人体的内部信息。体绘制 (Volume Rendering) 的目的就在于提供一种基于体素的绘制技术,它有别于传统的基于面的绘制技术,能显示出对象体的丰富的内部细节。体绘制直接研究光线穿过三维体数据场时的变化,得到最终的绘制结果,所以体绘制也被称为直接体绘制。体绘制与传统面绘制的区别见图 2-8 。从结果图象质量上讲,体绘制优于面绘制,但从交互性能和算法效率上讲,至少在目前的硬件平台上,面绘制优于体绘制,这是因为面绘制是采用的传统的图形学绘制算法,现有的交互算法和图形硬件和图形加速技术能充分发挥作用。

2-8  两种绘制方法的比较

    体绘制方法提供二维结果图象的生成方法。根据不同的绘制次序,体绘制方法主要分为两类:以图象空间为序的体绘制方法和以物体空间为序的体绘制方法。

以图象空间为序的体绘制方法是从屏幕上每一象素点出发,根据视点方向,发射出一条射线,这条射线穿过三维数据场,沿射线进行等距采样,求出采样点处物体的不透明度和颜色值。可以按由前到后或由后到前的两种顺序,将一条光线上的采样点的颜色和不透明度进行合成,从而计算出屏幕上该象素点的颜色值。这种方法是从反方向模拟光线穿过物体的过程。

以物体空间为序的体绘制方法首先根据每个数据点的函数值计算该点的颜色及不透明度,然后根据给定的视平面和观察方向,将每个数据点投影到图象平面上,并按数据点在空间中的先后遮挡顺序,合成计算不透明度和颜色,最后得到图象。

    1 )光线投射

    光线投射方法从图象平面的每个象素向数据场投射光线,在光线上采样或沿线段积分计算光亮度和不透明度,按采样顺序进行图象合成,得到结果图象。光线投射方法是一种以图象空间为序的方法。它从反方向模拟光线穿过物体的全过程,并最终计算这条光线到达穿过数据场后的颜色。

2-9   光线投射绘制流程

    光线投射算法主要有如下的过程 ( 绘制流程见图 2-9)

    1 )数据预处理:包括采样网格的调整,数据对比增强等;

    2 )数据分类和光照效应计算:分别建立场值到颜色值和不透明度之间的映射,并采用中心差分方法计算法向量,进行光照效应的计算;

    3 )光线投射:从屏幕上的每个象素。沿观察方向投射光线,穿过数据场,在每一根光线上采样,插值计算出颜色值和不透明度;

    4 )合成与绘制:在每一根光线上,将每一个采样点的颜色值按前后顺序合成,得到象素的颜色值,显示象素。

    2 )投影方法

    投影体绘制方法其出发点是利用场中区域和体的相关性。他将体元向图象平面投影,计算各体元对象素的贡献,按体元的前后遮挡次序合成各体元的效果。这种方法实质上是计算数据场中的各个体元发出的光线到达图象平面上对图象上各个象素的影响,并最终计算出图象。投影体绘制的主要步骤如下:

    1 )体元遍历:确定数据场中体元的前后遮挡次序,以从前到后或从后到前的顺序遍历体元;

    2 )体元分解:每个体元分解为一组子体元,要求子体元的投影轮廓在观察平面上互不重叠;

    3 )投影与合成:子体元向图象平面投影,得投影多边形;计算投影多边形顶点的值,以扫描转换的方式计算出投影多边形对所覆盖象素的光亮度贡献,并与象素原值合成;

显示:显示象素。

2-10  体绘制生成的图象

7.2.3   向量场可视化方法

    所谓标量( Scalar ),是指只有大小而没有方向的量,比如长度、质量等;向量( Vector ),也叫矢量,是既有大小也有方向的量,如力、速度等。

向量场同标量场一样,也分为二维、三维等,但向量场中每个采样点的数据不是温度、压力、密度等标量,而是速度等向量。向量场可视化技术的难点是很难找出在三维空间中表示向量的方法。

7.2.3.1  简化为标量

    这种方法不是直接对向量进行可视化处理,而是将其转换为能够反映其物理本质的标量数据,然后对标量数据可视化。例如,向量的大小,单位体积中粒子的密度、等。这些标量的可视化可采用常规的可视化技术:等值面抽取、体绘制等等。

7.2.3.2  箭头表示方法

     向量的显示要求同时表示出向量的大小和方向信息 最直接的方法是在向量场中有限的离散点上显示带有箭头的有向线段 , 用线段的长度表示向量的大小 , 用箭头表示其方向。这种方法适用于 2D 向量场。对于二维平面上的三维向量 , 也可用箭头来表示 , 箭头可指向显示表面或由显示表面指出。也可用这种方法表示定义在体中的 3D 向量 , 还可采用光照处理或深度显示以增加真实感。可用向量的颜色表示另一标量信息或另一个变量。但在三维空间中绘制向量,往往给人以杂乱无章的感觉,且难于分辨向量的方向。

2-11   三维向量场中的箭头表示

7.2.3.3  流线、迹线、脉线、时线

    向量场中,线上所有质点的瞬时速度都与之相切的线称为场线,速度向量场中的场线称为流线 (Stream line) ,在磁场中就称为磁力线。

    迹线 (path line) 是一特定流体质点随时间改变位置而形成的轨迹,就是一个粒子的运动轨迹。

脉线 (streakline) 是在某一时间间隔内相继经过空间一固定点的流体质点依次串连起来而成的曲线。在观察流场流动时,可以从流场的某一特定点不断向流体内输入颜色液体(或烟雾),这些液体(或烟雾)质点在流场中构成的曲线即为脉线。对定常流场,脉线就是迹线,同时也就是流线 。但对非定常场,三者各不相同。迹线是一个粒子的运动轨迹。脉线是一系列连续释放的粒子组成的线,烟筒中冒出的烟雾是典型的脉线的例子。

    时线 (time line) 是由一系列相邻流体质点在不同瞬时组成的曲线。某一时刻沿一垂直于流动方向的直线同时释放许多小粒子,这些粒子在不同时刻组成的线就是时线。

2-12   三维空间中的流线

7.2.3.4  流带和流面

    流带的概念很容易地由流线扩展而来。如果两条相邻的流线用一系列小多边形连接起来,则成为流带。从一条线段 ( 称为靶线 ) 或一个曲线段 (Rake) 上多个点对应的流线,经过插值计算可以得到一个流面,这实际上是靶线随流体运动而形成的面,如果曲线是一个圆,则流面是一个流管 (Stream tube) 。流面可用一般的面绘制技术来绘制,加上颜色与光照效果的流面能够提供很好的空间立体感,便于考察流场的空间结构。

2-13   三维空间中的流面

7.2.3.5  特征可视化

    特征可视化近年来越来越受到研究者们的重视。特征可视化不是直接对原始数据进行显示处理, 而是从原始数据中抽取某些有意义的模式、结构、或对象。可以选择数据场中感兴趣的部分作进一步的考察或在显示过程中作一些特殊的处理。在保证物理量精度的前提下,对场中的主要特征作简化显示或用一些图形符号来表示物理量,这种方式提供了场数据的抽象表示,而不是直接对原始数据进行绘制,这种表示方法能够表示数据场中较高层次的信息,而使用户摒弃那些冗余的不感兴趣的数据,这种方法可以减少复杂度,使在交互式可视化过程中免于管理庞大的数据集。

    特征可视化方法是与数据场的具体内容直接有关的方法,因而,这些方法与具体的应用问题有关,在将来的可视化技术研究中,必须开发出更一般的,使用户能够根据不同的应用领域和用途来表示特征,或选择特征数据的方法。

7.2.4  基于动画的可视化方法

    向量场可视化技术应用中,动态可视化技术是一种十分重要的可视化方法。在三维稳定场的可视化技术中,三维箭头、流线等的显示,显得过于拥挤、杂乱无章,难于辨别其方向,不能从中获取更多的有效信息,而利用动态可视化技术,则可以增强人们对三维空间中向量场的结构及物理现象运动变化规律的认识和把握能力。对于与时间有关的非稳定数据场,如果仅仅单纯地运用静态数据场可视化方法,对每个时间步上的采样数据场进行可视化处理,则人为地割裂了时间序列数据场之间的联系,孤立地研究每个静止的数据场难于把握整个物理现象的变化规律,甚至会掩盖一些细小变化、但却非常重要的物理现象。

    主要有两类动态可视化方法,一类是针对稳定数据场的动态可视化方法,另一类是针对与时间有关的非稳定数据场的动态可视化技术。

7.2.4.1  稳定数据场的动态可视化技术

    稳定数据场的动态可视化方法,主要是利用纹理映射、粒子等技术,用按一定规律不断刷新变化的图象代替原来静止的可视化图象。基于纹理映射的动态可视化方法,是在显示三维箭头向量时,不单纯以线段来显示箭头的方向,而是在绘制箭头时将纹理映射到箭头线段上,并不断有规律地刷新改变箭头线段上的纹理,从而产生一种动态变化的效果。基于粒子的动态流线可视化则是首先构造流场中的流线,以沿流线运动的粒子代替流线显示输出,粒子的流动效果,能较好的表现数据场中的涡流等复杂的流场结构。

7.2.4.2  非稳定时间序列数据场的动态可视化技术

    在计算流体力学等问题的研究中,往往需要对非稳定物理现象的变化规律进行研究,其计算或测量得到的数据是一系列在时间上进行采样的数据场,每个数据场之间的时间采样间隔是 (t ,共有上百甚至上千个时间步的采样数据场。其数据总量有上百兆甚至上千兆,难于对其进行实时动态的可视化处理。

    一种方法是采用动画制作的方法,即先用静态可视化方法,采用相同的观察和绘制参数进行绘制,生成每个时间序列数据场的可视化图象,并将图象按时间上的顺序编号存储起来,最后将其按顺序录制在录象带上,或制作成 MPEG 文件,然后进行播放。

    上述后处理方式的主要缺点是数据的处理周期长,且图象文件转录到录象带时,需要逐帧录制设备,代价昂贵。另一种方法是基于粒子的向量场动态可视化方法,可在计算机上实时显示动态的可视化结果。时间序列数据场难于进行实时动态可视化处理的瓶颈主要有两个,一是时间序列数据场的数据总量庞大,可达上百兆甚至上千兆,这样大的数据不可能一次调入内存中进行处理,将数据存放在硬盘上,又受硬盘传输速率的限制,不可能实时的调入内存,也就不能进行实时动态的可视化;再者,某些可视化技术还没有达到实时显示的技术要求。但 SGI 工作站却提供了较强的图形处理能力,能够完成一些可视化方法 ( 如基于粒子的可视化方法 ) 的实时动态绘制,为动态可视化算法提供了必要的条件。基于粒子的实时动态可视化方法的基本思想是避开上述动态可视化技术的瓶颈,采用先处理后实时播放显示的手段来完成动态可视化。

    基于粒子的实时动态可视化方法借鉴了流体力学实验中向流场中添加染料或烟雾的实验观察方法的思想,算法初始阶段由用户交互地在数据场中设置粒子源,并设置各粒子源的属性,然后启动算法进行粒子跟踪,在跟踪过程中将粒子的位置和属性等信息记录下来,最后根据算法记录的信息,在计算机上实时绘制显示。

    用户在设置粒子源时,同时要设置粒子源的属性,其属性信息包括:

    1 )释放粒子的方式:粒子源释放粒子可以采用连续释放方式,即不断地释放新的粒子,也可以仅仅在开始时释放一个粒子;

    2 )粒子颜色设定方式:从一个粒子源中释放的所有粒子可以是同一种颜色,也可以是不同的颜色,颜色是根据粒子释放的时间来设定,同一时间释放的所有粒子具有相同的颜色;

    3 )时间属性:包括粒子源释放粒子的起始时间、终止时间和连续释放粒子的时间间隔等。

    设置了粒子源以及粒子源的属性后,可以用粒子跟踪算法,进行粒子跟踪。在跟踪过程中,要不断的记录粒子的位置和属性,并以图元的形式存储在内存中,以备后续播放处理,其中粒子的属性包括:

    1 )粒子的位置;

    2 )粒子的释放源;

    3 )粒子的颜色;

    4 )粒子的时间属性;

    在跟踪过程中,既有粒子的产生 ( 粒子源释放粒子 ) ,也有粒子的消失,其中包括粒子运动到数据场以外,或粒子的寿命超出设定的阈值。粒子的时间属性记录了粒子在数据场中存在的时间长短,即粒子的寿命,为避免显示图象中粒子过多,引起视觉上的混乱,用户可以设定粒子的寿命,使超过一定寿命的粒子消失。

    在粒子跟踪时,用户适当设定粒子源的属性和粒子跟踪过程中记录粒子位置和属性的方式,就可以产生迹线 (path line) 、脉线 (streakline) 和时线 (time line) 等不同的可视化效果。若用户设定粒子源只释放一个粒子,在跟踪过程中记录下这个粒子的运动轨迹,则生成的一条迹线;若设置粒子源连续不断地释放粒子,且同一个粒子源释放的粒子的颜色相同,则在某一时刻 t ,所有颜色相同的粒子组成的是一条脉线;若设置沿一条线段放置的所有粒子源都连续不断地释放粒子,所有粒子源在同一时刻释放的粒子颜色相同,不同时刻释放的粒子具有不同的颜色,则在某一时刻 t ,所有颜色相同的粒子组成了一条时线。

2-14   动态显示的脉线

在播放时,按照每一时刻记录的粒子的位置和属性信息,按时间顺序依次刷新输出即可。上述基于粒子的非稳定数据场动态可视化技术已在 DVS 系统中实现,图 2-12 是在计算机上实时播放的动态脉线。

7.3  科学计算可视化的应用举例

7.3.1  X 刀计划系统

    放射治疗是在不进行手术的情况下,利用射线的能量杀死人体内的肿瘤。 X 射线加速器是其中的一种常见的放射治疗设备,它通过 X 射线进行放射治疗。医生首先根据病人的 CT 扫描切片图象,诊断出肿瘤和重要器官的位置、大小等,根据病人的实际情况设定放疗计划参数 ( 包括:射线的方向、靶心的位置、拉弧角度等 ) ,参数的设置主要是靠医生的经验,治疗时难免有误差,因此为了病人的安全往往采用低剂量、多次重复的治疗方式,每次治疗后医生根据治疗效果、病人反映情况等不断调整治疗参数,避免射线对人体其它器官的过度损伤。但低剂量射线的能量难于集中,不能有效杀死肿瘤,而病人多次接受治疗,接受了大量的辐射,反而对病人的身体造成较大损伤。

    X 刀放射治疗机是一种新型的医疗设备,它利用一些高精度的定位手段,用大剂量、能量集中的 X 射线束,一次性杀死肿瘤。病人只接受一次放射治疗,避免了多次重复治疗接受的大剂量辐射。但 X 刀放射治疗计划参数的精度要求非常高,一旦参数设置不合理,大剂量射线对人的损伤将是难以挽救的。因此仅靠医生的经验进行放疗计划的设定是不够的,必需配备相应的三维立体定向放射治疗计划系统。三维立体定向放射治疗计划系统的目的是为医生提供一个直接在三维空间中进行放射治疗计划制定的辅助设计手段,并提供一种放射治疗计划的正确性的辅助检查手段,在对病人进行实际治疗以前,在计算机上对放射治疗的效果进行模拟检查,它把 CT 机诊断和 X 刀放疗机的治疗有机地结合起来。与 X 刀放射治疗设备配套的三维立体定向放射治疗计划系统,又称为 X 刀计划系统。

7.3.1.1  X 刀计划系统的总体设计与功能简介

3-1  X 刀计划系统的流程

    X 刀计划系统的流程如图 3-1 所示。它首先从 CT 断层图象中追踪人体轮廓,再由医生对轮廓进行交互地修正,形成轮廓、器官及病灶文件,进行显示输出。医生根据显示结果设计放疗计划,包括移动靶区、改变治疗床角和设置放射起始角、终止角等,这些放疗参数也同时显示输出。系统根据医生设定的放疗参数计算 X 射线在病人身体内的三维剂量分布,并根据设定的阈值以等值面方式显示射线剂量在三维空间中的分布,同时判断重要器官是否受射线损伤,对器官受损部分以红色标出。医生根据以上显示输出的结果检验计划是否正确,不断修正放疗计划,直到正确为止。最后,将正确的放疗计划参数送 X 刀放射治疗机进行治疗。

7.3.1.2  可视化关键技术的应用

    1 )断层间表面重构

    断层间表面重构首先在 CT 扫描断层平面图象上跟踪出器官、病灶等的轮廓信息,系统中采用了先自动跟踪轮廓边界,再由医生交互修正的方式。医生修正好一个器官轮廓后,还要指定此轮廓所属的器官,系统保存了各个器官、病灶等的断层轮廓拓扑结构信息。所有器官轮廓获取以后好,系统自动在断层轮廓之间进行三角面片表面重构。在三角面片重构时,相邻等值线上选择用于拼接三角面片的顶点十分重要,拼接顶点选择不当,构造出的表面会产生扭曲、变形。在实现中,我们用重心分割的方法来控制三角面片顶点的对应关系。此方法首先在每一个截面上计算曲线包围区域的重心,以过重心的 X 方向直线和 Y 方向直线将封闭曲线分为四个区段。在拼接面片时,先选择好区段的对应关系,并在相对应的每一个区段上等距离选取一定数目的控制点,按照顺序在相邻截面等值线上采用最短连线贪心方法拼接三角面片。最后,对三角面片的法向量,还要按它们的相邻关系进行平滑处理。系统提供了多种显示开关,用户可以打开或关闭任意器官的显示。系统还提供了半透明的显示效果和方便的三维交互方式。

    2 )等值面构造

放疗计划确定以后,系统计算出一个 X 射线剂量分布的三维数据场,这一数据场建立在直线型网格上,且呈中间剂量高、周围剂量低的分布状态。系统采用移动立方体方法来构造三维等剂量面来显示射线尽量的三维分布。系统计算出的是一个采样精度非常高的数据场,移动立方体方法构造的等值面的三角面片数目庞大,导致显示刷新速度降低,不能实时交互。系统中采用了多分辨率等值面的构造方法,首先在高精度的数据场中采样,构造一个低分辨率的剂量分布数据场,在低分辨率数据场中构造精度较低的等剂量面,以加快显示速度,随着计划的不断修正,不断增加等剂量面的精度,最后给出高精度的显示结果。用等值面的方法显示剂量分布,还可以方便地观察一定剂量的 X 射线分布范围是否包围整个病灶,及是否同重要器官相交等。

放疗计划都有一定的参数,如 : 射线靶区、治疗床角和放射头旋转起始角、终止角等,系统也将这些参数以图形的方式 ( 小球、圆弧等 ) 在三维空间中显示输出,使医生能直观地调整各参数,并最终从系统界面中读取各参数的值。系统还提供了非常灵活的交互方式,可以使医生以任意角度、任意位置、透明和不透明方式等进行观察,并可以将视点调整到放射头方向,沿射线方向直观地观察射线是否穿过重要器官。此外,系统还将定位信息、坐标系方向等以图形方式显示出来,更方便用户的交互操作。

    X 刀计划系统是将可视化技术应用于医学图象处理的一个新型医疗系统,它将可视化技术直接应用于临床放疗计划的辅助设计与检验,并将诊断设备与治疗设备有机地结合起来,有着十分重要的应用意义和实用价值。目前 X 刀计划系统已经通过了临床测试,投入市场,并已经实用于临床放射治疗。图 3-2 和图 3-3 X 刀计划系统的部分显示图。其中图 3-2 显示了病人头部外轮廓和部分器官 ( 黄色 ) 和病灶 ( 白色 ) ,绿色等剂量面表示了射线剂量的分布,它包围了部分病灶,器官或病灶上的红色警告显示表示了射线对此部分有杀伤作用。图 3-3 显示了 X 射线打靶的情况,红色和蓝色弧分别表示了放射头旋转起始角位置和终止角位置,中间黄色弧表示 X 射线扫描过的轨迹,圆弧中心是射线靶心。

  

3-2   轮廓、器官、病灶与等剂量面显示

  

3-3  X 射线扫描

    目前 X 刀计划系统,还仅仅能应用到人体头部放射治疗计划的设定,人体内脏器官十分复杂,给人体内部的三维立体定向放射治疗计划系统的设计带来许多困难,设计整个人体的放射治疗计划系统也是下一步工作。此外, CT 扫描切片的自动配准,三维空间中人体器官的精确定位等问题,也是要进一步研究的内容。

7.3.2  立体云图显示处理系统

    气象分析和预报要处理大量的测量或计算数据,气象云图是其中一种非常重要的气象数据,也常用于发布天气预报。气象研究中,地形和云层的高度是影响天气演变的重要因素,运用可视化技术,将三维立体地形图和三维立体云图合成显示输出,能给人更形象、直观的认识。

3-4  三维立体云图显示处理系统总体结构

    三维立体云图显示处理系统的结构和流程如图 3-4 所示。系统的主要处理模块包括三维立体地形图绘制模块、立体云图绘制模块和合成云图绘制模块。卫星云图接收机每天定时从气象卫星上接收云图数据,将数据送到立体云图绘制模块和合成云图绘制模块。立体云图绘制模块直接根据数据绘制生成三维立体云图。合成云图的绘制还需要立体地形图数据,地形数据是事先存储在计算机上的卫星遥感地形数据,地形数据要经过投影变换处理,获得与云图数据大小一致且配准的局部地形数据,送立体地形图绘制模块,生成立体地形图后,送合成云图绘制模块,绘制三维立体合成云图,供后期图象编辑处理使用。其中地形图只是在观察范围或绘制参数改变后才进行绘制,在业务运行状态,将自动使用存储的地形图文件。

7.3.2.1  立体地形图绘制模块

    地形数据是定义在二维规则网格上的高程采样数据场,系统根据地形图的特点和立体感绘制效果的要求采用了立体图法和层次分割法进行绘制。

立体图法就是以一个立体图形来显示平面高程数据场。使用立体图方法显示,可以用多种方法拟合数据场,如:三角面片、曲面逼近等,曲面逼近会产生更好的效果。但由于数据场的密度较大,完全可以使用三角面片模型来显示整个数据场。在显示中,可以采用法向量插值来消除 Mach 效应,使用多光源来增强立体效果。

    层次划分法是立体图法的扩展,首先用户定义层次范围及各层的颜色。在绘制每个三角面片时,若三角面片的最大值、最小值都在一个层内,则按该层的颜色绘制;否则要将三角面片进一步剖分为多个多边形,每个多边形处于一层,并以各层颜色绘制。这样各层之间就有一个明显的层次分割线。在实际应用中可用于显示等值线、等高线等。

7.3.2.2  立体云图绘制模块

    卫星气象云图有两种类型:成相云图和红外云图。成相云图是利用卫星上的照相机拍摄获得。红外云图是通过卫星上的红外遥感探测仪获取。成相云图中没有云层高度的信息,红外云图的灰度信息给出了云层的温度信息,通过云层温度可换算出云层的高度信息,本系统选用红外云图绘制立体云图。红外云图接收后首先要经过云识别,去除不是云层的图象区域。系统采用了查找表的方法转换获得云层高度,先建立一个 256 级云层温度到高度的转换查找表,用云层温度信息可快速的通过查找表获得云层高度信息。获取云层高度信息后,可用上节所述的立体图法绘制立体云图。

7.3.2.3  合成云图绘制模块

    合成云图是将绘制的三维立体地形图和立体云图合成在一起输出,绘制时要保证地形图和云图的大小、覆盖区域、投影关系和绘制参数完全一样,才能将两幅图配准合成。地形图绘制模块绘制生成的地形图文件中,包含了地形图的各种绘制参数,云图绘制模块首先读取地形图文件,再采用相同的参数绘制立体云图。云图与地形图合成时,云图可以是不透明的,也可以是半透明的。云层的透明度由云层的高度转换获得,云层高的地方云层较厚,透明度较小;云层低的地方云层较薄,透明度较大。其合成公式如下:

    其中 (RI, GI, BI) 是合成云图的象素颜色值, (RC, GC, BC) 是立体云图的象素颜色值, (RM, GM, BM) 是地形图的象素颜色值, aC 是云图的透明度。

3-6  立体云图 -2

    三维立体云图显示处理系统已开发完成,用于天气预报立体云图的制作,其绘制生成的云图在中央电视台天气预报节目中播出,并配合了我国风云二号气象卫星的发射,为风云二号气象卫星的调试,作出了贡献。图 3-5 和图 3-6 是系统绘制的两个合成云图的例子。

7.4 

    科学计算可视化作为一项新兴技术正在蓬勃发展。它与虚拟现实技术、计算机动画技术、虚拟人体、数字地球,甚至与人类基因组计划等诱人的前沿学科领域有着密切的联系。如何有效处理和解释包含大量信息的海量数据将是今后相当一段时间内,人类面临的巨大挑战。

    “路慢慢兮修其远,吾将上下而求索”

这里介绍的可视化研究仅仅是数据的可视化。信息可视化,或者更进一步,知识的可视化是新的挑战 , 正等待着年轻一代的不懈努力,去开拓科学的新边疆。在人类知识进步的历程中,年轻一代任重而道远。

posted on 2006-05-07 17:01 智能机器 阅读(1747) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。