z
zhangkx888/RMBG-1.4
模型介绍
文件和版本
Pull Requests
讨论
分析

RMBG-1.4 昇腾NPU部署文档

1. 模型简介

模型名称: RMBG-1.4 (briaai/RMBG-1.4)

模型链接: briaai/RMBG-1.4

模型描述: RMBG-1.4 是 BRIA AI 发布的高精度背景去除(抠图)模型,能够将图像中的前景主体(人物、物体、动物等)从背景中分离并生成掩码(mask),适用于电商、广告、游戏等场景的图片素材处理。

模型架构: 基于 IS-Net 架构增强(RSU 多尺度特征提取 + 深度监督),自定义 BriaRMBG 网络(trust_remote_code 加载)

参数规模: 44.0M

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/briaai/RMBG-1.4
  • 在线 Demo(HuggingFace Space):https://huggingface.co/spaces/briaai/BRIA-RMBG-1.4
  • 技术论文(IS-Net):https://arxiv.org/abs/2108.06974

2. 验证环境

组件版本
torch2.9.0
torch-npu2.9.0.post1+gitee7ba04
transformers4.57.6
torchvision0.24.0
numpy2.x
Pillow12.2.0
昇腾驱动 / CANNnpu-smi 25.5.5
  • NPU:2 逻辑卡(Ascend910)
  • 模型路径:/opt/atomgit/0820/RMBG-1.4
  • 推理设备:npu:0
  • 模型精度:float32

3. 环境依赖

依赖项版本要求说明
Python>= 3.10推荐 3.11
torch>= 2.1.0本验证使用 2.9.0
torch_npu>= 2.1.0昇腾 NPU 插件(随 CANN 安装)
torchvision>= 0.15.0图像归一化(torchvision.transforms.functional)
transformers>= 4.39.1AutoModelForImageSegmentation 加载(官方要求)
numpy>= 1.24.0数值计算
Pillow>= 9.0.0图像处理与结果保存

安装命令:

# 使用清华源安装基础依赖
pip install torch torch_npu torchvision transformers numpy Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

# torch_npu 需与 CANN 版本配套,亦可从昇腾官方源安装:
# pip install torch_npu -i https://pypi.ascend.com/pypi/simple

或直接使用仓库内 requirements.txt 一键安装:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

4. 推理步骤

4.1 环境准备

# 检查 NPU 设备
npu-smi info

4.2 运行推理

cd /opt/atomgit/0820/RMBG-1.4

# 默认推理(内置双样例:球体场景 + 人物剪影)
python inference.py

# 处理指定本地图片
python inference.py --image ./img.jpg

# 处理指定 URL 图片
python inference.py --image_url https://example.com/image.jpg

# 自定义结果保存目录
python inference.py --image ./img.jpg --save_dir ./output

4.3 推理参数说明

参数类型默认值说明
--model_pathstr脚本所在目录模型权重目录
--imagestr-输入图片路径
--image_urlstr-输入图片 URL
--save_dirstroutput结果保存目录(生成 *_mask.png 与 *_nobg.png)
--devicestrauto推理设备(auto/npu:0/cuda:0/cpu)

5. 测试样例及输出结果

样例 1:内置双样例处理(球体场景 + 人物剪影)

输入:

python inference.py

输出:

[INFO] 设备类型: npu | 设备: npu:0
[INFO] 正在加载 RMBG-1.4 背景去除模型: /opt/atomgit/0820/RMBG-1.4
[INFO] 模型加载成功 | 设备: npu:0 | 参数量: 44.0M | 精度: fp32
[INFO] 待处理图像数量: 2

============================================================
Running inference on NPU...
============================================================

----- 样例 1: 内置示例:球体场景 (sample_ball) -----
  输入尺寸: 640x480 | 掩码尺寸: 640x480
  掩码范围: 0 - 255 | 前景占比: 30.1%
  单图推理耗时 = 175.3 ms
  已保存: output/sample_ball_mask.png
  已保存: output/sample_ball_nobg.png

----- 样例 2: 内置示例:人物剪影 (sample_person) -----
  输入尺寸: 448x595 | 掩码尺寸: 448x595
  掩码范围: 0 - 255 | 前景占比: 28.6%
  单图推理耗时 = 22.0 ms
  已保存: output/sample_person_mask.png
  已保存: output/sample_person_nobg.png

============================================================
Inference completed! RMBG-1.4 在昇腾 NPU 上推理成功!
============================================================

完整运行日志(含推理期间 npu-smi info 采样及进程占用情况)见 run_npu.log。

样例 2:处理指定图片

输入:

python inference.py --image ./my_image.jpg --save_dir ./output

输出:

[INFO] 设备类型: npu | 设备: npu:0
[INFO] 待处理图像数量: 1
...
----- 样例 1: 本地图片 (my_image.jpg) -----
  输入尺寸: <宽>x<高> | 掩码尺寸: <宽>x<高>
  掩码范围: 0 - 255 | 前景占比: <百分比>%
  单图推理耗时 = ~170 ms
  已保存: output/my_image_mask.png
  已保存: output/my_image_nobg.png
  • *_mask.png:灰度掩码图(前景为白色,背景为黑色)
  • *_nobg.png:透明背景 PNG(掩码写入 Alpha 通道)

6. 性能参考

指标数值
模型参数量44.0M
模型加载 + 权重迁移至 NPU~12 s
单图前向推理(1024x1024 输入,fp32)~175 ms(首图)/ ~22 ms(预热后)
NPU 显存占用(推理期间)186 MB
NPU 芯片Ascend910 / 2 逻辑卡

推理期间通过 npu-smi info 多次采样可观察到 python3 进程实际占用 NPU(进程内存 186MB),详见 run_npu.log。

7. 注意事项

  • 推理脚本通过 torch_npu 调用 NPU 设备(check_device() 自动优先选择 npu:0),未检测到 NPU 时回退 CPU/CUDA。
  • 模型依赖远程代码(trust_remote_code=True),本地目录需包含 MyConfig.py 与 briarmbg.py(本仓库已内置)。
  • 图像预处理与官方一致:双线性缩放到 1024x1024 → 除以 255 → mean=[0.5,0.5,0.5] / std=[1,1,1] 归一化。
  • 后处理:掩码双线性还原至原图尺寸 → min-max 归一化 → 0-255 灰度掩码。
  • 掩码默认以 0.5 阈值二值化写入 Alpha 通道生成透明背景 PNG。
  • 模型权重文件较大(pytorch_model.bin / model.safetensors / model.pth 约 176MB),未随仓库上传,请从 HuggingFace 下载。
  • 内置双样例为程序化生成图像(球体/剪影),模型可正确分割前景(前景区平均掩码 200+ vs 背景区 <10),实际使用建议用 --image 或 --image_url 传入真实图片。