MedGAN——用GAN对医学成像进行迁移

该网络结构的论文是——MedGAN:Medical Image Translation using GANs

MedGAN结构如下图所示:

MedGAN——用GAN对医学成像进行迁移_第1张图片

一、 MedGAN由三部分组成:

1. 生成器(Generator)——选用一个CasNet(Fig.2)做生成器,输入为 y(如PET),输出为 \hat{x}(如CT)。

2. 判别器(Discriminator)——用于区分真实图像 x 和转化图像 \hat{x},同时也是个可训练的特征抽取器,用于计算 感知loss。

3. 特征抽取器(Feature Extractor)——需要预训练,用于抽取深层的丰富的特征V_{i}(\hat{x})来计算风格迁移损失,使得输出与目标的风格、内容、上下文匹配。

        MedGAN框架用Cas- Net作为生成器,通过一个对抗判别器从感知和像素角度进行惩罚,同时使用一个预先训练的特征提取器,以确保转换后的输出在样式、纹理和内容上与所需的目标图像匹配。

        使用VGG-19网络作为特征抽取器,在ImageNet上做预训练。由5个卷积块组成,每个卷积块由2- 4层和3个完全连接的层组成。虽然是在非医学图像上预训练的,但是VGG-19网络提取的特征在表示纹理和样式信息方面是有益的。

MedGAN——用GAN对医学成像进行迁移_第2张图片

二、文中涉及的Loss:

MedGAN的总的loss函数为:

              L_{MedGAN}=L_{cGAN}+\lambda _1L_{perceptual}+\lambda _2L_{style}+\lambda _3L_{content}

1. adversarial loss:

              \underset{G}{min} \underset{D}{max} L_{GAN}= \underset{G}{min} \underset{D}{max} E_{x\sim p_{data}}[logD(x)]+ E_{z\sim p_{noise}}[log(1-D(G(z)))]

      由于图像迁移任务中,原来GAN中的生成器要用cGAN替代,所以对抗损失要重写为:

             \underset{G}{min} \underset{D}{max} L_{cGAN}= \underset{G}{min} \underset{D}{max} E_{x,y}[logD(x,y)]+ E_{z,y}[log(1-D(G(y,z),y))]

      然而,仅仅依赖于对抗性损失并不能产生一致的结果,因为输出的图像可能与所期望的ground truth图像不具有相似的全局结构。所以,会结合一下像素重构损失,计算目标图像与合成图像之间的平均绝对误差(MAE),如L1损失:

                                            L_{L1} = E_{x,y,z }[\left \| x-G(y,z) \right \|_{1}]

所以,最终训练目标为:

                                           \underset{G}{min} \underset{D}{max} L_{GAN}+\lambda L_{L1},      where λ >0

2. Perceptual loss:

      由于像素重构损失会导致生成比较模糊的图像,因此,为了在保证全局一致性的前提下,捕捉表示细节的高频特征之间的差异,我们构造了一个基于判别器器网络的感知损失,并将其作为一个可训练的特征提取器。

      计算感知损失要先计算提取的特征表示之间的MAE:

                           P_{i}(G(y,z),x) = \frac{1}{h_{i}w_{i}d_{i}}\left \| D_{i}(G(y,z),y)-D_{i}(x,y) \right \|_{1}

                                Di:判别器的第 i 个隐藏层的特征表示

                                hi, wi,di:特征空间的height、width、depth

      感知损失计算:

                         L_{perceptual}=\sum_{i=0}^{L}\lambda _{pi}P_{i}(G(y,z),x)

                                 L:判别器隐藏层的个数

                               λpi > 0:表示第 i 层的影响

        此外,为了从感知损失中抽取更多有意义的特征,要使用光谱归一化(spectral normalization)。通过对判别器的每层权重矩阵\Theta _{D,i}进行归一化来实现:

                      \Theta _{D,i} = \Theta _{D,i}/\delta (\Theta _{D,i})          

                               \delta (\Theta _{D,i}):谱范数(spectral norm) 

3. Style transfer losses

        使用一个预训练好的特征抽取器计算风格迁移损失。与判别器相比,预训练神经网络具有更深的层次,是由多个卷积块组成的神经网络。这使得从一个更大的感受野中提取深层丰富的特征,这可以用来增强迁移图像的整体结构和细节。

        风格迁移损失可分为两部分:风格损失(style loss)、内容损失(content loss)

(1)style loss:

         风格损失是用来补偿翻译后的图像与其对应的目标图像在样式表示上的差异。通过计算特征表示在空间范围内的相关性,可以捕捉到风格分布。

         计算风格损失要先计算Gr_{j}(x)

                          Gr_{j}(x)_{m,n}=\frac{1}{h_{j}w_{j}d_{j}}\sum_{h=1}^{h_{j}}\sum_{w=1}^{w_{j}}V_{j}(x)_{h,w,m}V_{j}(x)_{h,w,n}

       Gr_{j}(x):每个卷积块的Gram矩阵,形状为 dj×dj,用于表示特征关联,其元素由在特征图的高、宽上计算内积得到,计算方式如下:

       V_{j,i}(x):表示将输入图像 x 送入特征抽取器后,从第 j 个卷积块的第 i 层抽取的特征图。

       hi, wi,di:特征空间的height、width、depth
       

      风格损失的计算: 对所有卷积块中,变换后的图像G(y, z)与对应的真实图像 x 之间的相关性之差的Frobenius平方模,进行求和,

                        L_{style} = \sum_{j=1}^{B}\lambda _{sj} \frac{1}{4d^{2}_{j}}\left \| Gr_{j}(G(y,z)) - Gr_j(x) \right \|_{F}^{2}

                                           \lambda _{sj}>0:表示每个卷积块的贡献的权重

                                                     B:卷积块的总数。

(2)Content loss:

         内容损失直接影响了从特征提取器网络的隐含层中提取的特征表示之间的差异。然而,与 style loss 相反,content loss 并没有捕获样式或纹理上的差异,但是它通过增强低频分量并确保转换后图像的全局一致性,达到了与像素重建损失类似的目的。内容损失计算:

                       L_{content} = \sum_{j=1}^{B}\lambda _{cj} \frac{1}{h_{j}w_{j}d_{j}}\left \| V_{j}(G(y,z)) - V_j(x) \right \|_{F}^{2}

                                        \lambda _{cj}>0:表示每个卷积块的第一层的影响。

你可能感兴趣的:(医学成像相关)