【论文阅读-表情捕捉】High-quality Real Time Facial Capture Based on Single Camera
来自FACEGOOD的面部捕捉,论文标题:High-quality Real Time Facial Capture Based on Single Camera,FACEGOOD亲自发的解析:https://zhuanlan.zhihu.com/p/436866934
作为首要目标,我们做的事情是工业级、高精度,所有工作都是围绕着这个点开展。在实时方面我们尝试了很多方法,3DMM、传统的基于shape的方法,甚至3D摄像头,都不尽人意。主要是民用跟工业的矛盾,通用的民用路线无法满足高精度需求,举个例子,arkit的52个变形体非常通用了,玩一下效果也ok,但是52个变形体的天花板是非常低的,metahuman的变形体有600+,有些影视作品的绑定甚至上千个,这种特殊化场景,在工业上是非常常见的。传统做法还有个问题,计算过于依赖landmark,跟不好对不齐就影响到了最终的计算,我们提出了一种思路,直接跳过了landmark,把图像映射到权重或者4D顶点,1万点的4D输出,只需要5ms,非常快。这种方式还有个好处,足够鲁棒,对高频率大幅度的一些头盔震动有很好的抑制能力,另外在表情的自定义方面也有很好的潜力,例如我们用metahuman做的实验,很好的把舌头的动作重建了出来,模型在讲话的时候舌头也会跟着动。
(之前没接触过这个方向,所以机翻一下introduction)
Introduction
面部表情捕捉技术被分为 landmark driven, point cloud driven, sound driven and image based.
基于关键点的:
人类通过面部表情表达他们的内心感受,例如快乐或愤怒。如何使计算机自动识别表情是一个重要的研究领域,吸引了众多学者为它倾注精力和时间。 Essa et al.[Essa et al., 1996] 表明面部动画方法也是为基本视频输入而设计的,但是它们对光流或特征跟踪的严重依赖可能会导致不稳定。面部表情在动画、游戏、电影和电视制作中往往扮演着不可或缺的角色。
在电影中,金刚、咕噜等面部结构奇特的人物的生物动画就是通过这种技术生成的。如何利用单个演员的表情数据来驱动不同的人脸模型,在人脸模拟领域引起了极大的关注。在动作捕捉领域,不同面部表情的动作数据被映射和配准。特征重建方法依赖于不同遮挡条件下的训练数据,但遮挡位置和类型太多,无法控制。 Li et al. [Li et al., 2018a] 设计了用于感知遮挡的补丁门控旋转中性网络(pg-cnn),可以自动感知人脸的遮挡区域,重点关注划分的24个非遮挡子区域用更多的特征信息,将这 24 个子区域输入到一个注意力网络中,得到加权级联的局部特征。 Li et al. [Li et al., 2018b] 通过引入全局候选单元进一步扩展了 pg-cnn 方法,以补充人脸图像的全局信息用于表情识别。然而,这些基于人脸关键点选择子区域的方法在有遮挡的人脸图像中并不准确。
最近的研究使用不同的网络结构和预处理方法。在表情识别领域,深度学习的快速发展促使研究人员利用深度神经网络开发人脸表情识别,近年来,研究人员提出了各种新颖的表情识别模型和算法,以提高表情识别的效率,降低人脸表情识别的效率、特殊场景下的表情识别错误。所以他们已经证明卷积神经网络也可以提取特征和分类面部表情识别。 Lewis et al.[Lewis et al., 2014] 表明,尽管 blendshape 方法很简单,但仍然存在一些悬而未决的问题。
基于点云的方法
Iordanis et al.[Mpiperis et al., 2008] 引入了一种新的基于模型的框架,用于在不同人脸的 3d 点云之间建立对应关系。 Xiao et al.[Xiao et al., 2004] 研究了流行的生成模型 Active Appearance Models 的表示能力,并表明它们可以对 3d Morphable Model 可以建模的任何东西进行建模,但可能需要更多的形状参数。 2009 年,Weise et al.[Weise et al., 2009] 提出了一种低成本的实时结构光扫描仪,可以提供密集的 3d 数据和纹理。随着RGBD相机的出现,研究人员可以获得深度数据。物理距离是RGBD相机得到的深度图的像素值除以比例图得到的。
Hao et al.[Li et al., 2013] 在 2013 年提出了一种基于传感器的免校准面部表现捕捉框架,具有视频和深度输入。 Samuli et al.[Laine et al., 2017] 产生了高质量的输出基于来自单目视频的卷积网络,包括自遮挡区域。 Thibaut et al.[Weise et al., 2009] 提出了一种现场木偶系统,该系统允许在 2009 年将演员的面部表情转移到数字 3d 角色上。2011 年,Thibaut et al.[Weise et al., 2011] 引入了一个结合几何和纹理配准的新型人脸跟踪算法。它有效地将低质量的 2d 图像和 3d 深度图映射到逼真的面部表情。 Martin et al.[Klaudiny et al., 2017] 在 2017 年使用特定于演员的回归器,从多视图头盔相机数据中实现无标记的面部表现捕捉。Derek et al.[Bradley et al., 2010] 引入了一种纯被动的仅使用一组摄像机的面部捕捉方法,但不需要模板面部几何形状,不需要特殊的化妆或标记,也不需要主动照明。
基于音频的方法
音频驱动的面部模拟技术也吸引了很多研究。由于在语音过程中对表达性视觉行为建模的工作很少,Yong et al.[Cao et al., 2005] 使用依赖于语音相关高保真面部动作数据库的机器学习方法解决了这个问题。 Tero et al.[Karras et al., 2017] 通过低延迟的音频输入驱动实时 3D 面部动画。基于神经网络的端到端模型的推理速度较慢,合成的语音通常不鲁棒,即某些单词被跳过或重复。但是,Yi et al. [Ren et al., 2019] 从基于编码器-解码器的教师模型中提取注意力对齐,用于音素持续时间预测
基于图像的方法
基于图像的系统与基于模型的系统完全不同,例如上面提到的 Iordanis 介绍的系统。 Kang et al.[Liu et al., 2008] 提出了一种基于图像的面部动画系统,该系统使用主动外观模型来精确检测人脸中的特征点。 Kang et al.[Liu and Ostermann, 2009] 连接数据库中适当的嘴巴图像,使其与 2009 年说话人的口语相匹配。2011 年,他们[Liu and Ostermann, 2011] 提出了一个基于图像的说话人该系统能够在给定任意文本输入和面部表情控制标签的情况下,合成伴随语音的逼真面部表情。 Sarah et al.[Taylor et al., 2016] 提出了一个滑动窗口深度神经网络,它学习从声学特征窗口到视觉特征窗口的映射。 Chen et al.[Chen et al., 2013] 提出了一种基于图像的 3d 非刚性配准过程。在 Cao et al.[Cao et al., 2013a] 提出的模型中,面部标志点的 3D 位置由网络摄像头的 2d 视频帧中的回归器推断。他们通过 RGBD 相机捕获了 150 名年龄在 7-80 岁之间的不同背景的人[Cao et al., 2013b]。 Chen et al.[Cao et al., 2014] 提出了一种不需要对每个单独用户进行任何校准的方法。但它展示了与需要耗时校准步骤的最先进技术相当的鲁棒性和准确性水平。 Chuang et al.[Chuang and Bregler, 2002] 使用运动捕捉数据和 blendshape 插值的组合来创建面部动画。在传统的表情动画制作过程中,动画的逼真效果往往需要大量的人工干预。因此,真实性和效率性仍然是当前人脸表情模拟研究的主要指标。动作捕捉技术是近年来发展起来的一种新的数据采集手段,可以实时记录和还原表演者的动作。面部动作捕捉技术将动作捕捉技术应用于面部表情动画的制作。因此,近年来,动作捕捉技术在面部表情模拟的研究领域受到越来越多的关注。 Assia et al.[Khanam and Mufti, 2007] 提出了一种新方法,通过上下文敏感的面部表情混合为性能驱动的面部动画增加灵活性和智能。 Salil 的 [Deena and Galata, 2009] 面部动画是通过使用共享高斯过程潜变量模型对面部运动和语音之间的映射进行建模来完成的。在 Meng et al.[Meng and Wen, 2019] 的研究中,嵌入被输入长短期记忆网络 (LSTM) 网络以学习帧之间的变形。
人类通过面部表情表达他们的内心感受,例如快乐或愤怒。如何使计算机自动识别表情是一个热门的研究领域,吸引了众多学者为他倾注精力和时间。提取具有较强鲁棒性和表示能力的图像特征是表情识别系统的关键。各种人脸 3d 模型已用于计算机图形和计算机视觉。 Marc et al. [Habermann et al., 2019] 引入的模型是第一个用于全身性能捕捉的实时单目方法。 Kettern et al.[Kettern et al., 2015] 提出了一个模型,该模型支持任意数量的任意放置的摄像机。
面部表情模拟在虚拟现实、认知科学、人机交互界面设计和在线视频会议等领域吸引了大量的研究工作。真实性是表情模拟的关键评价标准之一。人脸动画方法也是为基本的视频输入而设计的,但它们对光流或特征跟踪的严重依赖可能会导致不稳定。面部表情在动画、游戏和影视制作中往往扮演着不可或缺的角色。张等人。 [Zhang et al., 2014] 2014 年通过蒙特卡罗方法提取了一组基于 Gabor 的人脸模板,并将其转化为模板匹配距离特征。模板匹配的距离特征依赖于特定表达式数据集中的模板选择,跨数据集的性能难以保证,泛化能力不强。另一种特征重建方法是学习生成模型,该模型可以从被遮挡的人脸中重建完整的人脸[Pan et al., 2019]。
基于RGBD的系统的缺点如下:计算耗时,设备昂贵,没有眼球性能。同样,各种音频驱动方法也无法正确驱动眼球。但是我们的提取面部捕捉网络(DFCN)涉及眼睛的表现。其中很多是基于模型的,而我们是基于图像的。进一步,在回归算法中引入知识蒸馏,提高网络的表达能力。
本文的突出贡献可以总结为:
- 建立了从视频序列到 blendshape 权重和 2d 面部标志的实时面部捕捉框架。
- 提出了一种自适应回归蒸馏(ARD)框架,可以过滤错误标记的数据,确保学生网络在正确的轨道上训练。
Methods
这篇文章提出的核心网络叫 DFCN (Distill Facial Capture Network),推理时,输入是图像,输出是相应的 blendshape 的权重eee 和 2D landmark SSS。
通过模型拿到权重e之后,就可以通过以下公式得到 3D 面部 mesh FFF。其中BBB是blendshape,通过苹果的Arkit模型获取,有52个动作单元,用于描述面部表情。
预测阶段加了后处理的滤波器,主要采用的是Kalman滤波器和Savitzky-Golay(SG)滤波器。可以有效的减少帧与帧之间的数据抖动,对于landmark和blendshape权值数据都有可观的平滑效果。
训练集需要包括下面四种数据:
- 标准的表情:先让演员做出一些极限位置的表情。比如:尽可能张开嘴巴,尽可能将下颚侧向和向前移动,撅起嘴唇,睁大眼睛然后强迫闭上。这样是为了捕捉到最大的面部动作。同时也需要一些正常的面部表情,如眯着眼睛或厌恶的表情。夸张表情和正常表情都必须包含在训练集中,否则神经网络将无法识别它们。
- 特殊的表情:这个数据集是演员们全力扭曲的表情,这样神经网络才能更好地学习到这些夸张的表情。
- 正常说话:这个数据集利用了一个事实,即演员对角色的表演通常在情感和表达范围方面存在严重偏见。演员可能会有符合角色设定的台词,以确保经过训练的网络产生符合角色的输出。
- 夸张说话:这一数据集记录着演员在说话时可能达到的最夸张的程度。
训练数据的blendshape weight 是由他们公司开发的avatory生成的。做了亮度、随机padding,对比度等数据增强。
训练采用了蒸馏,loss设计:
他们称其为自适应蒸馏(ARD, adaptive regression distillation),本质是,当数据点是一个异常值时,让学生从老师网络的输出值学习。如果不是异常点,就让学生学习真实的数据,而不是老师的“半对半错”的数据。这里,v大于1,表示当学生目前学得还不够好时,给一个更大的损失,促进学生的学习。另外,m为除了异常值外的数据集,µ为判断点是否为噪声的超参数,b为衡量教师和学生之间的表现差距,由研究者自行设定。此外,需要对几处矢量求欧几里得范数的平方。
个人总结
个人觉得这篇论文的学术性并不是很强,主要贡献在于其在工业界的应用,因为是工业界发的论文,利用自己家平台能直接输出 blendshape weight 的优势,才跳过了landmark,实现从图像直接到 blendshape 的模型训练,结合模型蒸馏,从而加速整个流程,在准确率和实时性的平衡方面达到了工业界比较好的水准。
【论文阅读-表情捕捉】High-quality Real Time Facial Capture Based on Single Camera相关推荐
- 【论文阅读笔记】High Quality Monocular Depth Estimation via Transfer Learning
文章目录 High Quality Monocular Depth Estimation via Transfer Learning Abstract 1. Introduction 2. Relat ...
- 论文阅读:No-Reference Image Quality Assessment with Global Statistical Features
paper:J. Imaging | Free Full-Text | No-Reference Image Quality Assessment with Global Statistical Fe ...
- 论文阅读【异常检测】ModelCoder: A Fault Model based Automatic Root Cause Localization Framework for Microservi
ModelCoder: A Fault Model based Automatic Root Cause Localization Framework for Microservice Systems ...
- 论文阅读计划2(Deep Joint Rain Detection and Removal from a Single Image)
Deep Joint Rain Detection and Removal from a Single Image[1] 简介:多任务全卷积从单张图片中去除雨迹.本文在现有的模型上,开发了一种多任务深 ...
- [HSI论文阅读] | Deep Feature Extraction and Classification of Hyperspectral Images Based on CNNs
写在前面 论文: Y. Chen, H. Jiang, C. Li, X. Jia and P. Ghamisi, "Deep Feature Extraction and Classifi ...
- 论文阅读 | Bringing a Blurry Frame Alive at High Frame-Rate with an Event Camera
前言:这是一篇事件相机面向去糊方向的文章.发表在了CVPR2019 oral,之后也改进出了一篇PAMI.内容主要是对事件相机的成像原理和图片的模糊原理进行建模,整理出公式并给出了优化函数,通过不断调 ...
- 论文阅读笔记:Deep Chain HDRI: Reconstructing a HDR Image from a Single LDR Image
Lee, S., An, G. H., & Kang, S. J. (2018). Deep chain HDRI: Reconstructing a high dynamic range i ...
- 论文阅读【Controllable Video Captioning with POS Sequence Guidance Based on Gated Fusion Network】
Controllable Video Captioning with POS Sequence Guidance Based on Gated Fusion Network 概述 发表:ICCV 20 ...
- 论文阅读 (68):Self-Contrastive Learning: An Efficient Supervised Contrastive Framework with Single...
文章目录 1 引入 1.1 题目 1.2 摘要 1.3 Bib 2 自对比学习 2.1 SupCon损失 2.2 SelfCon损失 1 引入 1.1 题目 2021自对比学习:单视图和子网络下的 ...
- DSSD : Deconvolutional Single Shot Detector论文阅读笔记
文章目录 DSSD : Deconvolutional Single Shot Detector论文阅读笔记2017 Abstract 1. Introduction 2. Related Work ...
最新文章
- 使用 HttpResponse.Write 方法进行字符串串联
- 1136 A Delayed Palindrome 需再做
- Kafka创建查看topic,生产消费指定topic消息
- python打架动态图_20个GIF动图解释令程序员崩溃的瞬间 - 里维斯社
- 如何使 React 中的 useEffect、useLayoutEffect 只调用一次
- 学计算机随随便便上万,大学“最烧钱”专业排行榜,“家境一般”慎入,“土豪”请随意...
- 一步步Netty的基石 - Reactor模式
- Olympic Games -basketball
- c语言推箱子代码_C语言烂大街的东西都学不会!C语言多关卡推箱子制作教程
- UVA10405 Longest Common Subsequence【LCS+DP】
- 图片怎么转换成文字?几个好用的方法快来查阅
- 【产业互联网周报】罗永浩AR创业公司获美团领投;英特尔自动驾驶子公司Mobileye敲定IPO条款;星环科技登陆科创板...
- kafka消费者报错:Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
- NVIDIA GPU 常用操作
- socket编程基础知识
- oracle 按天数 均值,oracle 按天数统计数据
- 恶意邮件智能监测与溯源技术研究
- JAVA重复图片_〔批处理〕处理重复图片
- Lambda 表达式(一)-码住
- 微信响应菜单点击事件php,微信开发实现各种消息的响应
热门文章
- android 安装在笔记本,笔记本电脑怎么装安卓系统_笔记本安装安卓教程-系统城...
- vm安装android,Vmware虚拟机安装安卓4.0系统教程
- 技能get!如何使用PDF查找关键字
- cocos2d-x中setcolor中的rgb颜色值设置
- scp构造端口_scp端口号(scp默认端口号)
- php换行快捷输入,excel中换行的快捷键是什么
- [Error] invalid operands to binary ^ (have ‘double‘ and ‘float‘)
- 你对Redis的使用靠谱吗?
- 如何制作龙芯系统安装U盘
- office word 文件未找到:MathPage.WLL