コンテンツにスキップ

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

堅牢で正確な物体検出モデルを学習するには、包括的なデータセットが必要です。このガイドでは、Ultralytics YOLOモデルと互換性のあるさまざまな形式のデータセットを紹介し、その構造、使用法、および異なる形式間の変換方法について説明します。

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

Ultralytics YOLO形式

Ultralytics YOLO形式は、データセットのルートディレクトリ、トレーニング/検証/テスト画像のディレクトリへの相対パス、または *.txt 画像パスを含むfiles、およびクラス名の辞書。以下に例を示します。

ultralytics/cfg/datasets/coco8.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

この形式のラベルは、YOLO 形式で 1 つでエクスポートする必要があります *.txt 画像ごとにfileが1つ。画像内にオブジェクトがない場合、fileは *.txt fileが必要です。その *.txt fileは、オブジェクトごとに1行でフォーマットする必要があります。 class x_center y_center width height 形式。ボックスの座標は以下で指定する必要があります 正規化された xywh 形式(0〜1)。ボックスがピクセルの場合、以下で割る必要があります x_center および width 画像の幅を基準にして、 y_center および height 画像の高さで正規化されます。クラス番号はゼロから始まるインデックス(0から開始)にする必要があります。

ラベル付けされた画像の例

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

ラベルファイルの例

Ultralytics YOLO形式を使用する場合は、トレーニングおよび検証イメージとラベルを、以下のCOCO8データセットの例に示すように整理します。

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

使用例

YOLO形式のデータセットを使用してモデルをトレーニングする方法は次のとおりです。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Ultralytics NDJSON形式

NDJSON(Newline Delimited JSON)形式は、Ultralytics YOLO11モデルのデータセットを定義する別の方法を提供します。この形式では、データセットのメタデータとアノテーションを単一のファイルに保存し、各行に個別のJSONオブジェクトが含まれています。

NDJSONデータセットファイルには以下が含まれます:

  1. データセットレコード (1行目): タスクタイプ、クラス名、および一般的な情報を含むデータセットのメタデータが含まれています
  2. イメージレコード (後続の行): 寸法、アノテーション、ファイルパスなどの個々のイメージデータが含まれています

NDJSONの例

{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://app.ultralytics.com/user/datasets/example",
    "class_names": { "0": "person", "1": "bicycle", "2": "car" },
    "bytes": 426342,
    "version": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z"
}
{
    "type": "image",
    "file": "image1.jpg",
    "url": "https://www.url.com/path/to/image1.jpg",
    "width": 640,
    "height": 480,
    "split": "train",
    "annotations": {
        "boxes": [
            [0, 0.52481, 0.37629, 0.28394, 0.41832],
            [1, 0.73526, 0.29847, 0.19275, 0.33691]
        ]
    }
}

タスクごとのアノテーション形式:

  • 検出: "annotations": {"boxes": [[class_id, x_center, y_center, width, height], ...]}
  • セグメンテーション: "annotations": {"segments": [[class_id, x1, y1, x2, y2, ...], ...]}
  • ポーズ: "annotations": {"pose": [[class_id, x1, y1, v1, x2, y2, v2, ...], ...]}
  • OBB: "annotations": {"obb": [[class_id, x_center, y_center, width, height, angle], ...]}
  • 分類: "annotations": {"classification": [class_id]}

使用例

YOLO11でNDJSONデータセットを使用するには、パスを指定するだけです .ndjson ファイル:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)
# Start training with NDJSON dataset
yolo detect train data=path/to/dataset.ndjson model=yolo11n.pt epochs=100 imgsz=640

NDJSON形式の利点

  • 単一ファイル: すべてのデータセット情報が1つのファイルに格納
  • ストリーミング: すべてをメモリにロードせずに、大きなデータセットを1行ずつ処理可能
  • クラウド統合: クラウドベースのトレーニング用にリモートイメージURLをサポート
  • 拡張可能: カスタムメタデータフィールドの追加が容易
  • バージョン管理: 単一ファイル形式は、Gitおよびバージョン管理システムとの連携に最適

サポートされているデータセット

