基于gpu的快速三维ct迭代重建系统的制作方法

文档序号:10489796阅读:275来源:国知局
基于gpu的快速三维ct迭代重建系统的制作方法
【专利摘要】本发明公开基于GPU的快速三维CT迭代重建系统,包括数据输入模块,预处理模块,正/反投影模块,变量更新模块,迭代终止模块,结果输出模块;数据输入模块主要包括输入投影数据;预处理模块包括对投影数据作相关的预处理,并将处理后的数据以及与重建相关的参数传入到GPU;正/反投影模块进行包括正投影步骤、记录信息步骤和修正步骤、反投影步骤操作,分别计算得到正投影系统矩阵和反投影系统矩;变量更新模块根据反投影结果对当前迭代过程中的变量值进行更新;迭代终止模块包括判断当前迭代是否满足迭代的终止条件;结果输出模块将迭代结果输出。本发明只需计算一次射线与体素的相交情况,减少了计算系统矩阵所需的计算量,加快迭代重建的速度。
【专利说明】
基于GPU的快速三维CT迭代重建系统
技术领域
[0001] 本发明属于X-射线断层成像(CT)技术领域,特别涉及基于GPU的快速三维CT迭代 重建系统。
【背景技术】
[0002] 计算机断层成像技术(Computed Tomography,CT)已经广泛应用于人体组织成像、 工业无损检测等领域。CT重建算法可以分为迭代重建算法和解析重建算法两大类。解析重 建算法的优点是算法简单、重建速度快,缺点是对数据的完备性要求较高,并且投影数据中 的噪声对重建图像的质量影响非常大。相比解析重建算法,迭代重建算法的优点是重建图 像质量高,且适用于各种形式的采集数据,即使是在有限角度投影数据的情况下,也能重建 出较好的图像,典型的迭代算法有SART、I SRA、WLS和EM-ML等。但是由于迭代重建算法计算 量大、收敛速度慢、重建时间长,目前已成为制约其广泛应用的最大瓶颈。
[0003] 迭代重建算法的迭代过程可分解为四个步骤:正投影、修正、反投影和体素更新。 在迭代算法中,与正投影、反投影采用同一驱动方式相比,正投影使用射线驱动方式、反投 影使用体素驱动方式的组合能有效去除环状伪影。因此,在迭代算法中,正投影采用基于射 线的驱动方式计算系统矩阵;而反投影采用基于体素驱动方法计算系统矩阵。两种驱动方 式的区别在于前者只考虑射线穿过体素的密度,后者还需考虑周围的体素对当前射线穿过 的体素的影响。在代码实现过程中,通常将正投影和修正步骤合并,一起进行处理;反投影 和体素更新步骤合并,同时处理。
[0004]在迭代重建算法其中,正投影和反投影的计算量非常大,占迭代重建算法总的计 算量的比例很高,因此提高迭代重建算法的运行速度,关键在于提高正、反投影的计算效 率。其中,求解射线与体素的相交情况占用了正投影和反投影的绝大部分的计算量。对于传 统的方法,正投影和反投影是分别进行的正投影需要确定射线与每个体素的相交情况;在 进行反投影的过程,该操作还得重新进行一次。
[0005] 目前,GPU(图形处理器,英语:Graphics Processing Unit,缩写:GPU)技术的出现 减少了传统迭代算法的运行时间,因为射线驱动方式的正投影和使用体素驱动的反投影是 支持GPU并行加速的。但重建效率依然较低,难以满足重建效率要求高的应用。因此,提出基 于GPU的快速三维CT迭代重建方法和系统,在理论和实际应用中都具有较高的价值。

【发明内容】

