【问题标题】:Google Meet background BlurGoogle Meet 背景模糊
【发布时间】: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 MayesPhysical 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,您的问题解决了吗?如果是这样,为了社区的利益,您能否在答案部分发布解决方案。谢谢!

标签: tensorflow tensorflow-lite tensorflow.js google-meet


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 谢谢弗拉基米尔,这是有道理的!顺便说一句,很棒的图书馆!
  • 谢谢@loretoparisi!
猜你喜欢
  • 2018-04-24
  • 2017-07-17
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2023-04-05
  • 2014-07-13
相关资源
最近更新 更多