图像太宽无法输出请裁剪图像或降低分辨率然后重试_真·无监督!延世大学提出图像到图像无监督模型,实验结果超SOTA...

2f747dece107c41bb13f880dac9c5829.png

作者 | 蒋宝尚

编辑 | 丛 末

图像翻译目的是用模型将源域图像转换到目标域图像,通常涉及标签图到场景图的转换、图像风格、人脸的属性变换、标签图到场景图的转换。

图像翻译任务自生成对抗网络提出就得到了快速发展,例如经典的pix2pix、CycleGAN、StarGAN。

上述模型虽然实现了从源域图像到目标域图像的转换,但也需要一定的标签参与或者需要建立源域和目标域各自的生成器。

而近日韩国延世大学的一篇名为《Rethinking the Truly Unsupervised Image-to-Image Translation》的论文号称实现了真正的“无监督”学习。

a1f9ee8cf065c54b0c72bd243ec5ef70.png

论文地址:https://arxiv.org/pdf/2006.06500.pdf

论文的导语部分提到,近期的图像到图像的一些模型都至少使用了图像级别(输入输出对(input-output pairs))或者集合级别(set-level)(域标签)监督中的一种。后者往往被称为“无监督”,而这种方法还有一个重要的假设:域标签是先验的。

在论文中作者提出了一种真正无监督的图像到图像转换方法(truly unsupervised image-to image translation method,TUNIT),此方法既不需要“输入输出对”也不需要域标签。其通过信息理论方法学习分离图像域,并使用估计的域标签生成相应的图像。

另外,作者在不同数据集上对比了FUNIT和MSGAN这俩最先进的多域和跨域图像到图像的翻译模型。实验结果表明,作者提出的方法能成功地实现域的分离和跨域的图像翻译。在半监督环境下,作者也声称其方法的性能优于当前现有的集合级监督方法。

1

思想简介

b48c9db52d7a3d43c68a21c6f59a2fad.png

图注:方法概述如上,上图说明了模型转换猫品种的过程:1.使用引导网络的估计域训练多任务鉴别器;2.引导网络为生成器提供参考图像( reference image )的样式代码。另外,估计域再次用于GAN训练。

具体而言,作者通过三个子问题来解决这一问题:1)区分图像(即域)的集合特征;2)对输入图像的个别内容和风格进行编码;3)学习估计域之间的映射函数。

另外,作者引入了一个引导网络(guiding network),从而提供用于识别器和生成器的伪域标签和编码风格特征。为了估计域标签,作者还采用了一种能够最大化图像的域分配与其增强版本之间相互信息(mutual information)的无监督方法。这有助于引导网络将相似的图像分组在一起,并同时均匀地分隔类别。另外,通过参与图像翻译过程,引导网络还可以利用来自生成器和鉴别器的梯度。

注:增强版本是对指对原图像随机裁剪、水平翻转之后生成的图像。

对于嵌入风格码,作者采用了对比损失,其使得模型能够更好地理解图像之间的差异性,从而更好地进行表示学习。另外,引导网络和对抗性网络之间的交互,也让模型成功地分离域和翻译图像。

2

主要方法

前面也提到,引导网络有两个作用,其一是将风格代码(style code)提供给生成器,其二是将伪域标签提供给鉴别器来指导翻译。另外,生成器还会根据鉴别器的反馈合成目标域的图像,同时尊重参考图像的风格(例如毛皮图案)保持源图像的内容(例如姿势)。

主要的方法有两个部分,第一是学习如何产生域标签以及编码风格特征。

在这一部分中作者使用无监督聚类方法自动产生给定图像的域标签,也就是前面所说的最大化图像的域分配与其增强版本之间相互信息。公式如下:

8a41924b7a20f611511b8fd411248d58.png

其中

0a4629ef304499dd930117c1a2e716e5.png

为:

1e3b49c71e9b723374e0f99bb1e01be6.png

虽然L_MI提供了一种自动生成输入图像的域标签方法,但是当图像的分辨率高于64x64或样本变得复杂多样时它无法放大。因此我们作者向引导网络中添加辅助支路Estyle并施加对比损耗来克服这一点,公式如下:

47fc8abd8b214e1851636a9ef031bf22.png

第二部分是域引导下的图像到图像的翻译。这部分是为了解决翻译模式应该提供包含目标域视觉特征的逼真图像。为此作者采用了三种损失:1)对抗性损失以生成逼真的图像;2)风格对比损失以鼓励模型不忽略风格代码;3)图像重建损失以保持域不变特征。

其中,对于对抗性损失训练,作者采用多任务鉴别器,其设计目的是同时对每个领域进行歧视(discrimination)。然后仅利用估计输入图像的域的损失来计算其梯度。

另外,为了防止出现生成器忽略给定的风格代码而合成域的随机图像的退化情况,对生成器施加的风格对比损失函数如下:

