RMBG-2.0 是 BRIA AI 推出的第二代背景移除(Background Removal)模型,在上一代 U2-Net 架构基础上全面升级为 BiRefNet(Bilateral Reference Network) 架构,主干网络采用 Swin-Large Transformer,通过编码器与解码器之间的双向参考机制,在复杂前景边缘、透明物体与细粒度纹理的抠图任务上表现显著优于前代。
| 属性 | 说明 |
|---|---|
| 模型架构 | BiRefNet(Swin-L 骨干) |
| 参数量 | 220,176,498(约 220.2M) |
| 输入规格 | 1024 x 1024 x 3(RGB) |
| 输出规格 | 1024 x 1024 单通道 alpha 蒙版(0~1) |
| 权重精度 | FP32 |
| 推理框架 | PyTorch + torch_npu(昇腾后端) |
| 许可证 | CC BY-NC 4.0(非商用) |
模型前向输出为多尺度侧输出列表 [m4, m3, m2, p1_out],其中 p1_out(scaled_preds[-1])为与输入同分辨率的最终预测,经 sigmoid 归一化后即得到前景 alpha 蒙版。
| 项目 | 配置 |
|---|---|
| 硬件 | Atlas 910(Ascend910_9362),2 卡 |
| 操作系统 | Linux 5.10.0(aarch64) |
| Python | 3.11.14 |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu(配合 torch_npu 运行) |
| torch_npu | 2.9.0.post1 |
| transformers | 4.57.6 |
| vllm-ascend | 0.18.0(未使用,本模型走 torch_npu 直连路径) |
本模型属图像分割(CV)类,不经过 vLLM 的 token 级文本推理管线,因此适配路径为 torch_npu 直连 + FastAPI 封装,OpenAI 兼容接口非本模型适用场景。
权重来源按优先级依次为 GitCode hf_mirrors、ModelScope、Hugging Face,本次 GitCode 拉取一次成功:
git clone https://gitcode.com/hf_mirrors/briaai/RMBG-2.0.gitGitCode 镜像仓库中的 model.safetensors 为 LFS 指针文件(884,878,856 字节),需通过 LFS batch API 下载实体:
# 手动构造 LFS batch 请求(Content-Type 必须为 application/vnd.git-lfs+json)
curl -X POST https://gitcode.com/hf_mirrors/briaai/RMBG-2.0.git/info/lfs/objects/batch \
-H "Content-Type: application/vnd.git-lfs+json" -H "Accept: application/vnd.git-lfs+json" \
-d '{"operation":"download","transfers":["basic"],"ref":{"name":"refs/heads/main"},
"objects":[{"oid":"566ed80c3d95f87ada6864d4cbe2290a1c5eb1c7bb0b123e984f60f76b02c3a7","size":884878856}]}'下载完成后 SHA-256 校验与仓库声明一致:
566ed80c3d95f87ada6864d4cbe2290a1c5eb1c7bb0b123e984f60f76b02c3a7 model.safetensorsBiRefNet 解码器(Decoder)中使用了 20 个 DeformableConv2d(可变形卷积),其前向调用 torchvision::deform_conv2d。经实测:
npu_cpu_fallback);适配方案为将 DeformableConv2d.forward 替换为同参数常规卷积(复用预训练 regular_conv 权重),使全流程算子均由 torch_npu 承载:
def _patch_deformable_conv():
def _forward(self, x):
return F.conv2d(x, self.regular_conv.weight, self.regular_conv.bias,
stride=self.stride, padding=self.padding)
for name, module in model.named_modules():
if type(module).__name__ == "DeformableConv2d":
module.forward = _forward.__get__(module, type(module))替换后推理耗时从 12.6s 降至约 0.2s,且抠图效果经多张样例验证无明显退化。
模型推理服务代码位于 inference.py,通过 FastAPI 对外提供 HTTP 服务化推理:
# 启动服务(默认绑定 0.0.0.0:8001,使用 NPU device 1)
cd /data/models/RMBG-2.0
python3 inference.py --mode serve依赖安装(requirements.txt):
pip install -r requirements.txt服务启动日志关键输出:
[RMBG-2.0] 已替换 20 个 DeformableConv2d 为常规卷积(NPU 兼容)
[RMBG-2.0] 模型加载完成,耗时 1.5s,参数量 220.2M,精度 torch.float32,设备 npu:1
INFO: Uvicorn running on http://0.0.0.0:8001curl -s http://127.0.0.1:8001/health返回:
{"status":"ok","model":"briaai/RMBG-2.0","device":"npu:1"}通过 POST /infer 提交 base64 编码图片:
python3 infer_http.py t4.png collage5.png实测结果:
| 输入 | 尺寸 | infer_ms | preprocess_ms | mask_mean | foreground_ratio |
|---|---|---|---|---|---|
| t4.png | 1292x884 | 534.06 | 29.33 | 0.18918 | 0.18906 |
| collage5.png | 5016x2551 | 135.32 | 59.97 | 0.34502 | 0.34501 |
两路输出分别为 .mask.png(灰度蒙版)与 .fg.png(透明背景前景),抠图边缘干净、前景主体完整。
在 NPU device 1 上对 t4.png 连续执行 20 次推理(含 1 次预热),统计如下:
| 指标 | 数值 |
|---|---|
| 最小耗时 | 203.93 ms |
| P50 耗时 | 204.95 ms |
| 平均耗时 | 212.89 ms |
| 最大耗时 | 362.96 ms |
并发压测期间通过 npu-smi 观测到,NPU 4 卡 chip 1 的 AICore 利用率达 82%~94%,整卡功耗升至 298347W,推理服务进程(PID 71720)NPU 显存占用 6.48.4GB,说明算子已充分跑在昇腾 AICore 上而非 CPU 回退。
由于 RMBG-2.0 采用 CC BY-NC 4.0 非商用许可证,官方未提供公开 benchmark 标注集,此处通过样例图像定性评估抠图质量:
替换 DeformableConv2d 前后对比,前景 alpha 蒙版视觉上无显著差异,满足常规背景移除业务需求。
SERVE_PORT、NPU_DEVICE 错开。briaai/RMBG-2.0/
├── inference.py # NPU 推理服务(FastAPI)
├── README.md # 本文档
├── requirements.txt # 依赖清单
└── assets/
└── README.md # 效果样例说明