[0006] 本发明提出了基于GPU的快速三维CT迭代重建系统,主要是针对传统三维CT迭代 重建所需计算时间长的问题,提高重建效率。
[0007] 本发明通过以下技术方案实现:
[0008] 基于GPU的快速三维CT迭代重建系统,包括数据输入模块,预处理模块,正/反投影 模块,变量更新模块,迭代终止模块,结果输出模块;
[0009] 所述的数据输入模块包括输入投影数据、模体位置和尺寸、旋转中心的位置、射线 源到旋转中心的距离、探测器尺寸、探测器到旋转中心的距离和投影角度;
[0010]所述的预处理模块包括对投影数据作相关的预处理,并将处理后的数据以及与重 建相关的参数传入到GPU;
[0011] 所述的正/反投影模块进行包括正投影步骤、记录信息步骤和修正步骤、反投影步 骤操作,该模块在GPU上实现正投影步骤和反投影步骤,分别计算得到正投影系统矩阵和反 投影系统矩阵,具体包括:首先,选出一部分待计算正投影的射线,通过多线程分别对这些 选中的射线进行正投影,记录每条射线正投影的结果,以及射线与体素相交的信息;然后, 在选中射线的正投影步骤和信息记录步骤完成之后,根据记录的信息进行修正步骤操作和 反投影步骤操作,其中,修正过程只与投影数据和每条射线的正投影有关,根据之前正投影 步骤记录的信息可以得到当前迭代过程中每条射线的投影值,从而可以快速地计算每条射 线的修正后投影值,在反投影过程中,根据之前正投影步骤记录的信息可以快速地得到每 射线穿过体素的位置和长度,从而可以根据每条射线与体素的相交情况,快速地将每条射 线的修正后投影值分配到相交位置处相邻的8个体素上;最后,继续从剩余的射线中选取一 部分射线重复之前的操作,直到所有的射线都被计算过而终止循环;
[0012] 所述的变量更新模块根据反投影结果对当前迭代过程中的变量值进行更新;
[0013] 所述的迭代终止模块包括判断当前迭代是否满足迭代的终止条件,如果满足迭代 的终止条件,终止迭代,输出迭代结果到结果输出模块;否则,继续之前的正/反投影操作和 变量更新操作;
[0014] 所述的结果输出模块包括存储和显示迭代重建后的数据,将迭代结果输出。
[0015] 进一步,所述的正/反投影模块反投影步骤中反投影操作通过多线程操作进行加 速,每个线程都需要分配一块数据来存储各体素的值。
[0016] 本发明与现有技术相比,优点如下:
[0017] 1、正/反投影过程中,只需计算一次射线与体素的相交情况,减少了计算系统矩阵 所需的计算量,加快迭代重建的速度。
[0018] 2、正/反投影模块将正投影步骤和反投影步骤合并,将减少确定射线与体素相交 情况的次数,加快迭代重建的速度。
【附图说明】:
[0019] 下面结合附图对本发明的【具体实施方式】作进一步详细说明。
[0020] 图1是本发明基于GPU的快速三维CT迭代重建方法的具体实施流程图;
[0021 ]图2是本发明正/反投影的具体实施示意图;
[0022]图3是本发明正投影和记录信息的具体实施示意图;
[0023]图4是本发明修正和反投影的具体实施示意图;
[0024]图5是本发明基于GPU的快速三维CT迭代重建系统框图。
【具体实施方式】
[0025]为使本发明实施的目的、特点和优点能够更为明显易懂,下面结合附图对本发明 的具体实施例作详细的说明。
[0026]本发明提供了基于GPU的快速三维CT迭代重建方法和系统,如图5所示,基于GPU的 快速三维CT迭代重建系统100包括数据输入模块I,预处理模块2,正/反投影模块3,变量更 新模块4,迭代终止模块5,结果输出模块6;如图1~图5所示,为该系统的具体实施流程图: [0027]步骤SlOl为数据输入,需要通过CT设备采集投影数据并输入到数据输入模块1,以 及获取该投影数据时的模体位置和尺寸、旋转中心的位置、射线源到旋转中心的距离、探测 器尺寸、探测器到旋转中心的距离和投影角度;
[0028]步骤S102为预处理,预处理模块2对投影数据作相关的预处理,例如,为了降低投 影数据中的噪声,可以对投影数据进行非线性滤波、基于贝叶斯统计理论的滤波;为了克服 重建后图像中的条形伪影、环状伪影、金属伪影和杯形伪影,可以采用基于字典学习、形态 分量分析等新兴的图像处理方法对投影数据进行处理,并将处理后的数据以及与重建相关 的参数传入到GPU,所述处理后的数据以及与重建相关的参数具体指模体位置和尺寸、旋转 中心的位置、射线源到旋转中心的距离、探测器尺寸、探测器到旋转中心的距离和投影角 度,由于这些处理后的数据和参数是在CPU上,这些数据还需传入到GPU上才能使用GPU进行 加速;
[0029] 步骤S103为正/反投影,正/反投影模块3进行包括正投影步骤S301、记录信息步骤 S302和修正步骤S401、反投影步骤S402操作(如图2所示),该模块在GPU上实现正投影步骤 S301和反投影步骤S301,分别计算得到正投影系统矩阵和反投影系统矩阵,如图2、图3、图4 所示,该正/反投影模块3内进行了正投影步骤S301和反投影步骤S401,分别得到正投影系 统矩阵和反投影系统矩阵,具体包括:
[0030]首先,选出一部分待计算正投影的射线,通过多线程分别对这些选中的射线进行 正投影(如图3的S301),记录每条射线正投影的结果,以及射线与体素相交的信息(如图3的 S302),
[0031] 然后,在选中射线的正投影步骤S301和信息记录步骤S302完成之后,根据记录的 信息进行修正步骤S401和反投影步骤S402操作,
[0032]其中,修正过程只与投影数据和每条射线的正投影有关,根据之前正投影步骤记 录的信息可以得到当前迭代过程中每条射线的投影值,从而可以快速地计算每条射线的修 正后投影值,在反投影过程中,根据之前正投影步骤记录的信息可以快速地得到每射线穿 过体素的位置和长度,从而可以根据每条射线与体素的相交情况,快速地将每条射线的修 正后投影值分配到相交位置处相邻的8个体素上,这时的反投影操作避免了重新确定射线 和体素的相交情况,减少了算法的计算量,反投影操作可以通过多线程操作进行加速,但是 同时进行基于体素的操作容易产生"写冲突",每个线程都需要分配一块数据来存储各体素 的值,因此反投影操作不能启用过多的线程,
[0033]最后,继续从剩余的射线中选取一部分射线重复之前的操作,直到所有的射线都 被计算过而终止循环;
[0034]所述的正/反投影模块3中正/反投影过程的修正步骤S401由所使用的具体迭代重 建算法决定,为了明显易懂,以EM-ML算法为例进行详细说明,以下是EM-ML算法的迭代公 式:
[0035]
[0036] 其中,模体内有N个体素,在第k次迭代中,每个体素位置处的剂量值为利用M条 射线照射模体,投影数据为y,在公式中
b正投影过程
1修正因子, 对的值进行修正,将修正后的值进行反投曼
i后利用反投影值更新当前 的xf值,在正投影过程中,使用基于射线的驱动方式计算系统矩阵a^,而反投影过程采用基 于体素的驱动方式计算系统矩阵b^,两种驱动方式的差别在于:射线j穿过体素i的线长度 为1,对于基于射线的驱动方式,值为1和体素i的密度值的乘积;对于基于体素的驱动方 式,bij值为1和1中间位置处对应密度值的乘积,通过对中间位置处周围8个体素的密度值进 行插值得到该密度值,在正/反投影过程中使用非匹配的系统矩阵是为了减少重建图像中 的环状伪影,先计算正投〗
记录每条射线的正投影值和的值及其位置;然后, 计算每条射线的修正因子,在前面两个过程中,可以用多线同时计算多条射线的正投影值 及修正因子(如图3所示);最后,利用插值算法,将修正因子与的乘积赋给体素i及周围其 它7个体素,在反投影过程中同样可以使用多线程进行加速;
[0037]步骤S104为变量更新,变量更新模块4按具体迭代算法所对应的迭代公式更新当 前的#值;
[0038]步骤S105为迭代终止,迭代终止模块5判断当前迭代是否满足迭代的终止条件,如 果满足迭代的终止条件,终止迭代,输出迭代结果到结果输出模块,否则,继续之前的正/反 投影操作和变量更新操作;
[0039] 步骤S106为结果输出,结果输出模块6将迭代结果输出,包括存储和显示迭代重建 后的数据。
[0040] 本发明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
[0041]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干的改进和润饰,这些改进和润饰也 应视为本发明的保护范围。
【主权项】
1. 基于GPU的快速三维CT迭代重建系统,其特征在于:包括数据输入模块,预处理模块, 正/反投影模块,变量更新模块,迭代终止模块,结果输出模块; 所述的数据输入模块包括输入投影数据、模体位置和尺寸、旋转中心的位置、射线源到 旋转中心的距离、探测器尺寸、探测器到旋转中心的距离和投影角度; 所述的预处理模块包括对投影数据作相关的预处理,并将处理后的数据以及与重建相 关的参数传入到GPU; 所述的正/反投影模块进行包括正投影步骤、记录信息步骤和修正步骤、反投影步骤操 作,该模块在GHJ上实现正投影步骤和反投影步骤,分别计算得到正投影系统矩阵和反投影 系统矩阵,具体包括:首先,选出一部分待计算正投影的射线,通过多线程分别对这些选中 的射线进行正投影,记录每条射线正投影的结果,以及射线与体素相交的信息;然后,在选 中射线的正投影步骤和信息记录步骤完成之后,根据记录的信息进行修正步骤操作和反投 影步骤操作,其中,修正过程只与投影数据和每条射线的正投影有关,根据之前正投影步骤 记录的信息可以得到当前迭代过程中每条射线的投影值,从而可以快速地计算每条射线的 修正后投影值,在反投影过程中,根据之前正投影步骤记录的信息可以快速地得到每射线 穿过体素的位置和长度,从而可以根据每条射线与体素的相交情况,快速地将每条射线的 修正后投影值分配到相交位置处相邻的8个体素上;最后,继续从剩余的射线中选取一部分 射线重复之前的操作,直到所有的射线都被计算过而终止循环; 所述的变量更新模块根据反投影结果对当前迭代过程中的变量值进行更新; 所述的迭代终止模块包括判断当前迭代是否满足迭代的终止条件,如果满足迭代的终 止条件,终止迭代,输出迭代结果到结果输出模块;否则,继续之前的正/反投影操作和变量 更新操作; 所述的结果输出模块包括存储和显示迭代重建后的数据,将迭代结果输出。2. 如权利要求1所述的基于GPU的快速三维CT迭代重建系统,其特征在于:所述的正/反 投影模块反投影步骤中反投影操作通过多线程操作进行加速,每个线程都需要分配一块数 据来存储各体素的值。
【文档编号】G06T15/10GK105844690SQ201610216968
【公开日】2016年8月10日
【申请日】2016年3月29日
【发明人】桂志国, 张鹏程, 韩建宁, 尚禹, 杨民, 舒华忠
【申请人】中北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1