万字解读首篇「人脸复原」综述!南大、中山、澳国立、帝国理工等联合发布

简介: 万字解读首篇「人脸复原」综述!南大、中山、澳国立、帝国理工等联合发布
【新智元导读】「人脸复原」技术首篇综述!


近年来,随着深度学习的发展和大规模数据集的出现,深度学习在很多领域也取得了进展,但其中「人脸复原」(Face Restoration)任务仍然缺乏系统性的综述。

最近,来自南京大学、澳大利亚国立大学、中山大学、帝国理工学院和腾讯的研究者们全面回顾并总结了基于深度学习的人脸复原技术的研究进展,对人脸复原方法进行了分类,讨论了网络架构、损失函数和基准数据集,并对现有SOTA方法进行了系统性性能评测。


论文链接:https://arxiv.org/abs/2211.02831

仓库链接:https://github.com/TaoWangzj/Awesome-Face-Restoration


这篇文章也是人脸复原领域首篇综述,其主要贡献为:


1. 回顾了人脸复原任务中主要的退化模型、常用的评价指标,并总结了人脸图像显著性的特点;


2. 总结了目前人脸复原面临的挑战,对现有方法进行分类及概述。方法主要包括两大类:基于先验的深度学习复原方法和无先验的深度学习复原方法;


3. 梳理了方法中使用的基本网络架构、基本网络模块、损失函数和标准数据集;


4. 在公共基准数据集上对现有SOTA方法进行了系统性实验评测;


5. 分析了人脸复原任务未来发展前景。


文章的整体架构


研究背景


人脸复原(Face Restoration, FR)是底层视觉中一个特定的图像复原问题,旨在从低质量的输入人脸图像中恢复出高质量的人脸图像。通常来说,退化模型可以描述为:


其中I(lq)是低质量人脸图像, D是与噪声不相关的退化函数, n是加性高斯噪声。当退化函数D不同的时候,就对应了不同的退化模型。因此,FR任务可以视为是求解上述退化模型的逆过程,它可以表示为:


其中根据退化函数不同,人脸复原任务主要可以分为以下五大类,其分别对应着不同的退化模型:


1. 人脸去噪任务(Face Denoising, FDN):去除人脸图像中的噪声,恢复出高质量的人脸;



2. 人脸去模糊任务(Face Deblurring, FDB):去除人脸图像中的模糊,恢复出高质量的人脸;



3. 人脸超分辨率任务(Face Super-Resolution, FSR):从低质量的低分辨率人脸中恢复出高分辨率高质量的人脸;



4. 人脸去伪影任务(Face Artifact Removal, FAR):去除人脸图像压缩过程中出现的伪影,恢复出高质量的人脸;



5. 盲人脸复原任务(Blind Face Restoration, BFR):将未知退化的低质量人脸复原成高质量人脸;



人脸特点


与一般自然图像的复原任务不同,人脸图像具有很强的结构性信息,因此人脸复原任务可以利用人脸图像的先验信息来辅助人脸的复原过程,先验信息主要可以分为以下三部分:


人的属性信息:如性别,年龄,是否佩戴眼镜,如下图所示;



人的身份信息;


其他先验信息如下图所示,代表性的先验有人脸landmark,人脸热图,人脸解析图和3D人脸先验;



人脸复原面临的主要挑战


1. 人脸复原本身是一个不适定的问题。


因为低质量人脸图像的退化类型和退化参数是事先未知的,从退化的图像中估计高质量的人脸图像是一个不适定问题。


另一方面,在实际场景中,人脸图像的退化是复杂多样的。因此,如何设计有效并且鲁棒的人脸复原模型来解决这个不适定的问题具有一定的挑战性。


2. 探索未知的人脸先验较为困难。


现有人脸复原算法很难充分利用人脸先验知识,因为人脸先验(例如面部成分和面部标志)通常是从低质量人脸图像中估计的,低质量的人脸可能造成先验估计的不准确,这直接影响人脸复原算法的性能。


另一方面,真实场景拍摄的人脸图像往往包含复杂多样的退化类型,找到合适的人脸先验来辅助人脸复原过程是非常困难的。因此,如何挖掘合理的人脸先验具有一定的挑战性。


