BiRefNet:开源高分辨率二值化图像分割框架,精准实现多场景精细分割与抠图

原创 发布日期:
88

一、BiRefNet是什么

BiRefNet是一款由南开大学、上海人工智能实验室、芬兰阿尔托大学、意大利特伦托大学等机构联合开源的高分辨率二值化图像分割框架,以双边参考机制为核心创新,专注解决高分辨率图像下分割精度低、显存占用大、推理速度慢等难题。该框架原生支持二值化图像分割(DIS)、伪装目标分割(COD)、高分辨率显著目标分割(HRSOD)、通用前景提取、2K超高清分割、无Trimap智能抠图六大核心任务。

从定位来看,BiRefNet不是单一任务的分割模型,而是通用型高分辨率二值分割底座:最初专为DIS设计,现已扩展为覆盖DIS/COD/HRSOD/通用分割/2K分割/智能抠图的全场景框架,核心目标是在超高清图像(2K/4K)上实现像素级精细前景-背景分离,同时保持轻量化、高效率,满足学术研究与工业落地双重需求。

从技术本质上,BiRefNet采用编码器-解码器架构,核心创新是双边参考机制(Bilateral Reference),通过定位模块(LM)捕获全局语义、重建模块(RM)结合内部图像参考与外部梯度参考,精准还原边缘细节,彻底解决高分辨率下细节丢失、边缘模糊、小目标漏检等痛点。

从工程价值上,BiRefNet是开箱即用的全流程工具:提供训练、测试、推理、评估、部署全套脚本,支持单/多GPU训练、混合精度、动态分辨率、ONNX/TensorRT导出,兼容HuggingFace生态,普通开发者无需深度学习背景即可快速使用。

二、功能特色

BiRefNet的核心竞争力集中在多任务统一、高精度、高效率、低门槛、高灵活五大维度,是当前高分辨率二值分割领域最实用的开源方案之一。

1. 六大便携任务,一键切换

BiRefNet通过config.py修改任务参数即可无缝切换,无需改动模型代码,覆盖绝大多数二值分割需求:

任务名称 核心能力 典型应用
二值化图像分割(DIS5K) 通用前景-背景精细分离 证件照、商品图、日常图背景移除
伪装目标分割(COD) 低对比度、隐蔽物体精准分割 军事伪装检测、野生动物监测、工业缺陷检测
高分辨率显著目标分割(HRSOD) 2K/4K图像显著区域提取 航拍图、监控图、超高清摄影主体提取
通用场景分割(General) 日常图像快速前景提取 自媒体作图、电商素材处理
2K通用分割(General-2K) 2K分辨率专用优化 影视后期、高清广告图处理
智能抠图(Matting) 无Trimap发丝级抠图 人像抠图、商品抠图、虚拟背景合成

2. 精度全面领先,SOTA级表现

  • 在DIS5K、COD10K、NC4K、HRSOD、UHRSD等权威数据集上均超越同期专用模型;

  • 高分辨率场景下边缘精度比传统模型提升8%–12%,发丝、裂纹、透明物体均可精准分割;

  • 梯度监督与多尺度监督双重加持,复杂背景、遮挡场景下鲁棒性极强。

3. 极致效率,消费级显卡即可跑满

  • 推理速度:RTX 4090上1024×1024分辨率17 FPS,显存仅3.45 GB

  • 2K分辨率推理显存≤8 GB,16GB显存显卡可流畅训练与批量推理;

  • 支持PyTorch SDPA注意力,显存降低20%–30%,训练速度提升10%–15%;

  • 动态分辨率训练(256×256~2304×2304),自动适配不同硬件与图像尺寸。

4. 极简使用,零门槛上手

  • HuggingFace一键加载:一行代码导入预训练模型,无需手动下载权重;

  • 提供Colab、HF Spaces在线Demo,浏览器直接体验;

  • 训练/测试/推理均提供shell脚本,复制命令即可运行;

  • 配置集中在config.py,任务、骨干、分辨率、损失函数一目了然。

