《Contrastive Learning for Unpaired Image-to-Image Translation》

news2024/11/27 3:43:36

Contrastive Learning for Unpaired Image-to-Image Translation

  • 1. 摘要
  • 2. 介绍
  • 3. 相关工作
    • 3.1 图像转换、循环一致性
    • 3.2 关系保持
    • 3.3 深度网络嵌入中的感知相似性
    • 3.4 对比表示学习
  • 4. 方法

原文及代码链接 https://github.com/taesungp/contrastive-unpaired-translation

1. 摘要

  • 图像转换任务中,输入-输出对应patch内容应该保持一致;
  • 使用基于patch的对比学习方法实现单向图像转换
  • 训练数据不成对
  • 该方法促使输入-输出中对应patch映射到特征空间中的一个相似点,输入图像中其他部分为负样本;
  • 使用一个多层、基于patch的方法,而不是在整幅图像上进行操作;
  • 负样本从输入图像的其他部分进行提取,而不是数据集中的其他部分
  • 该方法可以提高转换质量且缩短训练时间;

2. 介绍

  • 图像转换任务本质工作是,在源域与目标域的映射过程中,将源域图像的结构、内容部分与外观部分分离,在转换过程中,内容不变,而外观则使用目标域图像的外观替换
  • CycleGAN中使用对抗损失保持外观部分,使用循环一致损失保持内容部分,但是循环一致损失对源域与目标域的限制较大,要求两域之间的映射关系必须为双射,也就是要求G(x)只会存在一个y与之对应,反之亦然;
  • 本文方法通过最大化对应的输入和输出patch之间的互信息仅保持内容部分对应
  • 本文通过对比损失InfoNCE Loss实现对比学习,该函数目的是学习一个嵌入或一个编码器,它将相应的补丁相互关联,同时将它们与其他补丁分离
  • 编码器会关注两个域之间的共性,例如物体的部分和形状,同时对不同之处如动物纹理保持不变:网络目标:输入域图像内容+目标域图像风格
  • 使用多层、基于patch的对比学习方法更有效,此过程中从输入的其他部分提取负样本可以强迫patch更好的保存输入的内容
  • 因为对比学习是在图像内部进行,所以该网络可以在单个图像上进行训练;

3. 相关工作

3.1 图像转换、循环一致性

  • 成对图像转换任务中,常使用对抗损失或结合重构损失学习源域到目标域之间的映射关系;
  • 不成对图像转换任务中,多使用循环一致损失强制要求源域和目标域之间内容尽可能一致,但是该损失有一个很大的限制:两域之间映射关系为双射。实际情况中类似CycleGAN的实现有一个缺点:如果两域之间图像内容上信息不对应则会很难实现重构;

3.2 关系保持

  • 此方法促使输入图像中的关系在输出中有类似反映;
  • 可使用关系保持的方法替换循环一致性,但此种方法存在两大缺点:1)依赖整幅图像之间的关系:输入图像中相似patch中存在的关系在输出中依然保持;2)依赖预先定义的距离函数:用于计算patch之间的相似度;
  • 本文方法不依赖预定义距离,通过最大化输入-输出对应patch之间的互信息(公共信息)学习一个跨域相似性函数,以此替换循环一致性;

3.3 深度网络嵌入中的感知相似性

  • 图像转换任务中,大多工作使用每像素重构度量定义感知距离函数,比如使用l1损失定义,此种方法并不能很好地反映视觉效果,可能会得到模糊结果;
  • 成对数据图像转换任务中,近期有一些工作通过在ImageNet数据集上预训练的VGG分类网络定义感知损失,这种方式存在一定缺点:1)预训练网络权重固定,可能并不适合当前提供的数据集;2)可能不适用于不成对数据训练中;
  • 本文通过图像之间的互信息提出约束,通过利用数据中的负样本,允许跨域相似函数适应特定的输入和输出域;

