APP下载

基于拓扑分析的交互式体绘制系统

2019-12-11杨利素张胜男

关键词:标量传递函数轮廓

郭 全,王 雷,杨利素,张胜男

(山东理工大学 计算机科学与技术学院, 山东 淄博 255049)

基于光学特性的体绘制是三维重建的主流实现技术。体绘制通过模拟光线在体数据中的传输过程,借助传递函数,计算光线传输路径上的体素为最终呈现图像所做的贡献[1]。传递函数用来指定体素的颜色值和透明度,其设计的好坏决定了重建图像的质量。

目前,已经有很多学者在传统的一维和二维传递函数基础上,结合梯度、曲率、纹理等诸多图像特征来指导传递函数的设计,而且取得颇为有效的成果[2-5]。 然而,体数据的不同特征通常有相同的标量值,空间分布并不相同。已有的方法很难区分这些特征所属的区域,只能模糊体数据各部分的边界。拓扑分析能够提供区分物质边界的方法,常见的拓扑分析方法有Reeb图、Morse-Smale复形、轮廓树[6-8]。轮廓树相对其他几种方法更具有实用性。而且,在现有的体绘制系统中,一旦传递函数设定之后,就只能对绘制的图像进行旋转、平移操作,无法实时动态改变显示效果[9]。

针对这些问题,本文借助轮廓树拓扑结构,采用新的渲染模式,以实现可实时交互的体绘制系统。轮廓树拓扑能够对体数据各部分进行区域划分,同时,对划分后的分段进行处理,动态显示全局或局部的图像,这对医学诊断、监控等有很大的帮助。

1 交互式体绘制系统

本文的体绘制系统是基于光线投射的体绘制[10]。其体绘制的过程如下,首先,对预处理后的体数据进行分类,然后对分类后的数据指定适当的传递函数,传递函数赋予体素不同的颜色和透明度,最后从视点发射射线进行重采样,得到投影图像[11]。

1.1 总体流程

图1描述了系统总体流程。首先将获取到的体数据进行预处理,通过轮廓树构建算法,可以得到一棵完整的轮廓树。体数据的数据集通常很大,得到的轮廓树会含有较多分支。使用拓扑简化方法,将轮廓树简化到一定的阈值,不仅能够去除不必要的分支,还能够方便后续寻找有意义的轮廓树分支。然后进行常规的体渲染。为每个轮廓树分支指定单独的传递函数,利用基于GPU的光线投射算法,得到理想的渲染效果。指定传递函数是可重复操作,通过手动选取合适分段,可以得到预期的效果。

图1 系统总体流程Fig.1 The overall flow of the system

1.2 图像预处理

为了减少噪声对最终图像的干扰,通常需要对体数据进行图像三维滤波处理。高斯滤波是常见的平滑滤波方法,由于边缘信息对体绘制很重要,本文采用的图像预处理方法是在高斯滤波的基础上,加入各向异性扩散算法[12]来增强边缘信息。

各向异性扩散是一种非线性滤波算法,其公式为

∂tf=div[g(|fσ|2)f]

(1)

式中:f代表图像的像素;(·)代表图像梯度操作;g(·)代表边缘函数,其形式为

(2)

式中:k代表g(·)的下降速率,当|f|→时,g(|f|)→0。

高斯函数是一种正态分布函数,常用来表示概率分布,其形式为

(3)

1.3 轮廓树构建

1.3.1 轮廓树的定义

令d维实数域的连续标量数据场为F,即f∶Rd->R。不失一般性,在本文的讨论中假定d=3。F的函数范围是f的最小值和最大值的间隔[fmin,fmax]。对于一个标量值h∈[fmin,fmax],水平集L表示数据场中函数值相等的集合,L(h) = {(x)|f(x)=h}。x是临界点的充分必要条件是df(x) = 0。当h沿着fmin到fmax不段增加,水平集的拓扑结构体只会在F的临界点处改变[13]。同一个水平集上的点连接起来构成一个轮廓。用节点表示轮廓,水平集在临界点处不断改变而形成的一个轮廓集合,就是轮廓树,它代表了轮廓之间的内在联系[14]。

轮廓树是由一系列节点连接而成。图2表示水平集随标量值h变化的演变和对应的轮廓树。(a)阐释了随着标量值的增加,水平集从一个实心立方体到四个小碎块的演变过程。(b)是对应的轮廓树,从上到下,(9, 10)合并形成一个耳环状物体(6),(7, 8)亦同,(5, 6)连接成(4),(4)到(3)形成一个封闭的立方体,(3)分裂成内层边界(1)和外层边界(2)。

(a)演变过程 (b)轮廓村图2 水平集的演变及其对应的轮廓树Fig.2 The evolution of the level set and its corresponding contour tree

1.3.2 轮廓树的构建算法

轮廓树的构建算法包含以下几个步骤[15]。

1) 对标量场F的所有顶点按照标量值大小排序, 并存储到堆栈;

2) 扫描两次数据集, 一次从大到小扫描创建连接树, 一次从小到大扫描创建分裂树;

3) 合并连接树和分裂树, 形成轮廓树。

1.4 渲染模式

