はじめに
YOLOv5のtrain.pyとdetect.pyのオプションをまとめてみました。
※【引用】YOLOv5のコードはこちら。
一つの表中でオプションは五十音順にソートしております。
引数がなしとなっているオプションはそのオプションを記述することでflagが立つ(Trueとなる)オプションです。
いくつかは私の理解不足で説明を省いていたりするものもありますがご容赦ください。
(順次アップデートしていければと考えております。)
train.pyのオプション
よく使うオプション
option | 引数 | 説明 | default |
---|---|---|---|
batch | int | バッチサイズ指定 | 16 |
data | str | 学習データの情報を記載したyamlファイルのpath | サンプルデータのcoco128が読み込まれる |
cfg | str | 使用するYOLOのバージョン指定 | ' ' |
epochs | int | エポック数指定 | 300 |
exist-ok | なし | 学習結果を上書き保存する | False |
img (imgsz, img-sizeでもよい) |
int | 学習画像のサイズを指定 | 640 |
name | str | 学習結果を保存するディレクトリ名を指定 | 'exp' (注*2) |
patience | int | EarlyStopの設定 指定したepoch数中でモデル精度が向上しなければ学習を打ち切る |
100 |
project | str | 学習結果を保存するディレクトリを指定 | ROOT / 'runs/train' (注*1) |
single-cls | なし | 多クラスにラベル付けされていても単一クラスとして扱う (物体の検出のみ行う) |
False |
weights | str | 学習済み重みを指定 (用意された重みを使用する場合は、例えば'yolov5x.pt'のようにファイルのパスを指定しなくてもOK) |
ROOT / 'yolov5s.pt' (注*1) |
### その他オプション |option|引数|説明|default| |----|----|----|----| |adam|なし|Adam optimizerを使用する|Fasle(SGDが指定される)| |bucket|str|-|' '| |cache|str|cashの保存先指定(ram or disk)|'ram'| |device||使用プロセッサの指定(0 or 0,1,2,3 or cpu)|' ' (cudaが指定される)| |evolve|int|ハイパーパラメータのバージョン指定
いじったことない|None| |freeze|int|学習しない層を指定|0| |hyp|str|ハイパーパラメータの指定
いじったことない| |image-weights|なし|-|False| |label-smoothing|float|-|0.0| |linear-lr|なし|-|False| |multi-scale|なし|画像サイズを±50%変化させる|False| |noautoanchor|なし|自動アンカーチェックの無効化|False| |nosave|なし|最終checkpointのみ保存|False| |quad|なし|-|False| |rect|なし|-|-| |resume|なし|-|False| |sync-bn|なし|SyncBatchNormを使用する
DDPモードでのみ使用可能|False| |save_period|int|指定epoch毎にチェックポイントを保存する|-1 (無効)\ |workers|int|データローダーワーカーの最大数|8|
detect.pyのオプション
よく使うオプション
option | 引数 | 説明 | default |
---|---|---|---|
conf | float | クラス判定の閾値指定 | 0.25 |
exist-ok | なし | 推論結果を上書き保存する | False |
img (imgsz, img-sizeでもよい) |
int | 推論対象の画像のサイズを指定 | 640 |
name | str | 推論結果を保存するディレクトリ名を指定 | 'exp' (注*2) |
project | str | 推論結果を保存するディレクトリを指定 | ROOT / 'runs/train' (注*1) |
save-txt | なし | 推論結果(検出座標と予測クラス)をtxtファイルに出力する | False |
save-conf | なし | 推論結果(クラスの確率)をtxtファイルに出力する | False |
sorce | str | 推論対象の画像が格納されたディレクトリまでのパス | ROOT / 'data/images' (注*1) |
weights | str | 学習済み重みを指定 | ROOT / 'yolov5s.pt' |
### その他オプション |option|引数|説明|default| |----|----|----|----| |agnostic-nms|なし||False| |augment|なし|拡張推論|False| |classes|int|クラスフィルタ|| |device||使用プロセッサの指定(0 or 0,1,2,3 or cpu)|' ' (cudaが指定される)| |iou-thres|folat|IoU値の閾値設定|0.45| |max-det|int|1枚の画像で検出する物体数の最大|1000| |nosave|なし|画像を保存しない|False| |save-crop|なし|予測画像を検出座標でトリミングしたものを保存|False| |update|なし|モデルをアップデートする|False| |view-img|なし|結果を表示|False| |visualize|なし|可視化|False|
注釈
*1: ROOTはtrain.py、detect.pyが存在する階層
*2: exsit_okがFalseの場合、学習を行う度にexpの後に連番が振られる