3. 缺乏大型公开基准数据集。


随着深度学习技术的发展,基于深度学习的方法在人脸复原方面表现出令人印象深刻的性能。大多数基于深度学习的人脸复原方法强烈依赖于大规模数据集来训练网络。


然而,目前大多数人脸复原方法通常在非公开数据集上训练或测试的。因此,目前很难直接公平地比较现有人脸复原方法。


此外,缺乏高质量和大规模的基准限制了模型的潜力。然而,如何获得大规模的人脸数据依然很困难,因此,为人脸复原任务构建合理的公开基准数据集有一定的挑战性。


4. 人脸复原算法在实际场景下泛化能力有限。


尽管基于深度学习方法在人脸复原方面取得了较好的性能,但大多数方法是依赖监督策略进行训练。


也就是说,这些方法需要成对的(低质量和高质量图像对) 数据集,如果这个条件不满足,它们性能会大幅度降低。


另一方面,很难在现实场景中收集到具有成对样本的大规模数据集。因此,在合成数据集上训练的算法在实际场景下泛化能力很弱,从而限制了模型在实际场景中的适用性。因此,如何提高人脸算法在实际场景下泛化能力具有一定的挑战性。




相关文章
|
存储 编解码 安全
Opus从入门到精通(二):编解码器使用
opus_encoder_get_size()返回编码器状态要求的大小。注意,这段代码的未来版本可能改变大小,所以没有assuptions应该对它做出。编码器状态在内存中总是连续,复制它只要一个浅拷贝就足够了。使用opus_encoder_ctl()接口可以改变一些编码器的参数设置。所有这些参数都已有缺省值,所以只在必要的情况下改变它们。
2677 0
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
695 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
11月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
492 1
|
存储 缓存 人工智能
【原理】【Java并发】【synchronized】适合中学者体质的synchronized原理
本文深入解析了Java中`synchronized`关键字的底层原理,从代码块与方法修饰的区别到锁升级机制,内容详尽。通过`monitorenter`和`monitorexit`指令,阐述了`synchronized`实现原子性、有序性和可见性的原理。同时,详细分析了锁升级流程:无锁 → 偏向锁 → 轻量级锁 → 重量级锁,结合对象头`MarkWord`的变化,揭示JVM优化锁性能的策略。此外,还探讨了Monitor的内部结构及线程竞争锁的过程,并介绍了锁消除与锁粗化等优化手段。最后,结合实际案例,帮助读者全面理解`synchronized`在并发编程中的作用与细节。
1032 8
【原理】【Java并发】【synchronized】适合中学者体质的synchronized原理
Saga模式在分布式系统中如何保证事务的隔离性
Saga模式在分布式系统中如何保证事务的隔离性
432 7
|
前端开发 定位技术 API
怎么用LarkMap完成地图需求
本文属于技术选型的参考性文章,主要以一个一个的案例分析,来带各位快速的了解到LarkMap能帮助我们完成哪些需求。希望阅读完之后您对LarkMap有一个大致的印象,若后续有地图需求的话,可以考虑使用LarkMap。
920 2
|
网络协议 安全 Python
python实现对网络流量分析
Python提供多种工具进行网络流量分析,如`pcap`库用于实时捕包,`dpkt`库用于解码数据包,以及`Scapy`库进行高级分析。
1269 1
|
安全 数据安全/隐私保护 智能硬件
智能家电设备连接与验证的流程
智能家电设备连接与验证的流程
1172 1
|
存储 机器学习/深度学习 API
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
该文探讨了向量数据库在语义搜索和RAG中的核心作用,并介绍了四个开源向量数据库:Chroma、Milvus、Faiss和Weaviate。这些数据库用于存储高维向量,支持基于相似性的快速搜索,改变了传统的精确匹配方法。文章详细比较了它们的特性,如Chroma的易用性,Milvus的存储效率,Faiss的GPU加速,和Weaviate的图数据模型。选择合适的数据库取决于具体需求,如数据类型、性能和使用场景。
4579 0

热门文章

最新文章