rembg - Rembg 是一款去除图片背景的工具。

Created at: 2020-08-10 22:38:24
Language: Python
License: MIT

雷姆布格

下载 下载 下载 许可证 拥抱面部空间

Rembg是一个删除图像背景的工具。就是这样。

如果这个项目对你有所帮助,请考虑捐款。

要求

python: >3.7, <3.11

安装

中央处理器支持:

pip install rembg

显卡支持:

pip install rembg[gpu]

用作 cli

从远程图像中删除背景

curl -s http://input.png | rembg i > output.png

从本地文件中删除背景

rembg i path/to/input.png path/to/output.png

从文件夹中的所有图像中删除背景

rembg p path/to/input path/to/output

用作服务器

启动服务器

rembg s

并转到:

http://localhost:5000/docs

带背景的图像:

https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg

无背景图片:

http://localhost:5000/?url=https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg

你也可以将文件作为表单数据(多部分/表单数据)发送:

<form
    action="http://localhost:5000"
    method="post"
    enctype="multipart/form-data"
>
    <input type="file" name="file" />
    <input type="submit" value="upload" />
</form>

用作库

输入和输出为字节

from rembg import remove

input_path = 'input.png'
output_path = 'output.png'

with open(input_path, 'rb') as i:
    with open(output_path, 'wb') as o:
        input = i.read()
        output = remove(input)
        o.write(output)

输入和输出为 PIL 图像

from rembg import remove
from PIL import Image

input_path = 'input.png'
output_path = 'output.png'

input = Image.open(input_path)
output = remove(input)
output.save(output_path)

输入和输出为 numpy 数组

from rembg import remove
import cv2

input_path = 'input.png'
output_path = 'output.png'

input = cv2.imread(input_path)
output = remove(input)
cv2.imwrite(output_path, output)

用作 docker

试试这个:

docker run -p 5000:5000 danielgatis/rembg s

带背景的图像:

https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg

无背景图片:

http://localhost:5000/?url=https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg

模型

所有模型都下载并保存在目录的用户主文件夹中。

.u2net

可用的型号有:

  • u2net(下载来源):用于一般用例的预训练模型。
  • u2netp(下载来源):u2net模型的轻量级版本。
  • u2net_human_seg(下载来源):用于人工分割的预训练模型。
  • u2net_cloth_seg(下载来源):从人类肖像中用于布料解析的预训练模型。这里的衣服被解析为3类:上半身,下半身和全身。

如何训练自己的模型

如果你需要更多微调模型,请尝试以下操作: https://github.com/danielgatis/rembg/issues/193#issuecomment-1055534289

提前使用

有时可以通过打开 alpha 消光来获得更好的效果。例:

curl -s http://input.png | rembg i -a -ae 15 > output.png
源语言 无阿尔法消光 带阿尔法消光 (-a -ae 15)

在云中

如果你需要帮助将其放在云上,请通过 danielgatis@gmail.com 与我联系。

引用

请我喝杯咖啡

喜欢我的一些作品吗?给我买杯咖啡(或者更可能是啤酒)

给我买杯咖啡

许可证

版权所有 (c) 2020 年至今 丹尼尔·加蒂斯

根据 MIT 许可证获得许可