首页 > 范文大全 > 正文

基于图形处理器加速光线投射算法的多功能体绘制技术

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于图形处理器加速光线投射算法的多功能体绘制技术范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为克服传统算法中体绘制交互速度不流畅、重建耗时长、绘制效果单一的不足,实现了基于图形处理器(GPU)的光线投射算法用于医学层析图像实时体绘制,并能快速切换不同组织器官的绘制效果。首先,读入医学层析图像到计算机内存,构造体素;然后,设置相应体素属性(如插值方式、着色处理、光照参数)等,设计显示不同组织器官的颜色及不透明度传输函数;最后,GPU加载体素据并进行光线投射算法的计算。实验结果表明,在绘制速度上,GPU加速光线投射算法实现的多功能体绘制技术的绘制速度能达到每秒40帧以上,完全满足临床应用需求。在绘制质量上,用户交互中由于重采样而产生的锯齿现象明显低于CPU端实现的光线投射算法,GPU端与CPU端绘制时间的加速比在9倍左右。

关键词: 图形处理器加速; 层析图像; 光线投射; 体绘制; 传输函数

中图分类号: TP391.41 文献标志码: A

0引言

在传统医疗诊断中,医生根据二维层析图像和多年的阅片经验识别病灶区域,诊断结果附带一定的医生主观判断。医学层析图像三维可视化使得医生能够以一种直观立体的方式从任意角度观察患者的组织结构及病灶区域,有助于医生更准确、更科学地诊断。如何以一种有效方法快速、高质量地实现绘制是本领域现今研究的重点。目前,最常用的体绘制[1]算法为光线投射算法,其绘制质量最高,但计算量非常大,耗时长。在对小数据集绘制时,交互结果基本能达到应用要求[2]。近年来,随着图形处理器(GraphicProcessingUnit,GPU)朝着通用计算模型的发展,其浮点运算能力远远超过了CPU。借助GPU实现医学层析图像三维可视化这种涉及高密度、多线程浮点运算已成为国内外的热点研究领域。Kruger等[3]最先提出了GPU加速的思想,主要是光线提早终止及空间域隔开两种。Espinha等[4]在此基础上,把部分预积分法应用到光线投射算法中,在等值面绘制上,效果得到一定的提高。吴玲达等[5]应用GPU实现了等值面的提取,并应用到电磁环境的三维可视化中。Wang等[6]利用GPU的并行计算实现了医学图像的最大密度投影(MaximumIntensityProjection,MIP)立体绘制。文献[7-8]先后应用八叉树结构对体数据进行优化,以物体空间为序体绘制的空域跳过算法[9]实现了特定数据的快速绘制。蔡勋等[10]对以往GPU体绘制流水线的结构进行深入分析,采用自适应数据划分剔除算法实现了GPU体绘制流水线的优化与预处理加速算法,进一步完善了基于GPU的体绘制算法。在电脑配备多块GPU的情况下,也有多个GPU协同的体绘制[11]。上述方法中,多数是针对特定医学数据,或者特定组织对象(如骨骼)而进行研究。如何对任意大小、任意类型的医学数字成像和通信(DigitalImagingandCommunicationsinMedicine,DICOM)医学数据绘制出多种不同组织显示的效果,是体绘制的重点与难点。针对这些问题,本文通过设计不同的颜色及不透明度传输函数,并应用到光线投射算法中,实现了多种不同功能的体绘制,可快速高效地切换不同的传输函数查看不同的组织器官,不仅绘制质量高,并且交互速度快,能达到实际应用需求。

1GPU加速光线投射算法技术流程

1.1工具选择

借助特定的三维图形接口可编程实现医学影像的体绘制,包括NVIDIA公司的统一计算架构(ComputeUnifiedDeviceArchitecture,CUDA),OpenGL和Kitware公司的可视化工具包(VisualizationToolkit,VTK)[12]。但是若要利用CUDA,必须拥有NVIDIA公司的显卡,其他类型的显卡无法进行基于CUDA的应用程序开发,这限制了它开发的普遍性。OpenGL作为开放图形类库,利用它开发三维可视化软件,必须要求开发人员了解非常多的底层图像相关函数,存在开发难度大、周期长等问题。而VTK作为开源工具包,在三维计算机图形学、图像处理和可视化方面都有非常重要的应用。并且VTK是跨平台、支持并行处理的。VTK从5.6版本开始支持GPU运算,内部集成了OpenGL,具有多种着色器,其内部封装了可视化中比较常用算法,缩短了开发周期,降低了开发门槛,在建筑学、气象学、医学和生物学领域上都有非常广泛地应用。

1.2光线投射算法

光线投射算法是体绘制中的经典算法,由于其绘制出的图像质量最高,因而被广泛研究与应用。其示意图如图1所示。

2.2绘制速度及绘制质量分析

