研究 | CT图像迭代重建算法研究进展

news/2024/5/17 12:11:59/文章来源:https://blog.csdn.net/weixin_44603934/article/details/128201182

上次讲到我实现了一下代数迭代重建(ART),到周六开会的时候才大概了解了我的研究方向应该是统计迭代重建,一下子就把我给搞懵了。按照书上的说法,统计迭代法是在发射型CT(SPECT和PET)中应用广泛,可我做的是透射型CT啊,还是了解的太少了。加上老师布置了写个Introduction的任务,这周的主要工作就是在各种查资料找文献。但是却始终有种雾里看花的感觉,连自己到底应该往哪个方向走都不知道。今天就是想对这几天看的资料做个总结,试图厘清CT迭代重建算法的发展脉络。任务艰巨,我们都有幸看到这篇推文。

上一次讲到CT的FPB算法及它的各种变种,在早期的商业CT重建算法中,FPB一直占据着霸主地位。关于算法的研究包括对运动的克服,以及在成像过程中修复物理学、仪器、病人和数学方面的不完善等。其实早在70年代,在开发第一代EMI(EMI如果大家不太熟悉的话,它的另一个名字-百代,大家应该听过,就是管理披头士乐队的公司,很难想象两者居然还能有联系。虽然有Hounsfield这样的天才,但是后来EMI在医疗设备的竞争包括创新和营销都比不过西门子、GE和东芝。大部分的创新都是递增的,而不是革命性的,而天才在向前发展中也许并不重要)原型机上,Hounsfield使用的就是一种宽松的迭代重建算法。但是受当时计算机计算能力的限制,无法满足临床应用的需求,于是重建工作转向了FPB。

近年来,由于计算机技术的飞速进步以及CT低剂量的要求,重建算法重新回到研究人员的眼中。迭代重建算法的基本原理是对于某个重建视角,首先在估计的物体图像上通过“前向”投影模拟一个综合投影。这种估计应尽可能地模拟真实CT系统中X射线光子穿过物体并到达探测器的过程。第二步是将综合投影与探测器采集的实际测量值进行比较,误差用于对当前估计得到的图像进行校正。对校正后的图像再次进行迭代,直到误差降为最低得到最终的重建图像。迭代重建算法的优点是:首先,它们允许对X射线源和探测器进行建模,这可以提高重建精度和空间分辨率。其次,光子统计学很容易被考虑,允许算法更多考虑低噪声的投影,降低高噪声的投影,从而减少伪影,提高剂量效率。第三,关于物理物体的一般真实假设,如物体除边缘外倾向于平滑变化,IR算法减少图像噪声,同时保持解剖边界的清晰度。最后,IR算法可以很容易地处理非传统的扫描几何学,例如当数据不是以轴向或螺旋形轨迹获取时。

迭代算法分类

 迭代算法大概可以分为四类:

(1)   只在图像空间中迭代(图像修复算法)

如西门子的IRIS(iterativereconstruction in image space),对FPB重建的图像根据噪声模型进行迭代滤波,以降低噪声和伪影。但是具有FPB算法的局限性,包括要求完备的投影数据以及对统计噪声的忽略等。

(2)   只在投影数据空间中迭代(正弦图修复算法)

如GE的ASiR(adaptive statistical iterative reconstruction),对FPB重建的图像做基于统计的、考虑到光子与电子噪声的理想噪声模型校正,再将校正之后的图像正投影后用于更新原始投影数据,如此进行多次迭代计算,获得最终的图像。因为只考虑了噪声模型,而没有结合CT系统细节模型有一定的局限性,可能丧失一部分空间分辨率和边界锐利度。

(3)   在两个空间中迭代(正弦图和图像修复)

如佳能的AIDR(adaptiveiterative dose reduction),可以分别结合光子统计模型,CT系统细节模型和物体模型。

(4)   在两个空间中进行多次正向和反向推算的完全迭代(完全迭代算法)

如GE的Veo,对X射束从焦点到探测器的整个光学采集过程建立多个模型,焦点、X射束、体素和探测器的几何形状等因素均被纳入模型。但是模型复杂,计算量大,重建时间长。