3.4 对比表示学习

  • 最大化互信息:利用噪声对比估计学习一种嵌入关系,将相关信号聚集在一起;
  • 优点:不用预先定义损失函数度量预测性能;
  • 使用InfoNCE loss进行对比学习;
  • InfoNCE loss 用于计算图像之间的相似度,是一种基于互信息和噪声对比估计的无监督学习方法,可用于自监督学习和基于对比的学习。通过对比图像之间的特征信息来计算相似度,从而使得学习到的特征更加具有判别性和鲁棒性;

4. 方法

  • 网络整体为生成对抗网络,且生成器G分为两部分:Genc和Gdec
    在这里插入图片描述
    对抗损失:
  • 使用对抗损失保证输入输出的风格相似,视觉上看起来类似;
    在这里插入图片描述
    互信息最大化:
  • 使用噪声对比估计去最大化输入-输出之间的互信息,以此保持输入-输出之间内容部分对应;
    对比学习的目的是将两个信号联系起来:查询信号和对应的正样本,数据集中其他样本为负样本;
    查询信号和对应的正样本、N个负样本均被映射为一个K维向量;
    将向量归一化到一个单位球上,防止空间崩溃或者膨胀;
    对比学习的过程可以理解为一个N+1路分类问题,在N+1个样本中确定1个正样本,其余均为负样本;
    通过下列公式计算交叉熵损失函数,表示正样本被选取的概率;
    在这里插入图片描述
    在本文中,查询信号为输出图像中的某个patch,对应的正样本为输入图像中的对应patch,负样本为输入图像中的其他部分;

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

多层、基于patch的对比学习:

  • 无监督学习中,对比学习被用于图像级别或者patch级别;
  • 作者注意到输入-输出不仅要在图像级别共享内容,其对应patch也应该共享内容;
  • 本文应用多层、基于patch的对比学习;
  • 生成器中编码器用于捕捉内容信息,解码器用于合成风格信息;
  • 网络层提取特征图中的一个像素点可以看做输入图像中的某个patch,这得益于卷积操作的局部性;
  • 编码器结合两层MLP计算交叉熵损失,
    在这里插入图片描述

总训练目标:

  • 1)对抗损失;2)基于patch的交叉熵损失函数;
    在这里插入图片描述
  • PatchNCE(G,H,Y)损失可理解为一致性损失,即G(Y)≈Y:
    在这里插入图片描述

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

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

相关文章

API之Apifox和Postman工具该如何抉择?

目录 前言 一.功能列表对比 (一)接口设计与文档管理功能 (二)接口调试功能对比 (三)接口mock功能 (四)接口测试功能 二.团队协作功能 三.Apifox 没有的功能 四.产品价格 前…

代码随想录算法训练营第五十二天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组

LeetCode300.最长递增子序列 动态规划五部曲: 1,dp[i]的定义:本题中,正确定义dp数组的含义十分重要。dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。为什么一定表示 “以nums[i]结尾的最长递增子序” &#xff0c…

FP独立站卖家怎么解决收款问题?挑选支付公司有何关注点?

2023年是充满希望又充满挑战的一年。这一年,新冠肺炎疫情恢复,经济慢慢复苏,对做跨境电商的卖家来说是个不错的机遇;但由于chatgpt人工智能的出现,F牌网站被检测出来的几率大大提高……让F牌独立站卖家最头疼的是&…

使用iTerm2打造ssh神器

在日常工作中,经常要通过ssh连接远程服务器,每次连接都输入密码,会比较麻烦。 在Window系统上,我习惯使用xshell管理连接,非常方便。 在MacOS系统上,没有xshell,而一些类似xshell的工具中&#…

vue+elementui+nodejs美容院理发店产品网上商城管理系统0ffvo

在当前的信息化管理浪潮下,我国的各行业不断转向信息化,现代化的高效管理模式。研发新一代美发管理系统,使一直沿袭传统的美发管理模式而产生的管理效率较低,经营管理水平相对滞后等现象得以改善;而这种新型的美容美发…

红外人体感应灯单片机开发方案

近来,红外人体感应灯受到了居家人们关注和喜爱。为此,宇凡微推出了一款低成本红外人体感应灯单片机方案。红外人体感应灯可应用于走廊、床边、楼梯、衣柜等地方,提供柔和照明作用。人来即亮,人走即灭,不受强光影响睡眠…

