SSD

SSD(Single Shot MultiBox Detector)は、別の領域提案段階を使わず、密なデフォルトボックスのグリッドから1回の順伝播ですべてのボックスとクラススコアを予測します。LibreYOLOはVGG16をバックボーンとするSSD300チェックポイントを推論専用検出器として提供します。

タスク
detection
サイズ
300 at 300 px
インストール
pip install libreyolo
サポートティア
推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
アップストリーム
UNC Chapel Hill, Zoox, Google and University of MichiganのSSD、BSD-3-Clause。論文ソース
ライセンス
コード:BSD-3-Clause、重み:BSD-3-Clause。商用利用

インストール

SSDにオプションの追加パッケージは不要です。インポートするものはすべて基本インストールに含まれます。

bash
pip install libreyolo

推論

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

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

返される Results オブジェクトはすべてのファミリーで共通のため、別の検出器への置き換えは1行の変更で済みます。SSDはクラスごとのスコアを使ってデフォルトボックスのグリッドをデコードし、NMSを実行します。そのため、このライブラリのクエリベース検出器とは異なり、confioumax_det はすべて実際に効果を持ちます。ソース、ストリーミング、結果の処理については、推論を参照してください。

バリアント

SSDが提供するチェックポイントは1つです。固定されたネイティブキャンバスを持ち、VGG16をバックボーンとするSSD300ネットワークです。このファミリーにはサイズやスケールの選択肢がなく、推論、検証、エクスポートはすべて同じ1つのグラフを使用します。

重みファイルは LibreSSD300.pt で、ファミリーの接頭辞に唯一のサイズキー "300" が続きます。背後のクラスは LibreSSD なので、直接構築する場合はファイル名に基づくクラス名ではなく LibreSSD(size="300") を使用します。

検証

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

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreSSD300.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:非対応

SSDはONNXだけにエクスポートできます。その他の形式は現在、このファミリーで除外されています。エクスポートでは常にチェックポイント固有のキャンバスを使用し、グラフはNMSを統合した出力ではなくSSDの未処理の結合ヘッドを公開します。そのため、エクスポート時に nms=True は受け付けません。LibreYOLO独自のバックエンドは、グラフを再度読み込んだ後にデコードと抑制を実行します。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt") # imgszは意図的に省略 SSD300はチェックポイント固有のキャンバスで# トレースされ他の値ではエクスポート開始前にエラーmodel.export(format="onnx")
CLI
libreyolo export model=LibreSSD300.pt format=onnx
エクスポートしたファイルを使う
from libreyolo import LibreYOLO # ファクトリーはファイル接尾辞で振り分けるためエクスポート済み成果物も# チェックポイントと同様に読み込まれて同じResultsオブジェクトを返すmodel = LibreYOLO("LibreSSD300.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

チェックポイント

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

ファイル入力(px)重みのライセンス
Detection
LibreSSD300.pt300bsd-3-clause

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

ライセンス

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

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

原著作物
SSD, UNC Chapel Hill, Zoox, Google and University of Michigan
アップストリームのライセンス
BSD-3-Clause
アップストリームのソース
github.com/pytorch/vision
LibreYOLOのコード
MIT
重み
BSD-3-Clause、huggingface.co/LibreYOLOで再公開
解釈
BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its copyright notice and disclaimer with any copy you redistribute, and it places no obligation on your own application code. The official SSD300 COCO checkpoint carries no separate, checkpoint-specific license: LibreYOLO's mirror applies BSD-3-Clause on an explicitly disclosed implied basis, the same basis torchvision states for its own pretrained SSD300 weights. The VGG16 backbone the graph is built on traces back to Oxford's fully convolutional reduced VGGNet, released under CC BY 4.0 by Karen Simonyan and Andrew Zisserman.

LibreYOLOのSSD300コードは、論文著者独自のCaffeリリースから移植したものではありません。torchvisionのBSD-3-Clause SSD300実装を基にしており、上でアップストリームソースとしてリンクされているのもそのリポジトリです。バックボーンのVGG16の重みは、Karen SimonyanとAndrew ZissermanがCC BY 4.0で公開したOxfordの完全畳み込み型reduced VGGNetまでさかのぼります。

引用

@inproceedings{liu2016ssd,
  title = {{SSD}: Single Shot MultiBox Detector},
  author = {Liu, Wei and Anguelov, Dragomir and Erhan, Dumitru and Szegedy, Christian and Reed, Scott and Fu, Cheng-Yang and Berg, Alexander C.},
  booktitle = {ECCV},
  year = {2016}
}

著者によるgithub.com/weiliu89/caffe/tree/ssd#citing-ssdの引用ブロックからコピーしています。

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