论文学习:移动 GPU 上单目视频的实时面部表面形态

简介: 论文学习:移动 GPU 上单目视频的实时面部表面形态

概述


   我们提出了一个基于端到端神经网络的模型,用于从 AR 应用程序的单个摄像头输入推断人脸的近似 3D 网格表示。468 个顶点的相对密集的网格模型非常适合基于面部的 AR 效果。 所提出的模型展示了移动 GPU 上的超实时推理速度(100–1000+ FPS,取决于设备和模型变体)以及与同一图像的手动注释差异相当的高预测质量。


一.介绍


   通过对齐面部网格模板来预测面部几何形状的问题,也称为面部对齐或面部配准,长期以来一直是计算机视觉的基石。 它通常是根据定位相对较少(通常为 68 个)地标或关键点来提出的。 这些点要么具有自己独特的语义,要么参与有意义的面部轮廓。 我们将读者推荐给,以便对 2D 和 3D 人脸对齐问题的相关工作进行很好的回顾


   另一种方法是估计 3D 可变形模型 (3DMM) 的姿势、比例和参数。3DMM,例如 BFM2017,2017 年版的巴塞尔人脸模型,通常是通过主成分分析获得的。 生成的网格通常具有更多的点(在 BFM 的情况下约为 50K),但可能的预测范围受到 PCA 基础跨越的线性流形的限制,而这又由捕获的面集的多样性决定 为模型。 作为一个具体的例子,BFM 似乎无法可靠地表示一张只有一只眼睛紧闭的脸。


   我们提出了一个用神经网络估计 3D 网格顶点位置的问题,将每个顶点视为一个独立的地标。 网格拓扑由 468 个点组成,排列成固定的四边形(见图 2a)。这些点是根据假设的应用程序手动选择的,例如富有表现力的 AR 效果、虚拟配饰和服装试穿和化妆。 预计在人类感知中具有更高可变性和更高重要性的区域已分配有更高的点密度。 它允许使用例如应用程序构建一个合理的光滑表面表示。 Catmull Clark 细分(图 2b)。

image.png

 模型的输入是一个框架(或者更一般地说是一个单个RGB摄像机的帧流)不需要深度传感器信息。模型输出的示例如图1所示。我们的设置以实时为目标移动GPU推理,但我们也设计了更轻的模型版本,用于解决缺乏适当GPU支持的移动设备上的CPU推断。我们将定义此GPU定位模型是一种“完整”模型,将其与实验中为CPU量身定制的“最轻”模型。

image.png

二.图像处理网络


   图像处理网络我们按如下方式组织图像处理: 处理来自摄像机输入的整个帧通过一个非常轻便的人脸检测器生成人脸边界矩形和几个标志点(例如眼睛中心、耳朵悲剧和鼻尖)。使用地标旋转面部矩形,使连接眼睛中心的线与矩形的水平轴对齐。 从原始图像中裁剪出上一步获得的矩形并调整大小,以形成网格预测神经网络的输入(大小范围从完整模型中的 256×256 像素到最小模型中的 128×128)。 该模型生成一个 3D 地标坐标向量,该向量随后被映射回原始图像坐标系。 不同的标量网络输出(人脸标志)产生事件的概率,即合理对齐的人脸确实存在于提供的作物中。


   我们采用的策略是顶点的 x 和 y 坐标对应于由图像像素坐标给出的 2D 平面中的点位置。  z 坐标被解释为相对于通过网格质心的参考平面的深度。 它们被重新缩放,以便在 x 坐标的跨度和 z 坐标的跨度之间保持固定的纵横比,即缩放到其大小一半的面的深度范围(最近到最远)被缩放 下降相同的乘数


   在人脸跟踪模式下用于视频输入时,可以从前一帧预测中获得良好的人脸裁剪,并且人脸检测器的使用是多余的。 在这种情况下,它仅用于第一帧和重新获取的罕见事件中(在人脸标志预测的概率低于适当阈值之后)。


   应该注意的是,通过这种设置,第二个网络接收的输入具有合理居中和对齐的面。 我们认为这可以节省一些模型表示能力,否则这些能力可以用于处理具有大量轮换和平移的案例。 特别是,我们可以在获得预测质量的同时减少相关增强的数量。



