BackgroundRemover 是一个命令行工具,可使用 AI 从图像和视频中删除背景,由 nadermx 为 https://BackgroundRemoverAI.com 提供支持。如果您想知道为什么要这样做,请阅读这篇简短的博客文章。
蟒蛇 >= 3.6
python3.6-dev #或者你使用的python版本
torch 和 torchvision 稳定版本 (https://pytorch.org)
ffmpeg 4.4+
为了澄清这一点,您必须安装 python 以及您安装的任何 dev 版本的 python。 IE; python3.10-dev 与 python3.10 或 python3.8-dev 与 python3.8
转到 https://pytorch.org 并向下滚动到INSTALL PYTORCH
部分并按照说明进行操作。
例如:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
安装 ffmpeg 和 python-dev
sudo apt install ffmpeg python3.6-dev
要安装backgroundremover,请从pypi安装它
pip 安装 --升级 pip pip 安装背景删除程序
请注意,当您第一次运行该程序时,它会检查您是否有 u2net 模型,如果没有,它将从此存储库中提取它们
也可以在不通过 pip 安装的情况下运行它,只需将 git 克隆到本地启动虚拟环境并安装要求并运行
python -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
对于窗户
python.exe -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
git 克隆 https://github.com/nadermx/backgroundremover.gitcd backgroundremover docker build -t bgremover .alias backgroundremover='docker run -it --rm -v "$(pwd):/tmp" bgremover:latest'
从本地文件图像中删除背景
背景去除器-i“/path/to/image.jpeg”-o“output.png”
有时,通过打开 Alpha 抠图可以获得更好的结果。例子:
背景去除器-i“/path/to/image.jpeg”-a-ae 15-o“output.png”
更改u2netp
、 u2net
或u2net_human_seg
之间不同背景去除方法的模型
背景去除器-i“/path/to/image.jpeg”-m“u2net_ human_seg”-o“output.png”
背景去除器-i“/path/to/video.mp4”-tv-o“output.mov”
背景去除器-i“/path/to/video.mp4”-tov“/path/to/videtobeoverlayed.mp4”-o“output.mov”
背景去除器-i“/path/to/video.mp4”-toi“/path/to/videtobeoverlayed.mp4”-o“output.mov”
背景去除器-i“/path/to/video.mp4”-tg-o“output.gif”
制作用于首映的遮罩文件
背景去除器-i“/path/to/video.mp4”-mk -o“output.matte.mp4”
更改视频的帧速率(默认设置为 30)
背景去除器-i“/path/to/video.mp4”-fr 30-tv-o“output.mov”
设置视频的总帧数(默认设置为-1,即从整个视频中删除背景)
背景去除器-i“/path/to/video.mp4”-fl 150-tv-o“output.mov”
更改视频的 GPU 批量大小(默认设置为 1)
背景去除器-i“/path/to/video.mp4”-gb 4-tv-o“output.mov”
更改处理视频的工作人员数量(默认设置为 1)
背景去除器-i“/path/to/video.mp4”-wn 4-tv-o“output.mov”
更改u2netp
、 u2net
或u2net_human_seg
之间不同背景去除方法的模型,并将帧数限制为 150
背景去除器-i“/path/to/video.mp4”-m“u2net_ human_seg”-fl 150 -tv -o“output.mov”
from backgroundremover.bg import remove def remove_bg(src_img_path, out_img_path): model_choices = ["u2net", "u2net_human_seg", "u2netp"] f = open(src_img_path, "rb") data = f.read() img = remove(data, model_name=model_choices[0], alpha_matting=True, alpha_matting_foreground_threshold=240, alpha_matting_background_threshold=10, alpha_matting_erode_structure_size=10, alpha_matting_base_size=1000) f.close() f = open(out_img_path, "wb") f.write(img) f.close()
将逻辑从视频转换为图像,以利用更多 GPU 进行图像删除
进一步清理文档
添加调整图像或视频并向数据集提供反馈的功能
添加视频实时背景去除功能,用于流媒体
完成 Flask 服务器 api
添加使用除 u2net 之外的其他模型(即您自己的模型)的能力
其他
公认
提供我们项目 BackgroundRemoverAI.com 或此 git 的链接,告诉人们您喜欢它或使用它。
我们将其他人的部分合并在一起,通过将部分作为超级用户的赏金问题等来添加我们自己的一些功能,从而将其制作为我们自己的包。以及之前在 hackernews 上要求开源图像部分,所以决定添加在视频中,还有更多。
https://arxiv.org/pdf/2005.09007.pdf
https://github.com/NathanUA/U-2-Net
https://github.com/pymatting/pymatting
https://github.com/danielgatis/rembg
https://github.com/ecsplendid/rembg-greenscreen
https://superuser.com/questions/1647590/have-ffmpeg-merge-a-matte-key-file-over-the-normal-video-file-removing-the-backg
https://superuser.com/questions/1648680/ffmpeg-alphamerge-two-videos-into-a-gif-with-transparent-background/1649339?noredirect=1#comment2522687_1649339
https://superuser.com/questions/1649817/ffmpeg-overlay-a-video-after-alphamerging-two-others/1649856#1649856
版权所有 (c) 2021 年至今 乔纳森·纳德 (Johnathan Nader)
版权所有 (c) 2020 年至今卢卡斯·内斯特 (Lucas Nestler)
版权所有 (c) 2020 年至今 Tim Scarfe 博士
版权所有 (c) 2020 年至今 Daniel Gatis
根据 MIT 许可模式获得许可的代码 根据 Apache 许可 2.0 获得许可的代码