物体検出データセットの概要#
堅牢で高精度な物体検出モデルをトレーニングするには、包括的なデータセットが必要です。このガイドでは、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.ziptrain、val、testはそれぞれ、ディレクトリ、ディレクトリのリスト、または1行に1つの画像パスを記載した*.txtファイルを受け取ります(./で始まるパスは、*.txtファイルを基準に解決されます)。*.txtファイルは、ディレクトリの一部だけを使用してトレーニングする場合、ラベルのない画像を除外する場合、または複数のソースの画像を1つの分割にまとめる場合に便利です。
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personこの形式のラベルは、画像ごとに1つの*.txtファイルを使用するYOLO形式でエクスポートしてください。画像内にオブジェクトがない場合、*.txtファイルは必要ありません。*.txtファイルは、class x_center y_center width height形式でオブジェクトごとに1行となるように記述します。ボックス座標は正規化されたxywh形式(0~1)で指定する必要があります。ボックスがピクセル単位の場合は、x_centerとwidthを画像幅で、y_centerとheightを画像高さで割ってください。クラス番号は0始まりにしてください(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(改行区切りJSON)形式は、Ultralytics YOLOモデル用のデータセットを定義する別の方法です。この形式では、データセットのメタデータとアノテーションを1つのファイルに保存し、各行に個別のJSONオブジェクトを記述します。
NDJSONデータセットファイルには、次の情報が含まれます。
- データセットレコード(1行目):タスクの種類、クラス名、一般情報などのデータセットメタデータを含みます
- 画像レコード(以降の行):各画像のサイズ、アノテーション、ファイルパスなどのデータを含みます
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.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"
}カスタム画像メタデータ#
各画像レコードには、撮影条件、機器識別子、レビュー状態など、アプリケーション固有のコンテキスト用にmetadata JSONオブジェクトを含めることができます。ネストされた値にも対応しています。Ultralytics Platformにインポートすると、メタデータはその画像とともに保存され、全画面の情報パネルから表示または編集できます。
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}Platformでは、最上位のメタデータキーを128文字、各画像のシリアライズされたメタデータオブジェクトを500,000文字、1回のNDJSONインポートにおける有効なメタデータの合計を500,000文字に制限しています。
使用例#
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やバージョン管理システムとの相性が良好です
サポートされているデータセット#
以下は、サポートされているデータセットのリストと、それぞれの簡単な説明です。これらのデータセットのほとんどは Ultralytics Platform でもホストされており、画像やアノテーションの閲覧、データセットの統計情報の確認、クラウド学習用のクローンを行うことができます。
- African-wildlife:バッファロー、ゾウ、サイ、シマウマなど、アフリカの野生動物の画像を収録したデータセットです。
- Argoverse:豊富なアノテーションを備えた、都市環境の3Dトラッキングおよび動き予測データを含むデータセットです。
- Brain-tumor:脳腫瘍の検出用データセットで、腫瘍の有無、位置、特徴に関する情報を含むMRIまたはCTスキャン画像を収録しています。
- COCO:Common Objects in Context(COCO)は、80のオブジェクトカテゴリを含む大規模な物体検出、セグメンテーション、キャプション生成用データセットです。
- COCO8: COCO train2017の最初の8枚の画像(トレーニング用4枚、検証用4枚)からなる小さめのサブセットであり、クイックテストに適しています。
- COCO8-Grayscale:RGBをグレースケールに変換して作成したCOCO8のグレースケール版で、単一チャネルモデルの評価に役立ちます。
- COCO8-Multispectral:RGBの波長を補間して作成した10チャネルのCOCO8マルチスペクトル版で、スペクトル対応モデルの評価に役立ちます。
- COCO12-Formats:画像読み込みパイプラインの検証用テストデータセットで、12種類のサポート対象画像形式(AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WebP)を収録した12枚の画像で構成されています。
- COCO16:COCO train2017の最初の16枚(トレーニング8枚+検証8枚)のサブセットで、クイックテストに適しています。
- COCO32:COCO train2017の最初の32枚(トレーニング16枚+検証16枚)のサブセットで、クイックテストに適しています。
- COCO64:COCO train2017の最初の64枚(トレーニング32枚+検証32枚)のサブセットで、クイックテストに適しています。
- COCO128:COCO train2017の最初の128枚の画像からなる小規模なサブセットで、テストに適しています。
- Construction-PPE:ヘルメット、ベスト、手袋、ブーツ、ゴーグルなどの安全装備を装着した建設現場作業員を収録したデータセットです。実環境でのコンプライアンス監視向けに、no_helmetやno_goggleなどの装備欠落アノテーションも含まれています。
- 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万2千枚の検証画像を含みます。
- Roboflow 100:7つの画像ドメインにまたがる100個のデータセットで構成された、多様な物体検出ベンチマークです。包括的なモデル評価に利用できます。
- Signature:署名がアノテーションされたさまざまな文書画像を含むデータセットで、文書検証や不正検出の研究を支援します。
- SKU-110K:小売環境における密集した物体検出を扱うデータセットで、11K枚を超える画像と170万個のバウンディングボックスを収録しています。
- TT100K:Tsinghua-Tencent 100K(TT100K)交通標識データセットを使用できます。221種類の標識カテゴリにわたる16,817枚のストリートビュー画像を収録し、堅牢な検出と分類に適しています。
- 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モデルとの互換性を確保します。クラスIDのマッピング、ディレクトリ構成、セグメンテーションまたはポーズアノテーションを含む完全なワークフローについては、COCOアノテーションをYOLOに変換を参照してください。
使用するデータセットがモデルと互換性があり、必要な形式の規則に従っているか、必ず再確認してください。適切に形式化されたデータセットは、物体検出モデルのトレーニングを成功させるうえで重要です。
次のステップ#
データセットの形式を整えたら、モデルのトレーニングを開始してください。どの事前トレーニング済みモデルから始めればよいかわからない場合は、YOLO26モデルファミリーで選択肢を比較できます。
FAQ#
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ラベルは、画像ごとに1つの
*.txtファイルに保存し、正規化された座標を含むclass x_center y_center width height形式で記述します。詳しいガイドについては、COCO8データセットの例を参照してください。Ultralytics変換ツールを使用して、COCOデータセットをYOLO形式に変換できます。簡単な方法は次のとおりです。
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")このコードはCOCOアノテーションをYOLO形式に変換し、Ultralytics YOLOモデルとシームレスに統合できるようにします。詳しくは、ラベル形式の移植または変換セクションを参照してください。
Ultralytics YOLOは、次のような幅広いデータセットをサポートしています。
各データセットのページでは、効率的な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は、さまざまな用途でYOLO26を使用するための例や実践的なガイドを多数提供しています。包括的な概要については、Ultralytics Blogをご覧ください。ここでは、YOLO26を使用した物体検出、セグメンテーションなどのケーススタディ、詳細なチュートリアル、コミュニティの事例を確認できます。具体的な例については、ドキュメントの使用方法セクションを参照してください。