为了不失客观性,本文借助第三方软件Fraps来测试三维重建系统的绘制帧率。图4~5左上角为绘制结果的实时帧率监测,从图中可看出,体绘制结果完全能达到实时交互的目的,速度在40帧/秒以上。当数据量很大时(931张切片,480MB),绘制速度也在20帧/秒左右,满足实际应用需求。图6为光线投射算法在CPU上及在GPU上实现的绘制效果局部放大对比图。图6(a)为CPU交互绘制效果,重建速度只有16帧/秒,并且在放大、缩小和旋转交互的过程中,绘制质量较差,存在较大的锯齿效果。而从图6(b)GPU上的交互绘制效果上可看出绘制质量明显优于CPU上的绘制效果,绘制出的血管非常清晰,并且在交互过程中,重建速度达到了41帧/秒,非常流畅。

数据集1的大小为512×512×931,为颅内肿瘤数据。数据集2的大小为512×512×361,为肾脏数据。数据集3的大小为448×120×576,为头颅MR数据。由于数据的读入部分由CPU端进行,而绘制计算部分由GPU端进行,所以,数据集越大,切片数据越多,读入耗时越大,GPU绘制与CPU绘制的加速比也越大,最高可达9倍。当数据集较小时,CPU端绘制与GPU端绘制耗时差别较小,加速比只在1~3倍。这也说明,GPU在处理大数据集上存在更明显的优势。

3结语

随着医疗成像设备精度的不断发展,所获得的医学影像数据越来越庞大。现阶段,医学图像采集仪器可达到每秒采集10组1024×1024×256的8位三维体数据,即每秒2.5GB数据[13],这种海量数据对计算机的处理能力是一个很大的挑战。针对以往体绘制中绘制、交互速度慢,绘制结果单一的缺点,本文基于经典的光线投射算法,设计并实现了GPU加速的医学层析图像实时多功能体绘制系统。可以对任意大小的DICOM数据集进行不同功能(MIP,VR)的绘制,并且可以通过设置不同的传输函数实现不同的绘制效果。实验结果说明,体绘制效果不仅速度快,而且绘制质量高,能满足科研教学和临床诊断的实际需求,使诊断医师对患者病灶部位有更加直观的认识。

参考文献:

[1]DREBINRA,CARPENTERL,HANRAHANP.Volumerendering[J].ACMSIGGRAPHComputerGraphics,1988,22(4):65-74.

[2]LUX,LIUX,JIAD.ResearchandimplementofthreedimensionalreconstructiontechnologyformedicalimagesbasedonIDL[C]//Proceedingsofthe2012InternationalConferenceonComputerScience&ServiceSystem.Piscataway,NJ:IEEEPress,2012:2317-2321.

[3]KRUGERJ,WESTERMANNR.AccelerationtechniquesforGPUbasedvolumerendering[C]//VIS2003:Proceedingsofthe14thIEEEVisualization2003.Washington,DC:IEEEComputerSociety,2003:38.

[4]ESPINHAR,CELESW.Highqualityhardwarebasedraycastingvolumerenderingusingpartialpreintegration[C]//SIBGRAPI2005:Proceedingsofthe18thIEEEBrazilianSymposiumonComputerGraphicsandImageProcessing.Piscataway,NJ:IEEEPress,2005:273-280.

[5]WUL,YANGC,CHENP.IsosurfaceextractionandrenditionusingGPU[J].ApplicationResearchofComputers,2008,25(11):3468-3476.

[6]WANGXH,GOODWF.RealtimestereographicrenderinganddisplayofmedicalimageswithprogrammableGPUs[J].ComputerizedMedicalImagingandGraphics,2008,32(2):118-123.

[7]SUC,ZHAOM,ZHANGX.GPUaccelerationforoctreevolumerendering[J].JournalofComputerApplications,2008,28(5):1232-1239.

[8]HUANGJ.MedicalimagevolumerenderingresearchandsystemimplementationbasedonGPU[D].Wuhan:HuazhongUniversityofScienceandTechnology,2011.

[9]RUIJTERSD,VILANOVAA.OptimizingGPUvolumerendering[J].JournalofWSCG,2006,14(1/2/3):9-16.

[10]CAIX,ZENGL,WANGP.VolumerenderingpipelineoptimizationandpreprocessaccelerationalgorithmbasedonGPU[J].JournalofSystemSimulation,2011,23(3):511-515.

[11]STUARTJA,CHENCK,MAKL,etal.MultiGPUvolumerenderingusingMapReduce[C]//Proceedingsofthe19thACMInternationalSymposiumonHighPerformanceDistributedComputing.NewYork:ACMPress,2010:841-848.

[12]KITWAREPUBLIC,VTKtutorials[EB/OL].[20130510].http:///Wiki/VTK/Tutorials.

[13]ANAGNOSTOUK,ATHERTONTJ,WATERFALLAE.4DvolumerenderingwiththeShearWarpfactorization[C]//Proceedingsofthe2000IEEESymposiumonVolumeVisualization.NewYork:ACMPress,2000:129-137.