Markdownで表示

CenterNet

CenterNetは物体をバウンディングボックスの中心点としてモデル化し、その他のすべての属性をヒートマップのピークから回帰します。そのため、アンカーもnon-maximum suppression処理も必要ありません。LibreYOLOは推論専用の検出器として提供します。

タスク
detection
サイズ
resdcn18, dla34 at 512 px
インストール
pip install libreyolo
サポートティア
推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
アップストリーム
UT Austin and UC BerkeleyのCenterNet、MIT。論文ソース
ライセンス
コード:MIT、重み:MIT。商用利用

インストール

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

bash
pip install libreyolo

推論

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

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

返されるResultsオブジェクトはすべてのファミリーで共通のため、別の検出器への切り替えは 1行の変更だけで済みます。confmax_detは順位付けされたヒートマップのピークを絞り込みます。 iouはAPIの一貫性のため受け付けますが、効果はありません。CenterNetのtop-kピークのデコードには ボックスIoUによる抑制処理が不要なためです。入力ソース、ストリーミング、結果の処理については 推論を参照してください。

バリアント

バックボーンは2種類です。resdcn18はResNet-18 trunkとdeformable-convolutionによる アップサンプリングを組み合わせ、dla34はDLA-34 trunkと反復的なdeep-aggregation アップサンプリングを組み合わせます。どちらも同じ3個の密なヘッド(ヒートマップ、幅・高さ、 offset)と同じ入力キャンバスを使います。

検証

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

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

ONNXエクスポートにはopset 16以降が必要です。両方のバックボーンにあるdeformable-convolutionの アップサンプリング段階は、opset 16で導入されたONNXのGridSample演算子へ変換されます。 古いopsetを要求すると、トレース開始前に例外が発生します。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # ONNXエクスポートにはopset 16以降が必要。deformable-convolutionの# アップサンプリング段階はopset 16で導入されたGridSampleへ変換model.export(format="onnx", opset=18)model.export(format="tensorrt")
CLI
libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18
エクスポートしたファイルを使う
from libreyolo import LibreYOLO # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

チェックポイント

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

ファイル入力(px)重みのライセンス
Detection
LibreCenterNetresdcn18.pt512mit
LibreCenterNetdla34.pt512mit

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

ライセンス

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

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

原著作物
CenterNet, UT Austin and UC Berkeley
アップストリームのライセンス
MIT
アップストリームのソース
github.com/xingyizhou/CenterNet
LibreYOLOのコード
MIT
重み
MIT、huggingface.co/LibreYOLOで再公開
解釈
MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the copyright notice and license text with any copy you redistribute, and it places no obligation on your own application code. The official ResDCN-18 and DLA-34 COCO checkpoints were published by the MIT-licensed CenterNet project but carry no separate per-checkpoint license file; LibreYOLO's mirror states MIT as implied by the releasing project rather than a publisher-confirmed, checkpoint-specific grant.

ResDCN-18グラフではMicrosoftのMITライセンス版human-pose-estimation.pytorchも クレジットし、DLA-34グラフではFisher YuによるBSD-3-ClauseのDLA実装をクレジットします。 LibreYOLOはアップストリームプロジェクトが使った元のDCNv2拡張機能を同梱しません。ネイティブ 実行では代わりにtorchvisionのBSD-3-Clause版deform_conv2dを使い、エクスポート専用の 移植可能な実装はLibreYOLO向けに別途作成されています。

引用

@inproceedings{zhou2019objects,
  title={Objects as Points},
  author={Zhou, Xingyi and Wang, Dequan and Kr{\"a}henb{\"u}hl, Philipp},
  booktitle={arXiv preprint arXiv:1904.07850},
  year={2019}
}

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

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