正文字数:2584  阅读时长:4分钟

从 mmhmm、腾讯会议、Zoom 到 Google Meet,背景模糊和特效已经成为视频会议或直播的一项标配。Google Meet团队通过 Web ML,MediaPipe和 WebAssembly技术,在浏览器中实现了高性能的实时背景处理功能。在12月11-13日的LiveVideoStackCon 美国旧金山站的线上大会上,Google研究院资深研究软件工程师汪启扉也将会带来有关MediaPipe、ML Kit、TFLite等性能优化与开发经验的分享(https://sfo2020.livevideostack.cn/)。

文 / Google研究院软件工程师,Tingbo Hou & Tyler Mullen

译者 / Alpha

技术审校:斗鱼前端专家,王兴伟

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

在人们的工作和生活中,视频会议变得越来越重要。我们可以通过增强隐私保护,或者添加有趣的视觉效果来改善视频体验,同时帮助人们将注意力集中在会议内容上。我们最近宣布的在Google Meet中模糊和替换背景的方法,就是为了实现这一目标而迈出的一小步。

我们利用机器学习(ML)来更好地突出参与者,从而忽略他们周围的背景环境。尽管其他的解决方案需要安装额外的软件,但Meet的功能是由尖端的Web ML技术提供支持的,这些技术是用MediaPipe构建的,可以直接在你的浏览器中工作——不需要额外的步骤。

开发这些功能,有一个关键目标,即它可以给几乎所有现代设备提供实时的浏览器内性能,通过XNNPACK和TFLite,我们将高效的设备上ML模型、基于WebGL的效果渲染,还有基于Web的ML推理结合起来,进而实现了这一目标。

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

网络Web ML方案概述

Meet中的新功能是与MediaPipe一起开发的,MediaPipe是谷歌的开源框架,用于为直播和流媒体提供跨平台的,可定制的ML解决方案,它还支持设备上实时性的手、虹膜和身体姿势追踪等ML解决方案。

任何设备上解决方案的核心需求,都是实现高性能。为了实现这一点,MediaPipe的Web工作流利用了WebAssembly,这是一种专为网络浏览器设计的底层二进制代码格式,可以提高计算繁重任务的速度。在运行时,浏览器将WebAssembly指令转换为本机代码,执行速度比传统JavaScript代码快很多。此外,Chrome84最近引入了对WebAssembly SIMD的支持,每条指令可以处理多个数据点,性能提升了2倍以上。

首先,我们的解决方案通过将用户,和他们的背景进行分割(稍后将详细介绍我们的分割模型),来处理每个视频帧,使用ML推理来计算出一个低分辨率的蒙版。或者,我们还可以进一步细化蒙版,以使其与图像边界对齐。然后通过WebGL2使用蒙版来渲染视频,实现背景的模糊或替换。

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

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

在MediaPipe灵活配置的支持下,背景模糊/替换解决方案可根据设备能力,调整其处理过程。在高端设备上,它运行完整的工作流,以提供最佳的视觉质量,而在低端设备上,通过使用轻量级的ML模型进行计算,并且绕过蒙版细化,它仍然可以保持较高的性能。

分割模型细分

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

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

采用MobileNetV3编码器(浅蓝色)和对称解码器(浅绿色)的模型架构。

我们修改MobileNetV3-Small为编码器,经过网络结构搜索的优化,以最低的资源需求,获得最佳的性能。为了减少50%的模型尺寸,我们使用Float16量化技术将模型导出到TFLite,仅权重精度略有下降,但对质量没有明显的影响。得到的模型有193K参数,大小只有400KB。

效果渲染

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

渲染效果时会减少瑕疵减少的渲染效果。左:联合双边过滤器平滑分段分割蒙版。中:可分离滤镜移除背景模糊中的光晕瑕疵。右:替换背景中的灯光包裹包装(light wrapping)。

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

背景模糊示例

对于背景替换,我们采用了一种称为灯光包裹(Light wrapping)的合成技术,用于混合分割的人物和定制的背景图像。光线包裹允许背景光溢出到前景元素上,从而使合成更具沉浸感,这有助于柔化分割边缘。当前景和替换的背景之间,存在较大的对比度时,它还有助于最大限度地减少光晕伪影

景替换示例

性能

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

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

高端(MacBook Pro)和低端(Chromebook)笔记本电脑上的模型型号推断速度和端到端管线传递。

为了定量评估模型的精度,我们采用了目前流行的交集-并集(IOU)和边界F-度量。这两种型号都有不俗的表现,而且还是在这样一个轻量级网络的情况下

模型准确性的评估,通过 IOU 借条和边界 F-分数来衡量。

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

结论

我们推出了一个全新的浏览器端的机器学习解决方案,用于模糊和替换你在Google Meet中的背景。使用这个方案,机器学习模型和OpenGL着色器就可以在Web上高效运行。所开发的功能即使在低功耗设备上也能以低功耗实现实时性能

致谢:特别感谢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 Guang Yong,Chuo-Ling Chang,Michael Hays,Camillo Lugaresi,Gregory Karpiak,Siarhei Kazakou,Matsvei Zhdanovich,Matthias Grundmann。

湾区最原汁原味的技术,全球最前沿的应用实践

无需漂洋过海,我们在线上等您!

LiveVideoStackCon 2020 美国旧金山站

北京时间:2020年12月11日-12月13日

点击【阅读原文】了解更多详细信息

Web ML+ WebAssembly 支持实现 Google Meet 背景模糊功能相关推荐

  1. Google Meet中基于Web ML的背景相关功能

    Google研究软件工程师Tingbo Hou和Tyler Mullen发表 在 google AI 博客上的文章中介绍了在Google Meet的背景动态虚化功能. 视频会议在人们的工作和个人生活中 ...

  2. [译]Web Inspector开始支持CSS区域

    最近,开发人员和设计师们可以在WebKit中尝试使用CSS区域特性了,我们认为是时候给他们一些开发工具了.最新版本的Chrome Canary中的web inspector现在已经支持下面这些功能: ...

  3. 实验进行中:.NET WebAssembly支持

    目前四大主流浏览器都默认支持WebAssembly,而.NET社区也在继续推动为.NET开发者提供相关能力,来将他们的代码编译成WebAssembly,然后在浏览器上运行. \\ WebAssembl ...

  4. Web开发与设计之Google兵器谱-Web开发与设计利器

    Google 的使命是 Web,在 Google 眼中,未来的一切应用都将 Web 化,一直以来,Google 为 Web 开发与设计者推出了大量免费工具,让他们更好地创建,维护,改善他们的 Web ...

  5. 程序员拒绝春节带电脑回家被开除;小米国行不再支持安装Google框架;Excel具备图灵完备性,成第一大编程语言 | 架构视点...

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Destiny decides who enters your l ...

  6. web服务r oauth_通过OAuth访问社交网站,第3部分,将Web Twitter客户端部署到Google App Engine...

    存档日期:2019年5月16日 | 首次发布:2010年4月13日 OAuth是一种开放协议,使用户可以在不同的网站之间共享其受保护的资源,而不会冒暴露用户凭据的风险. 本系列的第1部分介绍了OAut ...

  7. Spring Boot 2.X 对 web 的开发支持(二)

    Spring Boot 2.X 对 web 的支持开发 上章节的 Spring Boot 的入门案例,我们感受到 Spring Boot 简单的配置即可运行项目. 今天了解 Spring Boot 对 ...

  8. win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:

    win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试.如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助: 参考文章: (1)win ...

  9. JDK6 中队web service的支持

    JDK6中对Web Service的支持 原文: http://blog.csdn.net/zhongweijian/article/details/8008471 webService是一种跨语言的 ...

最新文章

  1. jquery easy ui 简单字段选择搜索实现
  2. 两年三次刷PascalVOC最佳纪录,阿里图灵实验室怎样解决目标检测
  3. 微信公众号新功能-原创声明、赞赏功能、评论管理、页面模版
  4. linux ubuntu基础,linux基础入门详细分析(基于ubuntu)
  5. url中参数以及callback后面的串
  6. python装饰器作用和功能_这是我见过最全面的Python装饰器详解!没有学不会这种说法!...
  7. Django 框架02: 模型与站点
  8. MIPI CSI-2规范一——概述及层级
  9. ThinkPHP RBAC如何自动获取所有模块的函数
  10. 导致大量kworker的原因_氨氮超标的几种原因及解决办法
  11. IQ数据简介:I/Q Data
  12. 云计算发展备受瞩目的五大方向
  13. 语言压缩zip win_主流压缩软件挨个尝试后,我选择了没有短板的全能压缩Bandizip...
  14. 人民日报:研究生期间该懂的47件事,你认可吗?
  15. 拓端tecdat|R语言Keras用RNN、双向RNNs递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
  16. 腾讯终于良心了!桌面混乱有救了
  17. hg6201m怎么设置虚拟服务器,移动光猫HG6201M定期重启设置
  18. vs2012 安装 InstallShield
  19. 用HTML简单制作一个网页
  20. f1c100s开发笔记

热门文章

  1. 通用权限管理系统组件 (GPM - General Permissions Manager) - 支持请求
  2. Factory Method模式的误区:Factory Method模式是简化版的Abstract Factory吗?
  3. STM32CubeMX系列教程 5.0版本环境开发——1.工程搭建
  4. Sass函数-数字函数-floor()函数
  5. [svc]cfssl模拟https站点-探究浏览器如何校验证书
  6. 做好数据挖掘模型的9条经验总结
  7. 关于 eclipse 插件JsonEditorPlugin-0.9.4安装与使用
  8. 模拟键盘 键盘虚拟代码
  9. 八部委宰割C类电商 消费者必遭殃
  10. 使用Platform Builder配置Windows CE操作系统