基于医学图像的多分辨率体绘制算法研究1
谢凯1 2,杨胜1,朱跃敏3
1湖南大学计算机与通信学院,长沙 (410082)
2美国康奈尔大学医学中心,休斯顿 (77030)
3法国国家科学研究中心,里昂 (69621)
摘 要:为了在 PC 机上对大的医学数据进行实时绘制,本文提出了一种多分辨率体绘制算
法研究,该算法采用三维纹理映射的方法作为核心绘制算法,根据几个重要准则,自适应对
感兴趣的区域进行高分辨率的绘制,其他区域使用较低的分辨率进行绘制。对几个较大的医
学数据在标准 PC 机上进行了实验,实验结果表明,本文算法可以在保证图像质量的前提下,
对大的医学数据进行实时绘制。
关键词:多分辨率体绘制 体可视化 三维纹理映射
中图分类号:TP391
1.引言
医学图像三维重建,要求图像尽可能准确的反映对象的结构和细节。由于来自断层图像
序列的数据,不同层次的图像的亮度会有细微的差别。这对于依赖判定对象间的界面进行绘
制的表面重建方法非常不利。另外,由于表面绘制方法只显示等值面,对于边界明显的组织
和器官反映的效果较好,而对于边界模糊的情况就不够理想了。该方法还无法反映对象内部
复杂的结构。近十年来发展起来的体绘制方法,很好地解决了表面绘制方法存在的问题,以
其在体数据处理及特征细节信息、表现方面的优势,已经得到研究者越来越多的重视,被广
泛的应用于医学领域。
在对体绘制深入研究的基础上, 本文作者提出了一种基于多分辨率的体绘制算法, 该算
法首先通过八叉树的结构将整个体数据分解为许多小的子块,对每一子块,自适应的选择适
当的层次,用三维纹理映射的方法进行绘制,并将子块的绘制结果进行融合,就可以得到整
个体数据的绘制结果。
2.基于纹理映射的体绘制算法简介
基于纹理映射的体绘制是近年来出现的快速体绘制方法[1-6],它有效地利用了图形硬件
的绘制性能。如图 1,基于纹理映射的体绘制算法从整体上看由两个阶段组成:纹理的创建过
程与纹理的绘制过程。
图 1 基于纹理硬件的体绘制算法流程图
Fig1 Flow chart of volume rendering based on texture hardware
1本课题得到高等学校博士学科点专项科研基金(项目编号:20070532077)的资助。
-1-
在第一阶段(纹理创建过程)中,体数据先由二维影像文件读入到系统内存的体缓存中,
接着将体缓存中的数据转换为纹理数据存储于纹理缓存中,然后纹理数据被装入图形硬件的
纹理内存中并被定义为二维纹理或三维纹理。在第二阶段(纹理绘制过程)中,定义一系列相
互平行的多边形,并通过纹理映射实现对体数据的重采样。最后混合纹理映射后的多边形生
成结果图像。
在基于纹理映射的体绘制过程中,图形硬件起着决定性的作用,它担负着纹理绘制的全
过程,这也是为什么基于纹理映射的体绘制会有如此快的速度的原因之所在。根据纹理映射
的种类,基于纹理映射的体绘制可分为两类,一类是基于二维纹理映射的体绘制,另一类是
基于三维纹理映射的体绘制。其中基于二维纹理映射的体绘制方法是将体数据沿正交方向生
成序列二维图像,产生二维纹理切片,然后将这些二维纹理切片依次堆叠来完成体绘制过程,
其绘制方法简单,但绘制效果并不理想。而基于三维纹理映射的体绘制方法[2] [3] 是根据当前
的视线方向将体数据进行重采样,形成三维纹理切片,然后将这些三维纹理切片从前往后依
次堆叠来完成体绘制过程。该方法虽然复杂,但能够非常好的将体数据表现出来。基于二维
多重纹理的体绘制方法[4]是在二维纹理的基础上动态产生二维纹理切片来完成体绘制的,相
对于二维纹理来说,效果有明显改善。
3.基于医学图像的多分辨率体绘制算法
首先,整个体数据被划分成许多小块,这里我们简称子块。对每一个子块,我们通过对
体数据的三维小波分解来创建不同的层次。从原始数据开始,我们做 2×2×2 的细分,以得
到更小的子块。我们采用八叉树的结构对体数据进行分解,它的每一个结点对应相应区域的
体数据。从八叉树根部开始,整个体数据被分为 8 个子块,当满足下列 2 个条件时,我们持
续这种细分:1.当子块的大小大于显存的大小;2.子块的大小大于用户所定义的最小子块的
大小。当这种划分结束时,我们开始对所有的子块,通过三维小波分解来创建多分辨率层次
的结构。为了避免不同分辨率相邻子块之间的跳跃现象,我们采用了一种办法,将在边界附
近的数据由低分辨率向高分辨率进行拷贝,以保证在数据的连续性。最后的绘制过程是从前
向后对每一个子块进行绘制,然后将结果进行融合。对每一个子块,我们首先为它选择适当
的层次,然后用三维纹理映射的方法进行绘制,并且用 OpenGL 的三维纹理映射和透明度融
合函数进行多边形的绘制和渲染。
多分辨率层次的创建
在进行绘制之前,整个体数据被细分为多个小的子块。每一个子块通过三维小波分解以
更粗的分辨率来创建自己的层次。如图 2 所示,在每一个层次,一维数据的大小以 1/2 倍的
速度减少。注意到,相同层次子块边界上的数据不得不包括在多个子块中,以保证数据插值
的连续性。原始数据用第 0 层次来表示,第 k 层数据的间隔宽度是第 k-1 层数据间隔宽度的
2 倍。而数据的数量只有原来的 1/2。
Subvolume A Subvolume BLevel
0
1
2
3
-2-
图 2 有 4 个层次的一维数据表达
Fig2 One-dimensional of a data set with four levels of detail
保持层次过渡的连续性
如果体数据的层次构造如上所述,在同一层次相邻块边界处,插值所带来的失真现象就
不会产生,这是因为边界处的体素被相邻的子块所共享。但是,这并不能解决不同层次相邻
块边界处的失真现象。因此,为了满足连续性的要求,我们设计了不同层次间过渡的方法,
修改相邻子块边界处的数据值。具体的方法是,在相邻子块边界处,将低层次的数据值直接
拷贝到上一层次,或将低层次的数据值进行插值后,替换上一层次边界处的数据值。实现过
程如图 3 所示,层次 0、1、2 中被标为黑色的数据值,通过拷贝或插值操作被修改,以保证
不同层次相邻子块之间的连续性。
subvolume A subvolume BLevel
0
1
2
3
图 3 不同层次相邻子块的自适应以确保数据的连续性
Fig3 Adaption of adjacent subvolumes with different level-of-detail to ensure consistent texture interpolation
不透明性的矫正
当在不同的层次下绘制子块时,子块的不透明性是不一样的。经典的绘制算法依赖于沿
光线方向对每一个象素进行采样。但是在多分辨率的情况下,体数据以不同的方式和分辨率
被重采样,为了保存不同分辨率块之间的光学性质,我们必须对原始数据重新采样,产生新
的子块,传输函数也要因此而进行修改。
图 4 以不同的分辨率对相同的子块进行采样
Fig4 Sampling a texture at two different resolutions
图 4 说明一个以不同的分辨率对同一子块进行采样的例子。前者的分辨率是后者的两
倍,每一个采样点有
相对应的颜色值
和不透明度值iB ic iα 。如果只考虑刚开始的 3 个采
样,颜色值 A 和 A′
为:
0 0 0 1 1 0 1 2(1 ) (1 )(1 ) (1)A c c Cα α α α α= + − + − −
0 0 0 22(1 ) (2)A c Cα α′ ′ ′ ′= + −
这里 是由采样 得到的输入颜色, 是由采样 得到的输入颜色。但
是,我们计算所有的堆积起来的不透明度 和
2C L32 , BB 2C′ L64 ,BB
D D′ , 我们得到
0 0 1 0 1 2(1 ) (1 )(1 ) (3)D Dα α α α α= + − + − −
0 0 2(1 ) (4)D Dα α′ ′ ′ ′= + −
-3-
假设堆积起来的不透明度值和偶采样相等,它被表示为 2 2D D′= 和 ,则 D D′=
0 0 1 0 1 2 0 0 2(1 ) (1 )(1 ) (1 ) (5)D Dα α α α α α α′ ′ ′+ − + − − = + −
为 解这个式子,我们可以得到 0α′
0 0 11 (1 )(1 ) (6)α α α′ = − − −
通过假设 1 0α α= +ε (这里ε 是一个很小的数),我们可以得到如下等式:
2
0 01 (1 ) ( ) (7)Oα α ε′ = − − +
因而,我们修改传输函数为
2
01 (1 ) (8)α α′ = − −
层次的自适应
在多分辨率的表达被构造之前,每一个子块的大小被确定下来,多重标准被用来进行层
次的选择。
• 最大不透明值:一个子块中的最大不透明值由该子块中不透明值最大的体素所确定。
它的基本思想就是对不透明大的区域应该进行精细的绘制。
• 与视点之间的距离:这里距离是指子块的中心与视点之间的距离。对离视点较近的子
块,它们更为重要,我们应该进行精细绘制。对于其它子块,他们离视点较远,应该以较低
的分辨率进行绘制。
• 投影区域:投影区域主要由子块的边界所确定,对那些具有较大投影区域的子块,我
们应该进行比较精细的绘制。
• 凝视距离:这个参数对基于凝视的绘制非常有用,凝视距离是凝视区域中心和子块的
投影区域中心的距离。对那些与凝视中心较近的区域,我们确保较高的图像质量,而对那些
远离凝视中心的区域,较低的分辨率进行绘制
4.实验及结果分析
本文用 Visual C++ 实现我们的体绘制算法,用到了 Pixel Shader 和 DirectX ,
在配有 Pentium4 GHz CPU,NVIDIA Geforce 6600 显卡(128M)的 PC 机上对本文的算法
进行测试。我们定义最小子块的大小为 64×64×64 字节。实验使用了 3 个数据进行测试。
图 5 是对人脑的 MRI 数据运用我们的体绘制算法进行绘制的结果。在图的左边,所有的子
数据块以原始的分辨率进行绘制;在中间,使用 2 个层次的 LOD,将纹理内存的消耗量降
低到原始的 54%;而在右边,使用 4 个层次的 LOD,只有原始纹理内存消耗量的 33%被使
用。在图的左边,绘制速度是 帧/秒;而在右边,绘制速度可以达到 帧/秒。图 6
和图 7 是对足部和脊骨进行体绘制的结果。
基于多分辨率的体绘制算法采取一种自适应策略,对感兴趣的数据使用高分辨率的体绘
制,对远离此区域的数据使用低分辨率的体绘制。该算法基于几个重要的准则,在绘制的过
程中,对靠近关注中心的区域自动选取高分辨率的网格,远离该中心的区域的使用低分辨率
的网格。另外,分等级多层次的表达方法保证了不同分辨率之间插值的连续性,对几个较大
数据进行实验的结果表明,该算法可以在普通的 PC 机得到高质量的图像和连续的画面。
-4-
(a)高质量(头部 MRI) (b)中等质量(头部 MRI) (c)低质量(头部 MRI)
图 5 在图的左边,所有的子数据块以原始的分辨率进行绘制;在中间,使用 2 个层次的 LOD,将纹理内存
的消耗量降低到原始的 54%;而在右边,使用 4 个层次的 LOD,只有原始纹理内存消耗量的 33%被使用。
Fig5 On the left, the data set is displayed with full the middle, two different levels of detail are used
with lower resolution in the back. This reduces texture memory consumption to 54%. On the right, the adaptive
representation using four levels of detail from front-to-back requires only 33% of the original texture memory.
(a)高质量(足部 CT) (b)中等质量(足部 CT) (c)低质量(足部 CT)
图 6 在图的左边,所有的子数据块以原始的分辨率进行绘制;在中间,使用 2 个层次的 LOD,将纹理内存
的消耗量降低到原始的 53%;而在右边,使用 4 个层次的 LOD,只有原始纹理内存消耗量的 27%被使用。
Fig6 On the left, the data set is displayed with full the middle, two different levels of detail are used
with lower resolution in the back. This reduces texture memory consumption to 53%. On the right, the adaptive
representation using four levels of detail from front-to-back requires only 27% of the original texture memory.
(a)高质量(脊骨 CT) (b)中等质量(脊骨 CT) (c)低质量(脊骨 CT)
图 7 在图的左边,所有的子数据块以原始的分辨率进行绘制;在中间,使用 2 个层次的 LOD,将纹理内存
的消耗量降低到原始的 57%;而在右边,使用 4 个层次的 LOD,只有原始纹理内存消耗量的 29%被使用。
Fig7 On the left, the data set is displayed with full the middle, two different levels of detail are used
with lower resolution in the back. This reduces texture memory consumption to 57%. On the right, the adaptive
representation using four levels of detail from front-to-back requires only 29% of the original texture memory.
表 1 不同体数据的绘制速度比较
Rendering speed for the various data sets.
体数据 数据大小 简化比例(和未简化的比) 绘制速度(帧/秒)
100%
MRIBrain 2562 ×109 54%
33%
100%
-5-
Foot 102×247×200 53%
27%
100%
Spine 2562×299 57%
29%
5.总结
本文主要讨论了基于多分辨率的体绘制算法。该算法实现了体数据的渐进式三维重建,
仅需较低的数据量即可重建出质量良好的三维图像或其概貌, 因此非常适用于需要频繁选
择、交互图像的三维系统, 如 PACS 系统等。由于采用渐进式三维重建,因此它至少可以在
基于 Internet 的远程医疗方面显示出其优越的性能,改善目前因为数据大,而导致传输速度
低的问题,在其他领域的应用前景也是非常广阔的。
参考文献
[1] Lin ., Robb ., Dynamic volume texture mapping and model deformation for visually realistic surgical
simulation. In Proc. Medicine Meets Virtual Reality, 1999, , -204.
[2] Lee ., Park ., Kim ., Han ., Yang ., A bandwidth reduction scheme for 3D texture-based
volume rendering on commodity graphics hardware, ICCSA (2) 2004, -750.
[3] Hwang ., Lee ., Kim ., Song ., Lee ., Kim ., A PC-based high-quality and interactive
virtual endoscopy navigating system using 3D texture based volume rendering, Computer Methods and
Programs in Biomedicine, 2003, Vol. 71, -84.
[4] Salama ., Engel K., Bauer M., Greiner G., Ertl T., Interactive volume rendering on standard PC graphics
hardware using multi-textures and multi-stage rasterization, In Siggraph/Eurographics Workshop on Graphics
Hardware 2000, 2000, -118.
[5] Kai Xie, Jie Yang, and . Zhu, Real-time Visualization of large Volume datasets on standard PC hardware,
Comput Methods Programs Biomed. 2008 May; 90(2):117-23.
[6] Kai Xie, Jie Yang and . Zhu, Real-time rendering of 3D medical data sets, Future Generation Computer
Systems, 2005 Apr; 21(4): 573-81.
High-Quality Multi-resolution Volume Rendering Based on
Medical Dataset
Xie Kai1 2,Yang Sheng1,Zhu YueMing2
1 School of Computer and Communication, Hunan University, Changsha, PRC, (410082)
2 The Methodist Hospital Research Institute, Cornell University, Houston, USA, (77030)
3 CREATIS - CNRS research unit 5515 & INSERM unit 630, Villeurbanne, France, (69621)
Abstract
In order to perform a high-quality interactive rendering of large medical data sets on a single
off-the-shelf PC, this paper presents a LOD selection algorithm for multi-resolution volume rendering
using 3D texture mapping. The algorithm is based on several important criteria, rendering is done
adaptively by selecting high-resolution cells close to a center of attention and low-resolution cells away
from this area. In addition, our hierarchical level-of-detail representation guarantees consistent
interpolation between different resolution levels. Experiments have been applied to a number of large
medical data and produces high quality images at interactive frame rates using standard PC hardware.
Keywords: multi-resolution rendering, volume visualization, 3D texture mappingCompression
作者简介:谢凯,男,1974 年生,副教授,博士,主要研究方向是医学图像处理和三维重
建。杨胜,男,1977 年生,副教授,博士,主要研究方向是图像处理和数据挖掘。朱跃敏,
男,1958 年生,教授,博士生导师,主要研究方向是医学影像处理和成像。
-6-
High-Quality Multi-resolution Volume Rendering Based on Medical Dataset
Abstract