目前,基于GPU的体绘制的输入通常是一个完整的数据集。随着医学设备的升级,产生的数据分辨率越来越高,而且体渲染的交互过程中需要CPU和GPU之间的通信。 这加重了CPU的负担。在Deferred Contexts模式(以下简称DCRM)产生之前,GPU一直使用Immediate Context渲染模式(以下简称ICRM),DCRM可以将调用显卡的绘图操作分散到多个CPU核当中,因而会有较好的性能提升。结合快速轮廓树算法,得到一棵完整的轮廓树,轮廓树的每个分支对应数据的一个分段。当前基于轮廓树的体绘制,使用的是ICRM进行体渲染,对于体积较大的数据来说,实时交互渲染效率低下。为了达到较为理想的渲染效率,本文结合轮廓树分段以及DCRM的优势,设计了可实时交互的渲染方法。这两种方式的对比如图3所示。从图3可以看出,ICRM方法将整个体数据作为输入,交给CPU的一个核去处理,处理结束后,数据传给GPU渲染显示。DCRM方法将数据分成若干个段,然后每个分段交由独立的CPU核处理,每个CPU处理的数据再传给GPU显示,这样能够减轻CPU的负担,加快处理速度。分段处理的另一个优点是,可以选择性地指定某个分段显示或不显示,这样能够更方便地找到感兴趣的区域,利于医学诊断。

图3 ICRM和DCRM方式对比Fig.3 The comparison between ICRM and DCRM

值得注意的是,由于改进后的渲染独立计算分段体数据,光线投射算法需要对投射光线路径上的所有颜色点进行合成,因此,需要对原有的颜色合成方式进行修改。在新的分段渲染方式下,对需要渲染的分段,颜色合成方式为

(4)

(5)

同理可得出最终的透明度。

2 系统实现与分析

本文程序使用QT和DirectX11实现,系统平台是Dell M4800,处理器为I7 4810m,16G内存,Quadro k2100m显卡。实验使用的数据集来自The Volume Library。使用可视化的用户界面验证基于拓扑结构的体绘制方法的有效性。

本文实现的系统界面如图4所示,整体界面分为左中右三个部分。左边面板上部为数据源的信息,中部为传递函数设计界面,下部为拓扑分析的设置。中间面板上部为最终图像的显示区域,下部为轮廓树的展示区域,可手动选取节点之间的连线。右边面板上部是光照设定部分,下部是显卡的运行信息。

图4 本文系统界面Fig.4 The system interface

为了验证本文实现系统的有效性,从实时性、交互性两个方面进行分析。

1)实时性,使用Foot、Tooth、Head、Nucleon 4组数据,测试本文方法和传统方法的渲染帧频。

作为对比,传统的方法选用广泛使用的基于GPU的光线投射算法。 表1是4组数据的帧频对比结果。由表1可知,使用本文基于拓扑的DCRM比传统的ICRM方法有60%的提升,帧数略有波动,但是基本维持在一个小范围内。通常人眼可接受的刷新频率为24 fps,本文采用的方法基本能够达到要求。

表1 帧频结果比较
Tab.1 The result comparison

数据集数据体积/px运行帧频/fps传统方法本文方法Foot256x256x25613~1522~24Tooth256x256x16120~2232~35Head256x256x22518~1929~33Nucleon41x41x4170~74108~110

2)交互性,动态选取轮廓树分支,并对渲染的结果进行详细分析,以Foot、Nucleon数据集为例。

Foot的分析如图5所示。(a)分别显示了未采用分段(左)、采用不同分段(左中和右中)以及背景噪声(右)的渲染结果。可以看出,未经分段绘制的图很难区分数据的不同部分和物理内部的结构。由于数据会有噪声影响而且不同结构可能会有相同标量值,导致各个部分很难界定边界。通过轮廓树渲染,可以得到不同分段的绘制结果。选取不同分段进行组合设定不同传递函数,就能够构造出理想的效果。 (b)给出了不同组合得到的结果。

Nucleon的分析如图6所示。从图6(a)得知,分段可以很明显地区分出各个部分,通过一系列分段和传递函数的组合就能够得出图6(b)中的结果。

(a) 不同分支的体绘制结果

(b) 分支组合的渲染结果

图5Foot的渲染分析

Fig.5RenderinganalysisofFoot

(a)不同分支的体绘制结果

(b) 分支组合的渲染结果

图6Nucleon的渲染分析

Fig.6RenderinganalysisofNucleon

3 结束语

本文实现了基于拓扑结构的交互式体绘制系统,其优势在于轮廓树拓扑和DCRM渲染模式的结合使用。轮廓树拓扑结构能够对体数据进行区域划分,并结合多核处理器计算子区域的分裂树和连接树,进而合成轮廓树。在轮廓树分段的基础上,采用DCRM可以有效地加速轮廓树分支的渲染,灵活操作轮廓树,交互性强。实验证明,相比传统的体绘制系统,本文实现的系统较大程度地改善了渲染图像的质量,而且系统实时性、交互性强, 简单易用。未来研究方向将继续优化系统的时间和空间效率,同时在现有的体绘制系统基础上,设计自动化传递函数,尽可能地减少不精确的人为操作。

猜你喜欢

标量传递函数轮廓
向量优化中基于改进集下真有效解的非线性标量化
多尺度土壤入渗特性的变异特征和传递函数构建
长江上游低山丘陵区土壤水分特征曲线传递函数研究
面向ECDSA的低复杂度多标量乘算法设计
OPENCV轮廓识别研究与实践
PSS2A模型在水泥余热机组励磁中的实现与应用
一种高效的椭圆曲线密码标量乘算法及其实现
基于实时轮廓误差估算的数控系统轮廓控制
高速公路主动发光轮廓标应用方案设计探讨
应用动能定理解决多过程问题错解典析