647032f2f91270d2ab08a8ac251d559d.png

为了保证生成器在给定其原始风格时可以重建源图像,其施加图像重建损失为:

913d93089ac963c41d3dd4643a38ca19.png

上述公式不仅能保证生成器可以保留其输入图像的域不变性特征(例如,姿态),而且还有助于通过提取源图像的原始风格来学习引导网络的风格表示。

最后,总的训练模型公式表示如下:

4c148398187d26e0a70b056413367212.png

图注: λ是超参数。

3

实验结果

在实验部分,一共进行了三个,分别是分析目标函数和训练策略的效果、在三个未标记的数据集上进行无监督的图像到图像的翻译、在半监督监督环境下与最先进的(SOTA)技术的比较。

在训练策略效果实验中,作者选择了AnimalFaces 10数据集,并验证了引入引导网络中的对抗损失能够提高模型的整体翻译性能。通过对训练策略的研究,证实了引导网络与GAN之间的互动确实提高了翻译效果。

作者为了研究所提出的方法能够处理无监督的图像到图像的翻译,在AFHQ、FFHQ和LSUN CAR数据集上对模型进行了评估。整体结果如下图:

859b603ab160676f4c33e3dfe8860fe7.png

上图是在AFHQ野生类上训练的引导网络的t-SNE结果和来自每个域的示例图像。

9b120c8fab12ea1abb58853c56edbe4a.png

上图是定性的图像翻译结果,每幅图像由源图像和每个域中所有测试图像的平均风格码码合成。可以清晰的看出,每个输出都成功地反映了每个领域的视觉特征(即毛皮图案和颜色)以及其物种的视觉特征。

67036f137a345881c8f91ecd7ad1d729.png

FHQ和LSUN CAR的结果如图8所示。虽然还不清楚如何在FFHQ中定义“域”,但该网络成功地将图像分成了视觉上不同的类别,如眼镜、发色和刘海。

作者的第三个实验是与半监督学习环境下在两种方案下训练的最先进的翻译模型进行比较。如下图,展示了与使用朴素方案训练的基线之间的定性比较。

681d9086212beb78a932321f6349dd20.png

下图分别展示了在Summer2wendor和AnimalFaces-10上使用class-wise FID的定量结果。随着比值(γ)的降低,基线模型的性能显著下降,而作者提出的模型无论γ如何,都将FID值维持在60和45左右。

3f1a97f7457884d8f72f5a4b5eb71c41.png

招 聘

AI 科技评论希望能够招聘 科技编辑/记者 一名

办公地点:北京

职务:以跟踪学术热点、人物专访为主

工作内容:

1、关注学术领域热点事件,并及时跟踪报道;

2、采访人工智能领域学者或研发人员;

3、参加各种人工智能学术会议,并做会议内容报道。

要求:

1、热爱人工智能学术研究内容,擅长与学者或企业工程人员打交道;

2、有一定的理工科背景,对人工智能技术有所了解者更佳;

3、英语能力强(工作内容涉及大量英文资料);

4、学习能力强,对人工智能前沿技术有一定的了解,并能够逐渐形成自己的观点。

感兴趣者,可将简历发送到邮箱:jiangbaoshang@yanxishe.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python图像文件压缩_python实现图片压缩代码实例

前言项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩一:导入包from PIL import Imageimport os二:获取图片文件的大小def get_size(file):# 获取文件大小:KBsize os.path.getsize(file…

php serialize和json_encode哪个更快_世界 10 大编程语言,Java 不是第一,PHP 才第五...

来源:toutiao.com/a6764554659349676557/如果你是软件开发领域的新手,那么你会想到的第一个问题是“如何开始?”编程语言有数百种可供选择,但是你怎么发现哪个最适合你,你的兴趣和职业目标又在哪里呢?选择最…

python列表操作程序_Python入门篇(三)之列表

1、列表定义names ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"] #列表存储,类似数组2、列表的操作(1)切片names ["ZhangYang","Guyun","Xiangpeng","Xuliangchen"] #列表存…

python编程制作_一种Python编程创作平台的制作方法

本发明涉及在线浏览器技术领域,特别涉及一种Python编程创作平台。背景技术:目前项目整体使用javascripthtmlcss实现,用户界面编写上使用react框架。具体实现上是将python语法转换为js语法,使其可以在浏览器中运行,目前…

tomcat7.0支持什么版本的jdk_恭喜你喜提JDK,那你知道JDK是什么吗?先来看看吧

点击蓝字关注一行JDK 大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要为我们写的Java程序配备一名翻译官 ----- 编译环境,将Java程序翻译成电脑可以识别的程序,C或者汇编。 那么对于这个…

我的python 入门 安装 -- hello world

