BiRefNet
被写体を背景から分離するソフトアルファマットを予測するbilateral-reference networkです。LibreYOLOはBiRefNetのマットタスク向けに推論と検証を提供します。
- タスク
- matte
- サイズ
- t, l at 1024 px
- インストール
pip install libreyolo- サポートティア
- 推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
- ライセンス
- コード:MIT、重み:MIT。商用利用
インストール
BiRefNetに任意の追加パッケージは必要ありません。インポートするものはすべて基本 インストールに含まれます。
pip install libreyolo推論
重みは初回使用時にHugging Faceからダウンロードされ、ローカルにキャッシュされます。
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)libreyolo predict model=LibreBiRefNetl-matte.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE) # RGBA (H, W, 4) uint8。元画像のRGBとアルファチャンネルとしてのマットrgba = result.cutout()result.save("subject.png")マット結果にボックスはありません。result.matteは[0, 1]範囲の密な(H, W)形状の
float32配列で、1は完全な前景、0は完全な背景です。ソフトマットはバイナリマスクと異なり、
髪や毛皮などのアンチエイリアスされたエッジの細部を保ちます。result.cutout()は元画像と
そのアルファチャンネルを合成してRGBA配列を作り、result.save(path)(または推論呼び出しの
save=True)は背景が透明なPNGへ直接書き出します。モデルはネイティブの固定1024×1024
キャンバスで動作し、ほかの解像度には対応しません。Swinバックボーンの相対位置テーブルが
この解像度に結び付いており、不一致があるとエラーを発生させずに不適切な補間をするためです。
入力ソース、ストリーミング、結果の処理については推論を参照してください。
バリアント
公開チェックポイントは1種類です。lはSwin-L層のBiRefNet-generalモデルで、アップストリームの
品質重視デフォルトです。このファミリーのコードはSwin-T lite層のtにも対応しますが、
LibreYOLO変換版はまだ公開されていません。
検証
val()は対応する画像とマットのフォルダーに対して2つの指標を報告します。どちらも[0, 1]
範囲で、解像度に依存しません。MAEは正解アルファに対する平均絶対誤差(低いほど良い)です。
S-measure(Fan et al.、ICCV 2017)は、ピクセルMAEだけでは捉えられない被写体の形状と穴の保持を
評価する構造的類似度(高いほど良い)です。検証はモデル自身のpredictを実行するため、
このファミリー固有の正確な前処理を使います。
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt") # images/と自動検出されるマットディレクトリ# (mattes/, matte/, gt/, masks/, mask/またはalpha/)を含むディレクトリも# データセットYAMLの代わりに使用可能metrics = model.val(data="my-matte-dataset/") print(metrics["metrics/MAE"])print(metrics["metrics/Smeasure"])検証は推論専用です。ファインチューニングは提供済み機能ではなく、今後の対応として文書化されています。 将来のtrainerが継承する正確な解像度制約については「推論」を参照してください。
エクスポート
| タスク | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| matte | matte 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変換は実行できますが、同じ同等性基準をまだ満たしていません。
エクスポートには、各形式が受け付ける引数と、一部の形式で必要になる追加パッケージの一覧があります。
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt")model.export(format="onnx")libreyolo export model=LibreBiRefNetl-matte.pt format=onnxfrom libreyolo import LibreYOLO, SAMPLE_IMAGE # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreBiRefNetl-matte.onnx")result = model(SAMPLE_IMAGE) print(result.matte.array.shape)チェックポイント
このファミリーで公開されているすべての重みファイルです。
| ファイル | 入力(px) | 重みのライセンス |
|---|---|---|
| matte | ||
| LibreBiRefNetl-matte.pt | mit | |
上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。
ライセンス
ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。
これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。
- 原著作物
- 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の引用ブロックからコピーしています。