LOADING

加载过慢请开启缓存 浏览器默认开启

CLMorph

VoxelMorph是很经典的无监督学习图像配准,可以用来分割,但效果并不好,因为没有对图像内部结构进行特征提取,无法做到内部的对齐配准,CLMorph解决了这一问题.

从VoxelMorph到CLMorph:核心思路对比解析

一、先回顾:VoxelMorph的核心逻辑(理解CLMorph的基础)

VoxelMorph是无监督医学图像配准的经典框架,其核心思路可概括为“用CNN学变换,用配准误差约束学习”,具体分3步:

  1. 输入与目标:给定“待配准图像(Moving Image)”和“参考图像(Fixed Image)”,目标是学习一个空间变换映射z(即 deformation field,形变场),让“待配准图像经z变换后”与参考图像尽可能对齐。
  2. 网络结构:用一个CNN(编码器+解码器)直接输出变换映射z的参数(如均值μ和方差σ),假设z服从正态分布(概率建模);再通过空间变换网络(STN) ,用z将待配准图像“ warp(扭曲)”到参考图像的坐标系。
  3. 损失约束:仅用两类损失保证配准效果:
    • 重建损失:让“扭曲后的待配准图像”与参考图像像素级相似(如L2损失),确保“对齐精度”;
    • 平滑损失:通过约束变换映射z的概率分布(如KL散度),避免z出现“不光滑的形变”(比如相邻像素形变差异过大,不符合解剖结构的物理连续性)。

VoxelMorph的核心价值是“用数据驱动的CNN替代传统迭代式配准”,实现端到端无监督配准,但它的定位是“配准工具”——若想用它做分割,只能依赖“配准后掩码迁移”的间接逻辑(即把参考图像的分割掩码,用学到的z迁移到待配准图像上),而这个逻辑存在明显短板,这正是CLMorph要解决的问题。

二、CLMorph对VoxelMorph的“痛点诊断”

VoxelMorph用于分割时,最大的问题是“只关注图像层面的对齐,忽略了特征层面的判别性”,具体有两个缺陷:

  1. 特征提取“无区分度”:VoxelMorph的CNN仅为“学习变换映射”服务,提取的特征是“通用的图像特征”,而非“能区分解剖结构的判别性特征”。比如,大脑的“灰质”和“白质”在像素强度上可能接近,VoxelMorph的特征无法有效区分二者,导致配准后迁移的掩码容易“混淆结构”。
  2. 配准与分割的“目标脱节”:VoxelMorph的目标是“让整幅图像对齐”,而非“让关键解剖结构对齐”。比如,配准后可能“背景区域对齐了,但肿瘤、脑室等关键结构没对齐”,最终导致分割掩码迁移后精度不足。

举个通俗的例子:VoxelMorph像“把两张拼图强行拼到一样大”,只看整体轮廓像不像,不看局部拼图块(解剖结构)对不对;而CLMorph要做的是“先教会网络区分拼图块,再拼出和参考图一样的结构”。

三、CLMorph的核心思路:给VoxelMorph加“特征判别力”

CLMorph的本质是“配准框架不变,给特征提取环节加“对比学习”的“眼睛” ”,让网络能“看清解剖结构差异”,最终提升分割精度。其思路可拆解为3个关键步骤,每一步都对应对VoxelMorph的改进:

1. 第一步:用“双编码器”替代VoxelMorph的“单编码器”——为对比学习做准备

VoxelMorph只用一个CNN处理“待配准图像+参考图像”的拼接输入,特征提取是“混在一起学”;而CLMorph用了两个权重共享的Siamese 3D CNN编码器(见下图蓝色、黄色模块):

  • 编码器1:输入“待配准图像x”,输出特征f(x);
  • 编码器2:输入“参考图像y”,输出特征f(y);
  • 权重共享:确保两个编码器用“同一套标准”提取特征(比如对“灰质”的特征定义一致),避免因编码器参数不同导致特征不可比。

这一步的目的是:把x和y的特征分开提取,但用统一标准衡量,为后续“对比二者差异”打基础

2. 第二步:加“对比学习”——让特征能区分解剖结构

这是CLMorph最核心的创新,直接解决VoxelMorph特征无区分度的问题。其逻辑是“让同类结构的特征更像,不同类结构的特征更不像”,具体怎么做?

  • 定义“正负样本”:把“待配准图像x”和“参考图像y”视为“同一解剖结构的不同视角”(正样本对);把数据集中其他任意图像视为“负样本”(比如用另一幅大脑的图像作为x的负样本)。
  • 计算对比损失:通过余弦相似度衡量特征相似度,让f(x)与f(y)的相似度尽可能高(正样本拉近),让f(x)与负样本特征的相似度尽可能低(负样本推开)。

用公式简化理解对比损失的目标:

最大化 sim(f(x),f(y))同时最小化 sim(f(x),f(负样本))

(sim表示余弦相似度,值越大特征越相似)

这一步的作用:强迫编码器学习“解剖结构级的特征”——比如,不管x和y的大脑尺寸、位置有何差异,编码器都会把“灰质”的特征提取成“相似向量”,把“白质”的特征提取成“另一类相似向量”,从而让后续的配准能“精准对齐关键结构”,而非只对齐整体轮廓。

3. 第三步:保留VoxelMorph的“配准-掩码迁移”逻辑,但用“对比后的特征”做配准

CLMorph没有改变VoxelMorph“配准驱动分割”的核心流程,而是用“对比学习优化后的特征”替代了VoxelMorph“无区分度的特征”,具体流程与VoxelMorph一致:

  1. 把对比后的特征f(x)和f(y)拼接,输入解码器,输出变换映射z的参数(μ和σ);
  2. 用STN和z,把“参考图像y的分割掩码”迁移到“待配准图像x”的坐标系,得到x的分割结果;
  3. 保留VoxelMorph的“重建损失+平滑损失”,再加上“对比损失”,形成总损失,约束网络学习。

此时的配准已经不是“盲目对齐整体”,而是“基于解剖结构特征的精准对齐”——因为f(x)和f(y)已经能区分灰质、白质、脑室等结构,解码器学习的z会优先让这些关键结构对齐,最终迁移的掩码自然更精准。

四、一句话总结:CLMorph的思路精髓

如果说VoxelMorph是“用CNN学‘把图像拼对齐’,再用对齐后的掩码做分割”,那么CLMorph就是“先教会CNN‘看清解剖结构’(对比学习),再用‘能看清结构的CNN’学‘把关键结构拼对齐’,最后做分割”——前者是“拼轮廓”,后者是“拼细节”,这就是两者思路的核心差异。

通过这种改进,CLMorph在VoxelMorph的基础上,既保留了“无监督、端到端”的优势,又解决了“特征无区分度”的短板,最终在分割精度上实现了对VoxelMorph的超越(比如LPBA40数据集上,CLMorph的Dice系数0.763显著高于VoxelMorph的约0.71)。