データセットの準備

モダンの物体検出・インスタンスセグメンテーション・回転物体検出

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 検出には適用しません。