论文阅读——Towards Adversarial Retinal Image Synthesis
GAN用于视网膜图像合成

Abstract

眼底图像的合成十分具有挑战性,传统方式借助复杂的眼底解剖模型完成,现如今常借助在合适的参数空间采样进行图像的生成。本文则提出了一种直接从数据中进行学习从生成图像。本文需要借助血管分割技术将真实的眼底图像与对应的血管分割树进行配对,从这种图像对中学习二值化的血管到真实眼底图像的映射。为了完成这一目标,使用了最近火热的基于对抗学习的图像转换技术。实验结果显示原图与生成图像尽管来自相同的血管分割图但二者视觉效果有一定不同,除此之外还对合成的眼底图像进行了quality分析,确认了生成图像保留了原始图像很大一部分的信息。

Section I Introduction

如今机器学习算法需要海量的数据用以训练,但在医学图像领域往往难以获取,因为获取标注信息十分费时费力,因此能够直接合成图像数据就显得十分有吸引力,并且这一方面也已被研究多年。然而如何生成更真实的医学图像仍然是一项复杂的、充满挑战性的任务。
早期的医学图像生成方法包括数字幻影、对解剖模型进行简化提取数学模型等,都需要比较复杂的处理步骤,因为需要结合来自医学专家提供方的解剖和生理知识才能生成真实的图像。并且在适用于医学图像分析、训练、治疗方案的确定等领域。
但是,这种传统的自顶向下的方法需要根据数据建立可解释的数学模型,为了更真实解释复杂的本质不可过度简化;近年来提出了一种新的凡是可以直接从数据中学习相关的信息,主要就是通过机器学习系统自动学习训练数据集的内部不变性,一旦训练完成后可以通过采样生成新的合理的图像。

在通用的计算机视觉领域,借助对抗学习自然图像的合成最近取得了较大进展。对抗网络中生成网络可以从随机噪声中生成图像,而判别网络训练的目标就是辨别输入的样本是真实的还是合成的,在这种对抗学习中生成网络就可以逐渐学习与真实数据一样的特征分布。


尽管对抗学习用于自然图像的合成已取得了了较大进展,但用于医学图像的合成还处于起步初期。主要由于缺少大量的训练数据,也无法对生成网络做精细的控制。



本文则将对抗学习用于视网膜图像的生成,但值得注意的是本文不是从头开始生成图像,而是从二元的血管树图像进行生成,因此生成网络的任务只需要学习如何生成视网膜部分的内容,如视盘或纹理信息。
因此本文首先糊介绍使用GAN,针对血管树和书网膜图像,学习如何将前者映射到后者;随后会简要介绍一下UNet这一分割框架,用于生成视网膜图像对应的血管分割图,以便组成图像对。这一模型的目的是为了组建训练对抗模型的数据集,包含视网膜图像和对应的血管树。最后生成模型则会根据新的血管树获得新的视网膜图像,本文还会对生成的图像进行定性和定量的评估。

Section II 视网膜图像合成

Part A Vessel Trees to Retinal Images




计算机视觉下的图图转换任务(image-to-image translation)目标就是学习从原图x到对应目标图y的映射G,称之为Generator,模型训练好后,可以对之前从未见过的x新图,预测出最可能的表征。




但在许多问题中仅凭一张单一的图作为输入,可能对应到许多不同的输出。比如考虑血管树与对应视网膜图像的映射G,由于光照、颜色的变化,同一张血管树图像可能对应多个视网膜图像,因此关键步骤就是选择合适的目标函数并在训练过程中最小化生成的G(vi)与真正ri的L2距离。Fig1展示了整体流程。






而借助GAN则不用显式定义一个目标函数,而是转变为最大化判别网络的分类错误,尽可能使得判别网络混淆;这样生成网络也会生成更加合理的生成图像G(vi),因此对抗损失函数定义为:

第一部分生成器学习真实图像的数据分布,第二部分则是最大化判别网络的误分类错误。
为了使得结果更加清晰,本文使用的损失哈数还加入了L1 loss部分,L1损失主要保留低频信息从而使得生成图像具有更好的全局一致性,而对抗损失部分则是为了使得生成图像结果更明显,因此损失函数长这样:

其中lambda参数用来平衡两部分损失函数的权重,最终训练好的模型可以根据血管树图像生成更加真实的视网膜眼底图像。

Part B 训练数据的获取
前面说过需要血管树+视网膜图像作为图像对送入训练,但大型的带有标注信息的数据集又不可得,因此本文则借助监督学习的CNN模型,来生成分割的血管树图像,用于产生分割结果的网络是UNet。

