腾讯开源LaFIn生成网络基于人脸关键点修复人脸

2024-03-19 09:59

本文主要是介绍腾讯开源LaFIn生成网络基于人脸关键点修复人脸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【导语】

由于外观变化很大,例如不同的姿势,表情和遮挡,在野外修复脸部图像非常具有挑战性。一个好的修复算法应该保证输出的真实性,包括眼睛,鼻子和嘴巴之间的拓扑结构,以及姿势,性别,种族,表情等方面的属性一致性。

由腾讯联合天津大学、武汉大学等高校研究了一种有效的基于深度学习的策略来处理这些问题,包括面部界标预测子网和图像修复子网。具体而言,在进行部分观察的情况下,地标预测器旨在提供不完整面孔的结构信息(例如,拓扑关系和表情),而画家则根据预测的地标生成合理的外观(例如,性别和种族)。进行CelebA-HQ和CelebA数据集的实验以揭示我们设计的功效,并从质量和数量上证明其优于最新替代方案的优越性。此外,我们假设高质量完成的面孔及其地标可以用作增强数据,以进一步提高(任何)地标预测器的性能,这在300W和WFLW数据集上的实验结果得到了证实。

图像修复(Image Inpainting)是指对丢失或损坏的图像进行重建的过程,它可以作为图像恢复或图像编辑等各种其他任务的预处理。毫无疑问,研究人员期望达到的结果是不一致的。与海洋、草坪等自然景观相比,人脸将更具挑战性。因为面将具有更强的拓扑结构,并且需要保留一致的面属性。

如图1所示。根据观察,研究人员很容易在重建的人脸上发现明显的缺陷。这个问题的定义如下:

图1:根据我们的方法得出的三张面孔完成结果。

从左至右:分别是损坏的输入,从输入中预测的界标以及我们的最终结果。

定义:面部修复。给出了一个损伤区域为M的人脸图像I。然后M'被指定为M的补语。o是哈达玛积。目标是用语义上连续且有意义的信息填充遮挡区域。换句话说,最终结果I'=M oI'+M'oI应保持眼睛、鼻子和嘴之间的拓扑结果,以及态度、性别和种族。与表达式等属性的一致性。

在现实生活中完成面部修复是一项非常具有挑战性的任务。一个合格的人脸修补算法应该仔细考虑以下两个方面,以确保输出的真实性:

  • 人脸结构非常稳定。眉毛、眼睛、鼻子和嘴等面部特征之间的拓扑关系总是有组织的。生成的面必须首先满足此拓扑。
  • 面部特征,如姿势、性别、种族和表情,应在整个修补区域和可见区域保持一致。

如果上述两个条件稍有不符,就会出现明显的知觉缺陷。

为什么使用面关键点?

由于该方法具有简洁、充分和鲁棒性强的特点,所以将工作面关键点作为结构监测信息。人们可能会问,边缘信息或分析信息是否比关键点更有启发性?如果获得的信息非常准确,那当然。然而,在非常具有挑战性的环境中(例如具有大姿态的大规模受损面),不容易生成合理的边。在这种情况下,冗余和不准确的信息会损害性能。关键的一点是比这些信息更简洁和可靠。从编辑的角度来看,关键点更容易控制。这些特征是使用关键点进行面部修复的更好选择。

如何保持属性的一致性?

除了由关键点决定的面部姿势和表情属性外,还需要考虑其他几个属性,如性别、种族和外观风格。最重要的一致点是连接可视区域和修复区域。对于这些细粒度的属性,修复算法应该使用可见信息作为图像重建的参考。

图3:提出的模型的体系结构。 对于校正的图像,首先由地标估算地标预测模块。 然后,inpaint模块会像在inpaint图像之前一样应用界标。 符号c,k,s和p分别代表通道号,内核大小,步幅和填充。 此外,对于每个反向残差块,包含重复t次的相同层的序列,并且扩展因子为f。

