[论文阅读] HairGAN: Spatial-Aware Palette GAN for Hair Color Transfer

news/2024/5/15 21:26:51/文章来源:https://blog.csdn.net/qq_40714949/article/details/126689934

[论文地址] [代码] [ICME 22]

Abstract

头发颜色转移的目的是将头发颜色从参考图像转移到原始图像,同时保持原始图像的头发结构。然而,由于复杂的头发结构以及原始图像和参考图像之间头发区域的错位,现有的方法不能很好地完成这一任务。为了解决这些问题,我们提出了一个头发颜色转移GAN(HairGAN)。它首先利用现成的网络从原始图像中提取头发区域,并将其转移到中间的头发颜色。然后,引入空间感知调色板对齐(SAPA)模块来对齐原始图像和参考图像中的头发区域。此外,HairGAN采用了循环一致性重建模块来确保原始图像和转移图像之间的全局一致性。我们收集了一个包含2850张图像和一些配对样本的数据集,用于头发颜色的转移。广泛的实验表明,HairGAN可以产生高质量的转移结果。


Intro

本文任务描述如下。给定一张参考照片ref,要求将原图照片中人物的头发颜色变为参考照片中人物的头发颜色:
在这里插入图片描述
例如在上图中,参考人物的发色为蓝色,任务目标是将原图任务的头发也变为蓝色。


HS & ICT

本文方法的流程图如下:
在这里插入图片描述
首先看左图中的黄框部分。既然要做发色转换,那么首先就应该确定头发区域。本文确定头发区域的方法是采用显式的监督,即采用现有的分割模型(BASNet)将头发给分割出来。这一过程对应上图中的HS(Hair Segmentation)。

在头发分割之后,还有一个trick,即ICT(Intermediary Color Transfer)。由于文本本质上做的是一种image translation任务,即在两个domain之间进行转换。按照刚才的设定,domain A,B之间是没有明显区分的(比方说,原图存在的发色,参考图同样也可能存在),这就导致网络不可能收敛。为此,本文显式地固定了domain A(source domain),将所有原图的颜色都翻译成棕色(通过Pix2Pix,因为头发的mask,所以这一步成了paired translation问题),并且手工保证domain B(target domain)中不包含棕色的头发,这样就使得后续的翻译成为了可能。


SAPA

Spatial-Aware Palette Alignment,空间感知的调色板对齐,属于本文的核心创新点,其流程如下:
在这里插入图片描述
这个模块的目的是基于生成器更加显式的监督,便于其生成逼真的图像。具体来说,在一张照片中,头发的颜色不可能是完全一致的(只要染了色)。比如,比较贴近头皮的部分可能颜色会深一点,然后越外部则可能越浅。那么为了捕捉这一颜色过渡信息,本文搞了个矩阵(即名称中的调色盘),通过全局平均池化(AVG)的处理,来捕捉颜色的过渡信息(比如某一位置的颜色应该深一点,另一位置的颜色应该浅一点)。


Loss Function

Cycle Consistency Loss

图像翻译任务的必备损失,即real A => fake B => recon A,recon A应与real A一致:Lrec=∥Iorgh−Irech∥2\begin{equation*}\mathcal{L}_{rec}=\Vert I_{org}^{h}-I_{rec}^{h}\Vert _{2}\end{equation*}Lrec=IorghIrech2

Adversarial Loss

图像翻译任务的必备损失。即,生成器生成图像的不光要像头发,而且也能满足对应的发色要求:Ladv=min⁡Gmax⁡D{EIrefh[log⁡(D(Irefh))]+EIorgh,Irefhh[log⁡(1−D(Isynh))]}\begin{align*}\mathcal{L}_{a d v}=& \min _{G} \max _{D}\{\mathbb{E}_{I_{r e f}^{h}}[\log (D(I_{r e f}^{h}))] +\mathbb{E}_{I_{o r g}^{h}, I_{r e f}^{h}}^{h}[\log (1-D(I_{s y n}^{h}))]\}\end{align*}Ladv=GminDmax{EIrefh[log(D(Irefh))]+EIorgh,Irefhh[log(1D(Isynh))]}

Color Matching Loss

