天天看点

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

一、文章情况

文章题目:《Learning Fixed Points in Generative Adversarial Networks: From Image-to-Image Translation to Disease Detection and Localization》

文章下载地址:https://arxiv.org/abs/1908.06965

项目代码 (PyTorch):https://github.com/jlianglab/Fixed-Point-GAN

二、文章导读

这篇文章的主要工作是 针对 StarGAN 进行跨域转换时倾向于进行不必要不相关的变化,以及不能很好地处理同域转换 的问题进行了改进,并在此基础上创新性地 将图像转换拓展应用于 异常的弱监督检测和定位,仅需要图像级的标注。

先上效果图。下图展示了,在 仅进行图像级标注情况下 进行 眼镜的检测定位 和 疾病定位 的任务上,Fixed-Point-GAN 和 当前的SOTA方法【StarGAN,ResNet-50,f-AnoGAN】的效果对比:

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍
【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

可以看出,

  • 对比 StarGAN,Fixed-Point-GAN 不仅在跨域转换上对无关区域的保留上,还是在同域转换上的恒等变换上,效果都要好很多。
  • 对比 f-AnoGAN 的重建效果,Fixed-Point-GAN 也明显好很多。

三、文章详细介绍

GAN 的发展和衍生的同时带来了一个有趣的问题:GAN 能否从图像中删除一个对象(如果存在的话),同时保留图像其余部分的内容?

举个具体的例子,从任意的戴眼镜的人脸图像中将眼镜移除,同时不改变那些没戴眼镜的图像。或者,对一张病人医学图像进行“治疗”。

这个任务看上去简单,实质上提出了下述四点严格要求:

  • 要求1: GAN必须能够 处理不成对的数据。收集同一个人戴眼镜和不戴眼镜的完美照片过于困难,而且对于正在接受医学成像的病人来说,想要获得健康的图像也为时已晚。
  • 要求2: 在将图像转换成目标域时,必须 不需要源域标签(即 source-domain-independent translation)。例如,一个用于医学检测的GAN的训练目的是能够将任意的健康状况未知的图像转换成健康的图像。
  • 要求3: 对于同域转换的情况,GAN要能执行恒等转换。例如,对于医学检测任务,GAN应该保持健康的图像不变,而不注入新的信息。
  • 要求4: GAN必须为跨域转换执行最小程度的图像转换。只更改那些与转换任务直接相关的图像属性,而不影响不相关的属性。例如,摘除眼镜不应影响图像的其余部分(如头发、脸的颜色和背景),或者,摘除病变图像上的疾病区域不应影响标记为正常的图像区域。

目前,还没有一种单独的图像到图像的转换方法( image-to-image translation method)能够满足上述所有的要求——

  • pix2pix 虽然很成功,但是需要成对的图像。
  • CycleGAN 通过循环一致性减轻了这种限制,但是它仍然需要 为每对图像域使用两个专用生成器,这导致了由于需要专用生成器而导致的可拓展性问题。CycleGAN也不能支持与源无关的转换,选择合适的生成器需要源域和目标域都有标签。
  • StarGAN 通过 为所有感兴趣的域对(domain pairs)学习单个生成器 克服了这两个限制,却也有着缺点。
    • 首先,StarGAN在进行跨域转换时倾向于进行不必要的变化。例如,StarGAN倾向于改变面部颜色,尽管域转换的目标是改变来自图像中的性别、年龄或头发颜色。
    • 第二,StarGAN不能很好地处理同域转换。

这些缺点对于 自然图像 中的图像到图像的转换可能是可以接受的,但是在一些 敏感领域,例如医学成像,它们可能会导致可怕的后果,不必要的变化和人工制品的引入可能会导致误诊。因此,克服上述限制对于采用GANs进行目标/疾病检测、定位、分割和移除至关重要。

1. 相关工作

Image-to-image translation(图像到图像转换)

  • CycleGAN通过循环一致性(cycle consistency)在不配对的图像到图像的翻译方面取得了重大突破。循环一致性在图像转换过程中能够保留对象形状的已经得到证明,但它可能无法保留其他图像属性,如颜色。
  • StarGAN

Weakly-supervised localization(弱监督定位)

自然图像的弱监督定位,通常使用

显著性图(saliency map)

全局最大池化(global max pooling)

基于全局平均池化(global average pooling, GAP)的类激活映射(class activation map, CAM)

等方法来处理。

其中,

CAM技术

最近已经成为深入研究的重点,产生了数个具有更强定位能力的衍生。(Pinheiro和Collobert)用对数和指数池化层( log-sum-exponential pooling layer)代替了原来的GAP。另外有研究专注于迫使CAM发现互补的部分(complementary parts)而非对象的最区别的部分(most discriminative parts)。(Selvaraju等人)提出了GradCAM,使用来自梯度反向传播的权值来产生CAM。即,权值取决于输入图像,而不是原始CAM中使用的固定的预训练权值。

