Google 满足背景模糊
Google Meet background Blur
我很好奇 Google Meet 的新“turn on/off”background blur functionality(目前正在测试中)。我调查了一下,它似乎正在使用 Tensorflow Lite 模型:
segm_heavy.tflite
segm_lite.tflite
通过WASM
mediapipe_wasm_simd.wasm
而模型图应该是
background_blur_graph.binarypb
据我所知,该模型似乎在 HTMLCanvasElement
级别上工作。有人知道类似的模型吗?
[更新]
感谢Jason Mayes and Physical Ed I was able to reproduce a very close background blur effect in the Google's BodyPix demo
应用程序的设置显示在“控件”框中。还有一个 backgroundBlurAmount
选项可让您自定义要应用的模糊百分比。
结果和官方的GoogleMeet申请差不多
大多数分割模型都会提供 alpha 通道(有些会提供更多,但 alpha 最有用)- 哪些被屏蔽,哪些没有
所以如果你想模糊背景,它是一个多步骤的过程:
- 将输入调整为模型预期大小
- 运行 获得 alpha 通道的模型
- 将输出调整回原始大小
- 在canvas
上绘制原始图像
- 在其上绘制 alpha 通道,因此只有前景保持可见
例如使用 ctx.globalCompositeOperation = 'darken'
- 可选地模糊它一点,因为模型输出永远不会完美
例如使用 ctx.filter =
blur(8px)`;
因此,如果您想模糊背景,只需应用应用模糊,只需从 4 复制 canvas,在其上应用模糊,然后在返回步骤 5 之前绘制
关于模型,google meet 还不错,但我用 google selfie 模型效果更好
bodypix 是较旧的型号,可配置性很好但结果不是很好
示例代码:https://github.com/vladmandic/human/blob/main/src/segmentation/segmentation.ts
我很好奇 Google Meet 的新“turn on/off”background blur functionality(目前正在测试中)。我调查了一下,它似乎正在使用 Tensorflow Lite 模型:
segm_heavy.tflite
segm_lite.tflite
通过WASM
mediapipe_wasm_simd.wasm
而模型图应该是
background_blur_graph.binarypb
据我所知,该模型似乎在 HTMLCanvasElement
级别上工作。有人知道类似的模型吗?
[更新]
感谢Jason Mayes and Physical Ed I was able to reproduce a very close background blur effect in the Google's BodyPix demo
应用程序的设置显示在“控件”框中。还有一个 backgroundBlurAmount
选项可让您自定义要应用的模糊百分比。
结果和官方的GoogleMeet申请差不多
大多数分割模型都会提供 alpha 通道(有些会提供更多,但 alpha 最有用)- 哪些被屏蔽,哪些没有
所以如果你想模糊背景,它是一个多步骤的过程:
- 将输入调整为模型预期大小
- 运行 获得 alpha 通道的模型
- 将输出调整回原始大小
- 在canvas 上绘制原始图像
- 在其上绘制 alpha 通道,因此只有前景保持可见
例如使用ctx.globalCompositeOperation = 'darken'
- 可选地模糊它一点,因为模型输出永远不会完美
例如使用ctx.filter =
blur(8px)`;
因此,如果您想模糊背景,只需应用应用模糊,只需从 4 复制 canvas,在其上应用模糊,然后在返回步骤 5 之前绘制
关于模型,google meet 还不错,但我用 google selfie 模型效果更好
bodypix 是较旧的型号,可配置性很好但结果不是很好
示例代码:https://github.com/vladmandic/human/blob/main/src/segmentation/segmentation.ts