コンテンツへスキップ

物体検出データセットの概要

ロバストで正確な物体検出モデルのトレーニングには、包括的なデータセットが必要です。このガイドでは、Ultralytics YOLO モデルと互換性のあるデータセットのさまざまな形式を紹介し、それらの構造、使用方法、異なる形式間の変換方法についての洞察を提供します。

サポートされるデータセット形式

Ultralytics YOLO フォーマット

Ultralytics YOLO フォーマットは,データセットのルートディレクトリ,トレーニング/バリデーション/テス トの各画像ディレクトリへの相対パス,または,データセットのルートディレクトリを定義すること ができるデータセット設定フォーマットである. *.txt 画像パスを含むファイル、およびクラス名の辞書。以下はその例です:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

このフォーマットのラベルは、YOLO フォーマットにエクスポートする必要があります。 *.txt ファイルです。画像にオブジェクトがない場合は *.txt ファイルが必要である。その *.txt ファイルでは、各オブジェクトが class x_center y_center width height 形式でなければなりません。ボックス座標は 正規化xywh フォーマット(0から1まで)で指定します。ボックスの単位がピクセルの場合、次のように分割します。 x_center そして width 画像の幅で y_center そして height を画像の高さで指定します。クラス番号はゼロインデックス(0から始まる)でなければならない。

ラベル画像例

上の画像に対応するラベルファイルには、2人の人物(クラス 0と引き分け(クラス 27):

ラベルファイルの例

Ultralytics YOLO フォーマットを使用する場合、以下の例のようにトレーニング画像と検証画像、ラベルを整理する。

データセットのディレクトリ構造例

使用方法

これらのフォーマットを使ってモデルをトレーニングする方法を紹介しよう:

例

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

対応データセット

以下は、サポートされているデータセットのリストと、それぞれの簡単な説明です:

  • アルゴバース:自律走行車から収集されたセンサーデータのコレクション。車のオブジェクトの3Dトラッキングアノテーションが含まれている。
  • COCO:Common Objects in Context (COCO)は、80のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプションデータセットである。
  • COCO8:COCOデータセットの小さなサブセットであるCOCO8は、より軽量で高速に学習できる。
  • GlobalWheat2020:Global Wheat Challenge 2020のための小麦の頭部画像を含むデータセット。
  • オブジェクト365:物体検出研究の発展を目的とした、365の物体カテゴリと600kの画像を持つ大規模な物体検出データセット。
  • オープンイメージズV7:Googleによる包括的なデータセットで、1.7Mの訓練画像と42kの検証画像がある。
  • SKU-110K:高密度に梱包された小売商品の画像を含むデータセット。
  • ヴィスドローン:自動車、歩行者、自転車などの様々なオブジェクトカテゴリを含む、ドローンベースの画像に焦点を当てたデータセット。
  • VOC:PASCAL VOCは、乗り物、動物、家具など20の物体カテゴリを持つ、一般的な物体検出データセットです。
  • Xビュー:高解像度の衛星画像を含むデータセットで、俯瞰で様々なオブジェクトクラスを検出するために設計されている。

独自のデータセットを追加する

独自のデータセットをお持ちで、Ultralytics YOLO フォーマットの検出モデルのトレーニングに使用したい場合は、上記の「Ultralytics YOLO フォーマット」で指定されたフォーマットに従っていることを確認してください。アノテーションを必要なフォーマットに変換し、YAML設定ファイルでパス、クラス数、クラス名を指定します。

ラベルフォーマットの移植または変換

COCO データセット形式からYOLO 形式へ

次のコード・スニペットを使えば、よく使われるCOCOデータセット・フォーマットからYOLO ・フォーマットにラベルを簡単に変換できる:

例

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/')

この変換ツールを使って、COCO データセットまたは COCO フォーマットのデータセットをUltralytics YOLO フォーマットに変換することができる。

使用したいデータセットがあなたのモデルと互換性があり、必要なフォーマット規則に従っているかどうかを再チェックすることを忘れないでください。適切にフォーマットされたデータセットは、オブジェクト検出モデルをうまくトレーニングするために非常に重要です。



作成日:2023-11-12 更新日:2024-01-14
作成者:glenn-jocher(6)

コメント