基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络
作者 | Yang Yang、Xiaojie Guo、Jiayi Ma、Lin Ma、Haibin Ling
译者 | 刘畅
编辑 | Jane
出品 | AI科技大本营(ID:rgznai100)
【导语】现实场景中,人脸的变化是很大的,例如不同的姿势、表情和遮挡等,因此在现实场景中修复人脸图像是一件非常具有挑战性的任务。一种好的修复算法应该保证输出没有违和感,包括眼睛,鼻子和嘴巴之间的拓扑结构,以及姿势,性别,种族,表情等属性是一致的。
在今天的这篇论文中,腾讯联合天津大学、武汉大学等高校研究了一种有效的基于深度学习的方法来解决这些问题。该方法涉及人脸关键点预测子网和图像修复子网。具体而言,关键点预测器可以提供不完整面孔的结构信息(例如,拓扑关系和表情),而图像修复器则根据预测的关键点生成合理的外观(例如,性别和种族)。
在 CelebA-HQ 和 CelebA 两个数据集上的实验结果现实了本文方法的有效性,并定性定量的证明了其优于 SOTA 的方法。此外,本文假设高质量的完整面孔及其关键点可以用作增强数据,以进一步提高(任何)关键点检查的性能,在 300W 和 WFLW 两个数据集上的实验结果证实了这一想法。
论文与代码地址
https://github.com/YaN9-Y/lafin
https://arxiv.org/abs/1911.11394
引言
图像修补(Image Inpainting)指的是重建图像丢失或损坏的过程,该过程可以作为各种其他任务的预处理,如图像恢复或图像编辑。毫无疑问,研究者们期望完成的结果是无违和感的。相较于海洋、草坪等自然场景,人脸会更有挑战性。因为人脸会有更强的拓扑结构,而且需要保留一致性的人脸属性。
如图1 所示。,根据观察,研究者们会很容易的感知到重构的人脸中存在的明显缺陷。下面给出这个问题的定义:
定义:人脸修补。给定一个带有损坏区域M的人脸图像I。然后指定M’ 为M的补码。o为哈达玛积。目标是对遮挡区域填充语义上的连续且有意义的信息,换句话说,最终的结果I’ = MoI' + M'oI应当保持眼睛、鼻子、嘴巴间的拓扑结果,以及姿态、性别、种族和表情等属性的一致性。
在现实场景中完成人脸修补是一项非常具有挑战性的任务。一个合格的人脸修补算法应当仔细考虑下面两个方面,以确保输出的真实感:
(1)人脸的结构非常稳固。眉毛、眼睛、鼻子和嘴巴等面部特征之间的拓扑关系始终有条有序。最终生成的脸必须首先满足此拓扑结构。
(2)人脸的属性,如姿态、性别、种族和表情在整个修补区域和可见区域应该保持一致。
有稍微不满足上述的两个条件,则会存在重大的感知缺陷。
为什么要采用人脸关键点?这项工作采用人脸关键点作为结构监督信息,是由于其紧凑性、充分性和鲁棒性。有人可能会问,边缘信息或解析信息是否比关键点指导性更强?如果得到的信息是非常准确的,那当然。但是在非常具有挑战性的环境下(如大面积损坏的大姿态人脸),要生成合理的边缘并不容易。在这种情况下,冗余和不准确的信息会损害性能。关键点相较于这些信息,更整洁健壮。从编辑操作角度看,关键点更易于控制。这些特点对于人脸修补来说,使用关键点是更好的选择。
如何保持属性的一致性?除了由关键点确定的人脸姿态和表情属性外,还需要考虑其他几个属性,例如性别、种族和容貌风格。一致性最重要一点是连接可见区域和修补区域,对于这些更细粒度的属性,修补算法应将可见信息作为图像重构的参考。
本文贡献。本文提出了一个深度网络,即“关键点指导的生产性图像修补器”(Generative Landmark Guided Face Inpaintor,简称LaFIn),它由人脸关键点预测子网和图像修补子网组成,用于解决人脸修复问题。主要贡献可以归纳为以下几个方面:
1、正如分析那样,人脸关键点整洁,充足且鲁棒,可以用作人脸修复的监督。本文构建了一个用于预测不完整面孔上的关键点模块,该模块可以映射目标面孔的拓扑结构,姿势和表情。
2、为了修复人脸,本文设计了一个以人脸关键点信息为指导的修复子网。为了实现属性一致性,子网利用了上下文信息并连接了相关联的特征图。
3、本文进行了大量的实验以验证算法的有效性,并定性定量的证明其优于目前SOTA的方法。
此外,我们可以进一步使用完成结果来提高关键点检测器的性能。由于在实际情况中,训练数据通常不足,并且手动标注关键点十分耗时,因此需要一种简单而又可靠的数据扩充方式。这是本文的另一项贡献。
4、修复后的图可能生成基于关键点的各种新面孔。因此,可以将生成的面部和相应的(GroundTruth)关键点用作增强数据。在 WFLW和300W两个数据集上的实验结果证实了这种方式的有效性。
方法
整个模型由两个子网络构成,一个是预测关键点的网络,一个是基于关键点生成新像素的图像修补网络。论文中的关键点预测子网络可以使用任意已有的关键点检测算法,但是作者的关注点有所不同,他们更希望得到一些基础拓扑结构和某些属性,而不是每个关键点的精确位置。因此作者连接融合了不同阶段的特征图来实现最终的关键点预测。
图像修补模型的输入是损坏图像和关键点(预测的结果或Ground Truth)。模型包含了生成器和判别器。其中生成器是基于U-net网络结构,但略有不同,具体的网络结构参数作者在论文附录使用表格非常详细的给出了。判别器是基于70*70的Patch-GAN网络结构。引入了SN等一些常见的稳定模型训练的结构。同样在附录里面有非常详细的结构参数。关于Loss函数,作者使用了多种Loss的结合,包括per-pixel损失、感知损失、风格损失、TV损失和对抗损失。
实验
首先实验的数据集是CelebA-HQ,其中的损坏和遮挡等是随机生成和添加。对比的方法包括CE、GFC、CA、GAFC、PIC、EC。客观评价指标使用的是PSNR、SSIM和FID。
作者还实验了使用LaFIn方法来增加关键点检测的训练数据。并在WFLW和300W两个数据集上实验了效果。如下所示。
具体的实验细节,建议阅读论文原文。一定会有不一样的发现。
总结
在这些研究中,本文开发了一个生成网络,称为LaFIn,用于人脸修复。提出的LaFIn算法首先预测关键点,然后根据关键点进行图像修复。本文依据的原则是,要有足够且鲁棒的关键点,才能为人脸修补器提供结构信息指导。为了确保属性的一致性,本文利用了上下文信息。通过大量的实验,验证了本文方法的有效性,并定性定量的证明其优于SOTA的方法。此外,还可以使用LaFIn算法来增加人脸关键点数据,实验证明了这种方法的有效性。
(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)
◆
精彩公开课
◆
推荐阅读
2020大数据十大趋势发布!华为、阿里、滴滴、百度、京东、讯飞等顶尖专家齐聚BDTC
多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记
远场语音识别错误率降低30%,百度提基于复数CNN网络的新技术
微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术
激辩:机器究竟能否理解常识?
Instagram个性化推荐工程中三个关键技术是什么?
从YARN迁移到k8s,滴滴机器学习平台二次开发是这样做的
华为将正式起诉美国联邦通信委员会;谷歌技术故障导致美国三大航空公司网站短暂宕机;英特尔拟20亿美元买以色列AI芯片公司……
2020年,区块链开发者还有哪些期待?
-
你点的每个“在看”,我都认真当成了AI
基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络相关推荐
- paddle2.0高层API实现人脸关键点检测(人脸关键点检测综述_自定义网络_paddleHub_趣味ps)
paddle2.0高层API实现人脸关键点检测(人脸关键点检测综述_自定义网络_paddleHub_趣味ps) 本文包含了: - 人脸关键点检测综述 - 人脸关键点检测数据集介绍以及数据处理实现 - ...
- 人工智能AI系列 - 人脸识别套件列表,包括人脸检测,人脸识别,人脸关键点,人脸比对,人脸搜索等等。
人脸识别套件列表 打造最好的java开源人脸识别套件,包括人脸检测,人脸识别,人脸关键点,人脸比对,人脸搜索等等. 人脸检测SDK 人脸检测SDK 链接 人脸检测 (含5个人脸关键点) SDK 链接 ...
- caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化
点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:CVPy 人脸检测历险记 可能跟我一样,人脸检测是很 ...
- 【dlib库】进行人脸检测+人脸关键点检测+人脸对齐
原图像: 1. 人脸检测 import cv2 import dlib import matplotlib.pyplot as plt # 获取图片 my_img = cv2.imread('my_i ...
- 识别人脸关键点给人脸加眼镜特效
作者:busyboxs 本项目主要使用的 API 是人脸关键点检测.因为给人脸加眼镜特效其实只需要眼睛相关的关键点即可,所以本项目为了简单,使用的是百度 AI 人脸检测 API 中的 landmark ...
- 【广告技术】如何提升定向广告效果?腾讯广告提出高质量负实例生成新方法
基于CCF-腾讯犀牛鸟基金的平台支持,腾讯广告与清华大学李勇老师团队围绕分布式大规模推荐算法开展了深入的合作研究.双方最新的合作成果入选了信息检索和数据挖掘领域顶级学术会议之一ACM CIKM 202 ...
- 【技术综述】人脸关键点检测的数据集与核心算法
人脸关键点检测是诸如人脸识别.表情分析.三维人脸重建等其它人脸相关任务的基础.近些年来,深度学习方法已被成功应用到了人脸的关键点检测,本章将介绍深度学习方法在人脸关键点检测方向的研究.包括人脸关键点任 ...
- 开发基于深度学习的人脸识别【考勤/签到】系统
开发基于深度学习的人脸识别[考勤/签到]系统 人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程 ...
- 人脸关键点: DCNN-Deep Convolutional Network Cascade for Facial Point Detection
近期学习关键点检测相关内容,基于CNN的方法已经替代以往经典的方法(ASM,AAM等),于是乎得看看CNN是如何应用到关键点检测上的. 创新点: 1.将CNN应用到人脸关键点检测当中 2.提出级联CN ...
最新文章
- 8 Great Java 8 Features No One's Talking about--转载
- linux 抓包 tcpdump和Wireshark
- 模式识别之Shape Context---利用Shape Context进行形状识别
- Python学习笔记_读Excel去重
- js验证input输入框(字母,数字,符号,中文)
- 获得TADIR-OBJECT全部的entry list
- Trade Stages - The Trade Path
- WEB安全基础-文件操作漏洞
- Silverlight 3.0 RTW引入-- 鼠标滚动事件
- 每日小记 2017.2.26
- html是超文本标记语言标签,main标签
- tar打包/解包用法
- Web前端开发最佳实践(7):使用合理的技术方案来构建小图标
- python对象--加减重构
- dnf时装预览怎么打开_dnf怎么查找各职业时装代码
- OpenPose Demo
- 电商运营学习成长目录
- win10如何删除微软拼音输入法
- RAID技术全解图解-RAID0、RAID1、RAID5、RAID100
- IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Che
热门文章
- JavaScript-数据引用类型对象
- Android中设置TextView的颜色setTextColor
- java继承中的一些该注意的问题
- 接口限流算法:漏桶算法令牌桶算法
- 代码洁癖的春天!Java 效率工具之 Lombok
- 5 修改request对象变量_【总结】前端5大常见设计模式,代码一看你就懂!
- python实现yolo目标检测_Yolov5—实现目标检测(win10)
- Python 将数据框类型转为字典类型
- 2018-3-31 ELM极限学习机--笔记(黄广斌PPT,以及极限学习机原理介绍的部分,但是忘记网址了)
- 2018-3-20论文(一种新型的智能算法-狼群算法WPA)笔记二(狼群系统分析,算法步骤)