对抗损失中的判别器能够提供一定程度的发色监督能力。不过靠网络来监督肯定不是完全靠谱的,因此本文还加了一个额外的显式监督,即翻译后图像的颜色直方图应与参考图的颜色直方图保持一致:Lcolor=∥Isynh−HM(Irefh,Iorgh)∥2\begin{equation*}\mathcal{L}_{color}=\Vert I_{syn}^{h}-HM(I_{ref}^{h},\ I_{org}^{h})\Vert _{2}\end{equation*}Lcolor=IsynhHM(Irefh, Iorgh)2

Gradient Difference Loss

这个损失的作用是防止图像在翻译后丢失纹理等细节,对头发而言更加尤其重要:Lgdl=Lgdlx+Lgdly\begin{equation*}\mathcal{L}_{gdl}=\mathcal{L}_{gdlx}+\mathcal{L}_{gdly}\end{equation*}Lgdl=Lgdlx+Lgdly

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

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

相关文章

CTFshow_MISC入门_图片篇(基础操作信息附加)wp

文章目录前言Tipsmisc1misc2misc3misc4misc5misc6misc7misc8misc9misc10misc11后记前言 挺长时间没有打CTF了,感觉技术从之前就一直没有提升多少,摸了段时间的渗透&护网,感觉CTF的基础还是比较重要,温故而知新,就…

03.thymeleaf在业务系统中的应用

thymeleaf是Java方向开源的服务端模板引擎,支持多种格式的格式渲染。在存前端项目盛行的年代,webUI纯服务端渲染已经不再适合,但并不影响服务端模板的继续应用。 在企业集成业务系统中,由于低代码平台的业务标准化/组件化/所见及…

[ Linux长征路第三篇 ] 权限理解

目录 1.root用户和普通用户相互切换 2.文件类型和访问权限(事物属性) 2.1 文件类型 2.2 基本权限 2.3 文件权限值得表示方法 1)字符表示法 2)8进制数值表示法 2.4 文件访问权限的相关设置方法 1) chomd 2)三位8进制数字 3) cho…

解决找回密码不在右边的问题

问题如下: 在10.5中,按照书中代码写法为float-right,则出现上述的问题,找回密码不能和书中的结果一样呈现在右边,而出现在了左边 解决问题:把float-right改为float-end即可。其实这也不是什么大问题,不过可能会有的同学可能找不到解决方法,所以在这里写一下。因为淋过…

2022java-web一条龙工具安装

@目录java安装java-jdk安装java环境变量配置java-eclipse工具安装Java-idea工具安装MySQL安装navicat安装tomcat安装maven安装配置本地仓库配置镜像配置jdk 备忘~安装常见的一些我需要的集成工具以及jdk java安装 java-jdk安装 1,去官网进行安装下载jdk2,找到下载jdk的文件位…

json/xml/schema

JSON JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式,是理想的接口数据交换语言。官网:https://www.json.org/json-en.html 工作json请求体: json字符串 hashmap对象 jackson库 json响应结果断言 语法…

堆优化dijkstra的两种写法

例题: https://www.acwing.com/problem/content/description/1131/ 1、仅用dis数组记录,出队时记录最小距离#include<bits/stdc++.h>#define fore(x,y,z) for(LL x=(y);x<=(z);x++) #define forn(x,y,z) for(LL x=(y);x<(z);x++) #define rofe(x,y,z) for(LL x=(…

瑞吉外卖git

文章目录&#x1f492; Git&#x1f68f; 1、Git 概述&#x1f680; Git 简介&#x1f684; 下载与安装&#x1f68f; 2、Git 代码托管服务&#x1f680; 常用的 Git 代码托管服务&#x1f684; 使用码云代码托管服务&#x1f6ac; 使用码云的操作流程如下&#xff1a;&#x1…

程序人生 | 编程的上帝视角应该怎么去找

前言 &#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于Linux内核/汇编/HotSpot/C/Java/源码/架构/算法 就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计&#x1f4eb; &#x1f3c6; CSDN专家博主/Java优质…

SpringBoot基于guava集成令牌桶算法

