视频会议在人们的工作和个人生活中变得越来越重要。通过增强隐私或有趣的视觉效果来改善这种体验可以帮助我们将注意力集中在会议本身上。作为此目标的一部分,我们最近宣布了在Google Meet中模糊和替换背景的方法,这些方法使用机器学习 (ML) 来更好地突出显示参与者,而不管他们周围环境如何。其他解决方案需要安装额外的软件,而 Meet 的功能则由使用MediaPipe构建的尖端 Web ML 技术提供支持,可直接在您的浏览器中运行 - 无需额外步骤。开发这些功能的一个关键目标是在几乎所有现代设备上提供实时的浏览器内性能,我们通过结合高效的设备上 ML 模型、基于WebGL的渲染以及通过XNNPACK和TFLite进行的基于 Web 的 ML 推理来实现这一目标。
背景模糊和背景替换,由网络上的 MediaPipe 提供支持。
我们的 Web ML 解决方案概述
Meet 中的新功能是使用MediaPipe开发的,MediaPipe 是 Google 用于直播和流媒体的跨平台可定制 ML 解决方案的开源框架,它还为设备上的实时手部、虹膜和身体姿势跟踪等 ML 解决方案提供支持。
任何设备端解决方案的核心需求都是实现高性能。为了实现这一目标,MediaPipe 的Web 管道利用了WebAssembly,这是一种专为 Web 浏览器设计的低级二进制代码格式,可提高计算密集型任务的速度。在运行时,浏览器将 WebAssembly 指令转换为本机机器代码,其执行速度比传统JavaScript代码快得多。此外,Chrome 84最近引入了对 WebAssembly SIMD的支持,它使用每条指令处理多个数据点,从而使性能提高了 2 倍以上。
我们的解决方案首先处理每个视频帧,利用 ML 推理将用户从背景中分割出来(本文后面会详细介绍我们的分割模型),计算出一个低分辨率的蒙版。我们还可以进一步细化蒙版,使其与图像边界对齐。然后,使用蒙版通过WebGL2渲染视频输出,背景被模糊化或替换。
WebML 管道:所有计算密集型操作均用 C++/OpenGL 实现,并通过 WebAssembly 在浏览器中运行。
在当前版本中,模型推理在客户端的 CPU 上执行,以实现低功耗和最广泛的设备覆盖。为了实现实时性能,我们设计了高效的 ML 模型,并通过XNNPACK库加速推理,这是第一个专门为新型 WebAssembly SIMD 规范设计的推理引擎。通过XNNPACK和SIMD加速,分割模型可以在 Web 上实时运行。
借助 MediaPipe 的灵活配置,背景模糊/替换解决方案可以根据设备功能调整其处理方式。在高端设备上,它运行整个管道以提供最高的视觉质量,而在低端设备上,它通过切换到计算量较少的 ML 模型并绕过掩码细化来继续快速运行。
分割模型
设备上的 ML 模型需要超轻量级才能实现快速推理、低功耗和较小的下载大小。对于在浏览器中运行的模型,输入分辨率会极大地影响处理每帧所需的浮点运算 (FLOP) 数量,因此也需要很小。我们将图像下采样为较小的尺寸,然后再将其输入到模型中。从低分辨率图像中尽可能精细地恢复分割蒙版增加了模型设计的挑战。
整体分割网络在编码和解码方面具有对称结构,而解码器块(浅绿色)也与编码器块(浅蓝色)共享对称层结构。具体来说,编码器和解码器块都应用了具有全局平均池化的通道注意,这对高效的 CPU 推理很有帮助。
带有MobileNetV3编码器(浅蓝色)和对称解码器(浅绿色)的模型架构。
我们修改了MobileNetV3-small作为编码器,该编码器已通过网络架构搜索进行了调整,以在低资源要求下获得最佳性能。为了将模型大小减少 50%,我们使用 float16 量化将模型导出到 TFLite,这导致权重精度略有损失,但对质量没有明显影响。生成的模型有 193K 个参数,大小仅为 400KB。
渲染效果
分割完成后,我们使用 OpenGL 着色器进行视频处理和效果渲染,其中的挑战在于高效渲染而不引入伪影。在细化阶段,我们应用联合双边滤波器来平滑低分辨率蒙版。
渲染效果减少了伪影。左图:联合双边滤波器使分割蒙版平滑。中图:可分离滤波器消除背景模糊中的光晕伪影。右图: 背景替换中的光包裹。
模糊着色器通过按比例调整每个像素的模糊强度来模拟散景效果,这与光学中的弥散圆(CoC) 类似。像素由其 CoC 半径加权,因此前景像素不会渗入背景。我们为加权模糊实施了可分离过滤器,而不是流行的高斯金字塔,因为它可以消除人物周围的光晕伪影。为了提高效率,模糊以低分辨率执行,并与原始分辨率的输入帧混合。
背景模糊示例。
对于背景替换,我们采用了一种合成技术,称为光包裹,用于混合分割人物和自定义背景图像。光包裹允许背景光溢出到前景元素上,从而有助于柔化分割边缘,使合成更具沉浸感。当前景和替换的背景之间存在较大对比度时,它还有助于最大限度地减少光晕伪影。
背景替换示例。
性能
为了优化不同设备的体验,我们提供了多种输入尺寸的模型变体(即当前版本中的 256x144 和 160x96),根据可用的硬件资源自动选择最佳尺寸。
我们在两款常见设备上评估了模型推理和端到端管道的速度:搭载 2.2 GHz 六核 Intel Core i7 的 MacBook Pro 2018 和搭载 Intel Celeron N3060 的 Acer Chromebook 11。对于 720p 输入,MacBook Pro 可以以 120 FPS 的速度运行较高质量的模型,以 70 FPS 的速度运行端到端管道,而 Chromebook 可以以 62 FPS 的速度运行较低质量的模型推理,以 33 FPS 的速度运行端到端。
模型 失败次数 设备 模型推理 管道
256x144 6400 万 MacBook Pro 18 8.3毫秒(120帧/秒) 14.3毫秒(70帧/秒)
160x96 2700 万 宏碁 Chromebook 11 16.1毫秒(62帧/秒) 30毫秒(33帧/秒)
高端(MacBook Pro)和低端(Chromebook)笔记本电脑上的模型推理速度和端到端管道。
为了定量评估模型准确率,我们采用了流行的IOU和边界 F 度量指标。这两个模型都达到了很高的质量,尤其是对于这样一个轻量级的网络:
模型 借条 边界
F 测量
256x144 93.58% 0.9024
160x96 90.79% 0.8542
模型准确度的评估,以 IOU 和边界 F 分数来衡量。
我们还发布了分割模型的随附模型卡,其中详细介绍了我们的公平性评估。我们的评估数据包含来自全球 17 个地理子区域的图像,并标注了肤色和性别。我们的分析表明,该模型在不同地区、肤色和性别中的表现是一致的,IOU 指标只有很小的偏差。
结论
我们在 Google Meet 中引入了一种新的浏览器内 ML 解决方案,用于模糊和替换背景。借助此功能,ML 模型和 OpenGL 着色器可以在网络上高效运行。开发的功能即使在低功耗设备上也能实现实时性能和低功耗。
致谢
特别感谢 Meet 团队的成员以及参与该项目的其他人员,特别是 Sebastian Jansson、Rikard Lundmark、Stephan Reiter、Fabian Bergmark、Ben Wagner、Stefan Holmer、Dan Gunnarson、Stéphane Hulaud,以及与我们一起致力于该技术的所有团队成员:Siargey Pisarchyk、Karthik Raveendran、Chris McClanahan、Marat Dukhan、Frank Barchard、Ming Guan Yong、Chuo-Ling Chang、Michael Hays、Camillo Lugaresi、Gregory Karpiak、Siarhei Kazakou、Matsvei Zhdanovich 和 Matthias Grundmann。
评论