除了自然图像,医学图像的弱监督定位 最近也得到了发展。(Wang等人)首次将CAM技术用于胸部x光图的病灶定位。接下来的研究工作,要么是将原始CAM与额外的信息(如有限的细粒度注释,或者是疾病严重程度)相结合,要么是对原始CAM稍作扩展,但没有显著的定位效果上的提升。值得注意的是,正如[5]所证实的,采用更先进的CAM版本,如互补发现算法,在医学成像中的弱监督病灶定位上并没有前景。

与之前的研究不同的是,(Baumgartner等人)提出了VA-GAN来学习健康大脑和患阿兹海默病大脑之间的区别,虽然没有配对,但是VA-GAN要求所有的图像都要被注册(registered),否则,它不能保留正常的大脑结构。此外,VA-GAN在推断时需要源域标签(输入图像是健康的还是有病的)。因此,在医学成像中,香草型CAM仍然是弱监督病变定位的一个强有力的性能基准。

据我们所知,我们是最先使用基于图像-图像转换的GANs来进行疾病检测和定位,仅使用图像级标注。定性和定量的结果都表明,我们基于图像转换的方法比基于CAM的方法提供了更精确的定位效果。

Anomaly detection(异常检测)

我们的工作 似乎 与异常检测有关,即通过只学习健康图像来检测罕见的疾病。

  • (Chen等人)使用对抗式自动编码器学习健康的数据分布。将病变图像输入到经过训练的自动编码器,然后从输入的病变图像中减去重建的病变图像,从而识别出病变图像。
  • (Schlegl等人)通过GAN学习得到一个健康训练数据的生成模型,GAN接收一个随机的潜在向量作为输入,然后尝试区分真实和生成的虚假健康图像。之后,他们进一步提出了一种快速映射的方法,通过将病变数据投影到GAN的潜在空间来识别病变图像的异常。
  • (Alex等人)使用GAN学习健康数据的生成模型。为了识别异常,他们逐像素扫描图像,并将扫描到的小块输入训练过的GAN的鉴别器。然后通过鉴别器将异常值汇总,构造异常图。

但是,Fixed-Point-GAN 在训练和功能上,都与异常检测不同。仅使用健康图像训练的异常检测器无法区分不同类型的异常,因为它们将所有异常视为一个单一类别。相反,我们的固定点GAN可以利用异常标签(如果有的话),实现所有异常的定位和识别(大前提就不一样)。然而,为了进行全面的分析,我们将Fixed-Point-GAN与[24]和[1]进行了比较。

2. Fixed-Point GAN

2.1 方法概述

和 StarGAN 一样,Fixed-Point GAN 中鉴别器 被训练来对图像的真假及其所属域进行分类,不同之处在于,Fixed-Point GAN 中生成器学习的是跨域和同域转换,而 StarGAN 中生成器仅学习前者。

不动点转换学习不仅实现了同域转化,而且对跨域转化进行了规范约束,通过鼓励生成器寻找最小的转换函数,惩罚与当前域转化任务无关的修改。新的训练方案提供了三个优点:(1)强化同域转化;(2)正则化跨域转化;(3)源域独立转化

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

2.2 损失函数详细介绍

Adversarial Loss(对抗损失)

在该方法中,生成器需要学习跨域和同域的转换(same- and cross-domain translations)。为了 保证生成的图像在两种情况下的逼真性,对对抗损失进行了如下的修正:

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

Domain Classification Loss(域分类损失)

对抗损失确保了生成的图像看起来是真实的,但不能保证图像域的正确性。因此,添加一个额外的域分类损失对鉴别器进行训练,迫使生成的图像属于正确的域。

鉴别器的域分类损失 和StarGAN是一样的。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

作者更改了 生成器的域分类损失,以同时考虑同域和跨域的转换,确保生成的图像在两个场景中都属于正确的域。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

Cycle Consistency Loss(循环一致性损失)

在无图像配对,只有对抗性损失的情况下,生成器的优化训练过程存在多个可能的随机的解决方案。额外的循环一致性损失帮助生成器学习合适的转换方式,能够保留足够的输入信息,从而生成的图像能够被转换回原始域。作者对循环一致性损失进行了修改,确保了跨域和同域转换的循环一致性。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

Conditional Identity Loss(条件一致性损失)

在训练中,StarGAN专注于将输入图像转换到不同的目标域。这种策略在生成器输入的变化方面,与匹配目标域无关时,无法对生成器进行惩罚。在学习跨域转换之外,我们使用(Conditional Identity Loss),迫使生成器在将图像转换回原域时保留域身份(domain Identity)。这对生成器学习将输入图像转换为目标域的最小转换(minimal transformation)也有帮助。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

