自制图片去背景服务 提供 api 接口访问,不受图片质量限制

我们可能会经常用到去图片去背景的功能, 比如证件照改背景色,或者修改图片的背景。这个现在世面上有很多的软件可以实现此类的功能,但大多数都不提供 api 接口访问,或者说接口收费昂贵,今天和大家说一下如何来自建图片去背景服务,可以给自己的软件提供去背景的接口。

一、介绍

目前市面上有很多自动去背景的图片,但要么准确率不高,要么要收费,我们来看下比较流行的市面上的软件。

1. 百度抠图

网址:https://ai.baidu.com/tech/body/seg
优点:可以在线试用,支持 API 调用,可以制作属于自己的抠图软件
缺点:只支持人像抠图,其它抠图效果不理想, api 有调用次数限制,超出需要购买

2. remove.bg

基于 U-2-Net 做的深度学习在线抠图,效果非常好
网址:https://remove.bg
优点:效果好,支持 api 调用
缺点:不支持高清图片下载,api 收费贵

其实还是可以通过自建 remove bg 服务,搭建好了后,不管是自己使用还是制作去背景软件,都可以胜任。

二、自建去背景服务

这里使用的是托管在 github 的一款开源图片去背景工具,效果还是非常不错的,可以自定义模型,可以使用 api 接口调用
安装前提需要 python3.8 以上版本,并安装了 pip

安装命令:pip install rembg

安装完成后就安装完成了,是不是非常简单~ 但还需要再下载一个模型文件

u2netp.pth u2net.pth

下载完成后,把这2个文件放到 ~/.u2net 目录下至此就完成了项目的搭建工作,下面可以用命令行或者 reset 接口的方式给图片去背景

三、图片去背景

把~/.local/bin 目录加到 path 下, 因为去背景的命令在这里。

1. web网页形式给图片去背景

启动去背景服务 rembg-server 启动服务

http://localhost:5000/?url=http://image.png

后面接网络图片地址,可以对网络上的图片去背景


如果是自己本地的图片可以选择 post 方式提交

<form action="http://localhost:5000" method="post" enctype="multipart/form-data">
  <input type="file" name="file"/>
  <input type="submit" value="upload"/>
</form>
这样就可以了。
怎么样是不是非常简单~
如果是想通过 api 接口访问,只需要把图片通过 api 接口发送到你的服务地址便可以

2. 命令行的方式给图片去背景

命令行去背景用的命名是 rembg, 我们可以使用 rembg -h 查看帮助
rembg -o out.png usage: rembg [-h] [-m {u2netp,u2net}] [-a [ALPHA_MATTING]] [-af ALPHA_MATTING_FOREGROUND_THRESHOLD] [-ab ALPHA_MATTING_BACKGROUND_THRESHOLD] [-ae ALPHA_MATTING_ERODE_SIZE] [-az ALPHA_MATTING_BASE_SIZE] [-p PATH PATH] [-o [OUTPUT]] [input]

positional arguments:
input                 Path to the input image.

optional arguments:
 -h, --help           show this help message and exit
 -m {u2netp,u2net}, --model {u2netp,u2net}
                      The model name.
 -a [ALPHA_MATTING], --alpha-matting [ALPHA_MATTING]
                      When true use alpha matting cutout.
 -af ALPHA_MATTING_FOREGROUND_THRESHOLD, --alpha-matting-foreground-threshold ALPHA_MATTING_FOREGROUND_THRESHOLD
                      The trimap foreground threshold.
 -ab ALPHA_MATTING_BACKGROUND_THRESHOLD, --alpha-matting-background-threshold ALPHA_MATTING_BACKGROUND_THRESHOLD
                      The trimap background threshold.
 -ae ALPHA_MATTING_ERODE_SIZE, --alpha-matting-erode-size ALPHA_MATTING_ERODE_SIZE
                      Size of element used for the erosion.
 -az ALPHA_MATTING_BASE_SIZE, --alpha-matting-base-size ALPHA_MATTING_BASE_SIZE
                      The image base size.
 -p PATH PATH, --path PATH PATH
                      An input folder and an output folder.
 -o [OUTPUT], --output [OUTPUT]
                      Path to the output png image..jpg
简单的使用方式
rembg -o output.png input.png 就可以完成图片的去背景

高级使用,可以使用 -a -ae 等参数来调整图片

四、总结

如果想要自建图片去背景服务,可以使用 rembg,他安装和使用上都非常简单,可调的参数也很多,支持通过命名行或者通过 api 的方式提交图片,这样就完全可以自制一个去背景图片的软件

发表评论

后一页 前一页