5. 高度灵活,支持深度定制

  • 兼容10+骨干网络:Swin V1、PVT V2、DINOv3、ResNet、VGG等;

  • 8+损失函数自由组合:BCE、IoU、SSIM、MAE、MSE、梯度损失等;

  • 支持DDP多GPU、accelerate分布式训练、混合精度(FP16/BF16/FP8);

  • 支持torch.compile编译加速,PyTorch 2.5+速度再提10%–20%。

三、技术细节

BiRefNet的核心竞争力来自双边参考架构与一系列工程化优化,技术设计兼顾学术创新与落地实用性。

1. 整体架构:定位模块+重建模块

BiRefNet采用双模块协同架构,彻底解决高分辨率细节丢失问题:

  1. 定位模块(LM)

    • 基于Transformer/CNN骨干提取多尺度特征;

    • 快速锁定目标位置,输出粗分割图,降低后续重建压力;

    • 融入ASPP空洞空间金字塔池化,增强上下文感知。

  2. 重建模块(RM)
    这是BiRefNet的核心,采用双边参考(BiRef)

    • 内部参考(InRef):直接使用原始图像区块作为参考,保留高分辨率纹理细节,避免下采样损失;

    • 外部参考(OutRef):以梯度图为监督信号,引导模型聚焦边缘、纹理、拐角等关键区域;

    • 多阶段渐进式细化,逐层恢复分辨率,输出像素级精准掩码。

2. 核心创新:双边参考机制(Bilateral Reference)

传统高分辨率分割要么下采样丢细节,要么全分辨率爆显存。BiRefNet的双边参考从根源解决矛盾:

  • 用定位模块做“全局导航”,用重建模块做“细节雕刻”;

  • 内部参考保证纹理保真,外部参考保证边缘锐利

  • 梯度辅助监督强制模型学习细微变化,对发丝、玻璃、裂缝等极友好。

3. 训练与推理工程优化

  • 动态分辨率训练:随机尺度输入,增强泛化,减少过拟合;

  • 混合精度训练:FP16/BF16大幅降低显存,速度提升;

  • SDPA注意力:PyTorch原生加速,比传统实现更省显存更快;

  • 多尺度监督:多层输出联合监督,细节与全局兼顾;

  • 轻量化解码器:逐阶段上采样,计算量可控。

4. 模型与部署支持

  • 提供基础版、高清版(BiRefNet_HR)、动态版(BiRefNet_dynamic);

  • 支持ONNX、TensorRT导出,可部署到服务器、边缘设备;

  • 提供ComfyUI插件,AIGC工作流直接集成;

  • 提供视频分割推理脚本,支持连续帧处理。

四、应用场景

BiRefNet凭借高分辨率、高精度、高效率特性,可广泛落地于学术研究、工业视觉、内容创作、智慧城市、自动驾驶等领域:

  1. 影视与内容创作

    • 无绿幕智能抠图,发丝、半透明物体完美分离;

    • 短视频、直播虚拟背景替换;

    • 动漫、漫画主体提取与背景重绘。

  2. 电商与设计

    • 商品图一键白底、透明背景制作;

    • 证件照、形象照快速换底;

    • 海报、广告高清素材处理。

  3. 工业与质检

    • 高分辨率表面缺陷检测(裂纹、划痕);

    • 生产线小目标定位与分割;

    • 伪装缺陷、隐蔽异常识别。

  4. 安防与航拍

    • 无人机航拍主体提取;

    • 监控画面行人/车辆分割;

    • 野外隐蔽目标监测。

  5. 医疗影像

    • 病灶二值分割、轮廓提取;

    • 细胞、组织区域精准分割。

  6. 自动驾驶

    • 雨雾、夜间复杂场景下行人/障碍物分割;

    • 车载摄像头高分辨率实时感知。

BiRefNet:开源高分辨率二值化图像分割框架,精准实现多场景精细分割与抠图

五、使用方法

BiRefNet提供本地部署、HuggingFace调用、在线Demo三种使用方式,覆盖从新手到开发者全人群。

1. 环境准备

git clone https://github.com/ZhengPeng7/BiRefNet.git
cd BiRefNet
pip install -r requirements.txt

2. 快速推理(本地)

# 单GPU推理,输出目录e_preds,分辨率1024×1024
./test.sh 0 e_preds 1024x1024

