本文是论文 Adversarial Similarity Network for Evaluating Image Alignment in Deep Learning based Registration(基于深度学习的配准中用相似性对抗网络来评估图像的对齐)的阅读笔记。
一、简介
一般的无监督配准模型是需要指定相似性指标,然后通过神经网络来最大化两幅图像之间的相似性,从而达到配准的目的。常用的相似性指标有平方差(SSD)和互相关(CC)等。但是这些相似性指标不是对所有数据集都适用的。
本文提出了一种基于生成对抗网络(GAN)的无监督配准模型,在训练时不需要 ground-truth,也不需要指定图像之间的相似性度量指标。
上图是该模型与其他模型的配准结果对比示意图,对比 黄色方框中的区域可以看出,本文提出的模型输出结果更接近于 template image。
二、记号
本文中 fixed image 被称为 template image,记作 $T$;moving image 被称为 subject image,记作 $S$;形变场 $\phi$ 就是使得 $S$ 和 $T$ 最相似的形变场,可表示为:
$$
\phi=\arg_\phi\min M(S\circ\phi,T)+Reg(\phi)
$$
其中 $S\circ\phi$ 表示形变场作用在 $S$ 上生成扭曲后的图像,$M(S\circ\phi,T)$ 表示两幅图像的差异性,$Reg(\phi)$ 是正则项,表示形变场 $\phi$ 的平滑性。
在该模型中,生成器是一个配准网络 $R$,它用来预测一个形变场 $\phi$;判别器是一个判别网络 $D$,它用来判断两幅图像之间的相似性概率 $p$,$p\in[0,1]$。
三、网络结构
该网络模型由三部分组成——配准网络、变形转换层和判别网络。
1. 配准网络
采用的是类似于 U-Net 的网络结构,使用三维的 patch 作为输入,图像对 $(S,T)$ 通过配准网络可以得到一个位移向量场(形变场)$\phi$。
2. 变形转换层
根据配准网络预测出的形变场 $\phi$,对图像 $S$ 做变换,得到扭曲后的图像 $S\circ\phi$。
3. 判别网络
判别网络用来判别输入的两个图像块是否相似,并输出一个相似性概率 $p$。
上图是判别网络的结构示意图,每个卷积层后面跟着一个 ReLU 激活函数,并且卷积采用 0 填充的方式。
上图是整个网络的结构示意图。如上图所示,一个变形转换层起到了连接配准网络和判别网络的作用,它可以把配准网络产生的形变场 $\phi$ 和图像 $S$ 作为输入,得到根据形变场扭曲后的图像 $S\circ\phi$ ,再将扭曲后的图像和图像 $T$ 输入到配准网络。输入时,不是输入整幅图像,而是输入大小为 $64\times64\times64$ 的图像块(patch),并得到一个大小为 $24\times24\times24$ 的形变场。
四、训练
1. 判别网络的训练
判别网络的输入有两种,一种是正例(positive case)$P^+$,一种是负例(negative case)$P^-$。正例是预先定义好的已对齐的图像对(即两个相同的图像 $T$ 的图像块),此时判别网络输出的预期值是1,表示这对图像是相似的。负例是从配准网络中产生的尚未配准好的图像对(即一个是图像 $T$ 的图像块,另一个是相同大小的,经过配准后的图像 $S$ 的图像块),此时判别网络输出的预期值为0,表示这对图像是不相似的。正例时判别网络的损失函数为:$L_D(p)=\log(1-p)$,负例时判别网络的损失函数为 $L_D(p)=\log(p)$,$p$ 是判别网络输出的图像对的相似度概率。
理想中的正例中的图像对是完全相似的,但这在现实中是不可能的,因此作者在正例的图像对中加入了扰动,即图像 $S$ 被 $a\cdot S+(1-a)\cdot T$ 代替,其中 $0<a<1$,在开始训练时,设置 $a=0.2$,在后期的训练中设置 $a=0.1$。换句话说,在正例当中,输入一个是图像 $S$ 的一个 patch,另一个是 $a\cdot S+(1-a)\cdot T$ 的一个 patch。
2. 配准网络的训练
因为配准网络产生的图像对属于负例,所以配准相似性损失为:
$$
L_R(p)=\log(1-p),\quad p\in P^-
$$
正则化损失为:
$$
L_{reg}(\phi)=\sum_{v\in \mathbb{R}^3}||\nabla\phi(v)||^2
$$
其中,$v$ 表示体素的位置。
配准网络总损失为配准相似性损失加正则损失,可表示为:
$$
L=L_R(p)+\lambda L_{reg}(\phi)
$$
其中 $\lambda$ 是正则项的权重,在实验中设置为 1。
五、其他设置
优化器是 Adam,学习率初始值设为 0.001,没迭代 50K 次,以 0.5 的权重衰减,当判别网络无法分辨出是正例还是负例时,整个网络的训练就收敛了。
在论文中我有两个地方没搞明白,一个是判别网络的正例和负例,另一个是在判别网络训练时的对正例图像添加的扰动,这两部分等我阅读了相关代码之后再做补充修正。
- 本文作者: 俎志昂
- 本文链接: zuzhiang.cn/2020/03/04/GAN-Registration/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!