Skip to main content

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

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

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

Ultralytics YOLO 形式

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

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

この形式のラベルは、画像ごとに1つの *.txt ファイルを持つ YOLO 形式でエクスポートする必要があります。画像内にオブジェクトがない場合、*.txt ファイルは不要です。各 *.txt ファイルは、オブジェクトごとに1行ずつ、class x_center y_center width height 形式で記述する必要があります。ボックス座標は normalized xywh 形式(0から1の範囲)である必要があります。ボックスがピクセル単位である場合は、x_centerwidth を画像幅で、y_centerheight を画像高さで割る必要があります。クラス番号はゼロインデックス(0から開始)にする必要があります。

YOLO labeled image with bounding boxes on persons and tie

上記の画像に対応するラベルファイルには、2人の人物(クラス 0)と1つのネクタイ(クラス 27):

YOLO format label file with normalized coordinates

Ultralytics YOLO 形式を使用する場合、以下の COCO8 dataset の例のように、トレーニング画像、検証画像、およびラベルを整理してください。

YOLO dataset directory structure with train and val folders

使用例

YOLO 形式のデータセットを使用してモデルをトレーニングする方法は以下の通りです:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Ultralytics NDJSON 形式

NDJSON (Newline Delimited JSON) 形式は、Ultralytics YOLO モデルのデータセットを定義するための代替手段を提供します。この形式では、データセットのメタデータとアノテーションを単一のファイルに保存し、各行に個別の 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"
}

使用例

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

from ultralytics import YOLO

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

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

NDJSON 形式の利点

  • 単一ファイル: すべてのデータセット情報が1つのファイルに集約されます
  • ストリーミング: すべてをメモリに読み込むことなく、大規模なデータセットを行単位で処理できます
  • クラウド統合: クラウドベースのトレーニング向けにリモート画像 URL をサポートします
  • 拡張性: カスタムメタデータフィールドを簡単に追加できます
  • バージョン管理: 単一ファイル形式であるため、git やその他のバージョン管理システムと相性が良好です

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

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

  • African-wildlife: アフリカの野生動物(バッファロー、ゾウ、サイ、シマウマなど)の画像を含むデータセット。
  • Argoverse: 都市環境における3Dトラッキングとモーション予測のデータを含み、豊富なアノテーションが施されたデータセットです。
  • Brain-tumor: 脳腫瘍検出用のデータセットで、MRI または CT スキャン画像に、腫瘍の有無、位置、特徴に関する詳細情報が含まれています。
  • COCO: Common Objects in Context (COCO) は、80のオブジェクトカテゴリを持つ大規模な 物体検出、セグメンテーション、およびキャプション付けデータセットです。
  • COCO8: COCO学習用および検証用データの最初の4枚ずつを抽出した小規模なサブセットで、迅速なテストに適しています。
  • COCO8-Grayscale: COCO8をRGBからグレースケールに変換して作成したデータセットで、シングルチャンネルモデルの評価に役立ちます。
  • COCO8-Multispectral: RGB波長を補間して作成された10チャンネルのマルチスペクトル版COCO8で、スペクトル対応モデルの評価に役立ちます。
  • COCO12-Formats: 画像読み込みパイプラインを検証するために、サポートされているすべての画像形式(AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WebP)を網羅した12枚の画像を含むテスト用データセット。
  • COCO128: COCO学習用および検証用データの最初の128枚を抽出した小規模なサブセットで、テストに適しています。
  • Construction-PPE: 建設現場の作業員をフィーチャーしたデータセット。ヘルメット、ベスト、手袋、ブーツ、ゴーグルなどの安全装備がラベル付けされており、現場のコンプライアンス監視のために no_helmet、no_googles などの装備未装着アノテーションも含まれています。
  • Global Wheat 2020: Global Wheat Challenge 2020に向けた小麦の穂の画像を含むデータセットです。
  • HomeObjects-3K: ベッド、椅子、テレビなどの屋内の日用品を含むデータセット。スマートホーム自動化、ロボット工学、拡張現実、部屋のレイアウト分析などのアプリケーションに最適です。
  • KITTI: ステレオ、LiDAR、および GPS/IMU データを含む実際の運転シーンをフィーチャーしたデータセット。ここでは 2D object detection タスクに使用され、都市、農村、高速道路環境における自動車、歩行者、自転車利用者の識別などに利用されます。
  • LVIS: 1203のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプション生成用データセットです。
  • Medical-pills: 医薬品のピル画像を含むデータセット。製薬品質保証、ピルの選別、規制コンプライアンスなどの用途向けにアノテーションされています。
  • Objects365: 365のオブジェクトカテゴリと60万枚以上の注釈付き画像を備えた、高品質かつ大規模なオブジェクト検出用データセットです。
  • OpenImagesV7: 170万枚の学習画像と4.2万枚の検証画像を含むGoogleの包括的なデータセットです。
  • Roboflow 100: モデルの包括的な評価のために、7つの画像ドメインにまたがる100のデータセットから構成される多様なオブジェクト検出ベンチマークです。
  • Signature: 署名が注釈されたさまざまな文書の画像を含むデータセットで、文書検証および不正検出の研究をサポートします。
  • SKU-110K: 小売環境での高密度物体検出を特徴とするデータセット。1万1千枚以上の画像と170万の バウンディングボックス.
  • TT100K: 10万枚のストリートビュー画像と3万枚以上の交通標識アノテーションを含む、Tsinghua-Tencent 100K (TT100K) 交通標識データセットで、堅牢な検出および分類を試してください。
  • VisDrone: 1万枚以上の画像と動画シーケンスを含む、ドローン撮影映像によるオブジェクト検出およびマルチオブジェクトトラッキング用のデータセットです。
  • VOC: 20のオブジェクトクラスと1.1万枚以上の画像を含む、オブジェクト検出およびセグメンテーションのためのPascal Visual Object Classes (VOC) データセットです。
  • xView: 60のオブジェクトカテゴリと100万以上の注釈付きオブジェクトを含む、航空写真(上空からの画像)によるオブジェクト検出用データセットです。

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

独自のデータセットがあり、それを 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モデル.

使用するデータセットがモデルと互換性があり、必要な形式規則に従っているか再確認してください。正しくフォーマットされたデータセットは、成功する物体検出モデルのトレーニングに不可欠です。

FAQ

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枚につき1ファイルで、正規化された座標を持つ class x_center y_center width height 形式になります。詳細なガイドについては、COCO8 dataset example.

COCO データセットを YOLO 形式に変換するにはどうすればよいですか?

COCO データセットを YOLO 形式に変換するには、Ultralytics conversion tools を使用します。簡単な手順は以下の通りです:

from ultralytics.data.converter import convert_coco

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

このコードにより、COCO アノテーションが YOLO 形式に変換され、Ultralytics YOLO モデルとのシームレスな統合が可能になります。詳細については、ラベル形式の移植または変換推論引数

物体検出において Ultralytics YOLO でサポートされているデータセットは何ですか?

Ultralytics YOLO は、以下を含む幅広いデータセットをサポートしています:

各データセットのページでは、効率的な YOLO26 トレーニングに合わせた構造と使用方法に関する詳細情報が提供されています。リストの全容は サポートされているデータセット推論引数

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

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

from ultralytics import YOLO

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

次のコマンドを実行して検証を開始できます。使用方法 セクションを参照して、CLI コマンドを含むさまざまなモードの利用に関する詳細を確認してください。

Ultralytics YOLO を使用した物体検出の実践例はどこで見つけられますか?

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

コメント