matlab三维体绘制,基于GPU的医学图像三维重建体绘制技术
综述
1 前⾔逛淘宝
随着医学图像三维重建体绘制技术的发展及其研究的深⼊,医⽣对数据的分析不再局限于简单的观察输出结果,还要求能对结果进⾏友好交互,使最终结果更能满⾜其特定的观察需求。然⽽由于医学数据通常较⼤,对所有数据的重建和交互计算量⾮常⼤,⽬前能达到重建速度快、重建效果好、交互流畅的技术⼀般都是在专业的图形⼯作站上实现。但这些设备通常较为昂贵,⼀定程度上阻碍了三维重建体绘制技术在医学领域的普及。最近⼏年随着图形处理器GPU(Graphics Processing Unit)的⾼速发展,普通PC(Personal Computer)图形硬件可编程性能得到很⼤提⾼,具有可编程管线的GPU可灵活实现各种图形算法,进⾏硬件加速。因此利⽤图形硬件可编程单元对体绘制算法进⾏加速处理,已成为体绘制研究的⼀个热点。
滋润的意思2 体绘制技术
体绘制⽅法是指直接将体数据中的体素投影到屏幕上,其相对于⾯绘制的最⼤区别就是体绘制时体数据中的全部体素都参与了最终图像的渲染,体数据是对局部空间内的数据进⾏采样,这些采样值代表这个
明朝点上⼀个或多个物理特性。⼀般数据场空间都是以有限多个采样来描述,所以体数据包含物体内部的信息是真正的三维实体。
通常情况下,在逻辑上体数据表⽰为⼀个三维的数组空间(见图1),在图中每个元素称为体素,体素也是体数据最⼩的单位,每个体素都在图中对应着相应的⾏号、列号和层号。因为是规则数据场,所以认为所有体数据都是平均分布在x,y,z三个⽅向上,体素之间的距离是相等的。
陈情表翻译如图2所⽰,传递函数的设计是体绘制算法的关键步骤之⼀,传递函数的功能是将⼀个体数据映射成颜⾊、不透明度等光学属性或映射成Phong光照模型的ka、kd、ks等光学模型参数。
注意:上图图2中的的传递函数是⼗分重要的⼀步,因为在直接体绘制中,需要通过传递函数将三维数据的采样点映射成光学参数。传递函数的选择直接决定了绘制的效果,成为体绘制研究的关键。
然⽽传递函数的设计⽐较复杂,现有的算法存在盲⽬性、⽤户界⾯不直观、参数调节复杂等问题。近来对传递函数的研究进展包括⾼维传递函数,基于特征的传递函数等⽅法的提出,⽤于更有效地提⾼绘制的效果。近来⾮真实感绘制(Non-photorealistic Rendering)的⽅法也被⽤于体绘制。
这类⽅法通过边界增强(Boundary Enhancement),剪影(Silhouettes),⽹点模式(Stipple Patterns)等⽅法,强调关注的特征,利⽤艺术化的⽅法,获得特殊的可视化效果。
因为在整个体绘制过程中⼀直⽤到不透明度和颜⾊值,所以如何设计⾼性能的传递函数也是三维重建研究的主要问题之⼀。
体绘制的算法很多,具体实现过程也有所区别,但其基本流程⼤致相同,包括体数据的预处理、分类光照及最终的图像合成(见图3)。
直接体绘制的代表算法主要包括:
①光线投射法(Ray Casting);
②最⼤强度投影算法(Maximum Intensity Projection);
人物的外貌描写
③抛雪球法(Splatting);
④剪切曲变法(Shear-Warp)等。
2.1 光线投射法(Ray Casting)
其中光线投射法(Ray Casting)是图像空间的经典绘制算法,它从投影平⾯的每个点发出投射光线,穿过三维数据场,通过光线⽅程计算衰减后的光线强度并绘制成图像。其绘制质量最⾼,但速度较慢。
2.2 最⼤强度投影算法(Maximum Intensity Projection, MIP)
最⼤强度投影算法(Maximum Intensity Projection, MIP)将数据场内沿着视线⽅向上的采样的最⼤值作为绘制图像相应位置处的像素值,主要⽤于对体数据中⾼灰度值的结构进⾏可视化,常⽤于CT或MRI图像的可视化。通常最⼤强度投影算法不计算明暗信息和深度信息,从⽽导致难以区分投影⽅向,消除这类错觉的通⽤办法是动画显⽰,在观察过程中动态改变视⾓。
臧天朔事件2.3 抛雪球法(Splatting)
抛雪球法(Splatting)也被称为⾜迹表法(Footprint Method),它模仿了雪球被抛到墙壁上所留下的扩散状痕迹的现象。该⽅法以物体空间为序,计算每⼀体素投影的⾼斯函数定义强度分布的影响范围(即⾜迹,Footprint),并加以合成,形成最后的图像。该⽅法可以只选取与图像相关的体素进⾏投射和显⽰,减少体数据的存取数量,且适合并⾏操作。
2.4 剪切曲变法(Shear-Warp)
剪切曲变法(Shear-Warp)由Cameron和Undrill最先提出,经P. Lacroute和M. Levoy推⼴,原理是将三维数据场的投影变换分解为①三维数据场平⾏于切⾯⽅向的错切(Shear)变换和②⼆维图像的曲变(Warp)这两步来实现,从⽽将三维空间的重采样过程转换为⼆维平⾯的过程,⼤⼤减少了计算量,⽬前被认为是CPU上速度最快的⼀种体绘制算法。在预处理时,体素经过不透明度分类和编码,可以在遍历体素和图像的同时略去不透明的图像区域和透明的体素,进⼀步提⾼效率。
提⾼体绘制效率的原则是尽量减少不必要的体素渲染数量。近来发展的技术包括体绘制空区间跳跃(Empty Space Skipping),早期光线终⽌(Early Ray Termination),⼋叉树和BSP空间分割(Octree and BSP Space Subdivision),⾃适应多分辨率(Multiple and Adaptive Resolution),预积分体绘制(Pre-integrated Volume Rendering)等。⽬前的直接体绘制⼴泛地采⽤了图形硬件加速,将三维体数据场中
的数值(以及对应的颜⾊值或光照强度)视作纹理,装载⼊容量⾜够⼤的图形硬件内存,利⽤硬件实现线性插值及图像合成的并⾏运算,从⽽提⾼体绘制效率。早期的图形硬件只⽀持⼆维纹理,因此相应的硬件加速体绘制算法相当于⼆维纹理切⽚的堆栈合成,采样时利⽤⼆维纹理的双线性插值。这类⽅法需要在三个坐标⽅向建⽴三个对应的⽚层堆栈。进⾏绘制时,选择与观察⽅向最垂直的那个⽚层堆栈以获得好的绘制质量。这种⽅法内存消耗⼤,采样困难,⽽且由于缺乏层间插值导致绘制图像的质量不⾼。基于图形硬件三维纹理功能的体绘制技术,主要利⽤硬件的三线性过滤插值能⼒,通过渲染许多个与视线垂直的⾯⽚来重建整个三维结构,每个⾯⽚利⽤三维纹理来决定颜⾊与透明度。这种⽅法得到的效果从本质上讲与光线投射的效果相同。更新的⽅法可以直接利⽤三维纹理在图形硬件上实现光线投射的算法。
3 GPU简介写书法的好处
图形处理器芯⽚、显⽰芯⽚和图像处理芯⽚都可以称为图形处理器(GPU)(见图4),是计算机硬件中显卡的关键部件,其好坏直接影响显卡的性能和档次。过去⼏年,GPU以⼤⼤超过摩尔定律的速度⾼速发展,极⼤提⾼了计算机图形处理的速度和质量,不但促进了图像处理、虚拟现实、计算机仿真等相关应⽤领域的快速发展,也为⼈们利⽤GPU进⾏图形处理以外的通⽤计算提供了良好的运算平台。
小孩的脾气暴躁易怒怎么解决3.1 GPU计算的优点
⾼效的并⾏性。这⼀功能主要是通过GPU多条绘制流⽔线的并⾏计算来体现。在⽬前主流的GPU中,多条流⽔线既可在单⼀控制部件的集中控制下运⾏,也可独⽴运⾏。GPU的顶点处理流⽔线使⽤MIMD⽅式控制,⽚段处理流⽔线使⽤SIMD结构。相对于并⾏机⽽⾔,GPU提供的并⾏性在⼗分廉价的基础上为很多适合在GPU上进⾏处理的应⽤提供了很好的并⾏⽅案。⾼密集的运算。GPU通常具有较⼤内存位宽,因此在计算密集型应⽤⽅⾯具有很好的性能。完善的图形流⽔线。GPU图形流⽔线的设计以吞吐量的最⼤化为⽬标,因此作为数据流并⾏处理机,在对⼤规模的数据流并⾏处理⽅⾯具有明显优势。
3.2 GPU的⼯作原理
⾼效的并⾏性、⾼密集的运算能⼒和完善的图形流⽔线是GPU的优势,尤其⾼度并⾏运算能⼒和快速浮点运算能⼒是GPU的显著特征。这些特征是由其内部微架构决定的(见图5),GPU在计算时可以将数据分成若⼲独⽴的模块,这些模块内部的数据没有逻辑上的关系,每个模块可以独⽴进⾏运算,形成⼤量运算的线程。不同型号的GPU内部有不同数量各⾃独⽴的单元,每个单元都能独⽴处理数据,这些单元使GPU具有并⾏运算的特征。
4 ⼀种基于GPU的体绘制技术
⽬前常⽤的体绘制算法有很多,主要包括光线投影算法、错切变形法、基于硬件3D纹理映射算法等,其中以光线投影算法最为经典,也是最常⽤的算法。本⽂主要阐述⼀种基于GPU的光线投影算法,其计算流程如下(见图6)。
步骤1:计算投影⽅向上体数据的包围盒,并把体数据由内存拷⾄全局存储器。
步骤2:按照投影空间⼤⼩分配线程,将体数据集分割为若⼲线程块,每⼀线程块包含若⼲线程。建⽴线程和光线投射⽅程之间的映射关系,其中每⼀个线程将沿⼀条光线路径进⾏合成计算。
步骤3:沿光线⽅向循环进⾏合成计算,其中每⼀条光线将在独⽴线程下并⾏处理。每次循环时,在每个线程块内部分配两个⼆维共享存储器,分别存储当前层和下⼀层的数据。⾸先判断光线是否穿过物体,如是则将两层体数据从全局存储器拷贝到共享存储器,然后使⽤三线性插值计算出两层数据间所需的采样值,并将其值代⼊数据场分类函数中计算出该点的不透明度。最后,根据光线投射⽅程进
⾏合成计算。
步骤4:根据映射关系将⽣成的数据存储⾄图像空间的全局存储器,拷贝回内存并进⾏显⽰。
5 总结与展望
GPU是专门为图形⽽诞⽣的处理器,拥有独特的存储结构和数据存取⽅式。其⾼度并⾏的计算能⼒以及与CPU相⽐价格⽅⾯的合理性,使得GPU在医学图像三维重建⽅⾯有很⼤的⽤武之地。⽬前,基于GPU的体绘制算法能很好地提⾼重建的速度和质量,在实现实时渲染⽅⾯也有很好的效果。但是与此同时,由于体绘制光线投影绘制算法具有⽣成图像质量⾼计算量⼤的特点,即使采⽤了⾼性能的GPU进⾏硬件加速优化,在体数据规模较⼤时仍难以取得较好的实时性,所以后期还需要各种软件加速的⽅法去优化性能,在加速⽅法的选择以及传递函数的设计⽅⾯都有待进⼀步研究。