文章编号:100429037(2006)0420428206
基于GPU的三维医学图像混合可视化系统
唐 慧1 周正东2 鲍旭东1 罗立民1
(1.东南大学影像科学与技术实验室,南京,210096;2.南京航空航天大学医学物理系,南京,210016)
摘要:研究并实现了一个基于GPU的医学图像混合可视化系统,该系统采用三维纹理映射的方法实现直接体绘制,利用GPU的可编程特性完成体绘制方法中的插值后分类算法和传输函数的传递及实时修改,采用OpenGL技术实现表面的绘制,并基于场景图结构实现对表面数据的管理。面绘制和体绘制部分都采用OpenGL实现,运用OpenGL的融合机制,系统实现了面绘制和体绘制的混合显示。本系统大大提高了体绘制的速度,有效地保留了面绘制和体绘制的优势,在保证绘制速度的基础上丰富了图像信息。关键词:可视化系统;三维显示;表面绘制;体积绘制;硬件加速体绘制中图分类号:TP391 文献标识码:A
3DMedicalImageHybridVisualizationSystemBasedon
GraphicsProcessingUnit
TangHui,ZhouZhengdong,BaoXudong,LuoLimin
1
2
1
1
(1.LaboratoryofImageScienceandTechnology,SoutheastUniversity,Nanjing,210096,China;2.MedicalPhysicsDepartment,NanjingUniversityofAeronautics&Astronautics,Nanjing,210016,China)
Abstract:Ahybridvisualizationsystemforthemedicalimageisstudied.Three2dimensionaltexturemethodisusedinvolumerenderingtoacceleratetherenderingspeedandthepro2grammablecharacteristicofGPUisusedtorealizethepost2classificationalgorithmandthein2.ThesurfacerenderingisrealizedusingOpenGL,teractivemodificationoftransferfunctions
whilethescenegraphstructureisusedforthetissuemanagement.AsOpenGLisusedinbothsurfacerenderingandvolumerendering,itispossibletorealizehybridvisualizationbyusingthefusionmechanismofOpenGL.Thesystemhastheabilityofspeedingupvolumerendering.Thesystemefficientlyusestworenderingtechniquesandenrichesthefinalimageinformation.Keywords:visualizationsystem;three2dimensionaldisplay;surfacerendering;volumerender2
ing;hardware2acceleratedvolumerendering
三维数据场的可视化方法主要有面绘制和体
引 言
从20世纪70年代末开始,许多数据场可视化绘制方法被提出并成功地应用于医学领域。目前许多医学图像处理系统,例如三维放射治疗计划系统、虚拟人体系统、计算机辅助手术导航系统、医学影像工作站等,都包含了三维图像的显示部分,但各个部分都是单独重新构造的。一些已经开发的专用体视化系统,由于其不具有医学图像三维显示的所有功能,同时又缺乏一定的开放性与扩充性,很难作为二次开发的工具。
收稿日期:2005211223;修订日期:2006204213
绘制两类[1]。面绘制可以有效地绘制三维物体的表面,但缺乏内部信息的表达;体绘制以体素作为基本单元,直接由体数据生成最终的图像,也称直接体绘制,其能够表示对象体的内部信息,但是计算量很大,尽管采用了许多种加速算法,仍然不能在
普通PC机上实现中等规模体数据(比如医学三维数据)的实时动态显示。近年来,在游戏和娱乐市场的巨大推动下,PC图形硬件方面的技术不断进步,性能不断提高,许多原来只有在高档图形工作站的三维纹理映射硬件才具有的三维纹理映射功能,在为普通PC机配备的中高等显卡上也已具备。用三
第4期唐 慧,等:基于GPU的三维医学图像混合可视化系统429
维纹理映射功能来进行体数据的直接体绘制,可以在达到同等效果的前提下,大大提高绘制速度。
在医学领域的实用系统中,这两种显示方法都很有必要,将两种绘制结果混合显示可以充分发挥各自的优势,丰富图像信息。Kreeger[2]等采用硬件三维纹理映射与Z2Buffer实现了混合场景的绘制,虽然可以进行快速的渲染,但由于采用了Pre2Shaded技术,从而导致结果图像质量不高。新一代图形处理器的可编程渲染器改变了以往GPU固定管道线的绘制方式,使得程序员能够干预图像生成过程。本文研究的混合可视化系统中提出了一种基于GPU的混合体视化方法,在不降低图像质量的基础上提高了绘制速度,丰富了图像信息。
1 GPU编程方法和语言
新一代图形处理器的标志是提供了图形硬件的可编程能力,即集成了对三角形顶点进行几何变换和光照计算的点元渲染器(Vertexshader)和对像素进行着色的片元渲染器(Fragmentshader或Pixelshader)。可编程渲染器并没有完全替代传统处理器中的顶点管道和像素管道的固定处理单元,它们构成了图形处理器中不同的顶点和像素管道(如图1所示)。图1 图形管道模型
为了利用现代图形处理器的可编程性,图形程序员需要编写在图形处理器上运行的程序,这种程序称为着色程序(Shader)。图形处理器通过通用的3DAPI(DirectXOpenGL)向图形程序员提供可
OpenGL的通用性和跨平台性使得GLSL的应用更
为广泛。GLSL是OpenGL210规范的一部分,它在
OpenGL管理委员会的监督下,由3DLabs公司制定规范和提供参考实现。GLSL的设计目标能够体现当前和未来的图形硬件能力,易于使用,功能强大,可以明显减少日渐增加的OpenGL扩展数目。
编程能力。为了与面绘制部分保持一致,本文采用OpenGL接口实现着色程序。
[3]
GPU上的编程语言也称着色语言(Shading
language),与CPU一样,着色语言也分为低级着
2 基于GPU的直接体绘制
直接体绘制由于其不需要提取中间几何基元而受到了学者们的广泛关注。但是直接体绘制的计算量很大,利用硬件加速功能实现直接体绘制大大提高了绘制速度,已经成为目前研究的热点[426]。
色语言和高级着色语言。低级着色语言类似于汇编代码,它虽然能够满足大多数图形应用的需要,允许开发者写出性能最好的着色程序,以最大程度地利用图形处理器的硬件能力,但是它不可避免地具
有下述问题:(1)对底层图形硬件具有强烈的依赖性,可移植性差;(2)难以学习,开发效率较低;(3)不能利用广泛使用的各种优化编译技术,开发者必须手工优化汇编代码。
现在高级着色语言相继出现,作者使用的GLSL(OpenGLshadinglanguage)就是其中一种,
211 基于三维纹理映射的体绘制
在体积绘制中最重要和最大的工作量就是采样和插值计算。由于体积数据本身就是一种采样后得到的离散数据,这个过程也称为重采样。为了绘制出一幅高质量的体积图像,这些重采样点的对应
430数据采集与处理第21卷
数值需要仔细地计算。把体积数据作为三维纹理,可以利用图形硬件的纹理插值功能,快速得到重采样点的数值。
在目前通用显示硬件上,图形卡的显存空间已经达到128MB或256MB,三维纹理存放在显存上,大大提高了访问速度。OpenGL最新版本提供
了许多对三维纹理操作的扩展功能,作者使用标准OpenGL三维纹理映射函数,用代理几何面获取经过插值的三维纹理中的体数据。如图2所示,代理几何面取与视线方向垂直的等分三维纹理空间的平面切片,可以通过改变中间平面的层数来改变成像的精细程度。
图2 三维纹理提取与图像合成 直接体绘制积分公式近似为[5]
n
i-1i
Capprox=∑C∏(1-i=0
j=0
Ai)(1)
传输函数,得到与之对应的RGBA值,这在原始的固定图形渲染管道中是无法实现的,因为程序员无法在纹理采样后插入一个步骤再送入帧缓存参与融合,本文使用的Geforce6800图形卡已经具有可编程功能,利用可编程功能可以很方便地实现插值后分类方法。
图形卡的片元处理器具有纹理提取指令,插值后分类可以用纹理依赖提取实现,纹理依赖提取示意图如图3所示。即将第1个纹理的值作为下一个纹理的坐标来提取纹理,因此可以把三维体数据纹理作为第1个纹理,传输函数以第2个一维纹理(一维传输函数)或二维纹理(二维传输函数)的方式表示,图3中传输函数以二维纹理方式表示。这样提取到的第1个纹理的值是纹理插值后的值,以这个值去提取第2个纹理相当于作用传输函数进行分类,从而实现了插值后分类。用GLSL写Pixelshader,其代码是
vec4index=texture3D(my3DTexture,gl-提取三维纹理值TexCoord[0]);
gl-FragColor=texture2D(DependentTextu2
式中:Capprox为最后得到的图像的某一点像素值;Ci和Ai为采样过程中第i个代理几何面的采样值。这个方程可以利用从前至后或从后至前的Alpha混合来得到
(1-Ai)C′C′i=Ci+i+1
(2)
对平面从后向前绘制的过程实际是当前平面提取的纹理图像与缓存中已经绘制好的图像相融合的过程。如果融合的过程中只取最大值,就构成了最大密度投影成像(MIP);如果只取某个域值上的点,就构成了等值面的显示;如果采用前后累加,就相当于光线跟踪中对光线上的采样点的积分。
212 插值后分类
三维数据场的分类是指将传输函数作用于体数据,给体数据各点赋颜色值和不透明值。分类是整个可视化算法中非常重要的一步,只有对三维数据值进行正确的分类,才能经过后续处理得出合理的图像。分类方法主要有插值前分类和插值后分类[7]。在基于三维纹理的直接体绘制中,如果采用插值前分类方法,作为三维纹理的是已经对体数据分类好的颜色值和不透明度值,不仅需要4倍的存储空间(R,G,B,A四个通道,即体数据大小34),而且采样时插值的对象是颜色值和不透明度值,而不是原始的体数据值,会降低最终的图像质量[7]。插值后分类需要把原始的体数据作为三维纹理,这样采样的对象就是原始体数据,采样点分类后再参与图像合成。
插值后分类需要在提取纹理之后再对其作用
图3 纹理依赖提取示意图
第4期唐 慧,等:基于GPU的三维医学图像混合可视化系统431
纹理依赖提取写入缓存re,index.x,index.y);
传输函数一直以来都是直接体绘制的重要问
题。它主要映射了纹理标量值s到RGBA的颜色形式,是决定某些重要结构和细节显示的关键。通过修改依赖纹理可以实现传输函数的实时交互修改。
面,采用体绘制方法表达体数据的其他信息,利用GPU的可编程特性将两种图像混合显示,这样不需要在三维纹理数据中存储梯度值,只需要存储灰度值,节约了显存空间,而且能够同时显示表面和内部信息。这种面绘制和体绘制相结合的绘制方法,可以有效地保留面绘制和体绘制的优势。
由本文第3节的叙述可以看出,基于三维纹理映射体绘制的基本原理是应用显卡的Alpha混合技术,对代理几何面采样数据进行从后向前(或从前向后)的融合,从而近似实现直接体绘制算法中的积分函数。而面绘制方法则是采用三角面片逼近等值面,利用显卡的固定渲染管道进行表面渲染。由于这两种绘制方法在绘制时候的OpenGL状态参数不一样,直接进行混合绘制可能会导致只有一种绘制结果正确显示或者没有图像绘制到屏幕,本文应用显卡的Render2to2texture功能和GPU的可编程特性解决这个问题。Render2to2texture功能利用Rendertotarget扩展实现,就是把绘制结果输出到纹理单元,从而可以作为片元渲染器的输入纹理,再次参与运算。
直接体绘制部分的片元渲染程序在本文第3节中已经给出。作者把直接体绘制和面绘制结果分别绘制到两个纹理单元,然后再把这两个纹理单元按照片元渲染程序进行相加(如图4所示),本文采用最简单的线性融合方法,融合的片元渲染代码如下
3 面绘制
311 表面提取
表面绘制就是将数据场中感兴趣的部分提取出来并以面片的方式表达,常用的是等值面。提取等值面的方法分为两类:(1)切片级重建方法,即先在一系列切片上生成等值线,然后连接等值线得到等值面;(2)体素级重建方法,即直接从体数据中抽取等值面。第1类方法由于在切片上生成等值线方法很多,所以灵活性好,但是等值线对应和拼接以及对分叉情况的处理都比较困难。第2类方法中最有代表性的是文献[8]提出的MarchingCubes算法。本文采用两种方法相结合的方法提取等值面。
312 组织管理
组织表面可采用多种方法提取,从一个体数据中可提取出若干组织,所以对这些组织的管理并按照其相对坐标正确显示显得非常重要。场景图[9]提供了一种很好的数据管理方式。场景图是指一种数据结构,场景图是有向无环图,由各个节点连接而成。场景图的节点分为组节点和叶子节点,组节点为整个场景图的骨架,而叶子节点则包含了形体对象、属性等具体信息。整个场景图只有一个根节点,代表整个体数据,而提取出的各个组织作为其子节点。如果某些组织作为一个整体,可以把这些组织挂在同一个组节点下,在把该组节点作为一个子节点放入根节点下。基于场景图的这些特点,本文设计的可视化系统应用场景图进行组织管理[10]。
图4 片元渲染器两幅图像相加示意图
4 面绘制和体绘制的结合
面绘制可以简洁地反映复杂物体的三维结构,但是面绘制技术绘制的是从体数据中提取的表面,不能全面表达三维体数据中所包含的信息;体绘制直接从体数据中计算得到最后图像,但是基于体绘制方法绘制等值面需要有表面的法向量信息,文献[3]中将体元的灰度梯度存储在三维纹理数据中的RGB分量中,灰度值存储在Alpha分量中,然后利用硬件支持的Alphatest功能来显示等值面,这种方法非常有效,但是需要比单纯存储灰度值多出3倍的显存空间消耗。本文采用面绘制方法绘制等值
vec4Image1Color=texture2D(Image1,gl-提取纹理1图像TexCoord[0]);
vec4Image2Color=texture2D(Image2,gl-提取纹理2图像TexCoord[0]);
gl-FragColor=Image1Color3Factor+Im2
线性融合,融合因子age2Color3(110-Factor);为Factor
5 实验结果
实验中采用的数据是25632563128的头部的CT数据,实验所用的显卡为Geforce6800,显存空
432数据采集与处理第21卷
间为128MB。图5中两幅图应用线性传输函数进行体绘制,表面采用Marchingcubes算法提取,并采用OpenGL表面绘制方法渲染,同时在体绘制和面绘制的时候给两幅图加上了不同的感兴趣区域(VOI)和不同的视角,从而可以从不同的角度看清楚内部断面。图中右上角即为三维混合显示窗口,其他3个窗口为体数据的3个切面(横断面、冠状面、矢状面)窗口。从图中可以看出,表面绘制提供了明显
的表面边界渲染,而体绘制体现了内部信息。
表1给出了不同视口下的帧率。从表中可以看出,本文提出的混合可视化方法具有很好的速率,视口大小对绘制速度的影响较小,速率能够保持在一定的数量级上,在交互操作的时候可以实时绘制,能够满足医学应用系统的需要,而传统的体绘制方法在不降低分辨率的情况下无法达到实时交互的要求。
图5 体绘制和面绘制结合绘制效果
表1 混合可视化系统给定视口下的每秒重绘次数视口大小像素76034567003400600330050032004003100
不加面绘制的帧率FPS18172419371437156412
加入面绘制的帧率FPS12151419151618172419
该系统能很好地满足医学图像三维显示的需求,目前已经在计算机辅助手术导航系统、三维影像工作站系统等多个系统中应用,取得了较好的效果。该系统提出了一种面绘制和体绘制的融合显示的方法,如果与三维配准技术结合起来,对CT图等边界明显的图像应用表面显示技术,而对MRI等功能信息丰富的图采用体积显示技术,叠加显示的效果将会更加有助于临床医生获得丰富的信息。
6 结 论
本文研究并实现了一个基于GPU的混合可视化系统,该系统采用了最新的三维图像显示技术,并可作为医学图像处理系统的二次开发工具,主要包括以下内容:
(1)实现了基于三维纹理硬件的直接体绘制方法,不仅大大提高了绘制速度,而且利用图形卡的可编程功能实现了插值后分类算法,同时采用纹理依赖技术实现了传输函数的实时修改。
(2)基于场景图结构设计了面绘制部分各个节点及其连接,有效地实现了医学三维图像的三维显示和组织管理。
(3)在上述基础上提出了面绘制和体绘制相结合显示的方法,获得了比较好的实验结果。
参考文献:
[1] 石教英,蔡文立.科学计算可视化算法与系统[M].北
京:科学出版社,1996:1532154.
[2] KreegerKA,KaufmanAE.Mixingtranslucent
polygonswithvolumes[C]ProceedingsofConfer2
99.SanFrancisco,USA:CA,enceonVisualization′1999:1912525.
[3] 裘初,费广正,石民勇.可编程图形硬件综述[J].北京
广播学院学报:自然科学版,2004,11(3):13219.
[4] WestermannR,ErtlT.Efficientlyusinggraphics
hardwareinvolumerenderingapplications[C]
ComputerGraphics,ProceedingsofSIGGRAPH98.NewYork:ACMPress,1998:1692177.
[5] EngelK,KrausM,ErtlT.High2qualitypre2inte2
gratedvolumerenderingusinghardware2accelerated
ProceedingsoftheACMSIG2pixelshading[C]
第4期唐 慧,等:基于GPU的三维医学图像混合可视化系统433
GRAPHEUROGRAPHICSWorkshoponGraphics01.NewYork:ACMPress,2001:9216.hardware′
[6] RoettgerS,GutheS,WeiskopfD,etal.
Smart
[9] DollnerJ,HinrichsK.Agenericrenderingsystem
[J].
IEEETransactionsonVisualizationandCom2puterGraphics,2002,8(2):992118.
[10]唐慧,杨奎,鲍旭东.医学三维图像显示平台的开发与
IEEEhardware2acceleratedvolumerendering[C]
03,ACMTCVGSymposiumonDataVisualization′.Greno2InternationalConferenceProceedingsSeries
ble,France:EurographicsAssociation,2003:2312238.
[7] 唐泽圣.三维数据场可视化[M].1版.北京:清华大
研究[J].计算机工程与应用,2006,42(3):2122214.作者简介:唐 慧(19812),女,博士研究生,研究方向:计算机图形学与科学可视化、医学图像处理等,E2mail:corinna
@seu.edu.cn;周正东(19692),男,博士,讲师,研究方向:医学物理、计算机辅助诊断与治疗、图像处理与科学可视化等;鲍旭东(19652),男,教授,硕士生导师,研究方向:医学成像、计算机辅助诊断和治疗、医学图像处理等;罗立民
(19562),男,教授,博士生导师,研究方向:医学成像、科学
学出版社,1999.
[8] LorensenWE,ClineHE.Marchingcubes:ahigh
resolution3Dsurfaceconstructionalgorithm[J].ACMSIGGRAPHComputerGraphics,1987,21(4):1632169.
可视化、图像分析、医学图像处理、立体定向放射治疗等。
因篇幅问题不能全部显示,请点此查看更多更全内容