LW-DETR

BaiduがYOLO検出器のリアルタイム代替として位置付けたplain-ViT detection transformerです。LibreYOLOは物体検出向けに5サイズを推論専用で提供します。

タスク
detection
サイズ
t, s, m, l, x at 640 px
インストール
pip install libreyolo
サポートティア
推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
アップストリーム
BaiduのLW-DETR、Apache-2.0。論文ソース
ライセンス
コード:Apache-2.0、重み:Apache-2.0。商用利用

インストール

LW-DETRに任意の追加パッケージは必要ありません。インポートするものはすべて基本インストールに含まれます。

bash
pip install libreyolo

推論

重みは初回使用時にHugging Faceからダウンロードされ、ローカルにキャッシュされます。

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreLWDETRt.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreLWDETRt.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

返されるResultsオブジェクトはすべてのファミリーで共通のため、別の検出器への切り替えは1行の変更だけで済みます。confmax_detはqueryの選択を絞り込みます。iouはAPIの一貫性のため受け付けますが、デコーダーがNMS処理のないset predictorであるため効果はありません。入力ソース、ストリーミング、結果の処理については推論を参照してください。

LibreYOLOのLW-DETRは推論専用です。アップストリームは複数のquery groupにわたるGroup-DETRのone-to-many supervisionとIoU-aware分類損失で学習しますが、そのレシピはここに接続されていません。そのためtrain()NotImplementedErrorを発生させます。

バリアント

サイズは5種類で、すべてplain-ViTエンコーダー、multi-scale projector、deformable DETRデコーダーを共有し、同じ入力解像度で動作します。最小の2種類はエンコーダーの幅を共有してブロック深度が異なり、次の2種類はより幅広いエンコーダーを共有してデコーダーへ入力するprojector level数が異なります。最大サイズでは最も幅広いエンコーダーを使います。

検証

val()は、学習に使った形式の任意のデータセットに対して測定した適合率、再現率、mAP 50、mAP 50-95を含むmetrics/キーの辞書を返します。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreLWDETRt.pt") # val()はオブジェクトではなく通常のdictを返すmetrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])
CLI
libreyolo val model=LibreLWDETRt.pt data=my-dataset.yaml

エクスポート

タスクONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX:対応Detection to TorchScript:対応Detection to ExecuTorch:対応Detection to TensorRT:対応Detection to OpenVINO:対応Detection to Paddle:非対応Detection to MNN:非対応Detection to RKNN:非対応Detection to ncnn:非対応Detection to TFLite:非対応Detection to CoreML:非対応Detection to Core AI:非対応

エクスポートした成果物はファイル接尾辞に基づいてLibreYOLO()から再読み込みされます。そのため、.onnxまたは.engineファイルはチェックポイントと同様に動作し、同じResultsを返します。エクスポートには各形式が受け付ける引数の一覧があります。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreLWDETRt.pt")model.export(format="onnx", imgsz=640)model.export(format="tensorrt", imgsz=640, half=True)
CLI
libreyolo export model=LibreLWDETRt.pt format=onnx imgsz=640libreyolo export model=LibreLWDETRt.pt format=tensorrt imgsz=640 half=True
エクスポートしたファイルを使う
from libreyolo import LibreYOLO, SAMPLE_IMAGE # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreLWDETRt.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

チェックポイント

このファミリーで公開されているすべての重みファイルです。

ファイル入力(px)重みのライセンス
Detection
LibreLWDETRt.pt640apache-2.0
LibreLWDETRs.pt640apache-2.0
LibreLWDETRm.pt640apache-2.0
LibreLWDETRl.pt640apache-2.0
LibreLWDETRx.pt640apache-2.0

上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。

ライセンス

ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。

これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。

原著作物
LW-DETR, Baidu
アップストリームのライセンス
Apache-2.0
アップストリームのソース
github.com/Atten4Vis/LW-DETR
LibreYOLOのコード
MIT
重み
Apache-2.0、huggingface.co/LibreYOLOで再公開
解釈
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. The published checkpoints are converted from the upstream Apache-2.0 Hugging Face release (xbsu/LW-DETR) and rehosted under the same license.

引用

@article{chen2024lw,
    title={LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection},
    author={Chen, Qiang and Su, Xiangbo and Zhang, Xinyu and Wang, Jian and Chen, Jiahui and Shen, Yunpeng and Han, Chuchu and Chen, Ziliang and Xu, Weixiang and Li, Fanrong and others},
    journal={arXiv preprint arXiv:2406.03459},
    year={2024}
}

著者によるgithub.com/Atten4Vis/LW-DETR#10-citationの引用ブロックからコピーしています。

LibreYOLO v1.5.0で検証済みです。このページのサポート表、チェックポイント、ベンチマーク値は手作業で記述したものではなく、リリース済みライブラリと公開済みの重みから生成されています。