由 Web ML 提供支持的 Google Meet 中的背景功能

305 阅读7分钟

视频介绍:由 Web ML 提供支持的 Google Meet 中的背景功能

视频会议在人们的工作和个人生活中变得越来越重要。通过隐私增强或有趣的视觉接触来改善这种体验可以帮助我们将注意力集中在会议本身上。作为此目标的一部分,我们最近宣布了在Google Meet 中模糊和替换您的背景的方法,该方法使用机器学习 (ML) 来更好地突出参与者,而不管他们的环境如何。其他解决方案需要安装额外的软件,Meet 的功能由使用MediaPipe构建的尖端 Web ML 技术提供支持直接在您的浏览器中工作 - 无需额外的步骤。开发这些功能的一个关键目标是在几乎所有现代设备上提供实时的浏览器内性能,我们通过将高效的设备上 ML 模型、基于WebGL的渲染和基于 Web 的 ML 推理(通过XNNPACK和TFLite。

我们的 Web ML 解决方案概述

Meet 中的新功能是使用MediaPipe开发的,MediaPipe是 Google 的开源框架,用于针对直播和流媒体的跨平台可定制 ML 解决方案,它还支持设备上的实时手、虹膜和身体等 ML 解决方案姿势跟踪。

任何设备上解决方案的核心需求是实现高性能。为了实现这一点,MediaPipe 的网络管道利用了WebAssembly,这是一种专为网络浏览器设计的低级二进制代码格式,可提高计算密集型任务的速度。在运行时,浏览器将 WebAssembly 指令转换为本地机器代码,其执行速度比传统JavaScript代码快得多。此外,Chrome 84最近引入了对 WebAssembly SIMD 的支持,它可以通过每条指令处理多个数据点,从而将性能提升 2 倍以上。

我们的解决方案首先通过使用 ML 推理计算低分辨率掩码从用户的背景中分割用户来处理每个视频帧(更多关于我们的分割模型在帖子后面)。或者,我们进一步细化掩码以将其与图像边界对齐。然后使用遮罩通过WebGL2渲染视频输出,背景模糊或替换。

在当前版本中,模型推理在客户端的 CPU 上执行,以实现低功耗和最广泛的设备覆盖。为了实现实时性能,我们设计了高效的 ML 模型,其推理由XNNPACK库加速,XNNPACK库是第一个专为新型 WebAssembly SIMD 规范设计的推理引擎。通过XNNPACK和SIMD加速,分割模型可以在网络上实时运行。

通过 MediaPipe 的灵活配置,背景模糊/替换解决方案可根据设备功能调整其处理。在高端设备上,它运行完整的管道以提供最高的视觉质量,而在低端设备上,它通过切换到计算光 ML 模型并绕过掩码细化来继续快速执行。

分割模型

设备端 ML 模型需要超轻量级,以实现快速推理、低功耗和小下载大小。对于在浏览器中运行的模型,输入分辨率会极大地影响处理每帧所需的浮点运算 (FLOP) 的数量,因此也需要很小。我们将图像下采样到较小的尺寸,然后再将其提供给模型。从低分辨率图像中恢复尽可能精细的分割掩码增加了模型设计的挑战。

整个分割网络在编码和解码方面具有对称结构,而解码器块(浅绿色)也与编码器块(浅蓝色)共享对称层结构。具体来说,在编码器和解码器块中都应用了具有全局平均池化的通道注意力,这有利于高效的 CPU 推理。

我们修改了MobileNetV3-small作为编码器,该编码器已通过网络架构搜索进行调整,以在低资源需求下获得最佳性能。为了将模型大小减少 50%,我们使用 float16 量化将模型导出到 TFLite,导致权重精度略有下降,但对质量没有明显影响。生成的模型有 193K 个参数,大小只有 400KB。

渲染效果

分割完成后,我们使用 OpenGL 着色器进行视频处理和效果渲染,其中的挑战是在不引入伪影的情况下高效渲染。在细化阶段,我们应用联合双边滤波器来平滑低分辨率掩码。

模糊着色器通过与分割掩码值成比例地调整每个像素的模糊强度来模拟散景效果,类似于光学中的混淆圈(CoC)。像素由其 CoC 半径加权,因此前景像素不会渗入背景中。我们为加权模糊实现了可分离的过滤器,而不是流行的高斯金字塔,因为它去除了人周围的光晕伪影。模糊以低分辨率执行以提高效率,并以原始分辨率与输入帧混合。

对于背景替换,我们采用了一种称为light wrapping的合成技术,用于混合分割的人和自定义的背景图像。光包裹通过允许背景光溢出到前景元素上来帮助柔化分割边缘,使合成更加身临其境。当前景和替换背景之间存在较大对比度时,它还有助于最大限度地减少光晕伪影。

性能

为了优化不同设备的体验,我们提供多种输入尺寸(即当前版本中的 256x144 和 160x96)的模型变体,根据可用硬件资源自动选择最佳。

我们在两种常见设备上评估了模型推理和端到端管道的速度:配备 2.2 GHz 6 核英特尔酷睿 i7 的 MacBook Pro 2018 和配备英特尔赛扬 N3060 的 Acer Chromebook 11。对于 720p 输入,MacBook Pro 可以以 120 FPS 的速度运行更高质量的模型,以 70 FPS 的速度运行端到端管道,而 Chromebook 可以以 62 FPS 的速度运行较低质量模型和 33 FPS 的端到端推理。结尾。

模型 触发器 设备 模型推断 管道

256x144 64M MacBook Pro 18 8.3 毫秒(120 帧/秒) 14.3 毫秒(70 帧/秒)

160x96 27M 宏碁 Chromebook 11 16.1 毫秒(62 帧/秒) 30 毫秒(33 帧/秒)

对于模型精度的定量评估,我们采用了交叉联合(IOU)和边界 F-measure的流行指标。两种模型都实现了高质量,特别是对于拥有这样一个轻量级的网络:

模型 借据 边界

F 测量

256x144 93.58% 0.9024

160x96 90.79% 0.8542

我们还为我们的分割模型发布了随附的模型卡,其中详细介绍了我们的公平性评估。我们的评估数据包含来自全球 17 个地理子区域的图像,并带有肤色和性别的注释。我们的分析表明,该模型在不同地区、肤色和性别上的表现是一致的,IOU 指标只有很小的偏差。

结论

我们引入了一种新的浏览器内 ML 解决方案,用于模糊和替换 Google Meet 中的背景。有了这个,机器学习模型和 OpenGL 着色器可以在网络上高效运行。开发的功能以低功耗实现实时性能,即使在低功耗设备上也是如此。

更新说明:优先更新微信公众号“雨夜的博客”,后更新博客,之后才会陆续分发到各个平台,如果先提前了解更多,请关注微信公众号“雨夜的博客”。

博客来源:雨夜的博客