オブジェクト検出データセットの概要
堅牢で高精度なオブジェクト検出モデルをトレーニングするには、包括的なデータセットが必要です。このガイドでは、Ultralytics YOLOモデルと互換性のあるさまざまなデータセットフォーマットを紹介し、その構造、使用方法、およびフォーマット間の変換方法について解説します。
サポートされているデータセットフォーマット
Ultralytics YOLOフォーマット
Ultralytics YOLOフォーマットは、データセットのルートディレクトリ、トレーニング/検証/テスト用画像ディレクトリや画像パスを含む*.txtファイルへの相対パス、およびクラス名の辞書を定義できるデータセット構成フォーマットです。以下に例を示します。
# 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枚につき1つの*.txtファイルを作成し、YOLOフォーマットでエクスポートする必要があります。画像内にオブジェクトがない場合、*.txtファイルは不要です。*.txtファイルは、オブジェクト1つにつき1行、class x_center y_center width heightの形式で記述します。ボックスの座標は正規化されたxywh形式(0から1の範囲)である必要があります。ボックスがピクセル単位の場合は、x_centerとwidthを画像幅で、y_centerとheightを画像高さで割る必要があります。クラス番号は0から始まるインデックスにする必要があります。

上の画像に対応するラベルファイルには、2人の人物(クラス0)とネクタイ1つ(クラス27)が含まれています。

Ultralytics YOLOフォーマットを使用する場合は、以下のCOCO8データセットの例のように、トレーニング用画像と検証用画像およびラベルを整理してください。

使用例
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行目):タスクタイプ、クラス名、一般的な情報などのデータセットメタデータが含まれます。
- 画像レコード(以降の行):寸法、アノテーション、ファイルパスなどの個別の画像データが含まれます。
{
"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つのファイルに収められています。
- ストリーミング:すべてをメモリに読み込むことなく、大規模なデータセットを1行ずつ処理できます。
- クラウド統合:クラウドベースのトレーニング用にリモート画像URLをサポートしています。
- 拡張性:カスタムメタデータフィールドの追加が容易です。
- バージョン管理:単一ファイル形式のため、gitやバージョン管理システムと相性が良いです。
サポートされているデータセット
サポートされているデータセットのリストと各データセットの簡単な説明は以下の通りです。
- African-wildlife:バッファロー、ゾウ、サイ、シマウマなど、アフリカの野生生物の画像を含むデータセットです。
- Argoverse:都市環境からの3Dトラッキングおよびモーション予測データを含む、豊富なアノテーション付きデータセットです。
- Brain-tumor:脳腫瘍検出用のデータセットで、MRIまたはCTスキャン画像に、腫瘍の有無、位置、特徴に関する詳細が含まれています。
- COCO:Common Objects in Context (COCO) は、80のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、およびキャプション付けデータセットです。
- COCO8:COCO trainおよびCOCO valの最初の4枚の画像からなる小さなサブセットで、迅速なテストに適しています。
- COCO8-Grayscale:RGBをグレースケールに変換して作成されたCOCO8のグレースケール版で、シングルチャネルモデルの評価に役立ちます。
- COCO8-Multispectral:RGB波長を補間して作成された10チャネルのマルチスペクトル版COCO8で、スペクトルを考慮したモデルの評価に役立ちます。
- COCO12-Formats:画像読み込みパイプラインを検証するための、すべてのサポートされている画像フォーマット(AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP)を網羅した12枚の画像を持つテストデータセットです。
- COCO128:COCO trainおよびCOCO valの最初の128枚の画像からなる小さなサブセットで、テストに適しています。
- Construction-PPE:ヘルメット、ベスト、手袋、ブーツ、ゴーグルなどの安全装備がラベル付けされた建設現場作業員のデータセットで、実世界のコンプライアンス監視のためにno_helmet、no_googlesといった装備不足のアノテーションも含まれています。
- Global Wheat 2020:Global Wheat Challenge 2020向けの小麦の穂の画像を含むデータセットです。
- HomeObjects-3K:ベッド、椅子、テレビなどの屋内家庭用品のデータセットで、スマートホームオートメーション、ロボット工学、拡張現実、部屋のレイアウト分析などのアプリケーションに最適です。
- KITTI:ステレオカメラ、LiDAR、GPS/IMUデータを含む実世界の運転シーンを特徴とするデータセットです。ここでは、都市、農村、高速道路環境における自動車、歩行者、自転車を特定する2Dオブジェクト検出タスクに使用されます。
- LVIS:1203のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプション付けデータセットです。
- Medical-pills:製薬の品質保証、錠剤の選別、規制コンプライアンスなどの用途でアノテーションされた、医療用錠剤の画像を含むデータセットです。
- Objects365:365のオブジェクトカテゴリと60万枚以上のアノテーション付き画像を備えた、高品質で大規模なオブジェクト検出用データセットです。
- OpenImagesV7:Googleによる包括的なデータセットで、170万枚のトレーニング用画像と4万2000枚の検証用画像を含みます。
- Roboflow 100:包括的なモデル評価のために、7つの画像領域にまたがる100のデータセットを備えた多様なオブジェクト検出ベンチマークです。
- Signature:署名がアノテーションされたさまざまな文書画像を含むデータセットで、文書検証および不正検出の研究をサポートします。
- SKU-110K:小売環境における高密度オブジェクト検出を特徴とするデータセットで、1万1000枚以上の画像と170万個のバウンディングボックスが含まれています。
- TT100K:10万枚のストリートビュー画像と3万枚以上の注釈付き交通標識を含むTsinghua-Tencent 100K (TT100K) 交通標識データセットで、堅牢な検出および分類を試してください。
- VisDrone:ドローンで撮影された画像からなる、1万枚以上の画像および動画シーケンスを含むオブジェクト検出およびマルチオブジェクトトラッキングデータ用のデータセットです。
- VOC:オブジェクト検出およびセグメンテーションのためのPascal Visual Object Classes (VOC) データセットで、20のオブジェクトクラスと1万1000枚以上の画像を含みます。
- 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データセットの例を参照してください。
COCOデータセットをYOLOフォーマットに変換するにはどうすればよいですか?
COCOデータセットは、Ultralytics変換ツールを使用してYOLOフォーマットに変換できます。迅速な方法は以下の通りです。
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ブログをご覧ください。そこでは、YOLO26を使用したオブジェクト検出、セグメンテーションなどを紹介するケーススタディ、詳細なチュートリアル、コミュニティストーリーを見つけることができます。具体的な例については、ドキュメントの使用法セクションを確認してください。