SpringBoot基于guava集成令牌桶算法一、什么是令牌桶1、令牌桶2、功能图二、Guava1、简单介绍2、pom引入3、限速器4、浅析重载方法三、系统应用1、单个接口应用2、多个接口应用一、什么是令牌桶 1、令牌桶 有一个固定大小的水桶&#xff0c;在水桶的水满之前&#xff0c;水龙…

无意中发现腾讯Java开发手册

RPC&#xff08;Remote Procedure Call&#xff09;—远程过程调用&#xff0c;它是一种通过网络从远程计算机程序上请求服务&#xff0c;而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在&#xff0c;如TCP或UDP&#xff0c;为通信程序之间携带信息数据。在OSI…

【SpringCloud-Seata分布式事物】

简介 1、是什么 Seata是一款开源的分布式事务解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 http://seata.io/zh-cn/ 2、 能干什么 3、处理过程 TM向TC申请开启一个全局事务&#xff0c;全局事务创建成功并生成一个全局唯一的XID&#xf…

Spark写入支持更新【源码二次开发】

在大数据开发过程中&#xff0c;遇到很多Spark写入mysql得场景&#xff0c;目前由于Spark仅支持以下几种 SaveMode: Append、Overwirte、ErrorIfExists、Ignore、ReplaceInto 由于在写入mysql时&#xff0c;需要数据根据主键进行更新&#xff0c;而不覆盖或追加&#xff0c;次…

交换机的工作原理

1 交换机的工作原理假设主机A要和主机B通信,交换机转发数据帧的过程如下: (1)MAC地址的学习和记录 A主机发送数据帧(源MAC地址为00-00-00-11-11-11,目标MAC地址为00-00-00-22-22-22)到交换机的1号接口,交换机首先查询MAC地址表中1号接口对应的源MAC地址条目。如果查询不…

曝光一下字节跳动的工资待遇和职位级别

BAT 是互联网大厂的标杆&#xff0c;也是很多程序员的梦想之地。随着抖音、TikTok 和今日头条的崛起&#xff0c;BAT 中的“B”也由原来的百度替换成了现在的字节跳动&#xff08;ByteDance&#xff09;。 字节跳动是全球独角兽企业的榜一大哥&#xff0c;不仅霸占了国内市场&…

Altium Dsigner 20 工艺参数设置修改

本文根据在学习凡亿教育的Altium Dsigner 20课程&#xff0c;总结了关于系统参数、设计规范等内容的优化修改。仅供参考 。 目录1 系统设置1.1 本地化菜单设置1.2 主题颜色设置1.3 弹出面板设置1.4 文件路径修改1.5 交叉选择模式1.6 设计检视设置1.7 自动保存设置1.8 原理图器件…

董宇辉:读书让你更加深刻|程序员必读的一本书

久负盛名的CSAPP&#xff08;Computer Systems: A Programmers Perspective&#xff09;一直都是计算机界“圣经”般存在&#xff0c;本书主要是软件程序员角度来看待计算机系统&#xff0c;主要包括以下内容&#xff1a;第一部分&#xff1a;程序结果和执行数据如何在内存里面…

微信输入法来了,如何下载?

微信早就有想做输入法的想法&#xff0c;早在去年年初&#xff0c;“微信之父”张小龙就曾经在一年一度的微信之夜活动上表示&#xff0c;“在未来&#xff0c;腾讯微信团队将会开发一套专属于微信的定制输入法。”张小龙表示&#xff0c;微信原来并不想去做输入法&#xff0c;…

Python GUI_Tinkter学习笔记

Tinkter学习笔记1_GUI编程和tinkter介绍2_PEP8编码规范 _窗口大小和位置3_GUI编程整体描述_常用组件汇总4_GUI程序的经典面向对象写法5_Label组件 _Tkinter中图像正确显示全局变量的写法Label组件全局变量&#xff08;图片全局变量的写法&#xff09;6_options选项详解 _底层源…

Fast R-CNN

文章目录论文信息论文标题&#xff1a;论文作者&#xff1a;收录期刊/会议及年份&#xff1a;论文学习论文阅读问题/背景&#xff1a;主要贡献&#xff1a;摘要&#xff1a;介绍&#xff1a;Fast R-CNN 的结构和训练&#xff1a;Fast R-CNN 的具体步骤&#xff1a;RoI 池化层&a…