BiRefNet

Một mạng bilateral-reference dự đoán alpha matte mềm để tách chủ thể khỏi nền. LibreYOLO cung cấp suy luận (inference) và kiểm định cho tác vụ matte của BiRefNet.

Tác vụ
matte
Kích thước
t, l at 1024 px
Cài đặt
pip install libreyolo
Bậc hỗ trợ
Chỉ suy luận, từ v. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
Thượng nguồn
BiRefNet của Nankai University, MIT. Bài báo, mã nguồn
Giấy phép
Mã nguồn MIT, trọng số MIT. Sử dụng thương mại

Cài đặt

BiRefNet không cần extra tùy chọn nào. Mọi thứ nó import đều nằm trong bản cài đặt cơ bản.

bash
pip install libreyolo

Dự đoán

Trọng số được tải về từ Hugging Face ở lần chạy đầu tiên và được lưu cache cục bộ.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE, save=True) matte = result.matteprint(matte.array.shape, matte.array.dtype)
CLI
libreyolo predict model=LibreBiRefNetl-matte.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Cutout
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE) # RGBA (H, W, 4) uint8: RGB của ảnh gốc cộng thêm matte làm kênh alphargba = result.cutout()result.save("subject.png")

Kết quả matte không mang theo box nào; result.matte là một mảng float32 dày đặc dạng (H, W) với giá trị trong [0, 1], 1 là hoàn toàn foreground và 0 là hoàn toàn background. Khác với mặt nạ (mask) nhị phân, matte mềm giữ được chi tiết viền đã khử răng cưa như tóc và lông. result.cutout() ghép ảnh gốc với kênh alpha đó thành một mảng RGBA, còn result.save(path) (hoặc save=True trong lời gọi predict) ghi thẳng ra một tệp PNG nền trong suốt. Mô hình chạy trên canvas gốc cố định 1024x1024; độ phân giải khác không được hỗ trợ, vì các bảng vị trí tương đối của backbone Swin gắn chặt với kích thước đó, và khi không khớp thì chúng bị nội suy sai lệch thay vì báo lỗi. Xem dự đoán để biết về nguồn đầu vào, streaming và cách xử lý kết quả.

Các biến thể

Một checkpoint được công bố, l, là mô hình BiRefNet-general ở tier Swin-L và cũng là mặc định thiên về chất lượng ở upstream. Mã nguồn của family này cũng hỗ trợ tier lite Swin-T, t, nhưng chưa có bản chuyển đổi LibreYOLO nào cho nó được công bố.

Kiểm định

val() báo cáo hai chỉ số trên một thư mục chứa các cặp ảnh/matte, cả hai đều nằm trong [0, 1] và không phụ thuộc độ phân giải: MAE, là mean absolute error so với alpha ground truth (càng thấp càng tốt), và S-measure (Fan và cộng sự, ICCV 2017), một độ tương đồng cấu trúc ghi nhận việc giữ được hình dáng và các lỗ thủng của chủ thể, thứ mà chỉ riêng MAE theo pixel bỏ sót (càng cao càng tốt). Quá trình kiểm định chạy chính predict của mô hình, nên nó dùng đúng phần tiền xử lý của family.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt") # Một thư mục chứa images/ và một thư mục matte được tự động phát hiện# (mattes/, matte/, gt/, masks/, mask/ hoặc alpha/) cũng dùng được thay# cho một YAML datasetmetrics = model.val(data="my-matte-dataset/") print(metrics["metrics/MAE"])print(metrics["metrics/Smeasure"])

Kiểm định chỉ thực hiện inference; tinh chỉnh (fine-tuning) là hướng tiếp theo đã được ghi lại chứ chưa phải một tính năng có sẵn (xem Dự đoán để biết ràng buộc độ phân giải chính xác mà bất kỳ trainer nào trong tương lai cũng sẽ kế thừa).

Xuất mô hình

Tác vụONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
mattematte to ONNX: được hỗ trợmatte to TorchScript: được hỗ trợmatte to ExecuTorch: không được hỗ trợmatte to TensorRT: không được hỗ trợmatte to OpenVINO: không được hỗ trợmatte to Paddle: không được hỗ trợmatte to MNN: không được hỗ trợmatte to RKNN: không được hỗ trợmatte to ncnn: không được hỗ trợmatte to TFLite: không được hỗ trợmatte to CoreML: không được hỗ trợmatte to Core AI: không được hỗ trợ

Một artifact đã xuất được nạp lại qua LibreYOLO() dựa trên phần mở rộng tệp, nên một tệp .onnx hoạt động như một checkpoint và trả về cùng Results. TorchScript là đường đi đã được kiểm chứng; chuyển đổi ONNX chạy được nhưng chưa đạt cùng mức chuẩn về parity. Xuất mô hình liệt kê các tham số mà mọi format đều nhận và những tham số bổ sung mà một vài format thêm vào.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt")model.export(format="onnx")
CLI
libreyolo export model=LibreBiRefNetl-matte.pt format=onnx
Dùng tệp đã xuất
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory định tuyến theo phần mở rộng tệp, nên một artifact đã xuất# được nạp như mọi checkpoint và trả về cùng một đối tượng Resultsmodel = LibreYOLO("LibreBiRefNetl-matte.onnx")result = model(SAMPLE_IMAGE) print(result.matte.array.shape)

Checkpoint

Mọi tệp trọng số đã công bố cho family này.

TệpĐầu vào (px)Giấy phép trọng số
matte
LibreBiRefNetl-matte.ptmit

Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.

Giấy phép

Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.

Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.

Công trình gốc
BiRefNet, Nankai University
Giấy phép thượng nguồn
MIT
Nguồn thượng nguồn
github.com/ZhengPeng7/BiRefNet
Mã nguồn LibreYOLO
MIT
Trọng số
MIT, được phát hành lại tại huggingface.co/LibreYOLO
Diễn giải
MIT is a permissive license, so these weights can be used in commercial and closed-source products. The one standing obligation is to keep the license text and copyright notice with any copy you redistribute. It places no condition on your own application code. LibreYOLO's checkpoint is a format conversion of the official pretrained BiRefNet-general weights (the Swin-L, quality-default tier), with the learned parameters unchanged; fine-tuning is not wired into this library in v1, so there is no LibreYOLO-trained variant to license separately.

Trích dẫn

@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}
}

Được sao chép từ khối trích dẫn của tác giả tại github.com/ZhengPeng7/BiRefNet#citation.

Đã kiểm chứng với LibreYOLO v1.5.0. Các bảng hỗ trợ, checkpoint và số liệu benchmark trên trang này được tạo từ thư viện đã phát hành và trọng số đã công bố, không phải viết thủ công.