医学图像重建中常用的迭代求解器分类

在医学图像重建中,迭代求解器的主要任务是高效且稳定地求解带有正则化项的大规模优化问题:

根据目标函数的数学特性(如是否平滑、是否包含复杂的正则化约束)、系统矩阵 的规模与病态程度,以及测量噪声的统计模型,常用的迭代求解器可以系统地分为以下五大类:

1. 针对平滑目标函数的 Krylov 子空间求解器

这类方法主要用于求解无正则化或仅包含 范数(Tikhonov 正则化)的二次优化问题。它们不需要显式存储巨大的系统矩阵,只需要提供计算正向投影()和反向投影()的算子或函数,这在处理高达数 GB 甚至数 TB 的实测系统矩阵时极为关键。

  • CGLS (共轭梯度最小二乘法):

    • 原理: 隐式地对正规方程 求解,避免了直接计算条件数更差的

    • 特点与应用: 收敛速度极快,是求解大规模超定或欠定线性方程组的绝对主力。在系统矩阵相对良态的重建任务中表现优异。

  • LSQR 与 LSMR:

    • 原理: 基于 Golub-Kahan 双对角化过程。LSQR 在数学上等价于 CGLS,但在数值计算上更加稳定;LSMR 则保证了迭代过程中目标函数残差的单调下降。

    • 特点与应用: 当系统矩阵极其病态(ill-conditioned)------例如不同空间位置的点扩展函数(PSF)高度重叠时------LSQR 的截断效应(配合早停法或 Tikhonov 正则化)能有效抑制高频噪声的爆发。在 MATLAB 和 Python (SciPy) 中都有非常成熟的高效实现。

2. 针对非平滑与复杂先验的近端分裂求解器 (Proximal Splitting Methods)

当引入 范数、全变差 (TV) 或字典学习等非平滑正则化项时,目标函数不可导,传统梯度下降法失效。这类求解器通过"算子分裂"的思想,将复杂问题拆解为多个简单的子问题交替求解。

  • FISTA (快速迭代收缩阈值算法):

    • 原理: 结合了梯度下降步和软阈值(Soft-thresholding)近端映射步,并引入了 Nesterov 动量加速,将收敛率从 提升至

    • 特点与应用: 极其适合求解带有稀疏性约束的模型。在基于高分辨率字典学习(Dictionary Learning)的重建,或者信号在某些变换域(如小波域、X-space)具有稀疏性的场景中,FISTA 是效率最高的求解器之一。

  • ADMM (交替方向乘子法):

    • 原理: 通过引入辅助变量和拉格朗日乘子,将原问题分解为多个可以独立并行求解的模块(例如,一个模块处理数据保真,另一个模块处理 TV 降噪)。

    • 特点与应用: 框架极其灵活,是目前多约束图像重建的"瑞士军刀"。特别是在结合深度学习隐式正则化时(即插即用 PnP 框架),ADMM 可以轻松地将神经网络作为其中一个更新步骤嵌入进来。

3. 针对射线投影数据的代数与联立迭代求解器 (ART 族)

这类算法起源于 X 射线断层扫描(CT),它们基于行作用(Row-action)的思想,将系统矩阵的每一行视为高维空间中的一个超平面。

  • ART (代数重建技术) / Kaczmarz 方法:

    • 原理: 每次只取系统矩阵的一行(即一条测量数据),将当前图像沿着该行的法线方向投影到超平面上进行更新。

    • 特点与应用: 初始收敛极快,内存占用极小。但由于每次只考虑局部数据,在含噪情况下容易产生极限环(震荡而不收敛)。

  • SART (联立代数重建技术) / SIRT:

    • 原理: 在更新某个像素时,综合考虑所有穿过该像素的射线投影误差,并进行加权平均。

    • 特点与应用: 相比 ART 更加平滑,能有效抑制斑点噪声。常用于锥束 CT (CBCT) 或角度采样不足的断层成像中。

4. 针对光子计数噪声的统计迭代求解器

在 PET 和 SPECT 等发射型断层成像中,测量数据服从泊松分布(Poisson distribution),最小二乘的 Gaussian 噪声假设不再适用。

  • MLEM (最大似然期望最大化):

    • 原理: 基于泊松似然函数的 EM 算法,在迭代过程中自然保证重建图像像素非负,且总计数守恒。
  • OSEM (有序子集期望最大化):

    • 原理: 将全角度的投影数据划分为多个互不相交的有序子集(Subsets),每次利用一个子集更新图像。

    • 特点与应用: 如果划分为 个子集,OSEM 的单轮收敛速度几乎是 MLEM 的 倍,是目前核医学临床设备中的标准求解器。

5. 结合深度学习的展开型求解器 (Unrolled Solvers)

这是目前计算成像领域最前沿的方向。它不再将求解器视为单纯的数学工具,而是将其结构化为神经网络。

  • 算法展开 (Algorithm Unrolling / Unfolding):

    • 原理: 将上述的 ADMM 或 FISTA 等迭代算法的每一步,映射为深度神经网络的一个层(Layer)。原算法中的迭代步长、阈值参数、甚至线性算子,都转化为网络中可通过反向传播学习的权重。

    • 特点与应用: 例如著名的 ISTA-Net 或 ADMM-Net。它们只需极少的"迭代"次数(即网络层数,通常 5-10 层)就能达到传统算法数百次迭代的精度,在保证物理模型可解释性的同时,极大地满足了极速/实时高分辨率重建的需求。

相关推荐
不熬夜的熬润之2 小时前
KCF算法解析
人工智能·算法·计算机视觉·机器人
CoderCodingNo2 小时前
【CSP】CSP-J 2025真题 | 多边形 luogu-P14360 (相当于GESP六级水平)
开发语言·c++·算法
Magic--2 小时前
【LeetCode 27. 移除元素】C++ 范围 for 极简实现与原理解析
c++·算法·leetcode
A923A2 小时前
【洛谷刷题 | 第九天】
算法·二分·洛谷
旖-旎2 小时前
位运算(只出现一次的数字|||)(5)
c++·算法·leetcode·位运算
AIpanda8882 小时前
数字员工是什么?熊猫智汇在提高销售转化率中的作用有哪些?
算法
源码之家2 小时前
计算机毕业设计:基于Python的美食数据采集可视化系统 Django框架 Scrapy爬虫 可视化 数据分析 大数据 机器学习 食物 食品(建议收藏)✅
python·算法·机器学习·信息可视化·课程设计
简简单单做算法2 小时前
基于Q-Learning强化学习的小车倒立摆平衡控制系统matlab性能仿真
算法·matlab·强化学习·qlearning·小车倒立摆平衡控制
Book思议-2 小时前
【数据结构】循环与递归:C 语言实现求和与斐波那契数列的两种思路
数据结构·算法·循环与递归