这两天一直纠结于弄清楚我的研究到底属于以上四种的哪一种,好像会有多大的不同一样,也不肯静下心来去多多了解些基础,听了几个师兄师姐的分享,恨不得立马就动手实践,还没学会走呢都想着跑了。写这篇推文的时候又仔细看了看老师给的书,才发现第一遍看的时候遗漏了些东西,又有新收获

 投影矩阵

接下来说一下系统矩阵(即正/反投影运算模型)的确定。系统模型对CT迭代图像重建的数值精度和重建图像质量有着重要影响。目前,主流的系统模型主要分为3类:

(1)   像素驱动模型

假设图像像素在像素中心位置,探测器检测到的投影数据值也在探测器的中心位置。正投影:连接光源A与各个像素中心位置B,到达探测器E点,则E点累积B点像素值。把图像中所有像素点对应到探测器上的点,对探测器上的值进行累加则得到投影数据。反投影:已知C、D两点的像素值,插值得到E点像素值,再把E点的值反投影到每个到达E点的像素点上。

这种方法通常用于FBP重建的反投影实现,正投影很少用,因为它会在投影域引入高频伪影。

(2)   射线驱动模型

又分为等分点法和交线长度法。等分点法:如图(b)所示,在射线上等间隔采样一系列点,利用最邻近算法或插值算法计算出射线上各点的像素值,累加得到射线对应的投影值。交线长度法:如图(a)所示,计算射线穿过每个网格的长度,乘上该点像素值再进行累加得到投影值。

射线驱动方法在反投影中很少使用,因为它容易在图像域引入高频伪影。为什么这么说呢?因为相邻射线进过的像素信息及投影大小非常接近,导致在反投影的时候会过度偏向某些角度下的信息而忽略其他角度信息。(我猜的)

(3)   距离驱动模型

如图,连接源点和像素的边界中点交X轴于

,连接探测器与源点交X轴于,和分别表示像素值和投影值。

为了正确模拟线积分,将衰减系数除以投影角度的余弦值,并乘以像素尺寸(不懂什么意思,但是下面的具体计算公式可以看懂)。首先将重建图像作一定角度的旋转,使得在几何关系上射线与Y轴的夹角范围始终在[-45,45]内,然后如前面所说将像素边缘和检测器边缘映射到X轴上,那么,某个像素对某个探测器单元的投影贡献值可用下式计算:

其中,其中,S为该检测器单元的投影值,为当前像素单元的灰度值,t为像素纵向尺寸,α为投影角度,o为图像像素映射到X轴与检测器映射到X轴的重叠部分长度,w为检测器单元映射到X轴的长度,如图所示。

它结合了一种高度顺序的存储器访问模式,算法复杂度相对较低,能够既避免了图像域伪影,又避免了投影域伪影,可以用于正投影和反投影过程。

反正我应该是逃不过投影矩阵的计算了,在之前师姐的讲解中没有涉及到这部分,于是我十分执着于想要弄清我们所说的重建是只在图像空间的迭代(后处理)还是其他的。师姐没讲的话应该是目前的研究热点不在这吧。

迭代求解和最优准则

对于投影数据和图像数据,我们可以用下面的方程来表示它们之间的关系:

其中,p为投影数据,R为系统矩阵,x为图像数据,e为误差。那么,从投影重建图像的问题就可以归结为:根据测量矢量p估计图像矢量x。

现在,让我们来回忆一下用有限项级数去逼近一维函数的问题。理论上,我们可以选择任何正交函数集中的基本函数去逼近一维函数,但是我们常用的就是三角函数,于是我们有以下公式:

那么,我们只要选取适当的系数,就能足够精确地逼近一维函数。在选取系数的时候应满足某些最优准则,如使误差的均方值最小的准则,于是我们可以用以下公式求解系数:

那么,图像重建的过程也可以分为以上三个步骤:

(1)   选择基本图像

(2)   选择最优准则

(3)   求解相应方程得出合适的最佳图像

下面就讲一下最优准则的选取。在实际过程中,我们会有一个主准则,应选取使得主准则的目标函数最小的图像矢量,如果有一个以上的图像使得目标函数最小,那么我们就有副准则来在其中选择使另一个目标函数最小的一个图像矢量。以下是几个常用的最优准则:

(1)   最小二乘方准则

这一准则使得每一条射线由图像生成的射线和与测量值的误差的平方和最小,其目标函数为:

(2)   最大均匀性准则

