物体検出データセットの概要
ロバストで正確な物体検出モデルのトレーニングには、包括的なデータセットが必要です。このガイドでは、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
このフォーマットのラベルは、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("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
対応データセット
以下は、サポートされているデータセットのリストと、それぞれの簡単な説明です:
- Argoverse:豊富なアノテーションを持つ都市環境の3Dトラッキングとモーション予測データを含むデータセット。
- COCO: Common Objects in Context (COCO)は、80のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプションデータセットである。
- LVIS: 1203のオブジェクトカテゴリを持つ大規模なオブジェクト検出、セグメンテーション、キャプションデータセット。
- COCO8: COCO trainとCOCO valの最初の4枚の画像のサブセット。
- COCO8-グレースケール:RGBをグレースケールに変換して作成されたCOCO8のグレースケール版で、シングルチャンネルのモデル評価に便利。
- COCO8-マルチスペクトル:RGB波長を補間して作成されたCOCO8の10チャンネルマルチスペクトルバージョンで、スペクトルを考慮したモデル評価に有用。
- COCO128: COCO trainとCOCO valの最初の128枚の画像のうち、テストに適した小さいサブセット。
- グローバル小麦2020Global Wheat Challenge 2020のための小麦の頭部画像を含むデータセット。
- Objects365:365の物体カテゴリと600K以上の注釈付き画像を持つ、物体検出のための高品質で大規模なデータセット。
- OpenImagesV7:Google による包括的なデータセットで、1.7Mの訓練画像と42kの検証画像がある。
- SKU-110K: 11Kを超える画像と170万のバウンディングボックスを備えた、小売環境における高密度物体検出を特徴とするデータセット。
- HomeObjects-3K New 🚀: ベッド、椅子、テレビなどを含む屋内家庭用品のデータセット。スマートホームオートメーション、ロボティクス、拡張現実、および部屋のレイアウト分析でのアプリケーションに最適です。
- 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形式に変換できます。このプロセスでは、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画像につき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 ・コマンドを含む各モードの詳細については、「使用法」のセクションを参照のこと。
Ultralytics YOLO を使った物体検出の実用例はどこにありますか?
Ultralytics には、YOLO11 をさまざまなアプリケーションで使用するための、数多くの例と実践的なガイドが掲載されている。包括的な概要については、Ultralytics ブログをご覧ください。YOLO11 を使用したケーススタディ、詳細なチュートリアル、オブジェクト検出、セグメンテーションなどを紹介するコミュニティストーリーをご覧いただけます。具体的な例については、ドキュメントの「使用法」のセクションを確認してください。