搞过医学图像重建的同行应该都有过这种体验:低剂量CT的投影数据到手,稀疏角度扫描刚开机,直接做解析重建出来的图压根没法看,噪声和条纹伪影互相叠加,软组织边缘像被啃过一样。数学上道理很简单,离散化之后那个方程组天生就是病态的,解不稳定,甚至没有唯一解。解决这个问题的核心手段,就是往目标函数里塞一个正则化项,把解从“数学上合理”拉回“解剖上合理”。
医学图像重建里用到正则化的频率非常高,几乎每个迭代重建算法都离不开它。但如果有人问我“你到底该用哪一类正则化”,很多刚入门的同学反而会愣住——因为大家平时听得最多的就是TV、Tikhonov、小波稀疏,可它们之间的区别、适用场景和调参手感,很少有人系统整理过。这篇内容就围绕常用正则化分类做个梳理,把我实际用下来的经验、踩过的坑一并写出来。不保证看完就能成调参大师,但至少能让你拿到一个新任务时,知道从哪个分类里找方案。
1. 从“无解”到“多解”:重建方程为什么必须加约束
1.1 不完备投影与三个不稳定性
先回到最基础的重建模型。理想情况下,测量过程可以写成 $y = Ax + \varepsilon$,其中 $x$ 是待求图像,$A$ 是系统矩阵,$y$ 是投影数据,$\varepsilon$ 表示噪声。CT、PET、MRI 的迭代重建几乎都长这样。
如果 $A$ 是一个满秩方阵,那直接求逆就行。可惜医学成像里的 $A$ 通常不是良态矩阵:投影角度稀疏时方程数量不够,属于欠定问题,$x$ 有无穷多个解;低剂量时噪声很大,即使是超定问题,直接最小二乘也会把噪声放大得离谱;还有区域截断、金属伪影等因素,会让系统矩阵的条件数变得很差。这三个问题统称病态性,直接导致重建解“不稳定”——测量值稍微变一点点,解就面目全非。
解析重建算法比如滤波反投影(FBP)面对这种情况基本没辙,因为它不建模噪声也不建模先验。迭代重建的优势在于能把“测量数据”和“图像应该长什么样”这两个信息放在同一个目标函数里互相约束。于是正则化项作为第二股力量登场,它惩罚那些虽然能拟合投影数据、但解剖学上不可能的图像。
1.2 目标函数里的λR(x)是怎么从贝叶斯视角自然掉出来的
一个很漂亮的理解方式是从贝叶斯最大后验估计出发。设 $x$ 是需要重建的图像,$y$ 是观测数据。后验概率 $p(x|y)$ 正比于似然 $p(y|x)$ 乘以先验 $p(x)$。对后验取负对数,最大化后验就变成最小化下列目标函数:
$$\hat{x} = \arg\min_x \left( -\log p(y|x) - \log p(x) \right)$$
如果假设噪声是独立高斯分布,$-\log p(y|x)$ 就对应数据保真项 $\frac{1}{2}|Ax-y|_W^2$,其中 $W$ 是加权矩阵,用于体现不同测量值的可靠程度。而 $-\log p(x)$ 正好对应正则化项 $\lambda R(x)$。所谓正则化,本质上就是给解空间加一个概率先验:哪些图像更可能出现,哪些图像几乎不可能出现。
这条推导非常重要,它把各种正则化方法统一到同一个框架里。以后看到任何正则化项,都可以先问一句:它隐含的先验是什么?比如 Tikhonov 正则隐含“梯度的平方和要小”的先验,TV 隐含“图像局部变化要稀疏”的先验。理解了这层关系,再去看后面的分类就会特别清晰。
2. 二次与非二次:按惩罚函数形状分类的第一条分界线
2.1 Tikhonov正则:数学优雅但边缘吃亏
正则化最传统的分类维度之一,是看罚函数本身是二次还是非二次。最具代表性的二次正则就是 Tikhonov 正则,一般写成 $R(x) = |Lx|_2^2$。当 $L$ 取单位矩阵时,它约束像素值的能量;当 $L$ 取差分矩阵或拉普拉斯算子时,它约束图像的一阶或二阶差分的能量。
二次正则最大的优点是数学性质极好。目标函数变成严格的二次凸函数,求导容易,共轭梯度法可以直接求解。如果需要闭式解,还能写成 $(A^TA+\lambda L^TL)^{-1}A^Ty$ 的形式。很多老式迭代重建系统都用它做默认约束,稳定、可控、不容易发散。
但二次惩罚对边缘的态度和噪声一样:梯度大,罚得重;噪声的梯度也不小,同样罚得重。结果就是它分不清“该保留的锐利边界”和“该压平的噪声波动”,于是整体往平滑方向走。把 λ 调大,噪声确实下来了,但器官轮廓也跟着发糊,软组织之间的低对比度边界几乎被抹平。这正是二次正则的软肋。
2.2 TV与势函数:允许大梯度“低价通行”
非二次正则的出发点和二次正好相反。用势函数 $\phi(s)$ 来表示对某种局部特征的惩罚,比较常见的有 $L1$ 范数、总变分(TV)范数,以及 Huber 函数、Fair 函数等光滑近似函数。
以 TV 正则为例,它惩罚的是梯度幅值,但用的是 $\sum_i \sqrt{(D_x x)_i^2 + (D_y x)_i^2}$ 这种形式,而不是梯度幅值的平方。两者的差别很微妙:对一个大梯度边缘,平方惩罚付出 $t^2$ 的代价,TV 只付出 $t$ 的代价;对小梯度噪声,两者都可能付出一定代价。换句话说,TV 对梯度呈“线性收费”,使得强边缘比在二次惩罚下更便宜,于是解更容易保留锐利的器官边界。
这就是“允许大梯度低价通行”的含义。临床诊断最看重解剖结构边界,肺结节边缘、血管壁、骨皮质这些位置一旦模糊,漏诊风险就上来了。这也是为什么在医学图像重建里,非二次、边缘保持的惩罚几乎成了默认选择。
2.3 两类惩罚在重建像上的直观差异
两类惩罚的差异用语言描述可能不够直观,换成人话:二次惩罚像把图像拿砂纸整体打磨,小坑小棱没了,但雕刻的花纹也没了;TV 像只打磨细碎毛刺,主干线条按斜率线性收费,线条还是锋利的。
我试过用同一组低剂量CT投影分别做二次正则和TV重建,λ都调到噪声水平差不多,结果二次重建的软组织区域“肉感”更重,轮廓柔和但边界模糊,而TV重建的血管边缘明显更硬朗,均匀区域里的噪声颗粒感也小。代价则是TV在平滑斜坡区会留下阶梯状伪影,后面会细说。
下表是个简洁的对照:
| 对比维度 | 二次正则(Tikhonov类) | 非二次正则(TV/势函数类) |
|---|---|---|
| 数学凸性 | 强凸,求解友好 | 凸但非光滑,需特殊算法 |
| 边缘保留 | 差,边界发糊 | 好,能保留锐利边界 |
| 典型伪影 | 过度平滑、细节丢失 | 阶梯伪影、块状感 |
| 迭代收敛速度 | 快,常用CG | 较慢,需ADMM/ISTA |
| 适用任务 | 数据噪声温和、要求稳定 | 低剂量/稀疏角度/需要轮廓清晰 |
严格说,L1范数也是非二次也是凸函数,但不可导,属于凸非光滑类;还有一种非凸势函数,比如 $\phi(s)=\frac{|s|^p}{p}$,$0<p<1$ 的超拉普拉斯先验,理论上更能保持锐度,但目标函数非凸,容易陷入局部极小值,实际工程里用的时候要特别小心,不能盲目提锐度。
3. 按约束施加的场域分类:像素、梯度、变换域与自相似域
3.1 图像域直接约束:盯着像素值本身定规则
第二种常用分类方式,是看正则化作用在图像的哪个“域”上。最简单的一类直接把约束加在像素值上,比如对 $x$ 施加 $L2$、$L1$ 或带符号约束。它处理的事情也比较直白:禁止某些像素值出现,或者让图像距离某个参考图太远。
工业界最典型的是先验图像约束。比如做低剂量CT重建时,同一病人可能先有一张常规剂量扫描图作为解剖先验,重建时鼓励当前图像与先验图保持一致,只在病变区域允许差异。这类方法常见于动态成像、双能CT、介入成像延续序列等场景。它的优点是稳定、容易实现,代价是如果先验图本身遇到不匹配(比如呼吸运动、病人移动),就会把误差也带进重建结果,所以实际使用时必须为参考区域设置局部权重,不能无脑拉着整幅图靠近。
3.2 梯度域约束:TV家族与阶梯伪影的代价
作用在梯度域的正则化是应用最广的一类,核心逻辑是:直接约束图像的局部变化模式。TV 就是这一类的代表,它惩罚梯度幅值总和,使图像内部保持分片常数、边界保持锐利。
但用过TV的同学都知道,它有个挥之不去的现象——画出来像一幅“马赛克拼接画”,明明应该是光滑斜面,却被重建出一级一级的台阶。原因在于 TV 偏好分片常数解,而临床解剖里很多结构是连续渐变的,比如软组织密度从T1缓慢过渡到T2,TV认为这种渐变“总变分太大”,宁可把它切成几个常数台阶。
为了解决阶梯伪影,后来涌现了大量TV变体:总广义变分(TGV)引入高阶导数惩罚,把二阶差分也纳入约束,能更好拟合斜坡;高清TV在梯度幅值前乘上边缘加权;还有小波与TV组合的混合正则。实际项目中我不建议一上来就追高阶模型,先做一次标准TV摸清伪影形态,再决定要不要上TGV。病灶细节丢失比伪影更隐蔽也更致命。
3.3 变换域稀疏约束:小波、紧框架与字典学习
第三类是变换域正则化。它的根据是压缩感知理论中的稀疏性原理:自然图像在某个变换基底下的系数大部分接近零,只有少数大系数承载主要结构。如果用这些小系数就能表示图像,那投影数据再少,也有可能精确重建。
实际中常见是小波正则,把 $R(x)$ 写成 $|Wx|_1$ 或 $|Wx|_p^p$,鼓励变换系数稀疏。小波分解能同时分离频带和空间位置,条纹伪影和噪声往往落在某些高频子带里,惩罚起来非常顺手。紧框架稀疏代表如曲波变换、剪切波变换也有人在用,好处是对边缘方向的表示能力比常规小波更强,代价是计算量大不少。
字典学习则更进一步:不再固化一个变换基底,而是从训练图像块中学习出一个过完备字典,让图像在这个字典下的表示尽可能稀疏。这相当于让正则化自己“看着办”。在实际实验中,字典正则重建出来的细节确实比固定小波更锐利,尤其是小结构纹理,但字典训练的时间和内存开销都不小,而且字典退化、原子之间的冗余会导致边际效果递减,参数也更多。作为工程方,我喜欢把它作为TV的补充,而不是直接替代。
3.4 非局部与自相似域:让相似结构跨区域互相作证
以非局部均值(NLM)思想为先导的正则化,彻底改变了“域”的概念。它不再只看局部邻域,而是建立一套全图相似性:图像里每个小块都能在全图范围内找到若干外观相似的其他小块,即使它们相隔很远,也可以互相作为证据来约束重建。
NLM 正则化的常见写法是对像素对施加加权二次惩罚:$R(x)=\sum_i \sum_{j \in \mathcal{N}i} w{ij}(x_i-x_j)^2$。权重 $w_{ij}$ 由两个局部邻域的相似度决定,越相似权重越大。这类正则对结构重复度高的部位效果突出,比如血管断面、肺泡结构、脑沟回纹理。它可以抑制噪声但不牺牲重复性结构的细节。
与非局部思想相关的还有低秩先验。把动态序列或能谱成像的每一帧拉成矩阵的一列,由于不同帧之间的结构高度相关,这个矩阵应当是低秩的。于是 $R(X)=|X|_*$(核范数)就登场了。低秩正则尤其适合动态心肌灌注、能谱CT、四维成像这类“同一部位多次采样”的任务,配合 TV 使用效果很好。不过低秩对运动非常敏感,如果帧间发生了大幅形变,低秩假设就崩,必须配合配准或减少矩阵列跨度的策略。
4. 按先验来源分类:经典手工正则与学习型正则的交接
4.1 经典手工先验为什么还占着出厂默认位置
正则化的第三个分类维度也可以从“先验从哪来”来看。经典方法如 TV、Tikhonov、小波稀疏、NLM 都是人手工设定的通用图像假设,不依赖任何训练数据。好处极其明确:可解释、可证明收敛、好复现,而且不受数据分布影响。拿同样的扫描协议去不同科室、不同厂商设备上跑,确定性模型的参数不会说谎。
因此很多商业化医学影像设备里,出厂默认的迭代重建方案往往不是对某类数据最优的,而是“二次正则打底 + TV调边”的保守组合。这背后是安全性和可解释性的考量:临床部署时,作为算法负责人的压力主要来自“出了偏差能不能定位到原因”,纯学习型方法在这块先天吃亏,所以出厂默认保守。
4.2 学习型正则落地的三种主流姿势
深度学习加入正则化家族之后,分类边界就变得模糊了。严格说现在最火的方向都叫“重建网络”,但它们的正则化作用可以从三个姿势来理解。
第一种是正则项显示学习。直接训练一个能量函数 $R_\theta(x)$,把它当先验项加进目标函数,再通过迭代算法求解。代表性思路包括基于判别式惩罚和生成式先验的能量学习。它的优点是保留传统优化框架,收敛性相对可控,缺点是设计难度大,不容易在工程里直接插拔。
第二种是即插即用(Plug-and-Play)。理论依据是 ADMM 或原始对偶算法可以把迭代拆成两步:一步处理数据项,一步处理正则项,而处理正则项的那一步本质上是在对中间图像做一个去噪操作。既然所以去噪器都能承担这一角色,那为什么不直接把训练好的 CNN 去噪器塞进去当隐式正则?这就是即插即用,非常实用。我试过在一个稀疏角度重建任务里把内部TV去噪子迭代换成经典的神经网络去噪器,重建质量提升明显,而且不需要重新训练端到端网络,投影算子还是传统迭代的,可解释性比端到端重建好太多。
第三种是展开网络(Unrolled Network)。把迭代算法展开成神经网络的结构,每一层对应一次迭代,层里的梯度步长、正则化算子甚至系统模型都用神经网络参数来学习。这种方向被称为“用数据学迭代规则”,上限很高,但训练成本和泛化风险也高,同一套参数换扫描协议后容易出现伪影。
4.3 深度正则的适用边界与设备端现实
关于深度正则,我的体会是要区分“实验室指标”和“临床可用”。实验室里 SSIM 涨零点几很容易,但真正的瓶颈是分布漂移:训练数据出自某品牌设备、某个扫描协议,换一家医院、换一种剂量就垮。因此很多实际项目采用混合策略,比如 TV + 低秩 + CNN 去噪器的复合正则,用TV和低秩来兜底全局稳定性,用CNN去噪器来恢复细节。
设备端现实也不能忽视。深度学习模型推理对显存和时延有硬要求,很多重建工作站还跑不起大型网络;展开网络每层都要过前向和反传,显存开销进一步放大。所以工程选型时必须反问:这台设备允许单次重建时间是多少?有没有GPU?没有GPU的话,轻量CNN在小分辨率块上的加速效果是否值得?这些问题都定下来,再决定深度正则的形态也不迟。
5. 参数标定与迭代工程:正则化真正“能用”的关键
5.1 λ的选取:从网格搜索到L曲线再到χ²准则
正则化参数 $\lambda$ 是数据保真项和先验项之间的天平。$\lambda$ 太小,噪声主导;$\lambda$ 太大,重建结果过度平滑甚至变成一张“标准先验图”。很多新手把算法跑不动的账算在方法头上,其实八成是 $\lambda$ 没调对。
常规做法是网格搜索:固定迭代次数,把 $\lambda$ 按对数间隔取若干个值,在每个值上重建,然后比较 ROI 区域的噪声水平和边缘保持指数。听起来笨,但最可靠。L曲线方法更学术一点,把数据残差 $|Ax-y|_2$ 作为横轴、正则项值 $R(x)$ 作为纵轴,在对数坐标里找拐点,拐点就是均衡点。这个方法很直观,但要求每次迭代都要同时计算出两个值,工程落地时稍微麻烦。
工业界还经常用 Morozov 偏差原理或 $\chi^2$ 准则:如果已知系统噪声水平,就选一个 $\lambda$,使重建后的残差范数约等于噪声的能量期望。这样可以避免人工反复试参,尤其适合自动重建流水线。还有一个我踩过的坑是 $\lambda$ 与数据尺度强相关,换一台探测器、换一个像素尺寸,同样 $\lambda$ 的表现会差很多。强烈建议先把投影数据按最大值归一化,再对 $\lambda$ 进行初次确定,这样得到的 $\lambda$ 至少可以作为后续微调的良好初始值。
5.2 非光滑正则配什么迭代算法更稳
选了非光滑正则之后,迭代算法就绕不开。TV 和 L1 都不是可导函数,不能随便用梯度下降。实际工程中我最常用的是 ADMM 和原始对偶混合梯度法(PDHG)。ADMM 的优势是能把问题拆成“解一个线性最小二乘”和“做一个去噪操作,也就是近端算子”两个子问题,TV 的近端算子可以直接调用现有的 TV 去噪求解器,工程实现非常结构化。
ISRA(图像空间重建算法)这类顺序子集法加 TV 用的也很多,它的思路是每次只更新一个子集,并在更新后做一个 TV 去噪步骤。这里有一个细节我必须提:TV 去噪子迭代的次数不是越多越好。子迭代跑太深,会破坏数据一致性,导致最终重建出现“洗白效应”;跑太少又起不到降噪作用。我的经验是,每轮子迭代控制在5到10次之间,并在每次子迭代后加一个很小的回退系数,让数据项能重新接管图像。
另外一定要盯能量曲线。很多同学只盯最终图像,一旦出现条纹先怪数据,其实看目标函数的总能量曲线就能定位问题。如果能量曲线在后期反复振荡,多半是算法步长太大或者子问题精度不够;如果直接不降,说明保护项实现有问题。
5.3 按重建任务配正则:低剂量CT、稀疏角度、PET与MRI
最后给一个按任务分类的推荐配置,这是我在若干模拟和实际项目中试过、相对稳妥的方案,直接拿去当作起点会省很多时间。
低剂量CT:首选 TV 或 TV+TGV,配合一个很轻的二次差分惩罚来稳稳定;如果要保留纹理细节,可以再加一个小波稀疏项。这么组合的原因是低剂量CT噪声是近似泊松分布,条纹伪影主要沿着投影方向延伸,TV 能快速压掉条纹,二次惩罚负责避免过度阶梯化。
稀疏角度CT:角度越少,欠定程度越高,TV 容易产生严重的卡通化。此时建议加大变换域稀疏权重,或把 NLM 加进来,让结构信息通过自相似性来补充。如果计算资源充裕,字典学习正则 + TV 是细节与伪影之间比较好的折中。我曾用24个投影角模拟过腹部CT重建,单独TV虽然边界锐利但软组织纹理失真严重,加入小波稀疏项后明显更接近全角度参考。
PET低计数:噪声模型更偏泊松,常用惩罚似然重建。可优先考虑带统计权重的二次惩罚,因为它有利于收敛稳定性;但如果病灶边界很重要,TV 或者带保边的二次惩罚(比如基于 Huber 函数)会是更好的选择,同时可以把时间帧之间的低秩信息利用起来。
动态MRI:由于数据在 k 空间采样且时间维度冗余,小波稀疏 + TV + 低秩是常见组合。低秩主要把握时间方向的相位,TV 负责空间域的平滑,小波负责细节。
必须提醒一句:配置只是起点,定量指标不要只看 RMSE 或 SSIM,还要补一个边缘保持指数或对比噪声比(CNR),最好让放射科背景的同事直接看重建切片做盲评。毕竟物理指标全绿而医生觉得没法诊断,那这组参数仍然是不合格的。
正则化分类这件事,说穿了就是把“图像应该长什么样”用数学语言具象化。二次、非二次、像素域、梯度域、变换域、自相似域、手工先验还是学习型先验,分类的维度不同,选型的出发点也不同。我在实际项目里的体会是,不能怀着“找到一种万能正则”的心态去挑方法,而要把每个分类维度当成工具箱里的测量尺,先量清遇到了什么病态问题,再决定上什么约束。加上参数标定和迭代细节这两道工程关口,几乎所有重建项目都能搭出一个稳定、可解释、效果达标的基线方案。