- 文章转自:微信公众号「机器学习炼丹术」
- 作者:炼丹兄(已授权)
- 作者联系方式:微信cyx645016617
- 论文名称:‘Fast Symmetric Diffeomorphic Image Registration with Convolutional Neural Networks’
- 论文链接:arxiv.org/abs/2003.09…
0 综述
1 微分同胚回顾
是表示时间间隔为1的形变场,上图中的x表示形变场,然后形变场加上形变场的速度,就是时间间隔更长的形变场。
根据李代数群论,得到的结论是: ,我们可以从时间间隔为1/4的变形场,推出时间间隔1/2的变形场。
从上一篇文章的代码中我们也可以知道,论文中关于这部分的实现是下面的逻辑,以SYMnet中的T=7为例,是吧每一个时间间隔都划分成了小段。
- 把模型输入的形变场,除以,这样就是所谓的
- 通过得到
- 通过得到
- 最后可以得到
2 模型结构
这个模型的思想是,X和Y两个图片配准,本来是从X到Y的,但是现在我们需要找到X和Y的一个中间态Z,让X配准到Z,然后让Y也配准到Z。
图中的是从X到Y的形变场。
最终推理部分,我们肯定是需要从X配准到Y的。所以我们先用让X配准到中间态Z,然后再用让中间态Z逆向配准到Z。
2.1 FCN
特征提取部分依然是使用U-net(原文中是类似U-net的FCN):
- 网络的输入依然是X和Y两个图片拼接起来的,2通道图片;
- 论文中说,在模型的最后,两层卷积层为5的卷积层被用来生成两个速度场,
- 在后面跟着一个softsign activation
- 然后乘上一个常数c,让速度的范围在[-c,c],论文中给定的c为100,这样对于大的形变是有效的;
- 除了output卷积层,每一个卷积层后面都跟着ReLU激活层。
- 根据微分同胚的那个推论,假如设置的是T=7的话,那么我们最后只需要就可以了。
3 损失函数
- 最主要的损失就是NCC,对于这种图像配准任务来说,这个损失一般都是有的。论文中用的是NCC,也可以使用MSE等
论文中SYMnet模型的loss有:
- 衡量相似性的损失;
- 利用雅各比行列式来代替梯度平滑损失。
3.1 similarity loss
包含两个部分: :
- 。这个很好理解,就是希望X转换成中间态的Z和Y转换成的中间态Z是相同的;
- .这个也好理解,就是希望X转换成的Y和Y转换的X和真实的Y和X是相同的;
其中值得一提的是:
3.2 雅各比行列式损失
作者提出了雅各比行列式损失来代替voxelmorph的smooth grad loss。
这个损失是代替之前的grad smooth loss,更注重局部方向的一致性。使用现有的方法,例如L1或者L2正则对变形场上的梯度进行约束,这种全局正则化会大大降低配准的精度
论文中提出雅各比行列式方法,对估计的变形场施加局部方向的一致性约束
其中的N表示变形场的元素数量,是ReLU激活函数,表示变形场在p位置的雅各比行列式。行列式的定义如下:
代码如下:
def JacboianDet(y_pred, sample_grid):
J = y_pred + sample_grid
dy = J[:, 1:, :-1, :-1, :] - J[:, :-1, :-1, :-1, :]
dx = J[:, :-1, 1:, :-1, :] - J[:, :-1, :-1, :-1, :]
dz = J[:, :-1, :-1, 1:, :] - J[:, :-1, :-1, :-1, :]
Jdet0 = dx[:,:,:,:,0] * (dy[:,:,:,:,1] * dz[:,:,:,:,2] - dy[:,:,:,:,2] * dz[:,:,:,:,1])
Jdet1 = dx[:,:,:,:,1] * (dy[:,:,:,:,0] * dz[:,:,:,:,2] - dy[:,:,:,:,2] * dz[:,:,:,:,0])
Jdet2 = dx[:,:,:,:,2] * (dy[:,:,:,:,0] * dz[:,:,:,:,1] - dy[:,:,:,:,1] * dz[:,:,:,:,0])
Jdet = Jdet0 - Jdet1 + Jdet2
return Jdet
def neg_Jdet_loss(y_pred, sample_grid):
neg_Jdet = -1.0 * JacboianDet(y_pred, sample_grid)
selected_neg_Jdet = F.relu(neg_Jdet)
return torch.mean(selected_neg_Jdet)
It is worth noting that the proposed selective Ja- cobian determinant regularization loss means not to replace the global regularizer. Instead, we utilize both regulariza- tion loss functions in our method to produce smooth and topology-preservation transformations while alleviating the tradeoff between smoothness and registration accuracy.
作者强调,这个雅各比行列式损失,并没有替代之前的全局正则化损失,而是两者并重。
所以下面是L2的梯度正则化损失:
然后为了还增加了magnitude损失,就是确保和有着相同的量级:
所以总的来说,这个SYMnet有四个部分的损失:
4 结果
不出意外,结果也是实现了最好的水准。
文章主打的是雅各比损失,所以专门做了雅各比损失权重不同对最终结果的影响
有意思的是,虽然作者说