BiRefNet

Мережа двостороннього зіставлення передбачає м'яке alpha matte, що відокремлює об'єкт від тла. LibreYOLO постачає інференс і валідацію завдання matte моделі BiRefNet.

Задачі
matte
Розміри
t, l at 1024 px
Встановлення
pip install libreyolo
Рівень підтримки
Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
Першоджерело
BiRefNet, автори: Nankai University, ліцензія MIT. Стаття, джерело
Ліцензії
Код: MIT, ваги: MIT. Комерційне використання

Встановлення

BiRefNet не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.

bash
pip install libreyolo

Передбачення

Під час першого використання ваги завантажуються з Hugging Face і кешуються локально.

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
Вирізання
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE) # RGBA (H, W, 4) uint8: RGB джерела та matte як альфа-канал.rgba = result.cutout()result.save("subject.png")

Результат matte не містить рамок; result.matte є щільним масивом float32 (H, W) у діапазоні [0, 1], де 1 означає повністю передній план, а 0 повністю тло. На відміну від бінарної маски, м'яке matte зберігає згладжені деталі країв, як-от волосся та хутро. result.cutout() об'єднує початкове зображення з цим альфа-каналом у масив RGBA, а result.save(path) (або save=True у виклику передбачення) записує його безпосередньо до PNG із прозорим тлом. Модель працює на фіксованому початковому полотні 1024x1024; інша роздільна здатність не підтримується, оскільки таблиці відносних позицій бекбона Swin прив'язані до неї, а невідповідність спричиняє їх погану інтерполяцію замість помилки. Типи джерел, потокове передбачення та обробку результатів описано в розділі передбачення.

Варіанти

Опубліковано одну контрольну точку l, модель BiRefNet-general рівня Swin-L і типовий варіант якості початкового проєкту. Код сімейства також підтримує легкий рівень Swin-T t, але його перетворення LibreYOLO ще не опубліковано.

Валідація

val() повідомляє дві метрики для парної папки зображень і matte. Обидві належать до діапазону [0, 1] і не залежать від роздільної здатності: MAE є середньою абсолютною похибкою відносно еталонної альфи (менше значення є кращим), а S-measure (Fan et al., ICCV 2017) є структурною подібністю, що враховує збереження форми об'єкта й отворів, які не помічає сама попіксельна MAE (більше значення є кращим). Валідація викликає власний метод predict моделі, тому використовує точну попередню обробку сімейства.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt") # Замість YAML датасету також працює каталог із images/ і автоматично# виявленим каталогом matte (mattes/, matte/, gt/, masks/, mask/ або alpha/).metrics = model.val(data="my-matte-dataset/") print(metrics["metrics/MAE"])print(metrics["metrics/Smeasure"])

Валідація призначена лише для інференсу; донавчання є задокументованим наступним кроком, а не наявною функцією (точне обмеження роздільної здатності, яке успадкує будь-який майбутній тренер, див. у розділі «Передбачення»).

Експорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
mattematte to ONNX: підтримуєтьсяmatte to TorchScript: підтримуєтьсяmatte to ExecuTorch: не підтримуєтьсяmatte to TensorRT: не підтримуєтьсяmatte to OpenVINO: не підтримуєтьсяmatte to Paddle: не підтримуєтьсяmatte to MNN: не підтримуєтьсяmatte to RKNN: не підтримуєтьсяmatte to ncnn: не підтримуєтьсяmatte to TFLite: не підтримуєтьсяmatte to CoreML: не підтримуєтьсяmatte to Core AI: не підтримується

Експортований артефакт знову завантажується через LibreYOLO() відповідно до суфікса файлу, тому файл .onnx поводиться як контрольна точка й повертає той самий об'єкт Results. Перевіреним шляхом є TorchScript; перетворення ONNX виконується, але ще не пройшло той самий рівень перевірки відповідності. У розділі експорту наведено аргументи, які приймає кожен формат, і додаткові параметри деяких форматів.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt")model.export(format="onnx")
CLI
libreyolo export model=LibreBiRefNetl-matte.pt format=onnx
Використання експортованого файлу
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика маршрутизує за суфіксом файлу, тому експортований артефакт# завантажується як будь-яка контрольна точка й повертає той самий об'єкт Results.model = LibreYOLO("LibreBiRefNetl-matte.onnx")result = model(SAMPLE_IMAGE) print(result.matte.array.shape)

Контрольні точки

Усі опубліковані файли ваг цього сімейства.

ФайлВхід (пікс.)Ліцензія ваг
matte
LibreBiRefNetl-matte.ptmit

Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.

Ліцензування

Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.

Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.

Оригінальна робота
BiRefNet, Nankai University
Ліцензія першоджерела
MIT
Джерело першоджерела
github.com/ZhengPeng7/BiRefNet
Код LibreYOLO
MIT
Ваги
MIT, повторно опубліковано на huggingface.co/LibreYOLO
Тлумачення
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.

Цитування

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

Скопійовано з блоку цитування авторів на сторінці github.com/ZhengPeng7/BiRefNet#citation.

Перевірено з LibreYOLO v1.5.0. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.