视频会议是几个流媒体使用案例的核心,如 vlogging 、 vtubing 、网络广播,甚至远程工作的视频流媒体。为了创造一种更大的存在感,并从语言和非语言的线索中获取信息,视频会议技术必须让用户能够清晰地看到和听到。
眼神交流在建立社交关系中起着关键作用,在面对面交谈中,它意味着自信、联系和关注。然而,在视频会议场景中,持续进行眼神交流是不可行的。它要求用户持续直视摄像头,而不是电脑显示器。如果你正在阅读脚本或在电脑屏幕上查看数据,这可能会很困难。
由于各种生理原因,保持眼神接触有时也是一项挑战。许多儿童和成人都很难进行和保持眼神交流。
为了改善、增强和增强用户体验,我们开发了 NVIDIA Maxine Eye Contact 。该功能使用 AI 实时向用户的网络摄像头输入应用过滤器,并将他们的目光转向摄像头。
这种创新的基于 AI 的注视估计和重定向算法是最先进的,并完全集成到 NVIDIA AR SDK 中,引入了新的注视估计与重定向以及 6DOF 头部姿态估计功能。
NVIDIA Maxine Eye Contact 还集成到 NVIDIA Broadcast App 中,这是 NVIDIA RTX 和 GeForce RTX GPU 所有者的免费软件下载,可将任何房间转变为家庭工作室。在 1.4 版中测试新的眼睛接触。
创建眼神交流管道
NVIDIA Maxine Eye Contact 对眼睛周围的感兴趣区域(也称为眼罩)进行操作。使用 NVIDIA Maxine Face 跟踪管道从视频帧中提取眼罩,从视频帧计算 2D 面部标志和 6DOF 头部姿势。
然后使用该头部姿势来规范视频帧中的面部。一个 256 ✕ 从标准化帧中裁剪 64px 的眼罩,并将其馈送到眼睛接触网络中。眼睛接触网络具有解纠缠的编码器 – 解码器架构。编码器根据输入眼罩以及一组特征(也称为嵌入)估计注视角度。
基于这些嵌入,解码器在输入补丁中执行注视的重定向,以使面部向前看。管道的最后一个阶段涉及通过逆变换将眼罩混合回原始视频帧。
管道的输出是头部姿势、注视角度和具有重定向眼睛注视的图像。管道也可以在 gaze estimation-only 模式下使用,在这种情况下,重定向被关闭。
该技术将用户的视线转向前方和中央。为了保持自然的体验,当原始眼睛注视远离中心时,该算法减少了重定向效果。当头部旋转超过预定阈值时,重定向也被关闭,在该阈值之外,自然看起来的重定向是不可行的。
NVIDIA Maxine Eye Contact 模型架构
眼睛接触网络的结构由变换编码器和解码器结构组成。编码器将图像内容编码为以下因素的潜在表示:
- 非受试者相关因素,如 环境照明、阴影、白平衡和色调以及模糊度。
- 受试者相关因素,如肤色、面部和眼睛形状、眼镜和眼睛注视。
- 头部姿势。
此外,编码器预测“状态”( R我) 这些潜在因素( z我) 由一维或二维旋转角度编码。
在我们的设计中,应用于单个潜在因素的旋转会影响图像外观的相应单调变化。例如,为了改变注视,需要转换与注视相关的潜在因素。然后,我们将所有内部表示(原始的和变换的)输入到解码器网络中,以创建最终重定向的眼睛图像。
与现有的最先进的方法相比,我们的算法在视线重定向的准确性、视线与其他因素的分离以及感知图像质量方面提供了与推断时间权衡相比的最佳精度。
保持眼睛颜色
保持眼睛颜色是任何注视重定向算法的关键挑战之一。我们的眼睛接触网络已经在大约 400 万张图像的大型多样数据集上进行了训练。大约 25% 是人工合成的,以增加眼睛颜色和形状的多样性。
此外,我们的网络使用几个损失函数进行训练,这有助于眼睛的准确重定向。重定向中使用的主要损失函数有:
- Reconstruction loss: 我们使用生成的图像和目标图像之间的逐像素 L1 重建损失来指导重定向图像的生成。
- Functional loss: 我们使用功能损失,它优先考虑最小化生成的图像和目标图像之间的任务相关不一致,例如虹膜位置不匹配。
这通过生成的图像和目标图像的特征之间的 L2 损失来定义。
- Disentanglement loss: 理想情况下,应分离单独的环境和物理因素,以避免在更改子集时更改重定向图像中的任何其他因素。
我们鼓励通过首先随机变换因子的子集以创建混合因子表示来解开编码因子之间的纠缠。其公式如下:
完全解缠损失定义为混合嵌入和恢复嵌入之间的差异,以及处理前后注视和头部标签之间的误差。
设置工作范围
如前所述,眼睛接触网络的输入是尺度归一化的眼罩。已经观察到,重定向可以可靠地发生,并且在大约 20 度俯仰角和偏航角的锥体中更自然。这被认为是该功能的推荐工作范围。
以下是针对眼神接触的成功注视重定向示例。
解决过渡下降问题
眼跳是一种常见的、经常是眼睛快速、平稳的动作的反射。
例如,在扫视过程中可能会出现的工作范围之外,注视重定向看起来不那么自然,而且会关闭。
然而,突然关闭该功能会导致虹膜突然移动,这是不可取的。为了解决这个问题,我们引入了一个过渡区域,在该区域中,眼睛被重定向,以平滑的方式从注视相机转向实际的注视角度。
该下降作为当前重定向角度和实际注视方向之间的梯度的函数而递增地执行。这种转变的速度被设定为模仿人眼的典型运动。当重定向角度充分接近估计的注视角度时,该特征被完全关闭。
处理眼睛隐形
有时,由于眨眼、移动或动态环境,一个人的眼睛可能会完全或部分被遮挡。例如,一个人的手或其他物体可能会遮挡相机视图中的眼睛。
我们的眼睛接触管道能够检测和保持眨眼。该算法还在检测到由地标估计的低置信度指示的遮挡之后关闭注视重定向效果。
优化性能
使用 TensorRT 加速管道 GPU 。我们的设计和实现在 NVIDIA GPU 上执行实时时间推断,每帧延迟小于 5ms 。除了 NVIDIA RTX 台式机和笔记本电脑外,它还对性能进行了优化,并支持数据中心用例的多个流实例的同时执行。
立即下载
开发者 SDK
NVIDIA Maxine Eye Contact 可在 AR SDK 中下载,适用于 Windows 和 Linux 。 SDK 提供了有关 API 用法和示例应用程序的相关文档,以开始无缝集成到任何应用程序中。使用此 SDK API ,可以控制各种参数,如时间过滤和眼睛大小敏感度。
NVIDIA UCF 开发者微服务
它也将作为 NGC 注册表中视频效果微服务的一部分提供。它符合 NVIDIA UCF ,可以与其他微服务结合,构建多模式 AI 应用程序。
面向消费者的 NVIDIA 广播应用程序
对于那些不想构建自定义应用程序但希望访问此功能的用户,现在可以在 NVIDIA Broadcast App 中使用此功能。通过选择 NVIDIA 广播摄像机,可以在视频会议和视频广播应用程序中启用该功能。
促进我们的发展
随着我们在未来版本中继续改进,您可以通过对 NVIDIA Maxine and NVIDIA Broadcast App. 的贡献来帮助我们