考虑到一副图像相邻像素间的灰度应该是十分接近的,于是我们有另一个目标函数:

式中,N为不靠边界的像素集合,

为与的3邻域里的其他像素的集合。

(3)   平滑准则

一般说来,一幅图像的灰度变化是比较平缓的,即图像较平滑,所以应使图像的方差最小,于是有第三个目标函数:

可以看出最大均匀性考虑的是局部的均匀情况,而平滑准则则是整幅图像的均匀度,经过一些推导,我们可以得出一个综合前三个准则的目标函数:

这里B写得有些复杂,其实就是3邻域的拉普拉斯算子乘以它的转置,在边界的时候需要注意补零。

(4)   最大熵准则

设已知图像像素值的平均值为

,我们可以有目标函数:

那么像这样的均值为

,且使目标函数最大的矢量x最多有一个。在使用的时候,图像均值是根据投影数据进行估计得到的,考虑覆盖图像区域的一组射线投影值的和就可以求得平均像素。最大熵准则特别适用于投影数据不完全场合。

(5)   贝叶斯准则

图像矢量x和测量矢量p可以看作是随机分布中的样本,令

为在所有可能的图像矢量中矢量为x的概率密度;为在给定图像矢量x的情况下,测量矢量为p的概率;为在给定测量矢量p的情况下,图像矢量为x的概率。根据贝叶斯公式,有:

那么,我们要找的x就是使得

最大的x,称为最大似然x。为了简化,我们假设x和e(误差)都是服从高斯分布的,并且e的期望值为0。通过推导,我们可以得到最大似然x可以通过求解下面的矩阵代数方程得到:

其中,

为x的正定协方差矩阵,为e的协方差矩阵,为x的期望值矢量,I为单位阵。可以证明,最大似然x是使得目标函数取最小值的条件。

其实这个也挺好理解的,本来我们要求一个x使得AX=P,但是本来这个过程中就有噪声的存在,所以我们不可能说使得等式成立。那么,我们就要去寻找最优解,最优解是什么呢?有人认为最小二乘最小的是最优解,有人说这个图像看起来符合期望的是最优解,这就对应了不同的最优化准则的选取。于是,图像重建的过程就成了一个在一定的约束条件下寻找最优解的过程。高数题里大家肯定都碰到过这样的题目,求满足g(x)=0的情况下,f(x)的极值,那会儿也是引入一个,令F(x)=f(x)+g(x),然后求导联立方程组求解。时至今日我才知道这叫拉格朗日乘法。

那么,图像重建的求解过程也可以用同样的方程来表示:

其中,第一项称为保真项,第二项称为惩罚项。于是,在这里面我们看到有几个可以选取的东西:一个是投影矩阵A;一个是||·||范数的选取;一个是正则化参数的选取;一个是惩罚项的选取。不知道该说这里面的东西是大有可为还是说被研究透了。

“匹配的和不匹配的投影运算与反投影运算对”

最后,补充一点曾更生书里的“匹配的和不匹配的投影运算与反投影运算对”。

在离散的情况下,投影运算就是乘以成像矩阵 A 而反投影运算就是乘以转置矩阵 AT。当反投影矩阵是投影矩阵的转置的话,这两个矩阵(或,这两个运算,这两个算子)就称为匹配的。当反投影矩阵不是投影矩阵的转置矩阵的话,这两个矩阵(或,这两个运算,这两个算子)就称为不匹配的。

很显然,在一个迭代算法中,我们不能随便抓一个反投影算子就拿来用。例如,用扇形束的反投影算子来重建平行光束的图像就肯定不行。选择反投影算子的最低要求是先投影再反投影的运算只能让图形变模糊,不能让图形造成畸变,也不能有其它移动(如平移,旋转)。如果一个投影/反投影对施用于一个点源上,其结果只能是在原位置上变得模糊一些而已。

把不匹配的投影/反投影对与匹配的投影/反投影对做个比较,它们对原方程组施加了不同的权函数,进而有不同的噪声效应。它们在采样和数据插值等方面也有不同的性质。这些差别对重建的图像有多大影响,要看具体的成像问题而定。该不该使用不匹配的反投影算子,和使用什么样的反投影算子要具体问题做具体分析。

中间推导我也不想看了,嘿嘿放上来也不是说重要,是我没看它说了个什么,说不定有用呢。

