libreyolo predict
読み込んだモデルを1つのソースに対して実行し、推論結果を出力します。ソースは画像、ディレクトリ、動画、URL、ライブストリームのいずれかであり、モデルはチェックポイントでもエクスポートした成果物でもかまいません。
- コマンド
libreyolo predict- 必須
source- 出力
- 推論結果をstdoutに出力。save=trueのときはアノテーション済みファイルをruns/detect/predictの下に出力
書式
libreyolo predict source=<path|url|index> [model=<name|path>] [key=value ...]引数はkey=valueのペアです。同じコマンドはPOSIX形式も受け付けるため、
conf=0.4と--conf 0.4は互換で、save=trueと書いた真偽値は--saveに
なります。アンダースコアを含む名前はどちらの綴りでも受け付けます:
max_det=50と--max-det 50は同じオプションに届きます。
libreyolo detect predict ...も受け付けられ、動作は同一です。タスク名は解析
前に取り除かれます。
引数
| 引数 | デフォルト | 意味 |
|---|---|---|
source | 画像のパス、ディレクトリ、またはURL。必須 | |
model | yolox-s | モデル名またはパス |
conf | 0.25 | 信頼度のしきい値 |
iou | 0.45 | NMSのIoUしきい値 |
imgsz | 入力画像サイズ:640(正方形)または480x640(高さ×幅)。未指定のときはモデル自身の入力サイズ | |
classes | クラスIDによる絞り込み。例:[0,2,5]。整数1つの指定も可 | |
max_det | 300 | 画像1枚あたりの最大検出数 |
half | false | FP16推論(CUDAのみ、モデル側の対応が必要) |
save | false | アノテーション済み画像の保存 |
batch | 1 | ディレクトリをソースにしたときの1回の順伝播あたりの画像数。1より大きいと、対応するモデルでは実際のバッチ推論を実行 |
stream | false | 結果を逐次生成。Webカメラとライブストリームでは自動的に有効 |
stream_buffer | false | 最新の1フレームだけを保持するのではなく、ライブの全フレームをバッファリング |
vid_stride | 1 | 動画またはライブのNフレームごとに1フレームを処理 |
show | false | 動画とライブの結果を表示。qで停止 |
tiling | false | 大きな画像に対するタイル分割推論 |
overlap_ratio | 0.2 | タイルの重なり比率 |
output_path | 出力先の明示指定。指定しない場合、save=trueのときはproject/name | |
color_format | auto | 入力の色:auto、rgb、bgr |
output_file_format | 出力形式:jpg、png、webp | |
device | auto | デバイス:0、cpu、mps、auto |
face_detector | 顔検出モデル(パスまたはCLI名)。視線推定モデルでは必須 | |
gallery | 顔を照合するためのlibreyolo enroll製の顔ギャラリー.npz。顔の埋め込みベクトルモデル専用 | |
gallery_threshold | 0.4 | ギャラリー内の人物と一致とみなすコサインしきい値 |
project | runs/detect | 出力ディレクトリのルート |
name | predict | 実験名 |
exist_ok | false | 既存の出力ディレクトリの再利用 |
json | false | stdoutへのJSON出力 |
quiet | false | stderrの抑制 |
verbose | false | stderrへの詳細出力 |
help_json | false | コマンドのスキーマをJSONで出力して終了 |
使用例
libreyolo predict model=LibreYOLO9s.pt \ source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpglibreyolo predict model=LibreYOLO9s.pt save=true \ project=runs/detect name=parkour exist_ok=true \ source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg# チェックポイント同梱のCOCOクラスリストではクラス0がpersonlibreyolo predict model=LibreYOLO9s.pt classes="[0]" conf=0.4 max_det=50 \ json=true quiet=true \ source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg補足
エクスポートした成果物はチェックポイントと同じ方法で読み込まれるため、
model=weights/LibreYOLO9s.onnxとmodel=weights/LibreYOLO9s.engineはどちらも
modelの有効な値です。これらのランタイムでは、3つのオプションが無視されるの
ではなく拒否されます:ランタイムのバックエンドがtiling、overlap_ratio、
output_file_formatを扱えない場合、config_unsupportedで終了します。
halfは逆です。エクスポートしたランタイムはこれを受け取ってFP16で実行し、
ネイティブのPyTorch推論は無視したことをログに記録してFP32のまま続行します。
視線推定モデルは2段構成で自前の検出器を持たないため、face_detectorの指定が
必須です。galleryはタスクがembedのモデルにだけ適用され、それ以外に渡すと
config_unsupportedで終了します。
stdoutには結果だけが流れ、進捗、警告、エラーはstderrに送られます。json=true
は1回の実行につき1つのJSONオブジェクトを、ストリーミング時はフレームごとに
1つを出力し、いずれにもschema_versionが含まれます。quiet=trueはstderrを
黙らせます。両方を併用すると、機械的な読み手にきれいなstdoutストリームを渡せ
ます。
終了コードは、成功時が0、使い方や設定の誤りが2、ソースが見つからないときが
3、モデルを読み込めないときが4、その他の実行時エラーが1です。
help_json=trueは何も実行せずにコマンドのパラメータ、型、デフォルト値、
フラグをJSONで出力し、インストール済みのバージョンからこの表を読み返す確実な
方法になります。
関連:データセット上で指標を実測するにはlibreyolo val、上で
挙げたランタイム成果物を生成するにはlibreyolo export。