OMDet-Turbo
OMDet-TurboはOm AI Labが開発したリアルタイムのオープンボキャブラリ物体検出器で、クラス埋め込みベクトルを言語タスクプロンプトから分離します。LibreYOLOはオープンボキャブラリ検出器層の推論専用ファミリーとしてラップします。
- タスク
- detection
- サイズ
- t at 640 px
- インストール
pip install libreyolo- サポートティア
- 姉妹ティア、v以降。独自のファクトリと契約を持つ、独立した製品インターフェースです。
- ライセンス
- コード:MIT、重み:Apache-2.0。商用利用
インストール
OMDet-TurboはLibreYOLOのオープンボキャブラリ検出器層から読み込まれます。この層には
openvocab追加パッケージが必要です。
pip install "libreyolo[openvocab]"この追加パッケージでは、この層が呼び出すHugging Faceライブラリのtransformersとtimmが
インストールされます。OMDet-TurboのSwinバックボーンはtransformersのTimmBackbone
ラッパーから読み込まれます。
推論
OMDet-TurboはLibreYOLOがLibreYOLO()から読み込むチェックポイントではありません。同系列の
LibreOpenVocabファクトリから読み込まれ、初回使用時にHugging Faceのスナップショットを
ダウンロードしてweights/へキャッシュします。
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.3)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["traffic light", "bicycle"]) # OMDet-Turboはこの層でiou=を反映する唯一のファミリー# 独自の後処理が抑制のしきい値を引数として受け取り# iou=未設定時のデフォルトは0.5result = model.predict(SAMPLE_IMAGE, conf=0.3, iou=0.7)print(result.names, len(result))set_classes()は維持されるテキスト語彙を設定します。再度呼び出すとリスト全体を置き換え、
省略するとデフォルトのCOCO-80ラベルを維持します。空の結果もエラーではなく有効な結果です。
Grounding DINOと異なり、OMDet-Turboはクラス埋め込みベクトルを言語タスクプロンプトから分離します。
そのため、transformersの後処理が返すラベルは、フレーズの曖昧性を解消する処理なしで、問い合わせた
クラスリストへ直接対応します。
OMDet-Turboにはtext-tokenしきい値がなく、検出を絞り込むのはconfだけです。
text_thresholdを渡すと例外が発生します。この層で
post_process_grounded_object_detection内の独自non-maximum suppressionを実行する
唯一のファミリーであるため、iouは警告の対象にならず反映されます。imgszとaugment=Trueは
完全に拒否されます。transformersのprocessorがリサイズを担当し、test-time augmentationは
この層の対象外であるためです。1枚の画像に対するpredict()はリストではなく1個のResultsを
返します。複数の結果を得るには、ディレクトリ、画像のリスト、または動画ソースとstream=Trueを
渡します。このファミリーにCLI経路はありません。libreyolo predictはLibreYOLO()から.pt
チェックポイントだけを読み込むため、LibreOpenVocabファミリーはPythonから実行します。
入力ソースの種類とストリーミングについては推論を参照してください。
バリアント
チェックポイントはこの層で唯一のサイズtの1種類です。固定されたアップストリームrevisionの
omlab/omdet-turbo-swin-tiny-hfを、transformersのOmDetTurboForObjectDetectionを
通じてミラーします。ミラーした重みファイルは、そのアップストリームスナップショットと
バイト単位で同一です。このファミリーでは精度またはレイテンシの数値がまだ公開されていません。
学習、データセット検証、エクスポートはすべてこの層の対象外です。train()、val()、
export()は無条件にNotImplementedErrorを発生させます。これは公開済みチェックポイントの
推論専用ラッパーです。
チェックポイント
このファミリーで公開されているすべての重みファイルです。
| ファイル | 入力(px) | 重みのライセンス |
|---|---|---|
| Detection | ||
| LibreOMDetTurbot.pt | 640 | apache-2.0 |
上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。
ライセンス
ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。
これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。
- 原著作物
- OMDet-Turbo, Om AI Lab
- アップストリームのライセンス
- Apache-2.0
- アップストリームのソース
- github.com/om-ai-lab/OmDet
- LibreYOLOのコード
- MIT
- 重み
- Apache-2.0、huggingface.co/LibreYOLOで再公開
- 解釈
- Apache-2.0 is a permissive license, so this checkpoint can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no OMDet-Turbo model source of its own: LibreOMDetTurbo calls the Apache-2.0 `transformers` implementation, `OmDetTurboForObjectDetection`, directly. The mirrored checkpoint is a byte-identical copy of `omlab/omdet-turbo-swin-tiny-hf` at a pinned upstream revision, verified against a recorded SHA-256 checksum before it is used.
引用
@article{zhao2024real,
title={Real-time Transformer-based Open-Vocabulary Detection with Efficient Fusion Head},
author={Zhao, Tiancheng and Liu, Peng and He, Xuan and Zhang, Lu and Lee, Kyusong},
journal={arXiv preprint arXiv:2403.06892},
year={2024}
}著者によるgithub.com/om-ai-lab/OmDet#citationの引用ブロックからコピーしています。