Reconstructing Detailed Dynamic Face Geometry from Monocular Video 论文笔记
摘要
文章提出了一种从单目视频中获取人脸几何信息的方法。该方法可以不需要标记就能得到detailed、动态的、时空相干的3D人脸几何形状。在不可控光线下,该方法依然可以成功重建表情运动,包括高频面部细节,如褶皱和笑纹。捕捉过程是全自动的,只需要简单的手动初始化。
方法在自动选择的关键帧之间精确地跟踪稀疏2D特征,使参数化的混合形状模型具有动画效果,并通过时间相干的光流和光度立体技术(photometric stereo)进一步细化姿态、表达和形状。
一、工作意义
在电影和游戏的制作中,经常需要重建视频中虚拟角色的人脸,从而提供详细的动态人脸几何信息。然而,用光学捕捉的方法既昂贵又麻烦,因为它们可能需要密集的多视图摄像机系统、动作标记和多种条件的控制。而用计算机视觉的方法,从单目视频中捕捉的人脸模型又非常粗糙,通常只包含稀疏2D集合或3D facial landmark。目前还无法从单目视频中捕捉到电影和游戏所需的高质量3D人脸模型。
本文的工作,进一步将应用的边界向单目视频扩展,填补了昂贵的控制设置和低质量的单目方法之间的一个重要的算法空白。它为专业的电影和游戏制作开辟了新的应用可能性,使面部表现捕捉从现场获取,直接转变到主摄像头时代。这是迈向大众化的一步,日常用户只需一个便宜的摄像机就可以实行。
二、相关工作
VALGAERTS, L., WU, C., BRUHN, A., SEIDEL, H.-P., AND THEOBALT, C. 2012. Lightweight binocular facial performance capture under uncontrolled lighting. 提出了一种利用双目立体视觉进行详细性能捕获的方法。
Monocular Face Tracking 单目人脸跟踪
通常将人脸表示为参数化的2D或3D形状模型,并与视频中的特征相匹配。这类算法有:
- 活动外观模型变体(variants of active appearance models)。[Cootes et al. 2001; Xiao et al. 2004]
- 训练回归森林来寻找更加稀疏的面部特征。[Dantone et al. 2012]
- 基于模型的光流法,由粗糙的人脸模版构造而成。 [Brand and Bhotika 2001]
Dense 3D Facial Performance Capture 密集3D人脸表现捕捉
Scanner-based
将基于标记的运动捕捉与静态人脸扫描相结合,可以合成详细的运动人脸[Huang et al. 2011]。其他三维方法从动态主动(dynamic active)三维扫描仪数据中跟踪形状模板[Zhang et al. 2004;王等,2004;Weise等人,2007]
Image-based
有助于克服纯几何和基于扫描仪的方法在形状细节和跟踪精度方面的限制
Template-based
将可变形形状模型拟合到人脸图像中。
结合被动立体(passive stereo)与网格跟踪(mesh tracking)
可以获得高质量的人脸模型。一些商业系统:MOVA,DepthAnalysis
孔隙级皮肤细节可以通过在受控光照下记录和利用光度线索重建
轻量化
Weise et al. [2009; 2011] 使用Kinect实时捕捉混合形状参数,与本文方法类似,但目的不同。
Dynamic Monocular Face Reconstruction 动态单目人脸重建
PCA模型
Blanz et al. [2003]
从3D扫描的大型数据库中学习,对视频进行拟合,并执行简单的编辑任务。然而,精细的面部细节,如皱纹和笑线,不能用他们的方法恢复,跟踪的面孔并不总是与视频完全重叠。
多线性人脸模型
Vlasic et al. [2005]
从人脸扫描的大型数据库中学习不同维度的面部表情和身份识别,并使用它们来跟踪从粗糙到中等尺度的动态人脸几何形状,以便在头部动作很少的视频中进行人脸转移。
Dale et al. [2011]使用了以上追踪器,但需要一个形状质量高得多的3D模型,还需要进行大量的人工校正。
三、基本方法
- 为每个角色构建定制的参数化3D混合模型。
- 混合形状跟踪。跟踪2D图像特性,建立稀疏的特性集,为混合形状模型估计整体3D变换(头部姿势)和一组模型参数(面部表情)。
- 密集跟踪校正。通过计算视频中的时间相干和密集运动场(dense motion field),对上一步得到的人脸表情和头部位姿进行改进,并对人脸几何形状进行校正,得到更精确的模型,与视频对齐。
- 动态形状细化。估算未知光线,利用阴影进行形状细化,从而重建面部细节。
四、技术详解
S1. A Personalized Blend Shape Model
- 什么是混合形状模型(Blend Shape Model)?
[Pighin and Lewis 2006]:是在中性面部形状(neutral face shape)之上的附加变形,能够跨越多种自然表情,广泛应用于面部动画。所有的Blend Shape 都是从相同的 generic model 里派生出来的。
使用混合形状模型表示人脸3D参数形态。新的人脸表情可以通过线性组合得到。
n ∈ R3n是包含n个顶点坐标的中性形状。
bj ∈ R3n, 1 ≤ j ≤ k,是混合变形的位移
0 ≤ βj ≤ 1,∀j ,是k的混合权重。
对中性形状进行非刚性配准,然后对静止状态下的演员面部进行双目立体重建,从而创建一个演员特定的面部模型[Valgaerts et al. 2011]。其他重建方法也可以替代。注册中性形状,是基于人工匹配眼睛、鼻子和嘴巴上的29个三维地标,然后进行全局对应搜索和拉普拉斯正则化形状变形[Sorkine 2005],得到一个特定的人脸形状,但语义维度是一致的。
也可以用PCA模型方法表示,它消除了混合形状之间可能存在的线性依赖关系,但不可控制,不像混合形状在语义上有意义。
S2. 2D Facial Feature Tracking
稀疏二维人脸特征跟踪器是方法的基础,但其性能达不到精度要求。为了满足需求,文章增加了一个新的光流校正方法——使用自动选择关键帧。
稀疏特征跟踪
使用Saragih [2011]提出的非刚性人脸跟踪算法,跟踪面部 m=66 个特征点。算法基于一个点分布模型(PDM),线性模型的非刚性形状变化在一组参考位置上,再用全局刚性变换组合起来。
为了找到最可能的特征位置,该算法首先计算每个landmark的响应图,用训练好的局部特征检测器区分对齐的位置和未对齐的位置,然后将局部检测器组合在一个优化步骤中,在它们的联合运动上强制执行全局先验。PDM和landmark分类器都由作者提供。
自动选择关键帧
外观描述符(appearance descriptor)
关键帧的选择是通过将每一帧的面部外观与具有良好本地化特征的参考帧的外观进行比较,例如中性姿态的帧。在应用中首先假设把起始帧作为参考,利用2D仿射变换,将序列中的所有帧对齐到第一帧,该变换将检测到最多特征集映射到参考形状上。
(We first align all frames in the sequence to the first frame using a 2D affine transformation that maps at best the set of detected features onto the reference shape. )
接下来,我们考虑眼睛和嘴巴周围三个固定大小的矩形区域,并将它们分割为若干块,其中外观表示为局部二进制模式(LBP)的直方图。LBP对于表达式匹配和识别任务非常有效[Ahonen et al. 2006],它为每个相邻像素分配一个二进制值,来编码一个像素周围的相对亮度。每个中心像素是在0到2l之间的整数值,其中l是一个圆形邻域的大小。为了提高外观匹配的分辨能力,我们将l = 8的统一LBP码[Kemelmacher-Shlizerman et al. 2010]与l = 4的非统一LBP码结合起来,得到每个小块75个bin的LBP直方图。最后,我们将感兴趣区域内的所有直方图连接,成为整个区域的单个描述符H。
外观匹配(appearance matching)
在第一次遍历中,根据距离度量,选择一组关键帧作为序列中最接近中性形状的帧。选择初始关键帧的数量为序列长度的2.5%,这可以看作是视频中中性形状的概率估计,同时对应40帧帧间的平均距离。
dx2是两个直方图之间的卡方距离,Hi是眼睛和嘴区域的外观描述符。
第二遍中,我们选择长度大于50的连续关键帧之间的剪辑,并通过添加更多的关键帧来分割这些剪辑。这些关键帧用上述距离度量中就能选择出来,但这次对m个特征检测点周围的小区域用外观描述符H表示。
基于光流的外观校正(Optical Flow-based Feature Correction)
假设在 t=T时有一个关键帧,计算 t > T 时的特征位置:
0 ≤ λi ≤ 1 是权重因子。xft 是用面部特征跟踪(2)得到的特征位置
//后面还有点,看不懂,先不写了
S3. Coarse Expression and Pose Estimation
将三维混合形状模型对齐到每个帧中的二维稀疏特征位置,分为3个步骤。
1. 耦合2D和3D模型
为了将稀疏的二维特征与混合形状模型上相应的三维顶点耦合,我们在黑色背景前渲染一个OpenGL阴影的中性人脸,并用第5.1节的跟踪器估计特征位置。在对检测到的特征进行最小人工修正后(见补充资料),建立相应的三维特征顶点的固定集合,记为F。对于泛型模型,此步骤只需要完成一次,因为所有的个性化模型都是从泛型模型派生出来的。
2. 表达式估计
3. 3D姿态估计
迭代表达式和姿态估计,直到收敛,得到一个带混合权值和姿态参数的跟踪人脸网格Mbt,但缺少人脸高频细节。
S4. Dense Expression and Pose Correction
经过以上步骤得到的面部表情和头部姿态可能会存在残余误差,原因:
- 所使用的参数混合形状模型在表达能力上有一定的限制。
- 前面所做的优化是在一组固定的稀疏特征顶点上执行的,不包括位于其他面部区域(如脸颊或前额)的顶点。
因此要对最初的表达式和所有顶点的位置做修正。
1. Temporally Coherent Corrective Flow时间相干校正流
2. Optical Flow-based Mesh Deformation基于光流的网格变形
S5. Dynamic Shape Refinement
最后一步就是捕捉并在跟踪网络添加精细的表面细节。方法基于 [Valgaerts et al. 2012]提出的用于双眼重建的一般未知光照下的阴影框架。该方法在估计几何和反照率的基础上,首先估计当前时间步长的未知入射光,然后利用已知的光照对几何进行变形,使渲染的阴影梯度与图像阴影梯度一致。本质上,该方法将渲染方程转化为场景重建的方法,在几个角度观察能够更好的约束解空间。
为了将这种方法调整到单目情况,我们从较大的时间基线估计未知的光照,以弥补缺乏额外的相机。在我们的设置中,我们假设光照条件不会随时间而改变,ground truth light probe不可用。因此,我们首先使用与[Valgaerts et al. 2012]完全相同的方法,估计每个视频的前10帧的光照、反照率和细致的网格表面几何形状。在我们的单目情况下,由于估计更容易受到约束和出错,所以我们只使用这个结果作为初始化。在第二步中,我们同时使用初始反照率和精细尺度几何(fine scale geometry)来估计一个环境映射,这个映射在全局上适合所有时间步长。然后,我们使用这个静态光环境,并在每个时间步长估计动态几何细节[Valgaerts et al. 2012]。动态形状细化的结果是最终细化的人脸网格。为了消除可视化结果中的闪烁,我们更新了表面法线(normal),即在一个大小为5的时间窗口(temporal window)内对它们进行平均,并将更新后的法线应用于几何上[Nehab et al. 2005]。
结果分析
运行时间
对于Canon序列,跟踪和跟踪校正的运行速度分别为每帧10s和4m,而基于阴影的细化的运行时间约为每帧5m。这三个步骤都是完全自动运行的,并且可以并行启动,只有很小的帧延迟。
局限性
高速运动、强烈光、无法处理局部遮挡、在估计深度上存在误差。
与双目方法比较
差异主要出现在嘴唇、脸颊和前额附近,密集的表情校正无法深入细化。
实现虚拟人脸纹理
将纹理渲染为移动人脸上的漫反射反照贴图,并使用估计的入射光照光照它。纹理在单独的通道中呈现,并使用adobe premiere覆盖输入视频。