参考文献

1. 研究生熊, 

https://mp.weixin.qq.com/s/MzUqRRuOiIzgUg9YUNFQRg [T], 2021.11.12

2. 赵喜同学, 

https://mp.weixin.qq.com/s/KBCNq7bUIkxZS8827m2sAw[T], 2020.10.18

3.Wyjun0418,https://blog.csdn.net/qq_37806107/article/details/117323493[C], 2021.05.27

4. 鼎湖影像,

https://www.sohu.com/a/444446383_120051781[S], 2021.01.14

5.Achille M.,LuisS., Cynthia H., et al. Stateof the Art in Abdominal CT: The Limits of Iterative Reconstruction Algorithms.Radiology 2019;293(3):491‐503.

6.董继伟, CT迭代重建技术原理及其研究进展[A], 2016,13(10):128-133.

7.庄天戈, CT算法与重建[M],上海: 上海交通大学出版社,1992.

8.曾更生, 医学图像重建入门[M], 高等教育出版社, 2009.

看了这么多文献,也听了两场学术会议,最大的感受就是CT重建算法一定是和硬件相联系的,CT从第一代的平行光束单个探测器平移加旋转到现在应用最广泛的第三代螺旋CT,以及应用价值不大的第四代环状探测器CT和现在最新的双源CT,重建算法肯定也不一样。说实话,很担心做重建算法会脱离实际应用流于表面,不期望说能实际应用,但是还是要有点价值才好吧。来自小白的担忧。

另外,在查找文献的时候发现学校好多数据库的资源都没有购入,包括基础的知网的一些文献,也不知道是不是我没弄对。另外的话,查文献时也碰到好多问题,没检索到自己想要的(要么就是迭代算法在哪哪的临床应用,要么就是什么什么的研究进展)、不知道哪些文献价值高等,居然死在了第一步上,文献检索的课赶紧开吧,救救孩子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_231261.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计勤工俭学管理小程序Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Docker学习4-常用命令之重要的容器命令

本文是Docker学习系列教程中的第四篇。本文是Docker常用命令中的重要命令。为什么说重要呢?因为这些命令,在以后开发过程中,会经常使用到。比如:怎么查看容器中运行的日志?怎么查看容器运行的进程?怎么导出…

【安全测试】渗透测试神器BurpSuite环境搭建

工欲善其事,必先利其器,要想更好的进行安全测试,就需要有一个趁手的工具,BurpSuite就是一个不错的选择,是广大安全测试工程师的必备工具,今天就带着大家把这个工具给装上,开启大家的安全测试之旅…

引擎入门 | Unity UI简介–第2部分(5)

本期我们继续为大家进行Unity UI简介(第二部分)的后续教程 本篇内容 9.设置动画对话框 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第二部分)篇幅较长,分为八篇,本篇为第五篇。 9.设置动画对…

【信息检索与数据挖掘期末复习】(五)Language Model

什么是语言模型? 一个传统的语言生成模型可以用于识别或生成字符串 我们可以将有穷自动机看作是一种确定性的语言模型 基本模型:每一个文档都是通过一个像这样的自动机生成的,只不过这种自动机是有概率的 一种最简单的语言模型等价于一个…

纪念DedeCMS创始人IT柏拉图先生

我是卢松松,点点上面的头像,欢迎关注我哦! IT柏拉图开发了DedeCMS,造福了千万站长,但却没有因为这套系统过上体面的生活。 (图片取自IT柏拉图的新浪微博) 1979年你出生了,比我大…

终于有人把Java面试高分Guide总结得如此系统,堪称傻瓜式笔记总结

纵观今年的技术招聘市场, Java依旧是当仁不让的霸主 !即便遭受 Go等新兴语言不断冲击,依旧岿然不动。究其原因: Java有着极其成熟的生态,这个不用我多说;Java在 运维、可观测性、可监 控性方面都有着非常优…

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018) 一、 背景 为什么要读这篇论文,因为LZ之前要做头部姿态估计,看到一些传统的方法,都是先进行人脸检测,然后再…

Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)

Redis数据结构 1. SDS Redis 是用 C 语言写的,但是对于 Redis 的字符串,却不是 C 语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS&am…

实验7 数据库编程

第1关 定义一个名为PROC_COUNT的无参数存储过程 任务描述 定义一个名为PROC_COUNT的无参数存储过程,查询工程名称中含有“厂”字的工程数量,并调用该存储过程。 相关知识 1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)…

Java ConcurrentHashMap 高并发安全实现原理解析

三、C13Map的字段定义 C13Map的字段定义 //最大容量 private static final int MAXIMUM_CAPACITY 1 << 30; //默认初始容量 private static final int DEFAULT_CAPACITY 16; //数组的最大容量,防止抛出OOM static final int MAX_ARRAY_SIZE Integer.MAX_VALUE -…

linux环境下,一步步教你命令行搭建自己的git服务器和客户端

前言&#xff1a; 先说下我的git服务器环境&#xff0c;git服务端的搭建我用的是阿里的ubantu云服务器&#xff0c;毕竟云服务器上可以在任何联网的电脑上访问嘛&#xff0c;方便。局域网也可以&#xff0c;svn和git这两种最常用的代码管理系统&#xff0c;在企业中基本…

LVGL自定义组件__页面指示器

前言 LVGL对硬件的要求非常低&#xff0c;使用其自带的组件能够搭建出精美的界面&#xff0c;动效也很棒。但是如过移植到Linux平台下&#xff0c;开发稍微复杂的应用项目&#xff0c;那些组件就远远不够用了。为此需要自己自定义一些组件&#xff0c;以方便实用。 效果 为此…

GitHub上架即下架,《分布式系统人人都是架构师》全彩笔记开源

又来给大家分享好书了&#xff1a;高翔龙老师的 《超大流量分布式系统架构解决方案&#xff1a;人人都是架构师2.0》&#xff0c;我在网上没找见开源的PDF版本所以分享一下&#xff01;小编会在文末附电子版免费方式。 高翔龙是谁&#xff1f; 云集基础架构负责人&#xff0c…

Verilog中 高位与低位

Verilog中信号定义位宽的一些问题 总是被Verilog中信号定义位宽的问题所困扰&#xff1a; wire[7:0] data1 和 wire[0:7] data1有什么不一样 wire[7:0] data2[3:0]、wire[7:0] data2[0:3]、wire[0:7] data2[3:0]、wire[0:7] data2[0:3]又分别有什么不一样&#xff1f; 今天下定…

【C++进阶】引用 函数提高

文章目录一 、引用1.1 引用的基本使用1.2 引用的注意事项1.3 引用做函数参数1.4 引用的本质 &#xff1a;指针的常量1.5 常量引用二、函数提高1 函数默认参数2 函数占位参数3 函数重载一 、引用 1.1 引用的基本使用 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型 &a…

TC申请是否需要银行转账记录?

【TC申请是否需要银行转账记录&#xff1f;】 答案是毫无疑问的。 根据TE官网公开的文件CCS Certification Procedures V3.0 里面关于TC申请所需的文件指引E2.1.1f&#xff1a;&#xff08;如图&#xff09; 企业在申请与TE相关的认证项目&#xff08;例如GRS/RCS等等&#xf…

MySQL基础三问:底层逻辑、正在执行、日志观察

背景及目录&#xff1a; 经常面试会遇到且实际工作中也会应用到的三个场景&#xff1a; 一.mysql查询时的底层原理是什么&#xff1f; 二.如何查看正在执行的mysql语句&#xff1f; 三.如何观察mysql运行过程中的日志信息&#xff1f; - - - - - - - - - -分割线- - - - -…

「Redis」07 持久化操作(RDB、AOF)

笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程 Redis——持久化操作&#xff08;RDB、AOF&#xff09; 1. RDB&#xff08;Redis DataBase&#xff09; 概述 RDB是什么 在指定的时间间隔内将内存中的数据集快照写入磁盘&#xff0c; 即 Snapshot 快照&#xff0c;恢…

水文遥测终端(水文遥测终端机)遥测终端机RTU 中小河流水文水雨情自动监测设备

平升电子遥测终端机RTU/水文遥测终端(水文遥测终端机&#xff09;能自动完成对流域或测区内降雨量、蒸发量、水位、流量流速、水质、闸门开度、风向风速、墒情、现场视频/图像等水文数据的采集、存储、控制和传输。设备广泛应用于中小河流、湖泊、水库、地下水的水文监测项目&a…