4. 迭代重建基础与代数方法
解析重建(FBP)把投影数据视为连续 Radon 变换的采样,通过滤波反投影一次性求出图像。迭代重建则把成像问题写成线性方程组 Ax = b:x 是待求的 N 维像素向量,b 是 M 维投影测量向量,A 是 M×N 的系统矩阵,元素 a_ij 表示第 j 个像素对第 i 条射线的贡献(即射线穿过该像素的路径长度)。迭代法从一个初始图像出发,反复用当前估计做前投影、与实测投影比较、再把误差反投影回去修正图像,直到满足收敛条件。它的优势在于:可以在迭代中引入噪声统计模型、非负约束、先验正则,因而在低剂量、稀疏视角、金属伪影等病态条件下通常优于 FBP。
Kaczmarz 迭代与 ART
Kaczmarz 方法是最基础的代数迭代格式。它每次只取一个方程(一条射线),把当前解投影到该方程对应的超平面上:
x^(k+1) = x^(k) + λ · (b_i − a_i·x^(k)) / ||a_i||² · a_i^T
其中 a_i 是系统矩阵第 i 行,b_i 是第 i 条射线的测量值,λ 是松弛因子。ART(Algebraic Reconstruction Technique)就是按射线逐条更新的 Kaczmarz 迭代。它的几何含义是:每次修正只让当前图像满足一条射线的投影约束,逐条扫过全部射线称为一轮(one sweep)。ART 收敛快,但结果对射线访问顺序敏感,且噪声下容易震荡。
SIRT 与 SART
SIRT(Simultaneous Iterative Reconstruction Technique)把一轮内所有射线的修正量先累加、再统一更新,等价于对全部方程做一次最小二乘梯度下降:
x^(k+1) = x^(k) + λ · C · A^T · R · (b − A·x^(k))
其中 R 是按射线归一化的对角矩阵(通常取 1/行和),C 是按像素归一化的对角矩阵(通常取 1/列和)。SIRT 每轮只更新一次,稳定性好、噪声抑制强,但收敛慢,且趋于平滑、丢失细节。SART(Simultaneous Algebraic Reconstruction Technique)是折中方案:把投影按固定角度分块,块内所有射线同时更新(类似 SIRT),块间顺序推进(类似 ART)。它兼顾了 ART 的收敛速度和 SIRT 的抗噪能力,是工程中最常用的代数迭代格式之一。
松弛因子与收敛性
松弛因子 λ 控制每次修正的步长。λ 过大,迭代会在真解附近来回跳甚至发散;λ 过小,收敛极慢。对 Kaczmarz/ART,理论上 0 < λ < 2 可保证收敛(在无噪声、相容方程组下),工程中常取 0.1~1.0;SIRT 的稳定区间更宽,常取 0.5~2.0。收敛判据一般用相邻两轮图像的相对变化或投影残差范数:
||x^(k+1) − x^(k)|| / ||x^(k)|| < ε 或 ||b − A·x^(k)|| / ||b|| < ε
典型 ε 取 1e-3 ~ 1e-4。需要注意:迭代法在噪声数据下并非收敛到真解,而是先逼近真解、随后被噪声主导而恶化,因此实际中常采用“早停”(early stopping)——在残差下降到某个平台前停止,或结合正则化项抑制噪声放大。
投影与反投影算子的实现
迭代重建的性能瓶颈在 A 和 A^T 的反复作用。工程上不显式存储 M×N 的 A,而是用“前投影”和“反投影”两个算子按需计算。常用实现有:
- 像素驱动(ray-driven):沿每条射线步进,累加所穿像素的贡献,适合前投影。
- 体素驱动(voxel-driven):对每个像素,找出所有穿过它的射线并累加,适合反投影。
- 距离驱动(distance-driven):按射线与像素边界的交叠长度加权,精度高、伪影少,是 CT 中较常用的方案。
实现时要注意:前投影与反投影必须使用同一套几何模型(同一 A),否则迭代不收敛或收敛到错误结果。一个简化的距离驱动前投影伪代码如下:
for each ray i:
for each pixel j crossed by ray i:
w = overlap_length(i, j) # 射线与像素交叠长度
b[i] += w * x[j] # 前投影
# 反投影(A^T):
for each ray i:
r = b_meas[i] - b[i] # 残差
for each pixel j crossed by ray i:
back[j] += w * r / row_sum[i] # 加权反投影
低剂量数据重建对比
低剂量 CT 的投影数据光子数少、噪声重,FBP 会因滤波放大高频噪声而产生明显条纹和斑点。迭代法通过约束和统计模型可显著抑制噪声。以下为教学示例(非实测),在 256×256 图像、180 个视角、加入泊松噪声条件下,各方法的典型表现趋势:
| 方法 | 每轮更新次数 | 噪声抑制 | 细节保持 | 收敛速度 | 典型 λ |
|---|---|---|---|---|---|
| FBP | — | 差 | 好 | 一次完成 | — |
| ART | M(射线数) | 中 | 好 | 快 | 0.1~1.0 |
| SIRT | 1 | 强 | 偏平滑 | 慢 | 0.5~2.0 |
| SART | 块数 | 较强 | 较好 | 较快 | 0.5~1.5 |
实际调参时,可先固定 λ 跑 20~50 轮,观察残差范数曲线:若曲线持续下降后趋于平台,说明接近收敛;若曲线震荡上升,说明 λ 过大或噪声主导,应减小 λ 或提前停止。对 SART,块大小(每块包含的投影角度数)也影响结果:块越小越接近 ART,块越大越接近 SIRT,通常取每块 10°~30° 作为起点。