よくある質問
特定のモデルファミリーに限られない質問への回答です。ファミリー固有の内容は各ファミリーのページにあります。
最初にどのモデルを使えばよいですか。
CNN検出器にはYOLOv9、Transformer検出器にはRF-DETRを使用します。どちらもフラッグシップ階層にあり、他のモデルより先に機能が設計され、GPUで検証されます。YOLOv9とRF-DETRを参照するか、その他のモデルについてはすべてのモデルを参照してください。
GPUは必要ですか。
いいえ。すべてのモデルはCPUで実行でき、クイックスタートの内容もすべてCPUで実行できるように書かれています。GPUによって変わるのは学習と動画推論にかかる時間であり、動作するかどうかではありません。
LibreYOLOはどのようにデバイスを選択しますか。
デフォルトは device="auto" です。PyTorchがCUDAを利用可能と報告した場合はCUDA、次に利用可能であればMetal Performance Shaders、それ以外ではCPUを使用します。固定するには、モデルまたは predict、train、val、export に device を渡します。"cpu"、"cuda"、"cuda:0"、"mps"、0 などの整数、または数字の文字列を受け付けます。最後の2つは cuda:<n> へ展開されます。
libreyolo checks はTorchビルド、そのCUDAとcuDNNのバージョン、認識できるすべてのGPUを表示します。このコマンドでCUDAが表示されない場合、PyTorchの wheel はCPUビルドです。インストールでは置き換え方法を説明しています。
ダウンロードした重みはどこに保存されますか。
作業ディレクトリからの相対パスで weights/ に保存されます。ディレクトリ部分を持たないモデル参照はそこで解決され、初回使用時にダウンロードされます。ディレクトリを含む参照は記載どおりに使用され、取得されることはありません。チェックポイントと重みを参照してください。
ネットワークアクセスなしで実行できますか。
はい。接続済みのマシンでチェックポイントを一度取得し、weights/ ディレクトリをコピーすれば、それ以降はネットワークへアクセスしません。ディレクトリを含む参照はそのまま解釈されるため、共有された読み取り専用パスも使用できます。データセットは ~/datasets または LIBREYOLO_DATASETS_DIR の下で解決されます。
LibreYOLOを商用利用できますか。
コードはMITライセンスです。学習済みの重みは別の問題です。由来となるプロジェクトやデータセットの条件を継承する場合があり、その条件は1つのファミリー内でも統一されていません。特定のHugging Faceリポジトリに記載されたライセンスが正式なものであり、各モデルページのライセンスセクションでも再掲しています。重みに制限がある場合、LibreYOLOはダウンロード開始前に制限を表示します。
別のプロジェクトのチェックポイントを読み込めますか。
通常は、そのパスを LibreYOLO() に渡すことで読み込めます。認識されるアップストリームの配置は読み込み時に変換され、クラス数と名前が維持されます。LibreYOLOチェックポイントはソースの隣に書き出されます。既存の重みをインポートでは、認識されるものと変換スクリプトが必要なものを説明しています。
trainがNotImplementedErrorを発生させるのはなぜですか。
そのファミリーが推論専用であり、例外に理由が記載されるためです。推論、検証、および対応する場合はエクスポートが動作します。そのアーキテクチャ用の学習ループはLibreYOLOにありません。試す前に、モデルページのヘッダーにあるサポート階層で確認できます。基本概念を参照してください。
valは何を返しますか。
オブジェクトではなく通常の辞書を返します。検出のキーには metrics/precision、metrics/recall、metrics/mAP50、metrics/mAP50-95 が含まれます。その他のタスクは、分類の metrics/accuracy_top1、パノプティックセグメンテーションの metrics/PQ、metrics/SQ、metrics/RQ など、それぞれに適したキーを返します。
フォルダー、動画、Webカメラで実行するにはどうすればよいですか。
ソースとして渡してください。ファイルパスは1枚の画像、ディレクトリは内部のすべての画像、動画パスは動画、整数はWebカメラの番号です。RTSP、RTMP、TCP、UDP、HLSのURLはライブストリームです。.streams ファイルは複数のソースを一度に列挙します。ライブソースには stream=True が必要で、一覧を構築する代わりにフレームごとに1つの Results を生成します。同じフラグは長い動画や大きなディレクトリにも有効です。追加パッケージ libreyolo[stream] が必要なのはYouTubeページのURLだけです。
一部のクラスだけを残すにはどうすればよいですか。
たとえば classes=[0, 2] のように、残すクラスインデックスを classes として predict に渡します。conf は信頼度のしきい値で、デフォルトは 0.25 です。max_det は画像ごとの検出数に上限を設定し、デフォルトは 300 です。
CLIはフラグとkey=valueペアのどちらを使用しますか。
すべてのコマンドで、キーと値を等号で結びます。
libreyolo predict model=yolo9-t source=my-image.jpg save=True
libreyolo train model=yolo9-t data=coco8.yaml epochs=50 imgsz=640model はパスまたは family-size 形式の短縮名を受け付け、オプションでタスク接尾辞も指定できます。libreyolo models は有効なものをすべて列挙します。診断コマンドと一覧コマンドは --json も受け付け、同じデータを機械可読なオブジェクトとしてstdoutへ出力します。
すべてのモデルをすべての形式へエクスポートできますか。
いいえ。対応範囲はファミリーとタスクごとに異なり、統一されていません。また、各形式には独自の追加パッケージがあります。各モデルページにはファミリーのエクスポート対応表があり、エクスポートセクションでは各形式について説明しています。
segment、semantic、panopticの違いは何ですか。
3つの異なるタスクです。segment は検出した物体ごとに1つのマスクを生成します。semantic は各ピクセルにクラスを付けますが、インスタンスには分離しません。panoptic は数えられる物体と不定形の領域を統合し、各ピクセルへ正確に1つのラベルを付けます。正解データ、結果フィールド、指標はそれぞれ異なり、ファミリーはタスク一覧に記載されたものに対応します。
独自のクラスで学習するにはどうすればよいですか。
train、val、names を含むデータセットYAMLを作成します。ラベルは画像と並列な labels/ ツリーに、画像ごとに1つの .txt として正規化座標で置きます。nc はオプションで、指定する場合は names と一致する必要があります。最初に libreyolo doctor <data.yaml> を実行してください。データセットの問題を確認し、エラーが見つかると0以外で終了するため、CIゲートとして使用できます。
読み込み時にメタデータ警告が表示されるのはなぜですか。
チェックポイントに完全なv1.0メタデータが含まれていないためです。互換性経路を通じて読み込みは続行され、警告には不足している正確なキーが記載されます。libreyolo metadata path=<file> を実行して内容を確認し、スキーマ要件についてはチェックポイントと重みを参照してください。
アップグレード後にインポートが動作しなくなりました。何が変わりましたか。
一貫性のため、2つのクラス名が変更されました。LibreYOLORTDETR は LibreRTDETR、LibreYOLORFDETR は LibreRFDETR になりました。古い名前も引き続き解決され、新しい名前を示す DeprecationWarning を発生させます。そのため、更新作業中も既存のコードは動作します。