基于现代GPU的实时锥束重建算法研究
- 格式:pdf
- 大小:389.42 KB
- 文档页数:6
锥束 CT 的改进 FDK 算法及加速实现
徐月晋;陈梓嘉;骆毅斌;胡洁
【期刊名称】《核电子学与探测技术》
【年(卷),期】2015(035)011
【摘要】锥束CT成像中,FDK重建算法得到广泛应用。
提出一种可以扩大锥束CT旋转轴方向重建体积的FDK方法。
在反投影步骤中,对重建物体的每个体素点被反投影的总次数进行计算,之后进行权重计算,最终得到三维重建图像。
同时,采用CUDA技术,利用GPU对改进的FDK算法进行并行计算加速实现,提高重
建效率。
实验结果表明,改进的FDK算法可以增大重建体积,重建更多物体信息,采用CUDA技术后,速度大幅度提升。
【总页数】4页(P1124-1127)
【作者】徐月晋;陈梓嘉;骆毅斌;胡洁
【作者单位】广州华端科技有限公司,广州510530;南方医科大学生物医学工程
学院医疗仪器研究所,广州510515;广州华端科技有限公司,广州510530;广州
华端科技有限公司,广州510530
【正文语种】中文
【中图分类】TP391.1
【相关文献】
1.一种改进的螺旋锥束FDK算法 [J], 惠苗
2.锥束FDK反投影重建算法的三角函数优化 [J], 刘辉;张权;刘祎;白云蛟;桂志国
3.基于转角增量关系的FDK锥束重建改进算法 [J], 王瑜;欧宗瑛;王峰;郭明恩;宋卫卫
4.基于FDK反投影权重的锥束DSA重建算法 [J], 杨宏成;高欣;张涛
5.基于FDK反投影权重的锥束重建算法及应用 [J], 常艳;雷盼盼;赵永斌;张红涛因版权原因,仅展示原文概要,查看原文内容请购买。
第24卷第s期2004年9月核电子学与探测技术NuclearElectronics&DetectionTechnologyV01.24No.5Sept.2004基于FDK算法的锥束CT重建近似算法性能比较曾凯,陈志强,张丽,赵自然(清华大学工程物理系粒子信息获取与处理国家专业实验室.北京100084)摘要:相比通常的扇束和平行束CT重建,惟束CT有诸多优点(如空间分辨率高,扫描速度快等)。
近似锥柬重建算法理论结构简单,重建速度快,易于实际应用。
对新出现的几种近似锥束重建算法作了简单介绍,并利用这些算法对3DShepp-logan模型的仿真模拟对这些算法的特点作了比较和讨论。
美键词:锥束重建;CT算法}FDK算法中圈分类号:0411.3文献标识码:A文章编号:0258—0934(2004)05—0511—030引言Radon在1917年发表的论文首先提出了物体的Radon变换和Radon反变换公式,1960年Kirillov又在数学上给出了从复杂投影数据重建物体的算法【1]。
基于这些前人的工作Smith[“,Grangeat…和Tuy…在1984年前后分别提出了3种类型的锥束精确重建算法。
至此,奠定了锥束重建算法的理论基础。
后来,研究人员又基于这3种算法发展了多种算法。
但是,由于精确算法的数学复杂及计算量大,很难得到实际应用,因此,同时又有许多理论结构简单的近似算法提出,其中最著名的就是FDK算法“],由于是二维扇柬算法的推广,它比基于三维Radon变化的精确重建算法在数学上简单得多。
而且,在锥角比较小的时候(士4。
间),能够取得比较好的重建效果,有很好的商业应用前景。
近年来出现的多种近似算法都是基于这种算法发展而来的。
1常见近似重建算法介绍1.1Full—Scan和Half—ScanFDK算法收稿日期:2003。
04—10作者简介:曾凯(1980一),男.天津人,清华大学工程物理系硕士生,从事锥束CT重建算法方面的研究。
定步长压缩感知锥束CT重建算法张晓梦;杨宏成;张涛【摘要】针对锥束CT成像系统中投影数据不完全的图像重建问题,提出了一种定步长压缩感知锥束CT重建算法.首先将锥束CT重建问题归结为投影数据均方误差作为数据保真项、全变分作为正则项的无约束优化问题,分析目标函数的Lipschitz 连续性;然后近似计算Lipschitz常数,求出梯度下降步长,利用梯度下降法进行重建;最后对CT投影数据采用联合代数重建算法更新重建图像.在每次迭代过程中调整梯度下降步长,提高重建算法的收敛速度.Shepp-Logan模型的无噪声实验结果表明,该算法的重建图像信噪比分别比联合代数重建算法、自适应最速下降-凸集投影算法、BB梯度投影算法的重建图像信噪比高出13.7728 dB、12.8205 dB、7.3580 dB.仿真试验表明该重建算法提高了收敛速度,同时减少了重建图像的相对误差,极大提高了用少量投影数据重建的图像质量.【期刊名称】《计算机应用》【年(卷),期】2014(034)002【总页数】5页(P553-557)【关键词】压缩感知;定步长;锥束CT;图像重建【作者】张晓梦;杨宏成;张涛【作者单位】中国科学院苏州生物医学工程技术研究所,江苏苏州215163;中国科学院长春光学精密机械与物理研究所,长春130000;中国科学院大学,北京100049;中国科学院苏州生物医学工程技术研究所,江苏苏州215163;中国科学院长春光学精密机械与物理研究所,长春130000;中国科学院大学,北京100049;中国科学院长春光学精密机械与物理研究所,长春130000【正文语种】中文【中图分类】TP301.6计算机断层成像(Computed Tomography, CT)是通过无损方式获取物体内部结构信息的一种医学影像技术。
在数据采集的速度、重建图像分辨率以及剂量利用率等方面,锥束CT优于二维平行束和扇束CT,是CT成像领域内一个活跃的研究方向。
锥束CT的图像分块OSEM重建算法
曾理;冀东江;邹晓兵
【期刊名称】《计算机工程与应用》
【年(卷),期】2007(043)032
【摘要】在计算机断层成像(CT)中,有序子集最大期望值算法(OSEM)能够在较短的时间内重建出高质量的图像.对含有噪声的投影数据,投影旋转分度子集划分的不同会影响到图像的重建质量和收敛速度.针对三维锥束CT情况,研究了一种基于图像分块的变子集OSEM重建方法,该方法将图像空间分割成等大小的图像块,然后在迭代过程中,对于不同的图像块用变化的子集进行图像重建.计算机仿真实验表明:该方法在锥束CT图像重建中,能够在抑制噪声的同时提高重建图像的收敛速度.【总页数】4页(P201-203,248)
【作者】曾理;冀东江;邹晓兵
【作者单位】重庆大学,光电技术及系统教育部重点实验室ICT研究中心,重
庆,400044;重庆大学,数理学院,重庆,400044;重庆大学,数理学院,重庆,400044;重庆大学,数理学院,重庆,400044
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于优化子集顺序的三维OSEM图像重建算法 [J], 孔慧华;潘晋孝;吴琨
2.基于OSEM算法的X射线荧光CT重建算法研究 [J], 刘亚楠
3.OSEM重建算法中几个关键问题的研究 [J], 凌松云;曹文田;包尚联
4.OSEM重建算法及其改进算法的研究和比较 [J], 杨娟;王明泉;石浪;侯慧玲
5.图像重建算法FBP与OSEM在工业CT应用中的对比研究 [J], 贠明凯; 刘力因版权原因,仅展示原文概要,查看原文内容请购买。
GPU中的流体场景实时模拟算法I. 绪论- 研究意义- 研究现状及存在问题- 研究目的和内容II. GPU加速流体模拟- GPU介绍- 流体模拟基础- 流体模拟算法- GPU加速流体模拟III. 流体场景实时模拟算法- 流体碰撞检测算法- 粒子追踪算法- 表面重建算法- 颜色混合算法IV. 实验设计和结果分析- 实验平台及实验设置- 实验结果分析- 性能比较V. 结论和展望- 研究工作总结- 研究成果评价- 发展趋势及展望VI. 参考文献I. 绪论随着计算机科学技术的不断进步,GPU(Graphics Processing Unit,图形处理器)的性能逐步提高,成为计算密集型应用中的一种有效的加速方式。
GPU不仅被用于图形渲染方面,也被应用于科学计算、数据处理等方面。
在流体模拟中,GPU技术也得到了广泛应用,可以显著提高流体模拟的效率和精度。
流体模拟是一个复杂的问题,需要精细的数学模型和高效的计算方法。
流体在真实世界中具有自然流动特性,包括湍流、涡流、流量等,因此在计算流体的运动、变形和特性时需要考虑多种因素。
传统的CPU计算方法在计算大规模的流体问题时会遇到困难,而GPU具有高并行计算能力,可以显著提高流体模拟的速度和精度。
本论文主要研究在GPU上进行流体场景实时模拟算法,包括流体碰撞检测算法、粒子追踪算法、表面重建算法和颜色混合算法。
在这些算法中,GPU技术被充分利用,对流体模拟的速度和效果有极大的提升。
本论文的研究目的是通过GPU加速流体模拟,达到实时模拟的目标,以便应用于游戏开发、虚拟现实等领域。
本论文的结构如下:第二章介绍了GPU加速流体模拟的基础知识和相关算法;第三章详细讨论了流体场景实时模拟算法,包括流体碰撞检测、粒子追踪、表面重建和颜色混合算法;第四章介绍了实验设计和结果分析;第五章总结了研究成果、分析了研究的局限性,并展望了未来的发展方向。
II. GPU加速流体模拟A. GPU介绍GPU是一种专门用来处理图形计算的硬件,相比于CPU,GPU有更多的核心和更高的并行处理能力,能够处理大量的数据并产生高质量的图像。
第3O卷第9期 2010年9月 核电子学与探测技术
Nuclear Electronics&Detection Technology V01.30 No.9
Sept. 2010
基于现代GPU的实时锥束重建算法研究 孙毅刚,孙修宇,张红颖 (中国民航大学航空自动化学院,天津300300)
摘要:FDK算法是一种被广泛应用的小锥角近似三维重建算法,但其运算量大,重建时间长。因 此,本文提出了一种基于现代GPU实现的实时FDK加速算法。该方法充分结合现代GPU设备,通过灵 活有效的并行策略减少反投影所需要的计算量;并利用一种新的基于角度相关性的优化方案进一步提 升该算法的性能。大量实验表明该算法在不牺牲重建质量的前提下可以获得更高的加速性能。 关键词:FDK;图形处理器;锥束重建 中图分类号:TP 391 文献标识码:A 文章编号:0258-0934(2010)09.1260-06
如何提高重建速度是当前锥束CT机研制 中亟待解决的问题之一。近年来,随着GPU技 术的发展,基于GPU实现的锥束重建加速算法 逐渐成为CT研究领域中的一个热门课题 MueUer【l 等人首先给出了基于2D纹理映射的 SART加速算法,Xu 等人基于可编程管线,利 用3D纹理映射技术加速反投影操作,Guorui Yah 等人根据z轴对称性改进了文献[2]中 方法,并将其重建时间减少到5.2 S。尽管利用 传统图形API加速CT重建的方法已经取得了 一定成果,但是这类方法在一定程度上增加了 算法实现的复杂性,给实际开发带来很多困难; 同时相对固定的映射模式降低了这类并行加速 算法的灵活性,无法充分发挥并行运算的优势。 O7年NVIDIA公司推出了基于统一设备构架 (Common United Device Architecture,CUDA)的 GPU。利用CUDA所提供的通用编程技术,重 收稿日期:2009-09-03 基金项目:国家自然科学基金委员会与中国民用航 空总局联合资助项目(60672168);民航总局科技基 金项目(MHRDO7z45)。 作者简介:孙毅刚(1963-),男,山东汶上人,教授,博 士,主要研究方向为CT重建,机场安检研究。 1260 建算法可以被当作普通的多处理器任务在 GPU中执行。ScherlL4 等人正是针对该构架提 出了CUDA-FDK加速算法,并给出了实现该算 法的必要步骤。虽然文献[4]中的加速方法获 得了比传统GPU加速算法更好的加速比,但是 其对算法本身计算复杂度的简化程度不够,并 且与CUDA构架的结合程度不高。因此本文 针对上述不足做了进一步改进,提出了更适用 于CUDA构架的并行加速策略,同时利用三角 函数关系进一步提升该加速算法的性能。与文 献[4]中CUDA—FDK算法相比,本文提出的算 法在不牺牲精度的前提下获得了更显著的加速 比,可以达到实时重建的效果。
1 FDK算法简介 FDK算法 是一种适用于平面圆轨道的 锥束重建算法。该算法属于滤波反投影类近似 算法,在锥角较小的情况下可以获得很好的重 建效果 。 ,并且容易被改进到螺旋轨道上。图 1给出了圆弧轨迹下的全扫描示意图。 FDK重建算法包括如下三个步骤:(1)对 投影数据进行加权处理;(2)对加权后的数据 进行横向一维滤波;(3)对滤波后的数据进行 反投影操作。公式(1)给出了FDK算法的数学 图1 圆形扫描轨迹下的坐标系 表达式。
y,/3):J[
p (13,0( ,y,/3),b(x,,,,z,/3))d] (1) 其中
口( ,),, )=尺 (2)
,y,z,卢)=z南(3) U( ,Y, )=R+Yr(x,y,/3) (4) rr(x,y,/3)=一xsin/3+ycos/3 (5) Yr(x,Y,JB):xcos/3+ysin/3 (6)
6)=( ,/R a丽b + +
P (JB,a,6)) (n) (7) 上述公式中 ( ,y, )表示待重建的图 像; 表示在投影角度/3下的投影数据; (a) D 表示滤波函数;_ 兰L_ 表示预加权因子; √ ‘
+口‘+b
P 是经过预加权和滤波后的数据;( ,Y,z)表 示笛卡尔坐标系中的坐标;(a,b)表示虚拟探 测器平面坐标系下的坐标。从上述公式可以看 出,FDK算法的时间复杂度为O( ),随着图 像尺寸增大,该算法将消耗大量时间。但是对 于不同待重建点来说,其重建过程相对独立,这 为该过程的并行化提供了可能。因此,本文把 待重建点作为线程划分的基本依据并结合目前 最新型的CUDA构架,提出了一种基于现代 GPU实现的实时FDK加速算法。 2基于现代GPU的FDK算法 与传统GPU加速算法不同,CUDA类加速 算法 可以更合理地划分FDK算法的实现步 骤;并且对于该重建过程中的不同阶段采取与 之相适应的并行加速策略。但是文献[4]对 FDK算法本身计算复杂度的简化程度不够,并 且与CUDA构架的结合程度不高。本文针对 上述两点不足做了充分的改进,提出了更高效 的CUDA—FDK加速算法。该算法的实现可以 简单分成预处理(数据传输,加权和滤波)和反 投影两个步骤。 2.1 GPU加速预处理 三维CT重建通常需要大量的投影数据。 而当今主流GPU的显存容量并不足以用来同 时保存待重建图像和投影数据,并且GPU设备 与主机间的数据传输的速度较慢。因此如何有 效利用GPU设备内存成为首先要解决的内容。 本文采用了基于待重建图像的数据分配方式, 即首先在GPU的全局内存中开辟待重建图像 的存储空间;然后将投影数据批量传输到GPU 上,再根据已有投影数据对目标对象进行部分 重建;待所有重建操作完毕后再将重建好的图 像一并传输回主机或直接通过OPENGL等图 形API在显示器上显示。这种数据存储方式可 以与后文提出的并行策略有效地结合,从而获 得更高的加速性能。 在预加权和滤波过程中,本文改进了文献 [4]中所提出的两行同时滤波方案,将投影数 据中的两行实数数据合并成一行复数数据,利 用CUFF1"库 进行傅里叶变换与反变换操作。 在GPU设备中,一次数据访问往往需要上百个 时钟周期,这远大于流处理器进行普通运算所 花费的时间。但是在CUDA构架中,上述两种 操作是可以并发执行的。因此本文并没有单独 处理预加权过程,而是提出在数据合并的同时 对投影数据进行预加权处理。利用每个合并过 程中所需要的三次访存操作来掩盖预加权操作 的时间消耗。 2.2 GPU加速反投影 本文采取基于体素点的反投影方案,并以 体素点的z轴相关性作为线程划分的依据。 在这种方案下,并发的一组线程需要对经过预 处理的数据进行多次非线性拾取,这会造成 CUDA构架中访问冲突现象的发生,增加不必 要的访存等待时间。不过在另一方面,反投影 操作只会对上述数据进行只读访问。正是基于 这点,本文首先将经过预处理的数据绑定到二 1 261 维纹理内存上,利用纹理内存良好的全局随机 访问性能和硬件优化过的二维寻址系统加速对 数据的拾取和插值操作。 与文献[4]中的并行加速策略不同,本文 提出的并行策略可以更充分地利用体素点之间 的Z轴相关性简化运算;并且与CUDA构架结 合得更加紧密,同时便于拓展。图2给出了该 策略所采用的线程划分方式。
图2本文提出的线程划分方式 本文按照图2所示,根据栅格化后的x.Y 平面将重建任务划分成多个线程块。线程块中 的线程各自完成对应Z轴上一系列点的重建任 务。通过公式(3)可以得出同一线程内各点之 间的z轴相关性的数学表达式: 6( o,Yo, 1, )=6( 0,Yo, 0, )
.L 墨 ^ 。 ( 0,Yo,JB)
其中 =Z0+az (8) 上文中给出的这种并行加速策略不仅简化 了FDK算法本身的计算复杂度,同时有效地结 合了CUDA构架的相关特性,具有如下4个特 点: (1)单一线程内的待重建点拥有相同的 , Y和a值,并且只需利用公式(3)计算一次体素 点对应的b值,然后利用公式(8)简化线程内 其他体素点b值计算,同时线程之间相互独立 不需要额外通信消耗。 (2)虽然线程块内线程对预处理后数据的 拾取和插值仍然是非线性的,但是其访问具有 方向一致性。这种一致性可以保证对纹理缓存 的充分利用,加快访问速度。 (3)线程内的连续访存操作可以与索引计 算并发执行,利用访存时间来掩盖大量索引计 算时间。 (4)在CUDA构架中,算法的性能会受到 1 262
Block(o,o】 多方面因素影响,单一线程对寄存器的消耗量 就是其中的重要指标之一。通过最大化线程内 的公共变量以及应用公式(8),本文提出的算 法可以最小限度地使用寄存器,从而获得更高 的运行效率。 2.3 GPU加速反投影的进一步优化 由于上述加速策略对索引计算的有效掩 盖,使得内存访问变成反投影过程中消耗时间 最多的操作。因此,如何通过减少访存次数以 获得更高加速比成为当前要解决的最大问题。 基于这点,本文提出在一次反投影过程中同时 将多组预处理后的数据绑定到2D纹理内存 中,从多个角度下同时重建物体。并将所得到 的中间结果存放到GPU的片上资源中,通过这 种方法减少访存次数和kernel的启动次数。然 而单一地增加线程内的计算复杂度势必会导致 算法对GPU资源过度消耗,从而限制算法性能 的发挥。因此,本文利用三角关系进一步优化 资源使用率,并简化索引运算。 在GPU中,一个三角函数的运算需要32 个时钟周期,而一个乘加运算只需要4个时钟 周期。所以可以通过公式(9)来简化三角函数 运算。 cos( )=cos( 0)cos( 1)一sin( ̄o)sin(fl】) sin( )=sin( )oo ̄(p )+c0s( )s ( ) (9)