YOLOv3
YOLOv3はYOLO系列にmulti-scale predictionと独立したlogistic classifierを追加したDarknet-53検出器です。LibreYOLOはtiny、base、SPPサイズの固定済み推論専用モデルとして提供します。
- タスク
- detection
- サイズ
- t, b, spp at 416 to 608 px
- インストール
pip install libreyolo- サポートティア
- ミュージアム、v以降。凍結された展示です。バグ修正のみ行います。
- ライセンス
- コード:MIT、重み:Public domain (Darknet "YOLO LICENSE")。商用利用
インストール
YOLOv3には基本パッケージ以外の追加パッケージは必要ありません。
pip install libreyolo推論
このファミリーは推論専用です。train()はNotImplementedErrorを発生させるため、このページに
「学習」セクションはありません。推論、検証、エクスポートにはすべて対応します。重みは初回使用時に
Hugging Faceからダウンロードされ、ローカルにキャッシュされます。
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO3b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO3b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # SPPバリアントは検出ヘッドの前にspatial pyramid poolingブロックを追加し# 独自のネイティブ入力サイズで実行model = LibreYOLO("LibreYOLO3spp.pt")result = model(SAMPLE_IMAGE)返されるResultsオブジェクトはすべてのファミリーで共通のため、別の検出器への切り替えは
1行の変更だけで済みます。confは信頼度のしきい値、iouはNMSのしきい値で絞り込みます。
3つのヘッドからのボックスを統合する前に、スケールごとに適用されます。入力ソース、
ストリーミング、結果の処理については推論を参照してください。
検証
val()は、検証に使う形式の任意のデータセットに対して測定した適合率、再現率、mAP 50、
mAP 50-95を含むmetrics/キーの辞書を返します。
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO3b.pt data=my-dataset.yamlエクスポート
| タスク | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection 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を返します。
LibreYOLOをインストールせずにランタイムからグラフを直接実行する方法にも対応しますが、その場合は
前処理と後処理を自分で実装します。
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO3b.pt format=onnxlibreyolo export model=LibreYOLO3b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreYOLO3b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)チェックポイント
このファミリーで公開されているすべての重みファイルです。
| ファイル | 入力(px) | 重みのライセンス |
|---|---|---|
| Detection | ||
| LibreYOLO3t.pt | 416 | other |
| LibreYOLO3b.pt | 416 | other |
| LibreYOLO3spp.pt | 608 | other |
上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。
ライセンス
ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。
これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。
- 原著作物
- YOLOv3, Joseph Redmon
- アップストリームのライセンス
- Public domain (Darknet "YOLO LICENSE")
- アップストリームのソース
- github.com/pjreddie/darknet
- LibreYOLOのコード
- MIT
- 重み
- Public domain (Darknet "YOLO LICENSE")、huggingface.co/LibreYOLOで再公開
- 解釈
- Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT.