通过身份个性化网络(IPM)实现真实世界的自动化妆

来源:投稿 作者:小灰灰
编辑:学姐

论文标题:
Real-World Automatic Makeup via Identity Preservation Makeup Net

论文链接:https://www.ijcai.org/proceedings/2020/0091.pdf
论文代码:https://github.com/huangzhikun1995/IPM-Net

社交网络的不断发展也让人们对美颜技术提出了更高的要求,在完成图像美化的同时保证图像的真实性是至关重要的。

本文重点研究现实世界的自动化妆问题。给定一张非化妆目标图像和一张参考图像,自动化妆是生成一张人脸图像,它与参考图像中的化妆风格保持原始身份。在现实世界的场景中,面部化妆任务需要一个强大的系统来应对环境变化。

现实世界中人脸化妆的两个主要挑战可以概括如下:

首先,现实世界图像中的背景很复杂。以前的方法也容易改变背景的风格;

其次,前景面也容易受到影响。例如,“浓妆”可能会丢失原始身份的区分信息。

最后评价指标的缺失。对于化妆效果的好坏还是依靠志愿者的主观判断,缺少客观的量化指标。

为了解决这个挑战,我们引入了一种新的化妆模型,称为身份保护化妆网络(IPM-Net),它不仅保留了背景,而且保留了原始身份的关键模式。具体来说,我们将人脸图像分解为两个不同的信息代码,即身份内容代码和化妆风格代码。

在推理的时候,我们只需要修改妆容代码,就可以生成目标人物的各种妆容。作者从现实世界需求出发,探索了完成人脸自动上妆同时保留图像的真实性的方法,同时提出了使用FID以及LPIPS来量化人脸自动上妆的效果。

本文的创新点

1、我们提出了一种新的自动化妆模型,称为Identity 。Preservation Makeup Net (IPM-Net), 为了解决现实世界中自动化妆的两个问题任务。我们的方法有效地转移了化妆风格将参考图像转换为目标图像,同时保留研究的背景和关键模式原始身份。

2、该方法能在较短的推理时间内实现可控的化妆转移,我们的模型每秒可以处理 16 张 256*256 的人脸图像。。它使我们的模型更接近现实世界的实践

3、作为一个小贡献,我们介绍了FID和SSIM对于化妆的真实性和多样性进行评价。我们的该方法在这两方面都优于其他竞争性方法定性和定量结果。

网络结构

2.1 图像预处理

我们注意到,自动化妆的目的只是改变目标图像的几个部分,同时保留大多数身份内容信息。因此,我们建议首先将面部图像分解为两个空间(见表1)。身份内容空间包含图像中的个人身份信息和其他应保留的详细信息。化妆风格空间是学习脸上的化妆风格。为了帮助两种不同的特征提取,我们对输入图像进行了预处理。

具体来说,我们为每个人脸定制了一个面具和一个细粒度纹理。

预处理结果如图3所示。给定一个输入图像x,我们通过四个步骤生成输入图像rx中的身份内容:

(1)我们首先通过人脸解析算[1]法获取mask, 

(2) 为了保留背景,我们将目标图像x和相应的掩码mx相乘,得到背景图像bx。我们进一步将化妆区域设置为灰色,但bx会丢失面部纹理信息。

(3) 因此,我们使用微分滤波器[2]提取化妆区域的纹理,该滤波器仅保留必要的纹理并滤除噪声信号。此外,我们还增加了面部特征纹理的权重,以突出面部特征的纹理tx。

(4) 最后,通过添加纹理tx和bx背景来生成身份内容输入图像rx。

2.2框架

给定目标图像X和相应的遮罩mx和纹理tx,通过图3中描述的预处理步骤生成身份内容输入图像rx。如图2(a)所示,引入身份内容编码器Ei和化妆风格编码器Es以将面部图像分离为两个不同的代码:

2.3 网络细节

我们的IPM网络使用Pytorch框架。我们还使用PaddlePaddle来实现我们的方法,并达到类似的性能。我们所有的实验都是在一个NVIDIAGTX2080TiGPU上进行的。我们应用两种基本块,即ConvBlock和ResBlock。ConvBlock包含卷积、批量标准化和ReLU激活层。ResBlock包含两个ConvBlock,但我们删除了最后一个激活层。我们在图2(a)中的网络结构是基于这两个块构建的:

(1)Ei由三个ConvBlock和一个ResBlock组成,以256×64×64的格式输出身份内容代码Ix。

(2) Es使用三个ConvBlock和三个ResBlock的组合,而在最后添加一个平均池层。目标图像和参考图像都共享ES,每种化妆风格都由一个128维的矢量表示。

(3)G采用ConvBlocks,并利用Adam 融合身份内容和化妆风格。进一步利用上采样层将图像重新缩放为输入图像形状。此外,rx被添加到G生成的图像中,作为剩余连接。

(4) D遵循多尺度鉴别器架构。在训练阶段,每个图像的大小调整为321×321,然后随机裁剪为256×256。随机水平翻转被用作简单的数据扩充。我们采用Adam对整个IPM网络进行优化,λ1=0.5,λ2=0.999,并将学习率设置为0.0001。我们训练我们的模型进行1000000次迭代,批量大小设置为3。

实验结果

3.1 定性结果

实验结果均在在 Makeup Dataset以及采集自网络的图像进行测试。

我们的模型允许用户调整不同层次的化妆转移,这更接近现实世界的实践。第一行上的目标图像是通过带有淡妆的网络获得的。另一张目标图像和两张参考图像来自化妆传输数据集,无需化妆。为了使化妆转换的程度可控,我们部署了一个新的参考化妆风格Snew,作为参考化妆风格Sy和原始化妆风格Sx的加权和。生成的结果根据化妆转移级别从轻到重从左到右排序。

下图是自动补妆结果。第一列显示了三个具有不同背景和不同肤色的目标图像。第一行显示了13张不同化妆风格和姿势的参考图片。合成结果显示在右下角,每一行和每一列对应不同的身份内容和化妆风格。当目标图像的身份信息保留时,合成结果获得参考图像中的鉴别化妆风格,例如唇膏和眼影的颜色。

3.2 定量结果

如下表可见:FID(越低越好)和LPIP(越高越好)的比较。我们评估了化妆图像的真实性和多样性,以及化妆转移时生成的图像。

FID[4]和LPIPS[5] 曲线随不同迭代次数的增加而增加。结果表明,该方法收敛稳定,能逐步提高图像质量。

参考文献

[1] Changqian Yu, Jingbo Wang, Chao Peng, Changxin Gao, Gang Yu, and Nong Sang. Bisenet: Bilateral segmentation network for real-time semantic segmentation. In ECCV, 2018.

[2] Yifei Pu, Weixing Wang, Jiliu Zhou, Yiyang Wang, and Huading Jia. Fractional differential approach to de- tecting textural features of digital image and its fractional differ- ential filter implementation. Science in China Series F: Informa- tion Sciences, 51(9):1319–1339, 2008.

[3] Wei-Sheng Lai, Jia-Bin Huang, Narendra Ahuja, and Ming-Hsuan Yang. Fast and accurate image super-resolution with deep laplacian pyramid networks. TPAMI, 2018.

[4] Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler, and Sepp Hochreiter. Gans trained by a two time-scale update rule converge to a local nash equilibrium. In NeurlPS, 2017.

[5] Changqian Yu, Jingbo Wang, Chao Peng, Changxin Gao, Gang Yu, and Nong Sang. Bisenet: Bilateral segmentation network for real-time semantic segmentation. In ECCV, 2018.

关注下方《学姐带你玩AI》🚀🚀🚀

回复“CVPR”获取CV方向顶会必读论文

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

商城订单模块实战 - 数据库设计、ABA问题处理、读写分离分库分表

引言 订单系统可以说是整个电商系统中最重要的一个子系统,因此订单数据可以算作电商企业最重要的数据资产。这篇文章我们来看看在我们的商城系统中订单服务是如何实现的,特别是在设计和实现一个订单系统的过程中有哪些问题是需要特别考虑的。 业务分析…

【笔记】cuda大师班1-4

一.基本概念 进程(process)一个正在被执行的计算机程序的实例 上下文(context):待处理数据的集合,允许处理器暂停,保持处理的执行和恢复处理 并发:上下文切换,主要应用于…

二叉搜索树中的众数

1题目 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 任意顺序 返回。 假定 BST 满足如下定义&…

用Python分析周杰伦歌曲并进行数据可视化

大家好,今天我们用python分析下周杰伦歌曲。为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。 本案例中的歌词数据来…

对顶堆模板!!【DS对顶堆】ABC281 E - Least Elements

我想的思路和正解是差不多的 就是滑动窗口,每过去一个用DS维护一下前k个元素和sum 本来想的是用优先队列维护前k个 然后想着multiset维护前k个,但是具体不知道怎么操作 这里用的是multiset维护对顶堆 关于对顶堆,我在寒假的时候总结过 …

从根本上理解Synchronized的加锁过程

作为一个Java开发,对于Synchronized这个关键字并不会陌生,无论是并发编程,还是与面试官对线,Synchronized可以说是必不可少。 在JDK1.6之前,都认为Synchronized是一个非常笨重的锁,就是在之前的《谈谈Java…

ChatGPT真的有那么牛吗?

ChatGPT真的有那么牛吗?ChatGPT真的有那么牛吗? 作为一款大型语言模型,ChatGPT确实具有很高的自然语言处理和生成能力,可以生成流畅、准确和有逻辑性的语言,而且能够理解和回答广泛的问题。 它是目前最先进和最强大的…

八股+面经

文章目录 项目介绍1.不动产项目数据机器学习算法调研图像提取算法调研数据集-ImageNetXceptionVGGInceptionDensenetMobilenet 2.图书项目技术栈面试问题 Java基础反射接口和抽象类MapHashMap v.s Hashtable(5点)ConcurrentHashMap v.s Hashtable(2点)代理模式1. 静态代理2. 动…

Rust - 变量与数据的交互方式(clone)

在上一篇文章中我们介绍了变量与数据的交互方式-move,通过底层原理我们知道Rust 永远也不会自动创建数据的 “深拷贝”。因此,任何 自动的复制可以被认为对运行时性能影响较小。 但是如果我们 确实需要深度复制 String中堆上的数据,而不仅仅…

mitmproxy抓包

0.mitmproxy功能简介 实时拦截、修改 HTTP/HTTPS 请求和响应可保存完整的 http 会话,方便后续分析和重放支持反向代理模式将流量转发到指定服务器支持 macOS 和 Linux上的透明代理模式支持用 Python 脚本对 HTTP 通信进行修改 1. 安装mitmproxy pip3 install mit…

你知道如何使用C语言实现递归吗?

本篇博客会讲解如何使用C语言实现递归,以及2个注意事项。 递归是什么 递归,简单来说,就是自己调用自己。C语言中,可以使用函数来实现递归,也就是让一个函数自己调用自己。举一个简单的例子: 请你求斐波…

考验大家指针功底的时候到了:请问如何理解 (int*)1 + 1 ?

来,猜猜看,这里的执行结果是什么? 这是今天课上的一道理解题,给大家一点点思考时间。 (心里有答案了再往下滑哦) 5 4 3 2 1 . 答案是,报warning!因为%d不是用来输出指针的哈…

PromQL,让你轻松实现监控可视化!快来了解一下吧!

Prometheus 中的一些关键设计,比如注重标准和生态、监控目标动态发现机制、PromQL等。 PromQL 是 Prometheus 的查询语言,使用灵活方便,但很多人不知道如何更好利用它,发挥不出优势。 PromQL主要用于时序数据的查询和二次计算场…

学习系统编程No.23【信号实战】

引言: 北京时间:2023/4/23,最近学习状态不怎么好,总是犯困,没精力的感觉,可能是病没有好彻底的原因,也可能是我内心因为生病而认为摆烂理所应当,反正最后导致摆烂,课现在…

Postman预请求脚本、测试脚本(pre-request scripts、tests常用工作总结)

文章目录 Postman预请求脚本(pre-request scripts工作常用总结)Postman预请求脚本Postman测试脚本预请求脚本和测试脚本有什么区别常用工作总结登录接口返回的是Set-Cookie标头 Postman预请求脚本(pre-request scripts工作常用总结&#xff0…

2008-2019年主要城市PITI指数

2008-2019年主要城市PITI指数 1、来源:附在文件内 2、时间区间:2008-2019年 3、具体时间分布:、2008、2009-2010、2011、2012、2013-2014、2014-2015、2015-2016、2016-2017、2017-2018、2018-2019、 4、范围:包括110个城市&a…

Afkayas.1(★)

软件运行 要输入正确的Name和Serial 查壳 一个VB程序,没有加壳 载入OD 直接开搜索字符串。 这里看到了错误的提示,“You Get It”应该就是成功的字符串了。 前面的“AKA-”应该是在什么时候拼接的字符串 去成功的字符串附近看看 这个字符串上面…

网络编程 总结三

一、并发服务器模型 【1】 循环服务器 1>一次只能处理一个客户端的请求,等待这个客户端退出后,才能处理下一个客户端 2>缺点:循环服务器所处理的客户端不能有耗时操作 //*****模型****** sfd socket(); bind(); listen(); while(1)…

js 操作数组内容

js 操作数组内容 数组添加元素(更改原数组) push和unshift会返回添加了新元素的数组长度 push从数组最后加入,unshift从数组最前面加入 const arr ["a", "b", "c"]; arr.push("d"); //返回4…

【高危】泛微 e-cology <10.57 存在 SQL注入漏洞(POC)(MPS-ndqt-0im5)

漏洞描述 泛微协同管理应用平台(e-cology)是一套企业大型协同管理平台。 泛微 e-cology 受影响版本存在SQL注入漏洞,未经授权的远程攻击者可通过发送特殊的HTTP请求来获取数据库的敏感信息。 漏洞名称GeoServer 存在 sql 注入漏洞漏洞类型SQL注入发现时间2023/4/…