コンテンツへスキップ

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

ロバストで正確な物体検出モデルのトレーニングには、包括的なデータセットが必要です。このガイドでは、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 フォーマットに変換することができる。

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

よくあるご質問

Ultralytics YOLO データセットのフォーマットと構成は?

Ultralytics YOLO 形式は、トレーニングプロジェクトでデータセットを定義するための構造化された設定です。トレーニング画像、検証画像、テスト画像のパスと対応するラベルを設定します。例えば

path: ../datasets/coco8  # dataset root directory
train: images/train  # training images (relative to 'path')
val: images/val  # validation images (relative to 'path')
test:  # optional test images
names:
  0: person
  1: bicycle
  2: car
  # ...

ラベルは *.txt ファイルは、1画像につき1ファイルである。 class x_center y_center width height を正規化した座標で表示します。詳細なガイドについては COCO8データセットの例.

COCOデータセットをYOLO 形式に変換するには?

Ultralytics 変換ツールを使って、COCO データセットをYOLO フォーマットに変換できます。簡単な方法を紹介しよう:

from ultralytics.data.converter import convert_coco

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

このコードは、COCO注釈をYOLO フォーマットに変換し、Ultralytics YOLO モデルとのシームレスな統合を可能にします。詳細については、ラベルフォーマットの移植または変換のセクションをご覧ください。

Ultralytics YOLO では、どのデータセットが物体検出に対応していますか?

Ultralytics YOLO を含む幅広いデータセットをサポートしている:

各データセットのページでは、効率的なYOLOv8 トレーニングのために調整された構造と使用方法に関する詳細な情報を提供しています。サポートされているデータセットのセクションで全リストをご覧ください。

自分のデータセットを使って、YOLOv8 モデルのトレーニングを始めるには?

YOLOv8 モデルの学習を開始するには、データセットが正しくフォーマットされ、パスが YAML ファイルで定義されていることを確認する。以下のスクリプトを使用して学習を開始する:

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

CLI ・コマンドを含む各モードの詳細については、「使用法」のセクションを参照のこと。

Ultralytics YOLO を使った物体検出の実用例はどこにありますか?

Ultralytics には、YOLOv8 をさまざまなアプリケーションで使用するための、数多くの例と実践的なガイドが掲載されている。包括的な概要については、Ultralytics ブログをご覧ください。YOLOv8 を使用したケーススタディ、詳細なチュートリアル、オブジェクト検出、セグメンテーションなどを紹介するコミュニティストーリーをご覧いただけます。具体的な例については、ドキュメントの「使用法」のセクションを確認してください。



作成日:2023-11-12 更新日:2024-07-04
著者:glenn-jocher(10),RizwanMunawar(2),IvorZhu331(1),Laughing-q(1)

コメント