三. 数据集、注释和训练


   在我们的培训中,我们依赖于一个全球来源的数据集,该数据集包含大约 3 万张野外移动相机照片,这些照片是在不断变化的照明条件下从各种传感器拍摄的。 在训练期间,我们使用标准裁剪和图像处理原语以及一些专门的原语进一步扩充数据集:建模相机传感器噪声并将随机非线性参数变换应用于图像强度直方图( 后者有助于模拟边缘照明条件)。


   获取 468 个 3D 网格点的基本事实是一项劳动密集型且高度模糊的任务。 我们采用以下迭代过程,而不是手动逐个注释点。


1. 使用以下两种监督来源训练初始模型: • 3DMM 在真实照片的面部矩形上的合成渲染(与例如纯色背景相反,以避免过度拟合)。 因此,地面实况顶点坐标可立即从 468 个网格点和 3DMM 顶点子集之间的预定义对应关系中获得。


• 与参与一组语义轮廓(参见图3)的网格顶点的一小部分相对应的二维地标,这些语义轮廓在实际的“野外”数据集上进行了注释。 地标被预测为专用网络分支末端的单独输出,旨在共享 2D 和 3D 路径之间的中间人脸表示。

image.png

在第一个模型经过训练后,我们数据集中多达 30% 的图像具有适合在后续步骤中细化的预测。


2. 通过将最新模型应用于图像来迭代地细化自举的 x 和 y 坐标,过滤掉适合这种细化的那些(即预测误差是可以容忍的)。 快速注释细化是由具有可调节半径的“刷子”仪器实现的,该仪器允许一次移动整个范围的点。 移动量随着沿着网格边缘到鼠标光标下的枢轴顶点的距离呈指数减少。 这允许注释者在局部细化之前用大“笔划”调整大量区域位移,同时保持网格表面的平滑度。 我们注意到 z 坐标保持不变; 监督它们的唯一来源是上面概述的合成 3D 渲染。 尽管深度预测因此不准确,但根据我们的经验,生成的网格在视觉上足够合理,例如 在面部上驱动逼真的 3D 纹理渲染或对齐渲染为虚拟配件试戴体验的一部分的 3D 对象。



四.模型架构


   对于网格预测模型,我们使用自定义但相当简单的残差神经网络架构。我们在网络的早期层使用更积极的子采样,并将大部分计算专用于其浅层部分。


   因此,神经元的感受野相对较早地开始覆盖输入图像的大面积区域。 当这样的感受野到达图像边界时,它在输入图像中的相对位置变得隐含地可供模型依赖(由于卷积填充)。 因此,更深层的神经元可能会在例如之间进行区分。 嘴相关和眼睛相关的特征。

   该模型能够完成一个被轻微遮挡或跨越图像边界的人脸。 这使我们得出一个结论,即高级和低维网格表示是由模型构建的,该模型仅在网络的最后几层中转换为坐标。



五. 过滤视频中的时间一致性


   由于我们的模型在单帧级别上运行,因此在帧之间传递的唯一信息是旋转的面部边界矩形(以及是否应该使用面部检测器重新评估它)。 由于后续视频帧中人脸的像素级图像表示不一致(由于视图的小仿射变换、头部姿势变化、光照变化以及不同类型的相机传感器噪声),这 在单个地标的轨迹中导致人类可察觉的波动或时间抖动(尽管作为表面的整个网格受这种现象的影响较小)。


   我们建议通过使用独立应用于每个预测的地标坐标的一维时间滤波器来解决这个问题。 由于我们提出的管道的主要应用是视觉上吸引人的渲染,我们从人机交互方法中汲取灵感,特别是 1 Euro 过滤器 [5]。  1欧元及相关滤波器的主要前提是,在降噪和消除相位滞后之间的权衡中,当参数几乎没有变化时,人类更喜欢前者(即稳定),而后者(即避免滞后) 当变化率很高时。 我们的过滤器为速度估计维护了几个带时间戳的样本的固定滚动窗口,这些样本通过人脸大小进行调整,以适应视频流中的人脸比例变化。 使用此过滤器可以在没有明显抖动的视频上产生具有人类吸引力的预测序列。