Full Objective(总损失)

整合所有损失函数,鉴别器和生成器的最终的目标函数分别为:

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍
【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

λdomain, λcyc, 和 λid 决定了各损失项的相对重要性。

下表列举了Fixed-Point GAN的损失函数。继承自StarGAN的术语以黑色显示,以蓝色突出显示的是作者为缓和StarGAN的局限性而进行的修改。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

3. 实验

3.1 多域图像转换

数据集

CelebFaces Attributes (CelebA) 。该数据集由202,599张不同名人的面部图像组成,每一张都有40种不同的属性。

方法细节和评估指标

按照StarGAN的 public implementation,采用了5个域 (black hair, blond hair, brown hair, male, and young),对图像进行 预处理,将原始的178×218图片裁剪成178×178,然后重新缩放到128×128。使用 2000个样本的随机子集 进行测试,其余的用于训练(所以有多少张图用于训练?)。

对于跨域图像转换,通过分类的准确性来定量地评估,通过每次从源域改变一个属性来定性地评估。

对于同域图像转换,我们通过测量输入图像和转换图像之间的L1距离,进行定性和定量地评估。

实验结果

对于跨域图像的转换,StarGAN往往会做一些不必要的改变,比如当转换的目的是改变性别、年龄或头发颜色时,改变面部颜色。

而Fixed-Point-GAN能够成功保留面部颜色,并且保留了图像的背景。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

下表展示了定量的结果。

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

3.2 脑损伤的检测和定位

作者将Fixed-Point-GAN从图像转换拓展应用于脑损伤的弱监督检测和定位,只需要图像级的标注。

数据集

BRATS 2013。由合成图像和真实图像组成。

方法细节和评估指标

训练阶段,只使用图像级标注(健康/患病)。Fixed-Point-GAN学习跨域转换(从患病图像到健康图像,反之亦然)和同域转换。测试阶段,则专注于将任意图像转换为健康图像。理想的GAN的表现是将患病图像转换成健康图像,同时保持健康图像原封不动。

将图像转换到健康域后,作者通过从输入图像中减去转换后的健康图像来检测病变的存在和位置。我们把结果图像称为差异图。

作者在两个不同的水平上评估差异图:

(1)图像水平上的疾病检测(2)损伤水平的定位。

对于图像级检测,我们 取差异图中所有像素的最大值作为检测分数。然后,我们使用受试者工作特性曲线(receiver operating characteristics,ROC)进行表现评估。

对于损伤级定位任务,我们首先使用颜色量化(

啥叫颜色亮化?不就是阈值化吗。。。

)对差异映射进行 二值化,然后进行 连通组件分析( connected component analysis)。每个面积大于10个像素的连接组件被认为是病变的候选。如果至少一个病变候选对象的质心落在病变ground truth内,则认为该病变已被检测到。

和StarGAN, CAM, f-AnoGAN, GAN-based brain lesion detection method proposed by Alex, et al. 几种方法进行了对比。

实验结果

【文献阅读】Fixed-Point-GAN,不动点GAN(2019,ICCV)一、文章情况二、文章导读三、文章详细介绍

如图4a所示,在AUC(

AUC的计算代码?

)方面,Fixed-Point-GAN与ResNet-50分类器性能相当,但在很大程度上优于StarGAN、f-AnoGAN和Alex等人。注意,对于f-AnoGAN,我们使用差分地图的平均激活度作为检测分数,因为我们发现它比使用差分地图的最大激活度更有效,也比原始工作中提出的异常分数更有效(作者还对f-AnoGAN做了优化)。

在自由响应ROC (Free-Response ROC, FROC)方面,我们的 Fixed-Point-GAN 在每张图像1个假阳性时的灵敏度为84.5%(

假阳性的个数是怎么计算出来的?

),优于StarGAN、f-AnoGAN和Alex等人,在相同假阳性水平下的灵敏度分别为13.6%、34.6%和41.3%。分辨率为32x32的ResNet-50-CAM在每张图像 0.037 假阳性的情况下,实现了60%的最佳灵敏度。此外,我们使用平均IoU(相交比联合)分数来比较ResNet-50- CAM和定点GAN,得到的平均IoU分别为0.2609 ± 0.1283和0.3483 ± 0.2420。同样,图4c和图4d分别给出了真实MRI图像的ROC和FROC分析,表明我们的方法在低假阳性范围内有较好的表现,但总体灵敏度显著提高。图2提供了StarGAN、定点GAN、CAM和fAnoGAN在脑损伤检测和定位方面的定性比较。

3.3 肺栓塞的检测和定位

我们在定量比较中排除了基于gan的方法和f-AnoGAN,因为尽管我们进行了多次尝试,但前者遇到了收敛问题,而后者产生了较差的检测和定位性能。