Birefnet HR Matting
模型概述
BiRefNet是一個專注於高分辨率圖像分割的模型,特別適用於透明圖像摳圖任務。它通過雙邊參考機制實現了高效的背景去除和掩膜生成。
模型特點
高分辨率處理
支持2048x2048分辨率圖像處理,適合高精度摳圖需求
雙邊參考機制
採用雙邊參考架構提升分割精度
多任務支持
同時支持背景去除、掩膜生成、顯著目標檢測等多種任務
高效推理
支持FP16模式,提高推理效率
模型能力
高分辨率圖像分割
透明圖像摳圖
背景去除
掩膜生成
顯著目標檢測
偽裝目標檢測
使用案例
圖像編輯
產品圖片背景去除
用於電商產品圖片的自動化背景去除
生成透明背景的產品圖片
人像摳圖
實現高精度的人像分割和背景替換
生成高質量的人像透明圖
視覺特效
電影特效製作
用於電影后期製作中的對象分離
實現精確的對象分割和合成
🚀 BiRefNet
BiRefNet是用於高分辨率二分圖像分割的模型,可進行背景去除、掩碼生成等操作,在多個相關任務中達到了SOTA性能。
🚀 快速開始
0. 安裝依賴包
pip install -qr https://raw.githubusercontent.com/ZhengPeng7/BiRefNet/main/requirements.txt
1. 加載BiRefNet
使用來自HuggingFace的代碼和權重
僅使用HuggingFace上的權重,優點是無需手動下載BiRefNet代碼;缺點是HuggingFace上的代碼可能不是最新版本(我會盡量保持其為最新版本)。
# 加載帶有權重的BiRefNet
from transformers import AutoModelForImageSegmentation
birefnet = AutoModelForImageSegmentation.from_pretrained('ZhengPeng7/BiRefNet_HR-matting', trust_remote_code=True)
使用來自GitHub的代碼和來自HuggingFace的權重
僅使用HuggingFace上的權重,優點是代碼始終是最新的;缺點是需要從我的GitHub克隆BiRefNet倉庫。
# 下載代碼
git clone https://github.com/ZhengPeng7/BiRefNet.git
cd BiRefNet
# 本地使用代碼
from models.birefnet import BiRefNet
# 從Hugging Face Models加載權重
birefnet = BiRefNet.from_pretrained('ZhengPeng7/BiRefNet_HR-matting')
使用來自GitHub的代碼和來自本地的權重
僅在本地同時使用權重和代碼。
# 本地使用代碼和權重
import torch
from utils import check_state_dict
birefnet = BiRefNet(bb_pretrained=False)
state_dict = torch.load(PATH_TO_WEIGHT, map_location='cpu')
state_dict = check_state_dict(state_dict)
birefnet.load_state_dict(state_dict)
使用加載好的BiRefNet進行推理
# 導入必要的庫
from PIL import Image
import matplotlib.pyplot as plt
import torch
from torchvision import transforms
from models.birefnet import BiRefNet
birefnet = ... # -- BiRefNet應該通過上述代碼加載,任選一種方式。
torch.set_float32_matmul_precision(['high', 'highest'][0])
birefnet.to('cuda')
birefnet.eval()
birefnet.half()
def extract_object(birefnet, imagepath):
# 數據設置
image_size = (2048, 2048)
transform_image = transforms.Compose([
transforms.Resize(image_size),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
image = Image.open(imagepath)
input_images = transform_image(image).unsqueeze(0).to('cuda').half()
# 預測
with torch.no_grad():
preds = birefnet(input_images)[-1].sigmoid().cpu()
pred = preds[0].squeeze()
pred_pil = transforms.ToPILImage()(pred)
mask = pred_pil.resize(image.size)
image.putalpha(mask)
return image, mask
# 可視化
plt.axis("off")
plt.imshow(extract_object(birefnet, imagepath='PATH-TO-YOUR_IMAGE.jpg')[0])
plt.show()
2. 本地使用推理端點
你可能需要自己點擊deploy並設置端點,這會產生一些費用。
import requests
import base64
from io import BytesIO
from PIL import Image
YOUR_HF_TOKEN = 'xxx'
API_URL = "xxx"
headers = {
"Authorization": "Bearer {}".format(YOUR_HF_TOKEN)
}
def base64_to_bytes(base64_string):
# 如果存在數據URI前綴,則移除
if "data:image" in base64_string:
base64_string = base64_string.split(",")[1]
# 將Base64字符串解碼為字節
image_bytes = base64.b64decode(base64_string)
return image_bytes
def bytes_to_base64(image_bytes):
# 創建一個BytesIO對象來處理圖像數據
image_stream = BytesIO(image_bytes)
# 使用Pillow (PIL)打開圖像
image = Image.open(image_stream)
return image
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
output = query({
"inputs": "https://hips.hearstapps.com/hmg-prod/images/gettyimages-1229892983-square.jpg",
"parameters": {}
})
output_image = bytes_to_base64(base64_to_bytes(output))
output_image
✨ 主要特性
- 適用於標準二分圖像分割(DIS),在DIS - TR上進行訓練,並在DIS - TEs和DIS - VD上進行驗證。
- 可用於背景去除、掩碼生成、二分圖像分割、偽裝對象檢測、顯著對象檢測等任務。
- 在三個任務(DIS、HRSOD和COD)中達到了SOTA性能。
📦 安裝指南
pip install -qr https://raw.githubusercontent.com/ZhengPeng7/BiRefNet/main/requirements.txt
💻 使用示例
基礎用法
# 加載帶有權重的BiRefNet
from transformers import AutoModelForImageSegmentation
birefnet = AutoModelForImageSegmentation.from_pretrained('ZhengPeng7/BiRefNet_HR-matting', trust_remote_code=True)
高級用法
# 本地使用代碼和權重
import torch
from utils import check_state_dict
birefnet = BiRefNet(bb_pretrained=False)
state_dict = torch.load(PATH_TO_WEIGHT, map_location='cpu')
state_dict = check_state_dict(state_dict)
birefnet.load_state_dict(state_dict)
📚 詳細文檔
性能表現
所有測試均在FP16模式下進行。
數據集 | 方法 | 分辨率 | maxFm | wFmeasure | MAE | Smeasure | meanEm | HCE | maxEm | meanFm | adpEm | adpFm | mBA | maxBIoU | meanBIoU |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TE - AM - 2k | BiRefNet_HR - matting - epoch_135 | 2048x2048 | .974 | .997 | .989 | .002 | .998 | .987 | .988 | .961 | .981 | .000 | .879 | .965 | .893 |
TE - P3M - 500 - NP | BiRefNet_HR - matting - epoch_135 | 2048x2048 | .980 | .996 | .989 | .002 | .997 | .987 | .989 | .880 | .900 | .000 | .853 | .947 | .897 |
TE - AM - 2k | [BiRefNet - matting - epoch_100](https://huggingface.co/ZhengPeng7/BiRefNet - matting) | 1024x1024 | .973 | .996 | .990 | .003 | .997 | .987 | .989 | .987 | .991 | .000 | .846 | .952 | .890 |
TE - P3M - 500 - NP | [BiRefNet - matting - epoch_100](https://huggingface.co/ZhengPeng7/BiRefNet - matting) | 1024x1024 | .979 | .996 | .990 | .003 | .997 | .987 | .989 | .928 | .951 | .000 | .830 | .940 | .891 |
TE - AM - 2k | [BiRefNet - matting - epoch_100](https://huggingface.co/ZhengPeng7/BiRefNet - matting) | 2048x2048 | .971 | .996 | .990 | .003 | .997 | .987 | .988 | .990 | .992 | .000 | .838 | .941 | .891 |
TE - P3M - 500 - NP | [BiRefNet - matting - epoch_100](https://huggingface.co/ZhengPeng7/BiRefNet - matting) | 2048x2048 | .978 | .995 | .990 | .003 | .996 | .987 | .989 | .955 | .971 | .000 | .818 | .931 | .891 |
示例圖片
DIS - Sample_1 | DIS - Sample_2 |
---|---|
相關鏈接
本倉庫是論文“Bilateral Reference for High - Resolution Dichotomous Image Segmentation”(CAAI AIR 2024)的官方實現。
訪問我們的GitHub倉庫:https://github.com/ZhengPeng7/BiRefNet 獲取更多詳細信息 -- 代碼、文檔和模型庫!
在線演示
- Colab上的在線圖像推理: 
- Hugging Face上帶有GUI的在線推理,分辨率可調整: 
- 對給定權重進行推理和評估: 
📄 許可證
本項目採用MIT許可證。
@article{zheng2024birefnet,
title={Bilateral Reference for High-Resolution Dichotomous Image Segmentation},
author={Zheng, Peng and Gao, Dehong and Fan, Deng-Ping and Liu, Li and Laaksonen, Jorma and Ouyang, Wanli and Sebe, Nicu},
journal={CAAI Artificial Intelligence Research},
volume = {3},
pages = {9150038},
year={2024}
}
Clipseg Rd64 Refined
Apache-2.0
CLIPSeg是一種基於文本與圖像提示的圖像分割模型,支持零樣本和單樣本圖像分割任務。
圖像分割
Transformers

C
CIDAS
10.0M
122
RMBG 1.4
其他
BRIA RMBG v1.4 是一款先進的背景移除模型,專為高效分離各類圖像的前景與背景而設計,適用於非商業用途。
圖像分割
Transformers

R
briaai
874.12k
1,771
RMBG 2.0
其他
BRIA AI開發的最新背景移除模型,能有效分離各類圖像的前景與背景,適合大規模商業內容創作場景。
圖像分割
Transformers

R
briaai
703.33k
741
Segformer B2 Clothes
MIT
基於ATR數據集微調的SegFormer模型,用於服裝和人體分割
圖像分割
Transformers

S
mattmdjaga
666.39k
410
Sam Vit Base
Apache-2.0
SAM是一個能夠通過輸入提示(如點或框)生成高質量對象掩碼的視覺模型,支持零樣本分割任務
圖像分割
Transformers 其他

S
facebook
635.09k
137
Birefnet
MIT
BiRefNet是一個用於高分辨率二分圖像分割的深度學習模型,通過雙邊參考網絡實現精確的圖像分割。
圖像分割
Transformers

B
ZhengPeng7
626.54k
365
Segformer B1 Finetuned Ade 512 512
其他
SegFormer是一種基於Transformer的語義分割模型,在ADE20K數據集上進行了微調,適用於圖像分割任務。
圖像分割
Transformers

S
nvidia
560.79k
6
Sam Vit Large
Apache-2.0
SAM是一個能夠通過輸入提示點或邊界框生成高質量物體掩膜的視覺模型,具備零樣本遷移能力。
圖像分割
Transformers 其他

S
facebook
455.43k
28
Face Parsing
基於nvidia/mit-b5微調的語義分割模型,用於面部解析任務
圖像分割
Transformers 英語

F
jonathandinu
398.59k
157
Sam Vit Huge
Apache-2.0
SAM是一個能夠根據輸入提示生成高質量對象掩碼的視覺模型,支持零樣本遷移到新任務
圖像分割
Transformers 其他

S
facebook
324.78k
163
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98