我的python 安装–>“hello world” 最近老听到关于python的声音,而且越来越强烈。就好奇下载了下,在win10 的应用商店下载的 够傻瓜了吧 环境变量也不用配置 直接上手 hello world了 cmd 窗口 输入 python -v 正常显示 显示版本号 不能正常显示…

python if try except_python try except

python中try/except/else/finally语句的完整格式如下所示:try:Normal execution blockexcept A:Exception A handleexcept B:Exception B handleexcept:Other exception handleelse:if no exception,get herefinally:print("finally")说明:正常…

多台Linux服务器之间互相免密登陆

多台Linux服务器之间互相免密登陆 例如我们有三台Linux 服务器: 192.168.0.1 192.168.0.2 192.168.0.3 1.1 首先配置服务器 1 面密令登录2 和 3 1.2 登录服务器1,然后输入命令:ssh-keygen -t rsa ,一路按 回车, …

python多进程内存共享_Python—并发编程04多进程内存共享,python,间,的

Manaegr实现数据共享导入 :from multiprocessing import Manager实例化:m Manager()num m.dict( {键 : 值} )num m.list( [1, 2, 3] )程序示例:from multiprocessing import Manager,Processdef fun(num):num[0] 0print(子进程中num:, num)if __name…

记录spring、springboot集成apollo配置中心

一, spring集成apollo,前提是apollo配置中心服务端已经在运行中 上面是我在阿里云服务搭建的apollo配置中心服务端,登录后的样子。没有搭建服务端的小伙伴,请先搭建好apollo的服务端 然后点击‘创建项目’,新建测试用的项目 填…

python中不同类型的数据不能相互运算_Python第三课——数据类型与运算(2)

hello大家好,我是你们的小蒟蒻鸭,终于终于有时间写博客了(虽然刚开始期末复习),真的非常非常抱歉,拖更太厉害了。反正还有一个月不到小蒟蒻就要放暑假了!!!(激动.jpg),蒟蒻保证会一周…

Java多线程--死锁例子

package qzy.thread.deadLock;/*** 描述模拟死锁** 形成死锁的四个必要条件是什么** 1.互斥条件:线程(进程)对于所分配到的资源具有排它性,即一个资源只能被一个线程(进程)占用,直到被该线程(进程)释放* 2.请求与保持条件:一个线程…

python重写和装饰器_python装饰器

python装饰器的本质,就是闭包!我们一般谈Python的闭包,都是指普通的入参,而谈装饰器的时候,入参一定有函数!闭包和装饰器,返回的都是函数。函数是代码的最小封装单位,装饰器作用于函…

Java基础复习题--类加载顺序

在某个视频看到一个关于Java类加载顺序的面试题,记录一下: talk is sheep, show code!(请忽略语法) public class Father {private int i test();private static int j method();static {System.out.prin…

基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用

众所周知,由于谷歌地图(Google Maps)在国内不能访问,很多人就没有办法通过谷歌地图来获得服务。谷歌地图是目前全球最受欢迎的世界地图网站,在2005年以前,谷歌地图就收录了美国、英国、加拿大三个国家的地图…

记录 Linux crontab 的使用

记录一次简单的Linux定时任务----》每周定时备份数据库结构及数据 环境:阿里云服务器 vim 命令:输入i/a 进入输入模式,输入完成后,esc键,退出输入模式,确定无误后,输入“:wq”,保存退出 Linux 环…

python random函数_Python随机函数random使用详解

在python中用于生成随机数的模块是random,在使用前需要import, 下面看下它的用法。1、random.randomrandom.random()用于生成一个0到1的随机符点数: 0 < n < 1.0注意&#xff1a; 以下代码在Python3.5下测试通过&#xff0c; python2版本可稍加修改描述random() 方法返回…

Graphicsmagick linux 中文水印乱码-new

文章目录Graphicsmagick linux 中文水印l乱码&#xff08;中文显示成正方形&#xff09;本人在Windows上安装Graphicsmagick 并使用Graphicsmagick 添加中文水印成功&#xff0c;但是在Linux下一直乱码&#xff0c;现将解决办法分享给有需要的朋友。 1.Linux下默认安装Graphic…

python数据结构递归树_python数据结构(对称二叉树递归和迭代)

1、题目描述给定一个二叉树&#xff0c;检查它是否是镜像对称的。2、代码详解2.1 递归写法# Definition for a binary tree node.class TreeNode(object):def __init__(self, x):self.val xself.left Noneself.right Noneclass Solution(object):# 递归写法def isSymmetric(…

python跨文件复制sheet_Python办公自动化-工作表复制(可跨文件)

我们平时在处理Excel文档&#xff0c;会涉及到工作表的复制。一般我们会遇到这两种工作表复制需求&#xff1a;单个Excel文档内将工作表复制多分多个Excel文档之间&#xff0c;相互复制工作表将多Excel文档中的工作表复制到同一个Excel文档中针对与上述需求&#xff0c;我们可以…