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 链接