Google Meet 背景模糊

Posted

技术标签:

【中文标题】Google Meet 背景模糊【英文标题】:Google Meet background Blur 【发布时间】:2021-01-15 04:04:36 【问题描述】:

我很好奇 Google Meet 的新“开启/关闭”background blur functionality(目前正在测试中)。我调查了一下,似乎它使用的是 Tensorflow Lite 模型:

segm_heavy.tflite
segm_lite.tflite

通过WASM

mediapipe_wasm_simd.wasm

而模型图应该是

background_blur_graph.binarypb

据我所知,该模型似乎在htmlCanvasElement 级别上有效。有人知道类似的模型吗?

[更新]

感谢Jason Mayes 和Physical Ed 我能够在Google's BodyPix demo 中重现非常接近的背景模糊效果

应用程序的设置显示在控件框中。有一个 backgroundBlurAmount 选项可让您自定义要应用的模糊百分比。

结果几乎接近官方的 Google Meet 应用程序。

【问题讨论】:

我们的 Bodypix 模型可以让您分割人体并模糊背景。 github.com/tensorflow/tfjs-models/tree/master/body-pix @JasonMayes 谢谢。我正在查看 Google 的 Media Pipe,它似乎使用 TF lite 并具有人体跟踪功能。这是你指的健全的模型吗? @loretoparisi 我可以回答,我们正在尝试使用 body-pix。它是一种不同的模型,具有与 mediapipe 不同的功能。它具有出色的界面和非常好的演示。一定要检查一下。 确实如 PysicalEd 所说,Bodypix 是不同的。你可以在这里看到它的演示:github.com/tensorflow/tfjs-models/tree/master/body-pix @loretoparisi,您的问题解决了吗?如果是这样,为了社区的利益,您能否在答案部分发布解决方案。谢谢! 【参考方案1】:

大多数分割模型会给出 alpha 通道作为结果(有些会给出更多,但 alpha 是最有用的) - 什么被屏蔽,什么不是

所以如果你想模糊背景,这是一个多步骤的过程:

    将输入调整为模型预期大小 运行模型以获取 Alpha 通道 将输出大小调整回原始大小 在画布上绘制原始图像 在其上绘制 Alpha 通道,以便只有前景保持可见 例如使用ctx.globalCompositeOperation = 'darken' 可以选择模糊一下,因为模型输出永远不会完美 例如使用ctx.filter = blur(8px)`;

因此,如果您想模糊背景,只需应用模糊,只需从 4 复制画布,在其上应用模糊并在转到步骤 5 之前绘制(如果返回)

关于模型,google meet 还不错,但我使用 google selfie 模型获得了更好的结果 bodypix 是较旧的型号,可配置性很好,但效果不是很好

示例代码:https://github.com/vladmandic/human/blob/main/src/segmentation/segmentation.ts

【讨论】:

谢谢弗拉基米尔,这是有道理的!顺便说一句,很棒的图书馆! 谢谢@loretoparisi!

以上是关于Google Meet 背景模糊的主要内容,如果未能解决你的问题,请参考以下文章

Google Calendar API,如何添加带有附加新生成的google meet的事件?

使用 Google Calendar .Net SDK 从 Google Calendar Event 中删除 Google Meet 链接

如何使用 Google Apps 脚本创建/更改具有给定 Meet URL 的 Google 日历活动?

从 google hangouts meet 获取列表会议

Google Meet 虚拟会议聊天中的聊天机器人

Google Meet 自动关闭脚本