本文的贡献:本文提出了一种由人脸关键点预测子网和图像修复子网组成的深层网络“生成性路标导向人脸修复器”(LaFIn)。面对维修问题,主要贡献概括如下:

  1. 分析表明,人脸的关键点是干净、充足和健壮,可以作为人脸修复的监督。本文建立了一个预测不完整人脸关键点的模块,该模块可以映射目标人脸的拓扑结构、姿态和表情。
  2. 为了修复人脸,本文设计了一个基于人脸关键信息的修复子网。为了实现属性一致性,子网使用上下文信息并连接关联的特征映射。
  3. 本文通过大量实验验证了该算法的有效性,并从定性和定量上证明了其优于现有的SOTA方法。
  4. 此外,我们还可以进一步利用完成结果来提高关键点检测器的性能。由于在实际应用中,训练数据往往不够充分,而手工键盘指向又很费时,因此需要一种简单可靠的数据扩展方法。这是本文的另一个贡献。
  5. 修复后的地图可以根据关键点生成各种新的面。因此,生成的人脸和相应的(GroundTruth)关键点可以用作增强数据。在WFLW和300W两个数据集上的实验结果证实了该方法的有效性。

方法

整个模型由两个子网络组成,一个是预测关键点的网络,另一个是基于关键点生成新像素的图像修复网络。本文中的关键点预测子网可以使用任何现有的关键点检测算法,但作者的关注点是不同的。他们更喜欢得到一些基本拓扑和某些属性,而不是每个关键点的确切位置。因此,作者将不同阶段的特征图连接起来,实现最终的关键点预测。

图像修复模型的输入是受损图像和关键点(预测结果或地面真实性)。该模型包含生成器和鉴别器。生成器基于U-net网络结构,但略有不同。具体的网络结构参数由作者在附录的表格中详细给出。该鉴别器基于70×70补丁GAN网络结构。介绍了几种常用的稳定模型训练结构,如SN。附录中还有非常详细的结构参数。在损失函数方面,作者采用了各种损失的组合,包括每像素损失、知觉损失、风格损失、电视损失和对抗性损失。

实验

第一个实验数据集是CelebA HQ,其中损伤和遮挡是随机生成和添加的。比较方法包括CE、GFC、CA、GAFC、PIC、EC。客观评价指标采用PSNR、SSIM和FID。

图4:与CelebA-HQ数据集上其他最新技术的定性比较。 (a)显示地面真相图片。 (b)描绘了(a)的蒙版。 (c)-(f)分别是CA,EC,PIC和我们的LaFIn获得的结果。

图5:CelebA数据集上竞争对手之间的视觉比较。 (a)显示了真实的图像。 (b)描绘(a)的蒙版。(c)-(f)分别是CE,GFC,EC和我们的LaFIn获得的结果。

表1:在CelebA-HQ数据集上对随机和中心掩码上的PSNR,SSIM和FIC进行了定量比较。

表2:在中心遮罩上的SNRA,SSIM和FID中CelebA数据集上的定量比较。

作者还尝试使用LaFIn来增加关键点检测的训练数据。在WFLW和300W两个数据集上进行了测试,结果如下:

总结

论文或源码数据集下载地址:关注“图像算法”wx公众号 回复“LaFIn”,本文开发了一个LaFIn的生成网络被开发用于面部修复,该算法首先预测关键点,然后根据关键点进行图像修复。本文基于一个原则,即必须有足够的和健壮的关键点,为人脸修补程序提供结构信息指导。为了保证属性的一致性,本文利用上下文信息。通过大量实验,验证了该方法的有效性,并从定性和定量上证明了该方法优于SOTA方法。此外,LaFIn算法还可以用来增加人脸上关键点的数据量。实验证明了该方法的有效性。

 

这篇关于腾讯开源LaFIn生成网络基于人脸关键点修复人脸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/825604

相关文章

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块