3. 训练模型

# 多GPU训练:指定模型BiRefNet,GPU 0,1,2,3,测试用GPU 0
./train_test.sh BiRefNet 0,1,2,3 0

4. HuggingFace一键加载

from transformers import AutoModelForImageSegmentation
model = AutoModelForImageSegmentation.from_pretrained(
  "zhengpeng7/BiRefNet", 
  trust_remote_code=True
)

5. 配置修改(config.py)

  • 任务切换:self.task = 'DIS5K' / 'COD' / 'HRSOD' / 'General' / 'General-2K' / 'Matting'

  • 分辨率设置:self.size = (1024, 1024)

  • 动态分辨率:self.dynamic_size = ((512, 2048), (512, 2048))

  • 骨干网络:self.backbone = 'swin_v1' / 'pvt_v2' / 'dinov3'

6. 在线Demo

  • HuggingFace Spaces:https://huggingface.co/spaces/ZhengPeng7/BiRefNet_demo

  • Colab:仓库内提供链接,云端直接运行。

六、常见问题解答(FAQ)

BiRefNet只能用于二值分割吗?

是的,BiRefNet专注于前景-背景二分类分割,包括DIS、COD、SOD、Matting等均属于二值分割范畴,不支持多类别语义分割。

最低需要什么配置的显卡才能运行?

推理最低4GB显存即可运行512×512分辨率;1024×1024推荐≥6GB;2K分辨率推荐≥8GB;训练建议≥12GB显存。

支持Windows系统吗?

完全支持,只需正确安装PyTorch与CUDA,脚本与Linux完全一致,也可使用WSL2部署。

如何切换到抠图任务?

在config.py中将self.task设置为Matting,加载对应抠图预训练权重即可,无需修改代码。

训练自己的数据集需要准备什么?

按DIS5K格式组织:图片放images文件夹,掩码放masks文件夹,文件名一一对应,在config.py修改数据集路径。

出现显存不足(Out of Memory)怎么办?

降低输入分辨率、减小batch size、开启混合精度FP16、启用dynamic_size、使用更小的骨干网络。

推理速度慢如何优化?

使用FP16、开启torch.compile、降低分辨率、使用TensorRT加速、更换高性能GPU。

支持视频分割吗?

支持,仓库tutorials文件夹提供视频推理Notebook,可逐帧分割并合成视频。

可以导出ONNX/TensorRT吗?

可以,官方提供转换教程与脚本,支持部署到C++、服务端、边缘设备。

BiRefNet和RMBG、SAM有什么区别?

BiRefNet专注高分辨率二值分割与抠图,速度更快、显存更低、边缘更精细;SAM是通用分割,参数大、速度慢、不专门优化二值与高清。

模型权重在哪里下载?

HuggingFace Hub自动下载,也可在GitHub README获取手动下载链接。

支持多GPU训练吗?

支持,使用train_test.sh脚本指定多GPU即可,自动启用DDP分布式训练。

损失函数NaN如何解决?

降低学习率、开启梯度裁剪、调整损失函数权重、检查数据集掩码是否损坏。

可以用于商业项目吗?

可以,项目采用MIT开源协议,允许商用、修改、分发,只需保留版权声明。

如何提高抠图透明边缘质量?

使用Matting专用权重、提高输入分辨率至2K、开启SSIM损失、确保输入图像清晰无压缩。

七、相关链接

八、总结

BiRefNet是一款以双边参考机制为核心、面向高分辨率场景设计的开源二值化图像分割框架,凭借统一架构支持DIS、COD、HRSOD、通用分割、2K分割与智能抠图六大任务,在精度、速度、显存占用上实现均衡优化,提供从训练、推理到部署的全流程工具链,兼容多骨干网络与分布式训练,支持HuggingFace快速调用与ONNX/TensorRT导出,既可满足学术研究需求,也能直接落地于影视抠图、电商设计、工业检测、安防航拍等真实场景,凭借MIT协议、极低使用门槛与持续更新维护,成为当前高分辨率精细分割领域最具实用价值的开源方案之一。

打赏
THE END
作者头像
AI工具箱
一个喜欢收集AI工具的小萌新