Fig 3展示了UNet的结构示意图,可以看到包含下采样和上采样两部分组成,前半部分的下采样是传统的CNN结构,通过堆叠卷积层提取视网膜图像不同层次的特征;后半部分则是上采样层和全连接层用于产生与原输入图像纬度相同的分割图谱;可以看到上采样和下采样的对应层采用通道级联的形式进行连接,主要是为了更精确的空间定位,同时又可以保存下采样过程中提取到的粗粒度的特征。
Part C Implementation

对于分割部分,采用的是DRIVE数据集进行训练,切分成64x64大小的patch,其中10%用于验证,损失函数用的交叉熵损失函数,优化器为Adam Optimizer.
最终分割结果达到了AUC=0.9755,但由于仅包含7例轻型糖尿病视网膜病变的样本,因此一些分割结果不完全正确,因此本文只保留0、1、2级的图像对。


而 Messidor包含1200张带有相应糖尿病视网膜病变级别注释的图像,并显示更多的颜色和纹理信息,因此选择了946张Messidor图像对用于对抗模型的训练,划分为train:val:test = 614:155:177pairs。



本文对[8]模型的图像对分辨率调整为512x512,与DRIVE图像数据集相近,判别器则需要对从63x63patch中重叠采样的16x16大小的patch进行分类。G与D对抗训练直至二者的loss均稳定。

Section III Experiment Evaluation

Fig4展示了一些生成图像的结果,第一行为真实的视网膜图像,第二行为UNet分割后得到的血管树,最后一行则是经对抗生成网络生成的图像,可以看到生成图像与原始图像有共同的全局几何特征,自然也有相近的血管结构特征,但是合成图像在一些高级视觉特征,如颜色、色调、光线等有明显不同。

此外Fig 4的前7列生成效果都不错,说明血管树从第一行的原图中提取的信息大致正确,能够为生成器的生成提供足够信息;但最后一列生成失败了,原因可能是原始图像失焦导致的,这种情况下提供给血管树的信息太少,导致生成图像包含太多的噪声和伪影。好在这种清创出现的比例并不高,在177张测试用例中,只有6例出现了伪影。


而对图像质量的客观评价一直是一个棘手的任务,因为没有合适的参考;而对生成模型的评估也需要针对不同问题设定进行。本文评价视网膜图像的生成质量,使用一下两种度量:一是[21]中提出的Qv分数,二是ISC矩阵(Image Structure Clustering,图像结构聚类),其中Qv更关注血管像素与周围对比度的评估,ISC则更为关注整体的平柜,因此两者结合可以为生成的视网膜图像提供一个较为综合的评估。
需要注意的是,ISC评价指标会倾向于含有伪影的人工图像而非原图,因此为了更客观的进行评估,将含有伪影的生成图像及其原图从评估中移除,更详细的讨论可参见Appendix A.

Table I展示了Real image和Synthetic image的两项评分,其中ISC是根据移除了6幅图的171幅图计算得到的,Qv则是根据全部177张测试图像得到的。
可以看到合成图像的ISC指标比原图质量更高,标准差也更小,说明具有更好的全局一致性;而Qv指标还是原图的质量更高,说明合成图像血管周围附近的区域没有原图的质量高。

Section VI Conclusions and Future Work

本文基于生成对抗网络提出了一种新的可行的合成视网膜图像的算法,此外生成的图像为512x512大小,也比一般计算机视觉任务生成的图像更大,但本文认为只有在特定情况下才能实现:因为与自然图像相比,视网膜图像的几何结构更为明确,包含通视场、视盘、斑痕等高级结构,为模型学习纹理和背景强度提供了指引。

这一模型的局限在于需要依靠血管树图像才能进行新图的生成;如果血管分割图像就存在缺陷,则自然而然会带到生成的图像中,我们正努力克服这些挑战。

Appendix A 合成图像质量分析

Part A Image Quality Metrics



Qv是通过计算每个像素周围的局部血管得到的,首先会输入多尺度的输入图像,然后从绿色通道中提取每个像素附近的Hessian矩阵,然后计算每个徐昂素的血管度量。这一度量是基于SVD的各向异性测量,会得到最终的指令分数作为血管各向异性度的加权平衡值。
ISC则遵循不同的方法,他事先在某个视网膜图像数据集训练过,这个数据集包含1000张独立于本文的图像,并且有专家进行标记。度量时取决于他们能够有足够的辨识度共专家进行诊断.



