データセットの準備¶
モダンの物体検出・インスタンスセグメンテーション・回転物体検出¶
data.yaml を含むデータセットルートを選択します。回転検出ページでは YAML パスも入力できます。YAML で学習セット、検証セット、クラス対応を指定します。画像とラベルは対応させ、クラス ID は 0 から始めてクラス一覧に一致させてください。
dataset/
data.yaml
images/train/
images/val/
labels/train/
labels/val/
| タスク | ラベルの内容:物体ごとに一行 |
|---|---|
| 通常の検出 | クラスID 中心x 中心y 幅 高さ |
| インスタンスセグメンテーション | クラスID x1 y1 x2 y2 …(物体の輪郭多角形) |
| 回転物体検出 | クラスID x1 y1 x2 y2 x3 y3 x4 y4(四隅) |
座標は 0~1 に正規化し、OBB の角点は時計回りか反時計回りに並べます。通常の 5 列枠、未変換 DOTA、自己交差する四角形は使えません。ソフトウェアが事前検査し、ファイルと行番号を示します。
モダン分類¶
学習・検証画像をクラスごとに整理し、対応するサブフォルダー名をクラス名に使用します。train/クラス名 と val/クラス名 を明示的に用意することを推奨します。分類エンジンが各データ規則に従って読み込みます。このページはクラシック分類の TXT リストのインポート先ではありません。
classification/
train/OK/...
train/NG/...
val/OK/...
val/NG/...
分類結果はデータセットと同階層の「データセット名_runs」に保存し、クラスと誤認されるのを防ぎます。以前の結果フォルダーをクラスディレクトリに混ぜないでください。
クラシック物体検出:COCO フォルダーを選択¶
既定では COCO モードを選択します。データセットルートを選び、「データセットを確認」をクリックしてください。学習画像、COCO JSON、クラス、任意の独立した検証セットを認識します。一般的な構成は次のとおりです。
coco/
images/train/...
images/val/... # 省略可能
annotations/train.json
annotations/val.json # 省略可能
独立した検証セットがない場合、すべての学習画像を学習に使用し、自動分割や mAP の計算は行いません。OK の背景画像はボックスなしで構いません。画像レコードを残し、annotations に架空のボックスを追加したり「OK 物体」クラスを作ったりする必要はありません。ソフトウェアはこれらの負例を保持します。
クラスの対応付けは学習アノテーションを基準とし、学習と検証のクラス名を一致させる必要があります。ソフトウェアは実験内にアノテーションのコピーとクラス一覧を作成し、元の COCO ファイルは変更しません。
クラシック分類:データセットフォルダーを選択¶
train_list.txt、val_list.txt、Label.txt を優先し、リストがなければ train/クラス名 と val/クラス名 を認識します。既存の分割を保持し、自動で分割し直しません。クラス ID は連続し、検証クラスは学習クラスの範囲内でなければなりません。
別の命名構造なら、まずデータセットチェックで認識された学習数・検証数・クラスを確認してください。チェックを回避するためにクラス ID を捏造しないでください。
異常検出:OK 画像と独立した校正¶
学習フォルダーには OK 画像のみを入れます。独立した OK 校正フォルダーも選択できます。空欄の場合は内容による重複除去後に約 20% を校正用に確保し、少なくとも異なる OK 画像が 3 枚必要です。校正画像は学習特徴量バンクに使用しません。学習と校正で内容が重複する画像は拒否します。
この自動確保の規則は異常検出のみに適用し、クラシック COCO 検出には適用しません。