DualGAN

ICCV 2017 《DualGAN:Unsupervised Dual Learning for Image-to-Image Translation》

github


在这里插入图片描述

这篇论文和前面看过的《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》(参见:https://blog.csdn.net/Forlogen/article/details/89003879) 和《Image-to-Image Translation with Conditional Adversarial Networks》(参见:https://blog.csdn.net/Forlogen/article/details/89045651) 中的内容基本上是相近的。作者也是提出了一种DualGAN的模型,在没有标签数据的前提下,实现在两个不同的域之间的图像转换。整体的算法思想和DiscoGAN、CycleGAN是一致的,并没有什么不同之处,只是名字不一样~~


算法

所以下面主要介绍一下这篇论文的某些好的地方,其余和上面提到过的两篇论文相同的地方就不赘述了。

先看下它的模型架构:


在这里插入图片描述

这里也是两个生成器和两个判别器,计算判别损失和重构损失。不同之处在于他这里使用的是WGAN中的损失函数Wasseratein loss,而不是标准GAN中使用的交叉熵,它的优点如下:

  • 生成模型的收敛性好
  • 生成的样本质量高
  • 优化过程稳定性好
  • 任何地方都是可微的,方便求梯度

因此 D A D_{A} DA D B D_{B} DB 的损失函数定义如下:
l A d ( u , v ) = D A ( G A ( u , z ) ) − D A ( v ) l B d ( u , v ) = D B ( G B ( v , z ′ ) ) − D B ( u ) l_{A}^d(u,v) = D_{A}(G_{A}(u,z))-D_{A}(v) \\ l_{B}^d(u,v) = D_{B}(G_{B}(v,z'))-D_{B}(u) lAd(u,v)=DA(GA(u,z))DA(v)lBd(u,v)=DB(GB(v,z))DB(u)
整体损失为:
l g ( u , v ) = λ U ∣ ∣ u − G B ( G A ( u , z ) , z ′ ) ∣ ∣ + λ V ∣ ∣ u − G A ( G B ( v , z ′ ) , z ) ∣ ∣ − D B ( G B ( v , z ′ ) ) − D A ( G A ( u , z ) ) l^g(u,v)=\lambda_{U}||u-G_{B}(G_{A}(u,z),z')||+\lambda_{V}||u-G_{A}(G_{B}(v,z'),z)||-D_{B}(G_{B}(v,z'))-D_{A}(G_{A}(u,z)) lg(u,v)=λUuGB(GA(u,z),z)+λVuGA(GB(v,z),z)DB(GB(v,z))DA(GA(u,z))
其中 λ U \lambda_{U} λU λ V \lambda_{V} λV 是两个常参数,取值范围为 [ 100.0 , 1 , 000.0 ] [100.0,1,000.0] [100.0,1,000.0] ,同时作者提出,如果U中包含自然的图像,而V中没有时,要使用的 λ U \lambda_{U} λU 小于 λ V \lambda_{V} λV

网络架构和《Image-to-Image Translation with Conditional Adversarial Networks》中的一样,这样既可以抓住图像局部高频的信息,也可以通过重构损失抓住全局的、低频的信息。


算法伪代码如下:


在这里插入图片描述

训练的过程和WGAN一样,使用小批次随机梯度下降,并使用RMSProp优化器(有关梯度下降的相关优化方法可参见:https://blog.csdn.net/Forlogen/article/details/88778770) ;D的训练轮次是2-4;批大小为1-4;剪裁系数 c c c 取自 [ 0.01 , 0.1 ] [0.01,0.1] [0.01,0.1] 。其中 c l i p ( ω A , − c , c ) , c l i p ( ω B , − c , c ) clip(\omega_{A},-c,c),clip(\omega_{B},-c,c) clip(ωA,c,c),clip(ωB,c,c) 这一步的含义待下一篇WGAN在了解。


实验部分

通过在不同的多个数据及上进行试验,比较DualGAN、GAN 和CGAN的效果差异,评估手段和

《Image-to-Image Translation with Conditional Adversarial Networks》同样相同。通过多次试验证明,DualGAN在大多数的场景下,效果都优于GAN和CGAN,下面给出几张结果图:

白天和黑夜的转换


在这里插入图片描述

照片和素描图的转换


在这里插入图片描述

绘画风格的转变


在这里插入图片描述
更多的实验结果可见原论文。

但是在图像分割上,DualGAN的效果要差于CGAN,在FACDES->LABEL和AERIAL->MAP两个数据集上都是如此。结果如下:


在这里插入图片描述
在这里插入图片描述

作者认为,可能是因为训练集中没有图像的对应信息,很难从中推断出合适的标记。所以最后作者提出能否在开始阶段往训练集中加一小部分带标签的数据来缓解这个问题,具体的工作并没有阐述。

此外在定性评估部分作者提出,DualGAN可能会将像素映射到错误的标签,或将标签映射到错误的纹理/颜色上,这也是一个急需解决的问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
引用:Matlab代码生成对抗网络(GAN)是一种机器学习方法,用于进行图像到图像的转换。在脑MR扫描中,使用GAN可以将脑MR图像分割成不同的组织成分,例如灰质(GM)、白质(WM)和脑脊液(CSF)。这种分割可以量化不同大脑区域,帮助进行涉及各种神经退行性疾病的诊断。 而在介绍中提到的DualGAN架构是一种对脑肿瘤扫描进行无监督图像分割的方法。DualGAN结合了GAN的生成器和判别器的架构,通过对抗性学习,实现了无需标记数据进行图像分割的目标。为了使用该架构,需要满足一些软硬件的先决条件,如Python(2.7或更高版本)、Matlab科学的NVIDIA GPU、CUDA 8.0、CuDNN v5.1和TensorFlow 1.0等。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [GM(1n)matlab代码-GANs:鹅](https://download.csdn.net/download/weixin_38517105/19296572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [dual-gan-medical-image-segmentation:脑肿瘤扫描的无监督图像分割](https://download.csdn.net/download/weixin_42179184/18807427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值