[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表

啥是运行时下载清单?现在大多数手游都会有一个边玩边下功能,会提示用户是否开启下载,要XXX流量,如果你下载完了,可能还会有奖励。 疑问:为何要有边玩边下功能? 解答:为了发包的包体…

常见的五种HDMI接口类型,你知道多少?

高清多媒体接口(High Definition Multimedia Interface)简称HDMI,是一种全数字化视频和声音发送接口,可以 同时发送未压缩的视频及音频信号 ,且发送时采用同一条线材,大大简化了系统线路的安装难度&#xf…

java SSM 网上拍卖myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 网上拍卖系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和 数据库,系统主要采用B…

[STJson]一个.Net开源json解析库

创作背景 项目地址: https://debugst.github.io/STJson 在开发过程中难免会遇到需要处理json的时候,但是.Net中自带的库似乎有点一言难尽啊。最后虽然找到了Newstonsoft.Json感觉还不错,但是还是觉得有些不如意的地方,它的功能虽然强大但是…

C语言:编写代码实现,模拟用户登录情景,并且只能登录三次

题目: 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码, 如果密码正确则提示登录成功, 如果三次均输入错误,则退出程序。 思路: 总体思路: (一&a…

MIAOYUN“一云多芯”解决方案获评2023西部信创优秀解决方案

6月7日,由工业和信息化部电子第五研究所主办的“2023西部信息技术应用创新产业生态大会” 在重庆成功举办。会上,2023年西部地区信息技术应用创新优秀解决方案汇编正式发布,成都元来云志科技有限公司(简称“MIAOYUN”)…

现代化 Android 开发:基础架构

作者:古哥E下 Android 开发经过 10 多年的发展,技术在不断更迭,软件复杂度也在不断提升。到目前为止,虽然核心需求越来越少,但是对开发速度的要求越来越高。高可用、流畅的 UI、完善的监控体系等都是现在的必备要求了。…

从零开始 Spring Boot 36:注入集合

从零开始 Spring Boot 36:注入集合 图源:简书 (jianshu.com) 在前面一篇文章从零开始 Spring Boot 27:IoC中,讨论过依赖注入集合(Java 容器)的内容,这里更深入地讨论注入集合的相关内容。 我们…

ThinkPHP5学生学术管理系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP5学生学术管理系统 一 介绍 此学生学术管理系统基于ThinkPHP5框架开发,数据库mysql,前端Amazeui。系统角色分为学生用户和管理员。学生可以对个人信息,发表论文,专利授权&#x…

chatgpt赋能python:Python快速建站的SEO(搜索引擎优化)指南

Python快速建站的SEO(搜索引擎优化)指南 在当今数字时代,任何企业都需要一个强大和有效的网站。随着多个开源和商业网站平台的出现,建立一个网站变得更加容易。其中一个让人充满激情的开源工具是Python,它是一种流行的…

06_ MySQL优化实战

1. 计算并指定索引长度 阿里开发手册: 强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度。 说明:索引的长度与区分度是一对矛盾体,一般对字符…

2.4 网络设计与redis、memcached、nginx组件

目录 一、网络模块需要处理哪些事情二、reactor网络设计模型三、网络模块与业务的关系四、redis、memcached、nginx1、redis2、memcached3、ngnix4、总结 一、网络模块需要处理哪些事情 网络编程主要关注客户端与服务端交互的四个问题: 1、连接建立 2、消息到达 3、…

学历不代表能力,但学历不够就意味着没资格!

今年的高考报名人数再创历史新高。 据悉,2023年全国高考报名人数1291万人,比去年增加98万人。 那么,今年的高校毕业生人数呢? 据人社部统计,今年我国高校毕业生人数达到1158万,继2022年破千万后再创历史新高。 大家…

Vue路由到新的页面,页面的名称需要改变

如下图:在页面中点击“属性列表”和“参数列表”的时候,要路由到新的页面,之后页面的title不用路由中的名称,而是用新的名称。也就是要显示对应的按钮名称,这个路由地址的名称是动态的。 在旧的页面上加上:…