ISC度量的是视网膜解剖结构中像素强度的分布,通过提取R,G,B通道的高斯导数代表的特征,然后将他们分成5个不同的簇,用于区分视网膜的不同区域(血管、视盘、黄斑、背景到前景的过度以及前景到背景的过度。会计算这些特征的直方图,评估结构的一致性。




因此,二者是互补的。比如真实图像中存在的像素数量往往比生成图更多,因此Qv分数会更高一些,而ISC指标不仅依赖于血管部分,还依赖于其他解剖结构,因为它考虑了三个色彩通道,而Qv只考虑了一个通道(green)。





Fig 5中展示了一些图像,ISC认为没有足够的颜色和边缘信息,因此合成图像质量不高,在评估时也将这种情况的6张图片予以剔除,而Qv指标,貌似不受影响。
因此,本文认为采用这两种评价指标是合理的,但是如果进一步评估结构合理性等可能还需要特定的评价指标,这需要综合、进行不同角度的考虑。




Part B Supplementary Results




Fig 6和Fig7展示了本文生成的一些结果,分别对应[vessel tree, real image, synthetic image]






论文阅读——Towards Adversarial Retinal Image Synthesis相关推荐

  1. 论文阅读笔记:Neural Speech Synthesis with Transformer Network

    提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 相关知识 模型结构 实验结果 总结 前言 标题:Neural Speech Synth ...

  2. [论文阅读] Variational Adversarial Active Learning

    论文地址:https://arxiv.org/abs/1904.00370 代码:https://github.com/sinhasam/vaal 发表于:ICCV'19 Abstract 主动学习的 ...

  3. 论文阅读:XraySyn: Realistic View Synthesis From a Single Radiograph Through CT Priors

    XraySyn: Realistic View Synthesis From a Single Radiograph Through CT Priors 来源:MICCAI2021 摘要 x光照片通过 ...

  4. 论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索

    Adversarial Cross-Modal Retrieval 对抗式跨模式检索 跨模态检索研究的核心是学习一个共同的子空间,不同模态的数据可以直接相互比较.本文提出了一种新的对抗性跨模态检索(A ...

  5. [论文阅读] State-Relabeling Adversarial Active Learning

    论文地址:https://arxiv.org/abs/2004.04943 代码:https://github.com/Beichen1996/SRAAL 发表于:CVPR 20 Abstract 主 ...

  6. 论文阅读笔记:Retinal blood vessel segmentation using fully convolutional network with transfer learning

    Retinal blood vessel segmentation using fully convolutional network with transfer learning 使用全卷积网络与迁 ...

  7. 论文阅读笔记:Retinal vessel segmentation of color fundus images using multiscale convolutional neural.....

    Retinal vessel segmentation of color fundus images using multiscale convolutional neural network wit ...

  8. 论文阅读笔记:Retinal vessel segmentation based on Fully Convolutional Neural Networks

    基于全卷积神经网络的视网膜血管分割 关键词:全卷积神经网络.平稳小波变换.视网膜眼底图像.血管分割.深度学习 摘要 本文提出了一种新的方法,将平稳小波变换提供的多尺度分析与多尺度全卷积神经网络相结合, ...

  9. 【论文阅读】Deep Adversarial Subspace Clustering

    导读: 本文为CVPR2018论文<Deep Adversarial Subspace Clustering>的阅读总结.目的是做聚类,方法是DASC=DSC(Deep Subspace ...

最新文章

  1. 华为交换机网络管理相关配置问题(1)
  2. 百练OJ:1007:DNA排序
  3. markdown一边写一边预览_如何用Markdown轻松排版知乎专栏文章?
  4. 前缀 中缀 后缀表达式
  5. boost::stl_interfaces::detail相关的测试程序
  6. 怎么下载并安装python_怎么下载官网python并安装
  7. [原]当你用%查不到记录的时候怎么办?
  8. 个人计算机系统构造方式,计算机系统构造概要归纳.doc
  9. 线段树,最大值查询位子(个人模版)
  10. 在java解析XML写入到数据库中遇到的问题
  11. machine learning之PCA、ICA
  12. JAVA 泛型 入门
  13. Python 多线程-共享全局变量问题 -args参数 同步的概念
  14. 微型计算机音乐发生器,基于51单片机的音乐发生器的设计最终版(全文完整版)...
  15. 工控--常用编程软件
  16. 微信APP支付-Android+springboot搭建后端(一)
  17. 商品分页查询 ego-prc 实现-easyui
  18. Angular最新教程-第七节HTTP get post 设置头部 跨域访问
  19. 计算机网络的基础知识
  20. centos 日志审计_生产环境日志审计

热门文章

  1. 思考:机器学习方法性能不好怎么办?!
  2. 用html和js编写黑洞数,数字黑洞作文400字
  3. eNSP三层架构实验
  4. Windows10迈克菲McAfee添加文件白名单,排除隔离文件
  5. 洛克菲勒--从我年轻的时候开始 我就拒绝同两种人交往
  6. SAS PROC TABULATE学习笔记01
  7. 解决go mod拉取etcd依赖包报错的问题
  8. 【framework】IMS启动流程
  9. 计算机应用基础教案文库,计算机应用基础教案82246
  10. 今年 NFT 爆火,如何快速入行?(艺术家完整指南)