前言
本文为翻译搬砖和总结一些自己的心得体会。
作者:
发布于2020年
摘要
我们提出了一种简单、实时的方法,用于从移动设备上的实时视频中跟踪瞳孔。我们的方法用两个新组件扩展了最先进的人脸网格检测器:一个预测2D中瞳孔位置的微型神经网络,以及一个基于位移的瞳孔混合形状系数估计。我们的技术可以用于精确控制虚拟宠物的瞳孔运动,并为其注入活力和活力。建议的应用程序在现代手机上的运行速度超过50 FPS,并且可以在任何实时木偶游戏管道中使用。
1. 介绍
在实时使用人类的实况镜头中为虚拟木偶制作动画的任务是一项研究得很好的任务。从广义上讲,人们可以通过选择输入数据(单眼视频、多视图、深度图像)和方法(直接优化、使用神经网络的预测、启发式)对这些技术进行分类。例如,Ichim等人[3]使用具有预定义相机运动的单眼视频,以获得特定于人的面部特征的密集配准,并通过优化实时创建动态面部模型。Wu等人[10]利用多视图数据,使用一束神经网络对齐3D人脸可变形模型(3DMM[2]),并生成特定于人的混合形状。我们请读者参阅[9],了解3D人脸对齐和混合形状计算的相关工作。在本文中,我们将重点放在移动设备上的木偶表演上,而不使用额外的传感器或特定于个人的校准步骤。尽管这些技术取得了成功,但最终的化身往往缺乏一定的生动性或表达能力,因为它们无法跟踪瞳孔的位置。例如,先验方法[4]利用3DMM,其内部表示中没有瞳孔。我们使用两级管道来解决这个问题,该管道结合了用于预测瞳孔位置的神经网络(第2节)和用于估计瞳孔混合形状的基于位移的算法(第2部分)。我们创建这个管道基于最先进的人脸网格预测模型[4],但我们的方法可推广到其他人脸网格。
我们的网络检测每只眼睛的瞳孔、外虹膜环和眼睛轮廓的5个点。基于这些点的位置,我们应用精心设计的试探法来获得范围内的混合形状系数[−1,1],其中1和-1表示完全混合形状激活(例如,眼睛分别向上或向下看),0为中性位置(眼睛向前看)。我们随后进行后处理,以减少检测阶段的抖动,并使最终渲染平滑而有吸引力。
我们的方法一次只需要一个帧,不依赖任何其他传感器,如深度摄像头。图1显示了使用我们的技术制作动画的虚拟木偶的示例。
图1:虚拟化身上眼睛混合形状跟踪的最终渲染。左-原始图像,右-由获取的混合形状驱动的叠加化身的图像。
2. 基于神经网络的眼睛地标
我们从现代人脸网格估计流水线开始,该流水线预测了人脸的468个顶点网格[4]。然后,我们计算眼睛区域的边界框,并将相应的裁剪图像区域传递到较小的地标回归网络,该网络生成附加的更高质量的地标。
具体来说,我们提取相应的区域(64X64像素)。这个裁剪的区域被馈入一个微小的神经网络,该网络的结构类似于Bazarevsky等人[1]所描述的结构。随后的网络预测了图像坐标系中从左上角开始的5个2D位置(瞳孔中心、4个虹膜外圆点和16个眼睛轮廓点)。我们通过替换前者的x、y坐标,同时保持z不变,将来自面部估计管道的相应界标(眼睛轮廓的16个点)与来自眼睛细化网络的界标相结合。我们使用5个瞳孔界标(瞳孔中心和外虹膜圆的4个点)扩展面部网格,其z坐标设置为眼角z坐标的平均值。最终重新定义的面部网格包含478个(468个界标+5个左瞳孔界标+55个右瞳孔界碑)顶点,并用于该管道的第二阶段。
为了在移动设备上执行神经网络,我们使用TensorFlow Lite和GPU后端[6]以及MediaPipe[7]——一种构建感知管道的框架。
2.1 模型架构
用于预测眼睛和虹膜标志的神经网络包含许多瓶颈,类似于Tan等人[8]和Bazarevsky等人[1]的最近工作。该模型以一个完全连接的层结束,该层输出一个5×2张量,对应于每个地标的x,y坐标(在裁剪图像坐标系中定义)。这种设计允许网络学习丰富的特征表示,从而实现每个地标的低错误率(参见第5节)。此外,所提出的模型架构具有较小的内存占用(由于输入分辨率较小)和较少的FLOP(由于1×1压缩和3×3深度卷积)。这可以在CPU上实现网络的实时性能,并在现代手机上使用GPU功能实现超实时性能。运行时间测量和错误率如表I所示。
表1:面部网格和眼睛细化模型在许多手机上的推理速度。
3. 基于位移的瞳孔混合形状估计
我们使用改进的网格来预测瞳孔的4种混合形状:瞳孔分别向外、向内、向上和向下。我们使用简单但强大的基于位移的方法计算这些形状的激活。具体地说,对于每个混合形状,我们在精确网格上选择一对顶点,以牢固地捕捉混合形状,即,对于指向内部的瞳孔,我们使用瞳孔顶点和眼睛校正顶点。接下来,我们测量这两个顶点之间的位移Dcurrent,并将其与两个经验驱动的位移Dneutral(混合形状最小激活时的位移)和Dactivated(混合形状最大激活时测量的位移)进行比较。基于此比较,我们获得了每个瞳孔混合形状在[0,1]范围内的标量值。接下来,我们将对相反的混合形状合并为两个聚合混合形状。最后,我们应用平滑并在双眼之间耦合估计的混合形状值。管道概述如图2所示。
图2:瞳孔混合形状获取概述。详见正文。
3.1 实时启发式校准
启发式在提议的混合形状管道中起着至关重要的作用。第2节中描述的算法需要定义两个位移:Dneutral和Dactivated。初始位移是基于代表性面部网格数据集经验估计的。然而,这些初始值无法模拟所有特定于人的变化。作为视觉参考,图3显示了不同受试者(以不同颜色绘制)和初始估计值(以黑色绘制)随时间的位移D中性的变化。实线表示每帧实际位移的测量值,虚线表示特定对象的平滑趋势。
图3:3名受试者(红色、绿色、蓝色)和初始估计值(黑色)的Dneutral位移随时间的变化。垂直轴-第25至75百分位的D中性位移值。水平轴-#帧
为了应对特定人员位移的挑战,并使系统可靠,我们建议通过实时校准步骤增强位移估计。我们采用了标准分数[11]计算算法,并进行了一些修改。该滤波器的主要思想是在每次迭代时检查位移,如果位移在指定的置信区间内,则将其添加到可信位移的循环缓冲区中。因此,校准位移被计算为可信位移的平均值。这些可信位移的标准偏差用作下一次迭代的置信区间。算法1中给出了标准分数过滤器算法的详细信息。
4.数据集和训练
为了训练神经网络推断眼睛周围点的2D位置,我们使用≈ 20000张来自全球源数据集的手动标注图像。我们对这些图像应用了一组增强,如仿射(旋转、翻转)和颜色变换(色调、饱和度、非线性映射、真实相机噪声注入)。使用Adam Optimizer对网络进行了250个时代的训练[5]。与[4]相似,我们使用由眼间距离(MSE IED)归一化的均方距离作为损失函数。这种标准化避免了眼睛尺度的因素。
5.结果
为了定量估计训练模型的准确性,我们使用≈ 4000张手动注释的图像。训练后的模型在选定的数据集上实现了7.16%的MAD IED(由眼间距离归一化的平均绝对距离)。手动注释的基线误差在简单用例中为5.73%(图像上的面部是向前旋转的),在硬用例中为7.04%。在由不同受试者注释的相同图像上测量误差。表1中示出了多个手机上的面部网格和眼睛细化模型的推断速度。
6.结论
我们提出了一种新的管道,用于以实时速度从移动设备上的实时视频中实时跟踪瞳孔。该方法定义了一个完整的端到端管道,用于从单眼图像中估计瞳孔混合形状,无需任何预校准,并且可以与任何现有的混合形状实现相结合。它可以作为开箱即用的解决方案,精确控制虚拟木偶的眼球运动。
博主总结
来自谷歌的一篇论文,这篇论文较为简洁,提出了一种新型管道用于实现实时速度的瞳孔跟踪,而且不需要校准,并实现了一种实时控制木偶眼球运动的方案。
基于位移的瞳孔混合形状估计和实时启发式校准是该文两大亮点,说实话一个没看懂。欢迎大家在评论区指教。
论文原地址:https://arxiv.org/abs/2006.11341