サポートされているデータセットと、それぞれの簡単な説明を以下に示します。

  • Argoverse: 豊富なアノテーションが付いた都市環境からの3Dトラッキングおよびモーション予測データを含むデータセット。
  • COCO: Common Objects in Context (COCO)は、大規模なオブジェクト検出、セグメンテーション、キャプションデータセットで、80のオブジェクトカテゴリを含みます。
  • LVIS: 1203のオブジェクトカテゴリを持つ、大規模な物体検出、セグメンテーション、およびキャプションデータセット。
  • COCO8: COCO trainおよびCOCO valの最初の4枚の画像の小さいサブセットで、クイックテストに適しています。
  • COCO8-Grayscale: RGBをグレースケールに変換して作成されたCOCO8のグレースケールバージョンで、シングルチャネルモデルの評価に役立ちます。
  • COCO8-Multispectral: RGB波長を補間して作成されたCOCO8の10チャンネルマルチスペクトルバージョンで、スペクトル対応モデルの評価に役立ちます。
  • COCO128: COCO trainおよびCOCO valの最初の128枚の画像の小さいサブセットで、テストに適しています。
  • Global Wheat 2020: Global Wheat Challenge 2020用の小麦の穂の画像を含むデータセット。
  • Objects365:365個のオブジェクトカテゴリと60万を超えるアノテーション付き画像を含む、オブジェクト検出用の高品質で大規模なデータセット。
  • OpenImagesV7:Googleによる包括的なデータセットで、170万枚のトレーニング画像と42,000枚の検証画像があります。
  • SKU-110K: 11Kを超える画像と170万のバウンディングボックスを備えた、小売環境における高密度物体検出を特徴とするデータセット。
  • HomeObjects-3K New 🚀: ベッド、椅子、テレビなどを含む屋内家庭用品のデータセット。スマートホームオートメーション、ロボティクス、拡張現実、および部屋のレイアウト分析でのアプリケーションに最適です。
  • VisDrone: ドローンで撮影した画像から得られた、物体検出およびマルチ物体追跡データを含むデータセット。10,000 を超える画像とビデオシーケンスが含まれています。
  • VOC: 物体検出とセグメンテーションのための Pascal Visual Object Classes (VOC) データセット。20 の物体クラスと 11,000 を超える画像が含まれています。
  • xView: 60のオブジェクトカテゴリと100万を超えるアノテーション付きオブジェクトを含む、オーバーヘッド画像内のオブジェクト検出のためのデータセット。
  • Roboflow 100: 包括的なモデル評価のために、7つの画像ドメインにまたがる100のデータセットを備えた多様な物体検出ベンチマーク。
  • Brain-tumor: 脳腫瘍を検出するためのデータセットには、腫瘍の存在、位置、および特性に関する詳細を含むMRIまたはCTスキャン画像が含まれます。
  • African-wildlife: バッファロー、ゾウ、サイ、シマウマなど、アフリカの野生動物の画像を含むデータセット。
  • 署名: ドキュメントの検証と不正検出の研究をサポートする、アノテーション付き署名付きのさまざまなドキュメントの画像を備えたデータセット。
  • Medical-pills: 医薬品の品質保証、錠剤の仕分け、規制遵守などのアプリケーション向けにアノテーションが付けられた、医療用ピルの画像を特徴とするデータセット。

独自のデータセットの追加

独自のデータセットがあり、それを 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形式に変換できます。このプロセスでは、JSONベースのCOCOアノテーションが、よりシンプルなテキストベースのYOLO形式に変換され、Ultralytics YOLOモデルとの互換性が確保されます。

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

よくある質問

Ultralytics YOLOデータセットの形式とは何ですか?また、その構造はどうなっていますか?

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

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

ラベルは以下に保存されます *.txt 画像ごとに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は、以下を含む幅広いデータセットをサポートしています。

各データセットページには、効率的なYOLO11トレーニングに合わせて調整された構造と使用法に関する詳細情報が記載されています。完全なリストは、サポートされているデータセットセクションで確認してください。

自分のデータセットを使用して YOLO11 モデルのトレーニングを開始するにはどうすればよいですか?

YOLO11モデルのトレーニングを開始するには、データセットが正しくフォーマットされ、パスがYAMLファイルで定義されていることを確認してください。次のスクリプトを使用して、トレーニングを開始します。

from ultralytics import YOLO

model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

さまざまなモード(CLIコマンドを含む)の利用に関する詳細については、Usageセクションを参照してください。

Ultralytics YOLOをオブジェクト検出に使用する実践的な例はどこにありますか?

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



📅 1年前に作成 ✏️ 10日前に更新

コメント