六. 结果



   我们使用预测和地面实况顶点位置之间的平均绝对距离(MAD),由眼间距离(IOD)归一化,定义为眼睛中心之间的距离(估计为眼角连接段的中点以避免凝视 方向依赖性)。这种归一化旨在避免将人脸比例考虑在内。 由于 z 坐标是专门从合成监督中获得的,我们报告了仅 2D 的错误,但使用 3D 眼间距离来解释可能的偏航头旋转。


   为了量化问题的模糊性并为我们的指标获得基线,我们给出了为 11 个训练有素的注释器中的每一个注释一组 58 幅图像的任务,并计算了它们对同一图像的注释之间的 IOD 归一化平均绝对距离 . 估计的 IOD MAD 误差为 2.56%


   我们在一个地理上不同的 1.7K 图像评估集上展示了评估结果。 速度估计基于 TensorFlow Lite GPU 框架。


image.png

本文所描述的技术正在推动主要的 AR 自我表达应用和 AR 开发者 API 在手机上的应用。 图 4 展示了由它启用的众多渲染效果的两个示例。

image.png


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
6月前
|
机器学习/深度学习 并行计算 算法
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
118 0
|
5月前
|
机器学习/深度学习 并行计算 PyTorch
【从零开始学习深度学习】20. Pytorch中如何让参数与模型在GPU上进行计算
【从零开始学习深度学习】20. Pytorch中如何让参数与模型在GPU上进行计算
|
弹性计算 人工智能 自然语言处理
GPU实验室-通过GPU云服务器生成AI视频
自多态模型GPT-4发布后,AIGC(AI Generated Content,AI生成内容)时代正扑面而来,从单一的文字文本,演化到更丰富的图片、视频、音频、3D模型等。本文基于阿里云GPU服务器和文本生成视频模型,采用Unet3D结构,通过从纯高斯噪声视频中,迭代去噪的过程,实现文本生成视频功能。
|
6月前
|
存储 缓存 算法
龚大视频学习笔记:上帝视角看GPU(1)-图形流水线基础
龚大视频学习笔记:上帝视角看GPU(1)-图形流水线基础
212 0
龚大视频学习笔记:上帝视角看GPU(1)-图形流水线基础
|
6月前
|
缓存 并行计算 API
龚大视频学习笔记:上帝视角看GPU(4)-完整的软件栈
龚大视频学习笔记:上帝视角看GPU(4)-完整的软件栈
193 0
|
6月前
|
负载均衡 算法 调度
龚大视频学习笔记:上帝视角看GPU(3):部署到硬件
龚大视频学习笔记:上帝视角看GPU(3):部署到硬件
171 0
|
视频直播 芯片 异构计算
山东布谷科技直播系统源码热点分析:不同芯片实现高质量编码与渲染视频的GPU加速功能
总而言之,对于直播系统源码来说,GPU加速功能是提升实时图像质量和观看体验的重要手段,是不可或缺的重要功能技术之一。
山东布谷科技直播系统源码热点分析:不同芯片实现高质量编码与渲染视频的GPU加速功能
|
人工智能 编解码 API
GPU虚拟化技术详解(附讲解视频)
GPU虚拟化技术详解(附讲解视频)
2042 0
|
机器学习/深度学习 存储 编解码
单GPU每秒76帧,重叠对象也能完美分割,多模态Transformer用于视频分割效果惊艳
单GPU每秒76帧,重叠对象也能完美分割,多模态Transformer用于视频分割效果惊艳
107 0
|
编解码 异构计算
CPU软编码视频,比GPU更好?
CPU软编码视频,比GPU更好?
544 0

热门文章

最新文章

下一篇
无影云桌面