コンテンツへスキップ

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

ロバストで正確な物体検出モデルのトレーニングには、包括的なデータセットが必要です。このガイドでは、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 形式を使用する場合、以下のCOCO8データセットの例に示すように、トレーニング画像と検証画像、ラベルを整理する。

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

使用方法

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

例

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

対応データセット

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

  • Argoverse:豊富なアノテーションを持つ都市環境の3Dトラッキングとモーション予測データを含むデータセット。
  • COCO: Common Objects in Context (COCO)は、80のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプションデータセットである。
  • LVIS: 1203のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプションデータセット。
  • COCO8: COCO trainとCOCO valの最初の4枚の画像のサブセット。
  • グローバル小麦2020Global Wheat Challenge 2020のための小麦の頭部画像を含むデータセット。
  • Objects365:365の物体カテゴリと600K以上の注釈付き画像を持つ、物体検出のための高品質で大規模なデータセット。
  • OpenImagesV7:Googleによる包括的なデータセットで、1.7Mの訓練画像と42kの検証画像がある。
  • SKU-110K:1万1000枚以上の画像と170万個のバウンディングボックスを含む、小売環境における高密度の物体検出を特徴とするデータセット。
  • VisDrone:ドローンで撮影された10K以上の画像とビデオシーケンスからのオブジェクト検出とマルチオブジェクトトラッキングデータを含むデータセット。
  • VOC: Pascal Visual Object Classes (VOC)データセット。20のオブジェクトクラスと11K以上の画像を含む、オブジェクト検出とセグメンテーションのためのデータセット。
  • xView:60のオブジェクトカテゴリと100万以上の注釈付きオブジェクトを持つ俯瞰画像中のオブジェクト検出用データセット。
  • Roboflow 100:7つの画像領域にまたがる100のデータセットからなる多様な物体検出ベンチマークで、モデルの包括的な評価を行う。
  • 脳腫瘍:脳腫瘍を検出するためのデータセットには、腫瘍の有無、位置、特徴に関する詳細を含むMRIまたはCTスキャン画像が含まれる。
  • African-wildlife:バッファロー、ゾウ、サイ、シマウマなど、アフリカの野生動物の画像を集めたデータセット。
  • 署名:様々な文書の画像に署名の注釈を付けたデータセットで、文書の検証や不正検出の研究を支援する。

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

独自のデータセットをお持ちで、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 フォーマットに変換することができる。

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



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (9), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

コメント