前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网页视频会议背景实时替换。Google Meet背后的技术揭秘

网页视频会议背景实时替换。Google Meet背后的技术揭秘

作者头像
McGL
发布2020-11-10 10:57:19
1.7K0
发布2020-11-10 10:57:19
举报
文章被收录于专栏:PyVision

一种新的浏览器内 ML 解决方案,用于模糊和替换 Google Meet 中的背景。效果出色毫无 PS 痕迹,且在低端设备上实现了实时性能和低功耗。

作者:Tingbo Hou and Tyler Mullen(Google Research) 编译:McGL

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

背景模糊和背景替换,由 MediaPipe 网页提供支持

我们的网页机器学习方案概述

Meet 的新功能是通过 MediaPipe 开发的,MediaPipe 是谷歌的开源框架,用于跨平台可定制的直播和流媒体机器学习解决方案,它还支持如设备上的实时手、虹膜和身体姿态跟踪等机器学习解决方案。

任何终端设备上解决方案的核心需求是实现高性能。为了实现这一点,MediaPipe 的 web 管道利用了 WebAssembly,这是一种专门为网页浏览器设计的低级二进制代码格式,可以提高计算量大的任务的速度。在运行时,浏览器将 WebAssembly 指令转换成执行速度远远快于传统 JavaScript 代码的原生机器码。此外,Chrome 84最近引入了对 WebAssembly SIMD 的支持,它可以用一条指令处理多个数据点,从而使性能提升了2倍以上。

我们的解决方案首先通过将用户从背景中分割出来(后面将详细介绍我们的分割模型),利用机器学习推理计算一个低分辨率的 mask 来处理每个视频帧。另外,我们还可以进一步精修 mask,使其与图像边界对齐。然后通过 WebGL2 应用 mask 渲染视频输出,这时背景就模糊或替换了。

WebML Pipeline: 所有计算量大的操作都在 C++/OpenGL 中实现,并通过 WebAssembly 在浏览器中运行。

在当前版本中,模型推断是在客户机的 CPU 上执行的,以降低功耗并覆盖最大的设备范围。为了实现实时性能,我们设计了高效的机器学习模型,并使用 XNNPACK 库加速推理,这是第一个专门为新型 WebAssembly SIMD 规范设计的机器学习推理引擎。通过 XNNPACK 和 SIMD 的加速,该分割模型可以在网页上实时运行。

由于 MediaPipe 灵活的配置,背景模糊/替换解决方案可以根据设备性能调整处理。在高端设备上,它运行整个 pipeline 以提供最高的视觉质量,而在低端设备上,它通过切换到轻量级的机器学习模型并绕过 mask 精修以高速运行。

分割模型

设备上 ML 模型需要超轻量级的快速推理、低功耗和小下载大小。对于在浏览器中运行的模型,输入分辨率极大地影响了处理每个帧所需的浮点操作(FLOPs)的数量,因此也需要很小。在将图像输入模型之前,我们将图像缩小到一个较小的尺寸。从低分辨率图像恢复尽可能精细的分割 mask 增加了模型设计的挑战。

整个分割网络在编码和解码方面具有对称结构,而解码块(浅绿色)也与编码块(浅蓝色)共享对称层结构。具体来说,在编码器和解码器两个模块中都采用了有全局平均池化的信道注意力(channel-wise attention),这对于高效的 CPU 推理是非常友好的。

MobileNetV3 模型结构的编码器(浅蓝)和对称的解码器(浅绿)。

我们修改了 MobileNetV3-small 作为编码器,它已经通过网络结构搜索(NAS)调优到最佳的性能与低资源需求均衡。为了减少 50% 的模型尺寸,我们使用 float16 量化将我们的模型导出到 TFLite,这导致了轻微的权重精度损失,但对质量没有明显的影响。得到的模型有 193K 参数,大小只有 400KB。

渲染效果

一旦分割完成,我们使用 OpenGL 着色器进行视频处理和效果渲染,其中的挑战是在不引入 artifact 的情况下高效渲染。在精细化阶段,我们使用一个联合双边滤波器(bilateral filter)来平滑低分辨率的 mask。

渲染效果减少了 artifacts。左: 联合双边滤波器平滑了分割 mask。中: 可分离滤波器去除了背景模糊中的晕轮效应。右: 光线包装应用在背景替换。

模糊着色器根据分割 mask 的值按比例调整每个像素的模糊强度,以模拟背景虚化(bokeh)效果,类似于光学中的模糊圈(CoC)。像素由它们的 CoC 半径加权,这样前景像素就不会渗入背景。我们用可分离滤波器实现加权模糊,而不是用流行的高斯金字塔,因为它消除了人周围的晕轮效应 artifact。为了提高效率,模糊是在低分辨率下执行的,并与原始分辨率输入帧进行混合。

背景模糊的例子。

对于背景替换,我们采用了一种称为光线包装(light wrapping)的合成技术,用于混合分割的人像和定制的背景图像。光线包装有助于柔化分割边缘,允许背景光线溢出到前景元素上,使合成更加身临其境。当前景和被替换的背景之间有很大的差异时,这也有助于最小化晕轮效应。

‍背景替换的例子。

性能

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

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

高端(MacBook Pro)和低端(Chromebook)笔记本电脑的模型推理和端到端pipeline速度

为了定量评价模型的精度,我们采用了流行的 IOU 和边界F-measure 度量方法。在网络如此轻量的情况下,这两种模型都能达到高质量:

模型精度的评估,通过 IOU 和边界F-score测量

我们的分割模型还公开了附带的模型卡片(https://mediapipe.page.link/meet-mc),其中详细说明了我们的公平评估。评估数据包含来自全球17个地理区域的图像,并有肤色和性别标注。我们的分析表明,该模型在不同区域、肤色和性别上的性能是一致的,在 IOU 指标上只有很小的差异。

总结

我们介绍了一种新的浏览器内 ML 解决方案,用于模糊和替换 Google Meet 中的背景。有了这个,ML 模型和 OpenGL 着色器可以在网页上高效运行。开发的功能甚至在低功耗设备上实现了实时性能和低功耗。

来源:https://ai.googleblog.com/2020/10/background-features-in-google-meet.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我们的网页机器学习方案概述
  • 分割模型
  • 渲染效果
  • 性能
  • 总结
相关产品与服务
媒体处理
媒体处理(Media Processing Service,MPS)是智能、强大、全面的多媒体数据处理服务,行业支持最全面的音视频编码标准,基于自研编码内核和AI算法,提供音视频转码和增强、媒体智能、质检评测等能力,帮助您提升媒体质量、降低成本,满足各类场景的音视频处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档