libreyoloユーティリティコマンド
計算ではなく報告や確認を行う9つのコマンドです。環境の情報、モデルと形式の一覧、解決済みのデフォルト値、チェックポイントの詳細を表示し、顔ギャラリーの構築と照会も行います。
- コマンド
version, checks, models, formats, cfg, info, metadata, enroll, compare- 出力
- stdout。テキスト形式、またはjson=trueを指定するとschema_versionを持つ1つのオブジェクト
書式
libreyolo <command> [key=value ...]引数はkey=valueのペアで、POSIX形式も使えるため、model=xと--model xは同じ引数です。ここに挙げるコマンドはすべて結果をstdoutに書き出し、json=trueとquiet=trueを受け付けます。
ルートコマンドには独自のフラグが1つあり、libreyolo --versionはバージョン文字列を表示して終了します。これは下のversionコマンドよりも小さな出力です。
version
LibreYOLOのバージョンと、実行環境のPython、torch、CUDAのバージョンを表示します。
libreyolo version| 引数 | デフォルト | 意味 |
|---|---|---|
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
checks
環境をより詳しく表示します:Python、torch、CUDA、cuDNN、検出されたすべてのGPUの名前とメモリ、そしてエクスポート処理が使うオプションパッケージそれぞれのインストール済みバージョンです。
libreyolo checks| 引数 | デフォルト | 意味 |
|---|---|---|
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
パッケージ一覧はonnx、onnxruntime、tensorrt、openvino、paddlepaddle、x2paddle、mnn、ncnn、onnx2tf、ai-edge-litert、transformers、scipyを対象とします。インストールされていないパッケージは省略されずに未インストールとして報告されるため、エクスポートの失敗をこのコマンド1つで依存関係の不足までたどれます。
models
すべてのモデルファミリーを、そのタスク、サイズ、チェックポイントに解決されるCLI名、および各サイズの入力解像度とともに一覧表示します。
libreyolo models| 引数 | デフォルト | 意味 |
|---|---|---|
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
オプションの依存関係がインストールされていないファミリーは、利用不可として、それを利用可能にするpip installの行とともに表示されます。CLI名はmodel=が短縮形として受け付けるものです:yolox-sはLibreYOLOXs.ptに解決され、物体検出以外のタスクにはタスクのサフィックスが付きます。
formats
インストール済みの環境で生成できるエクスポート形式を、各形式のファイル拡張子、およびFP16とINT8に対応しているかどうかとともに一覧表示します。
libreyolo formats [family=<family>] [task=<task>]| 引数 | デフォルト | 意味 |
|---|---|---|
family | 1つのモデルファミリーの対応レベルを表示。model=も同じオプションとして受け付け可能 | |
task | モデルの正規タスク。未指定ならファミリーのデフォルトタスク | |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
familyを指定しない場合、出力は形式の一覧だけです。指定すると、各形式にそのファミリーとタスクでの対応レベル、その理由、および付随する制約が加わります。未知のファミリー、またはそのファミリーが対応していないタスクは、使用方法のエラーになります。
形式のエイリアスは正規名の隣に表示されます:tensorrtにはengine、tfliteにはlitert。
cfg
解決済みのデフォルト設定を表示します:学習のデフォルト、検証のデフォルト、推論のデフォルト、およびファミリーごとのオーバーライドです。
libreyolo cfg| 引数 | デフォルト | 意味 |
|---|---|---|
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
値はコピーではなく設定のdataclassから読み取られるため、引数を渡さなかったときに学習が使う値については、これが根拠になります。family_overridesは、指定していない設定でファミリーが学習された理由に答えるセクションです。これらのオーバーライドがどのように適用されるかはlibreyolo trainを参照してください。
info
モデルをCPU上に読み込み、そのファミリー、サイズ、パラメータ数、クラス、および各形式のエクスポート対応レベルを報告します。
libreyolo info model=<name|path>| 引数 | デフォルト | 意味 |
|---|---|---|
model | モデル名または重みへのパス。必須 | |
detailed | false | パラメータごとの詳細を含める |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
metadata
モデルを構築せずにチェックポイントのメタデータを読み取り、LibreYOLOのチェックポイントスキーマと照合して検証します。
libreyolo metadata path=<checkpoint.pt>| 引数 | デフォルト | 意味 |
|---|---|---|
path | .ptチェックポイントへのパス。必須 | |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
大きなテンソルを含むエントリはそのまま表示されずに要約されるため、学習用のフルチェックポイントでも出力は読みやすいままです。存在しないチェックポイントはcheckpoint_not_foundで終了し、メタデータの検証に失敗したチェックポイントはエラーを表示して1で終了します。
enroll
人物ごとにフォルダーを分けたツリーから顔ギャラリーを構築し、以降の推論が見つけた顔に名前を付けられるようにします。
libreyolo enroll model=<embedder> source=<people-dir> gallery=<gallery.npz>| 引数 | デフォルト | 意味 |
|---|---|---|
model | 顔の埋め込みベクトルのモデル。パスまたは名前。必須 | |
source | 人物ごとにフォルダーを分けたツリー、source/<identity>/*.jpg。必須 | |
gallery | 出力するギャラリーファイル.npz。既存の場合はその場に追記。必須 | |
face_detector | 顔検出器:YuNetの.onnx、またはLibreYOLOの検出器。未指定ならファミリーのデフォルトの検出器 | |
device | auto | デバイス:0、cpu、mps、auto |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
# people/ には識別名ごとに1つのフォルダーを置き フォルダー名がそのまま識別名になる
libreyolo enroll model=librefacerec-l.onnx source=people/ gallery=people.npzサブフォルダー名が識別名になります。顔を検出できない参照画像はstderrに1行出したうえでスキップされ、残りは処理が続きます。識別名のサブフォルダーがないソース、または顔が1つも見つからなかったソースはエラーです。
生成されたファイルをgallery=people.npzとしてlibreyolo predictに渡すと、検出結果に識別名と一致スコアが付きます。
compare
2枚の顔画像のコサイン類似度と、それが同一人物のしきい値を超えるかどうかを報告します。
libreyolo compare model=<embedder> source=<a.jpg> source2=<b.jpg>| 引数 | デフォルト | 意味 |
|---|---|---|
model | 顔の埋め込みベクトルのモデル。パスまたは名前。必須 | |
source | 1枚目の画像。必須 | |
source2 | 比較対象となる2枚目の画像。必須 | |
face_detector | 顔検出器:YuNetの.onnx、またはLibreYOLOの検出器 | |
threshold | 0.4 | 同一人物と判定するためのコサイン類似度のしきい値 |
device | auto | デバイス:0、cpu、mps、auto |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
libreyolo compare model=librefacerec-l.onnx source=a.jpg source2=b.jpglibreyolo verifyはこのコマンドの2つ目の名前として登録されており、同じ引数を取ります。
compareとenrollはどちらも、タスクが顔の埋め込みベクトルであるモデルを必要とします。それ以外はconfig_unsupportedで終了します。ソースにはローカルの画像パスと、httpまたはhttpsのURLのどちらも指定できます。
例
libreyolo versionlibreyolo checkslibreyolo modelslibreyolo formats family=yolo9 task=detectlibreyolo info model=LibreYOLO9s.ptlibreyolo metadata path=weights/LibreYOLO9s.pt補足
結果はstdoutに出力され、進捗と警告はstderrに出力されます。json=trueはschema_versionを持つ1つのオブジェクトを表示し、これがスクリプトから読み取るための形式です。テキスト出力がデフォルトで、人が読むためのものです。
終了コードはCLIの他の部分と同じ対応です:成功なら0、使用方法または設定のエラーなら2、ソースが見つからないときは3、モデルまたはチェックポイントを読み込めないときは4、その他の実行時エラーは1です。
関連:データセット側の確認コマンドであるlibreyolo doctorと、性能側のlibreyolo profile。