Markdownで表示

libreyolo predict

読み込んだモデルを1つのソースに対して実行し、推論結果を出力します。ソースは画像、ディレクトリ、動画、URL、ライブストリームのいずれかであり、モデルはチェックポイントでもエクスポートした成果物でもかまいません。

コマンド
libreyolo predict
必須
source
出力
推論結果をstdoutに出力。save=trueのときはアノテーション済みファイルをruns/detect/predictの下に出力

書式

bash
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。必須
modelyolox-sモデル名またはパス
conf0.25信頼度のしきい値
iou0.45NMSのIoUしきい値
imgsz入力画像サイズ:640(正方形)または480x640(高さ×幅)。未指定のときはモデル自身の入力サイズ
classesクラスIDによる絞り込み。例:[0,2,5]。整数1つの指定も可
max_det300画像1枚あたりの最大検出数
halffalseFP16推論(CUDAのみ、モデル側の対応が必要)
savefalseアノテーション済み画像の保存
batch1ディレクトリをソースにしたときの1回の順伝播あたりの画像数。1より大きいと、対応するモデルでは実際のバッチ推論を実行
streamfalse結果を逐次生成。Webカメラとライブストリームでは自動的に有効
stream_bufferfalse最新の1フレームだけを保持するのではなく、ライブの全フレームをバッファリング
vid_stride1動画またはライブのNフレームごとに1フレームを処理
showfalse動画とライブの結果を表示。qで停止
tilingfalse大きな画像に対するタイル分割推論
overlap_ratio0.2タイルの重なり比率
output_path出力先の明示指定。指定しない場合、save=trueのときはproject/name
color_formatauto入力の色:autorgbbgr
output_file_format出力形式:jpgpngwebp
deviceautoデバイス:0cpumpsauto
face_detector顔検出モデル(パスまたはCLI名)。視線推定モデルでは必須
gallery顔を照合するためのlibreyolo enroll製の顔ギャラリー.npz。顔の埋め込みベクトルモデル専用
gallery_threshold0.4ギャラリー内の人物と一致とみなすコサインしきい値
projectruns/detect出力ディレクトリのルート
namepredict実験名
exist_okfalse既存の出力ディレクトリの再利用
jsonfalsestdoutへのJSON出力
quietfalsestderrの抑制
verbosefalsestderrへの詳細出力
help_jsonfalseコマンドのスキーマをJSONで出力して終了

使用例

基本
libreyolo predict model=LibreYOLO9s.pt \  source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg
アノテーション済み画像を保存
libreyolo 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
クラスを絞り込み、JSONをstdoutへ
# チェックポイント同梱の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.onnxmodel=weights/LibreYOLO9s.engineはどちらも modelの有効な値です。これらのランタイムでは、3つのオプションが無視されるの ではなく拒否されます:ランタイムのバックエンドがtilingoverlap_ratiooutput_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

LibreYOLO v1.5.0で検証済みです。