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

news2024/12/23 9:30:59

上次讲到我实现了一下代数迭代重建(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.coloradmin.cn/o/65881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WMS系统4.0,仓库管理的20年历史变局你知道吗?

20年之前,中国的仓储物流技术还处于起步阶段,很多时候都是从国外企业的经验中摸索出来的,而高端的技术,依然需要国外企业来完成。 20年过去了,中国庞大的应用场景、庞大的产业、庞大的物料、庞大的商业活动推动着中国的…

如何用Zabbix监控温湿度?Zabbix对接modbus tcp设备实操

背景: 1、公司机房没有专用的温度监控设备,以往是通过snmp功能get服务器的CPU或是主板温度,根据偏差值算出机房的大致温度(温度计值与服务器的差值),可最近研发部门经常在服务器跑高负载任务,导致计算出的环境温度极度…

实验7 数据库编程

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

计算机网络-网络层:IP协议

目录 一、IP协议格式 二、IP地址管理 1.动态地址分配&组建私网 1.1 动态地址分配DHCP 1.2 NAT技术组建私网 2. 早期网络划分方式 3. 当前网络划分方式CIDR方案 4. 特殊IP地址 5. 公网与私网(外网与内网) 6. 路由选择 网络层:负…

JavaScript Date对象中的常用方法有哪些?

JavaScript中的日期对象用来处理日期和时间。例如,秒杀活动中日期的实时显示、时钟效果、在线日历等。下面将对日期对象进行详细讲解。 日期对象的使用 JavaScript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数。在创…

服务访问质量(QoS)介绍与技术 一

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…

【LeetCode每日一题】——1290.二进制链表转整数

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 链表 二【题目难度】 简单 三【题目编号】 1290.二进制链表转整数 四【题目描述】 给你一个单…

Python时间模块之time模块

在项目开发中做功能经常会用到关于时间的操作。比如会员过期的定时任务,一些代码的延迟执行。今天介绍时间模块中的time模块。 目录 1.表示时间的方式: 2.格式化时间中字符的含义: 3.函数转换关系 4.函数介绍及应用 time() localtime() …

10Gb每秒!SM4的单核“心”!海泰携手海量数据安全“闪”护

引言 密码技术是保护网络与信息系统安全的核心技术,已经广泛应用到金融、能源、通信、交通、水利等各行各业,为国家安全和经济发展发挥重要作用。商用密码应用安全性评估(简称密评),是指在釆用商用密码技术、产品和服务…

[附源码]计算机毕业设计汽车租赁管理系统Springboot程序

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

【numpy简介、入门、数组创建】

🤵‍♂️ 个人主页老虎也淘气 个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…

基于jsp+mysql+ssm学生网上请假系统-计算机毕业设计

项目介绍 随着高校招生规模的逐步扩大和教学方式的改革,在校学生人数将不断增加。另一方面,我国高等学校基层学生考核工作的内容杂,管理细,要求高,头绪多,传统的手工档案式管理办法已基本不适应新形势的要…

[附源码]JAVA毕业设计社区管理与服务(系统+LW)

[附源码]JAVA毕业设计社区管理与服务(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&a…

XX集团BIM项目解决方案

目 录 一、BIM发展现状 二、集团BIM建设总体规划(建议) 1、BIM实施目标 2、BIM实施的范围 3、BIM实施原则 4、集团BIM项目组织架构 4.1职能分配 4.2建模组织形式 4.3人员匹配建议 5、集团BIM应用功能架构 5.1 BIM平台对集团管理层面的价值 5…

原来Python自带了数据库,用起来真方便

Python作为数据科学主流语言,被广泛用于数据读存、处理、分析、建模,可以说是无所不能。 数据一般存放在本地文件或者数据库里,之前介绍过如何使用python读取本地文件,也对# PyMySQL、cx_Oracle等数据库连接库做过简单的使用分享…

乾元通多卡聚合通信设备应急指挥车视频图传解决方案

行业现状 1) 不稳定:单一通信链路受运营商网络覆盖影响,不同区域信号强度不一样,无法实现。 2) 网速慢:受基站信号质量及拥塞影响,单路网速较差,高清视频监控等由于网络带宽不够,只能以低画质…

基于jsp+ssm的新生入学报道系统-计算机毕业设计

项目介绍 众多高校为了响应国家的号召,很多管理办法都落实到科学管理,通过计算机来实现对学校的具体管理办法当中,不仅仅促进了学校里计算机系统管理的发展,同时一定程度上加大了对学校的管理力度,数据量的不断增加&a…

Java常问面试题概要答案

文章目录1.JDK、JRE、JVM的区别2.hashcode()与equals()之间的关系3.String、StringBuffer、StringBuilder的区别4.Java泛型5.ArrayList和LinkedList区别6.ConcurrentHashMap7. B树和B树8.负载均衡常见策略1.JDK、JRE、JVM的区别 JDK:java标准开发包,包含…

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

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

数据结构与算法基础-学习-06-线性表之创建循环链表、创建尾指针循环链表、两个尾指针循环链表连接

一、测试环境 名称值cpu12th Gen Intel Core™ i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2gcc 版本4.8.5 20150623 二、个人理解 1、循环链表优点 无论指针指向哪个节点,都可以访问任何一个其他节点。 2、尾指针循环链表优点 同上…