OBS插件: 人像背景去除 / 虚拟绿幕和低光照增强
这是一个OBS Studio插件,可以替换人像图像和视频中的背景,并增强低光照场景。
如需了解我们的其他AI插件,请查看locaal AI。
使用方法
请查看使用指南页面以获取使用步骤和建议。
额外的教程视频:
- 使用教程:https://youtu.be/veqNEsMqEE0
- 景深效果:https://youtu.be/jC3EKSpNjQk
- 低光照增强:https://youtu.be/WSBLYWFrn2Q
- 去除任何物体的背景(不仅限于人像):https://youtu.be/N74VCDCToX8
下载
请查看指南页面以获取Windows和MacOS的下载和安装说明。
Linux安装
在Ubuntu上,有两种安装OBS的方式,你需要使用相应的方法来安装此插件。
- 如果你通过官方PPA安装了OBS,从releases页面下载deb包并直接安装。
- 如果你通过FlatHub安装了OBS,运行以下命令:
flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval
此插件的预编译二进制文件可以在Ubuntu 22.04或更高版本上运行。
对于openSUSE,请参阅docs/BUILDING-OPENSUSE.md
。
FlatHub
在Debian上,你不能使用我们的deb包,我们只支持FlatHub安装。
在其他Linux发行版上,使用FlatHub安装OBS和此插件。
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.obsproject.Studio
flatpak install flathub com.obsproject.Studio.Plugin.BackgroundRemoval
如果你以FlatHub以外的方式安装OBS,你需要自行构建此插件(参见下面的构建说明)。
OBS版本支持和兼容性
- OBS 29+版本(下载)适用于此插件的最新版本,如1.1.x及以上。
- OBS 28+版本适用于此插件的0.5.x到1.0.x版本。
- OBS 27+版本适用于此插件的0.4.x及以下版本。
简介
此插件旨在简化人像图像和视频中的背景替换。它使用神经网络预测人像的蒙版并移除背景像素。它可以轻松与其他OBS插件组合使用,例如将背景替换为图像或透明颜色。
如果你喜欢这个完全免费提供给你的作品,请考虑通过在GitHub上赞助我们来支持它:
支持和帮助
如需在线/即时帮助,请在Discord或OBS插件论坛上联系我们。
如果你发现了bug或想提出功能或改进建议,请开启一个issue。
如果你需要实践帮助或私人咨询,请选择一个赞助级别。
技术细节
GPU支持:
- 目前在Windows上我们支持DirectML,这应该能将CPU使用率降低95%,并有效利用系统加速器(如果有GPU的话)。
- 在Mac上,我们支持CoreML加速,适用于M1和M2(不适用于Intel,抱歉)。
- 本插件通过TensorRT支持CUDA,但仅在Linux上支持。
- 本插件的目标是让每个系统上的每个人都能使用,即使他们没有GPU。
CPU线程数可以通过UI设置控制。2线程设置效果最佳。
用于人像前景分割的预训练模型权重来自:
- https://github.com/anilsathyan7/Portrait-Segmentation/tree/master/SINet
- https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.7/contrib/PP-HumanSeg
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/082_MediaPipe_Meet_Segmentation
- https://github.com/PeterL1n/RobustVideoMatting
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/384_TCMonoDepth 和 https://github.com/yu-li/TCMonoDepth
- https://huggingface.co/briaai/RMBG-1.4
图像增强(低光照)模型来自:
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/213_TBEFN
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/372_URetinex-Net
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/370_Semantic-Guided-Low-Light-Image-Enhancement
- https://github.com/PINTO0309/PINTO_model_zoo/tree/main/243_Zero-DCE-improved
关于我如何构建它的更多信息:https://www.morethantechnical.com/2021/04/15/obs-plugin-for-portrait-background-removal-with-onnx-sinet-model/ 和 https://www.morethantechnical.com/2023/05/20/building-an-obs-background-removal-plugin-a-walkthrough/
代码讲解
这个YouTube视频将带你了解代码的主要部分并进行解释。
构建
该插件已在Mac OSX(Intel和Apple silicon)、Windows和多个Linux发行版(如Ubuntu/Debian系、Fedora等)上构建和测试。欢迎提供在其他操作系统和包上构建的帮助。
CI中的构建流程处理了大部分繁重的工作。使用它们在本地构建插件。我们尝试使用外部OpenCV、libcurl和ONNX Runtime来减少构建时间。
首先,将此仓库克隆到你选择的目录中。
Mac OSX
使用CI流程脚本,在本地你只需调用zsh脚本。默认情况下,这会为Intel和Apple Silicon构建通用二进制文件。要为特定架构构建,请查看.github/scripts/.build.zsh
中的-arch
选项。
$ ./.github/scripts/build-macos -c Release
安装
上述脚本应该成功执行,插件文件(如obs-backgroundremoval.plugin
)将位于根目录下的./release/Release
文件夹中。将.plugin
文件复制到OBS目录,例如~/Library/Application Support/obs-studio/plugins
。
要获取.pkg
安装程序文件,运行以下命令:
$ ./.github/scripts/package-macos -c Release
(注意,输出可能在Release
文件夹而不是package-macos
期望的install
文件夹中,所以你可能需要将文件夹从build_x86_64/Release
重命名为build_x86_64/install
)
Linux
Ubuntu
再次使用CI脚本
$ ./.github/scripts/build-linux.sh
Arch Linux
社区维护AUR包:https://aur.archlinux.org/packages/obs-backgroundremoval
Fedora
要在Fedora上编译,你需要手动管理依赖项。有关更多信息,请参阅docs/BUILDING-FEDORA.md。
FlatHub
该插件在FlatHub上可用:https://github.com/flathub/com.obsproject.Studio.Plugin.BackgroundRemoval
$ flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval
Windows
再次使用CI脚本,例如:
> .github/scripts/Build-Windows.ps1 -Target x64 -CMakeGenerator "Visual Studio 17 2022"
构建结果应该存在于根目录下的./release
文件夹中。你可以手动将文件安装到OBS目录中。