Ultralytics YOLO27:

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

堅牢で高精度な物体検出モデルのトレーニングには、包括的なデータセットが必要です。このガイドでは、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

train、val、testにはそれぞれ、ディレクトリ、ディレクトリのリスト、または1行につき1つの画像パスを記載した*.txtファイルを指定できます(./で始まるパスは、*.txtファイルを基準に解決されます)。*.txtファイルを使用すると、ディレクトリ内の一部のデータだけでトレーニングする、ラベルのない画像を除外する、複数のソースの画像を1つの分割にまとめるといったことができます。

`*.txt`ファイルで指定する画像パス
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から開始)にします。

YOLO labeled image with bounding boxes on persons and tie

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

YOLO format label file with normalized coordinates

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

YOLO dataset directory structure with train and val folders

使用例#

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

例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n.pt")  # 事前トレーニング済みモデルを読み込みます(トレーニングにはこちらを推奨します)

# モデルをトレーニングする
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Ultralytics NDJSON形式#

NDJSON(改行区切りJSON)形式は、Ultralytics YOLOモデルのデータセットを定義する別の方法です。この形式では、データセットのメタデータとアノテーションが1つのファイルに保存され、各行に個別のJSONオブジェクトが記述されます。

NDJSONデータセットファイルには、次の情報が含まれます。

  1. データセットレコード(1行目): タスクの種類、クラス名、一般情報など、データセットのメタデータが含まれます。
  2. 画像レコード(2行目以降): 各画像のサイズ、アノテーション、ファイルパスなどのデータが含まれます。
NDJSONの例
{
    "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"
}

カスタム画像メタデータ#

各画像レコードには、撮影条件、機器ID、レビュー状況など、アプリケーション固有のコンテキストを記述する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

# モデルを読み込む
model = YOLO("yolo26n.pt")

# NDJSONデータセットを使用してトレーニング
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

NDJSON形式のメリット#

  • 単一ファイル: データセットのすべての情報を1つのファイルに格納できます。
  • ストリーミング: すべてをメモリに読み込まずに、大規模なデータセットを1行ずつ処理できます。
  • クラウド連携: クラウドベースのトレーニングで、リモート画像URLをサポートします。
  • 拡張性: カスタムメタデータフィールドを簡単に追加できます。
  • バージョン管理: 単一ファイル形式のため、gitやバージョン管理システムとの相性が良好です。

サポート対象のデータセット#

以下は、サポート対象のデータセットとその概要です。これらの多くはUltralytics Platformでもホスティングされており、画像やアノテーションの閲覧、データセット統計の確認、クラウドトレーニング用のクローン作成ができます。

  • African-wildlife: バッファロー、ゾウ、サイ、シマウマなど、アフリカの野生動物の画像を含むデータセットです。
  • Argoverse: 8種類の道路上の物体クラスを対象とする、54,446枚の都市部の自動運転画像からなるArgoverse-HD 2D検出データセットです。
  • Brain-tumor: 脳腫瘍の検出用データセットです。腫瘍の有無、位置、特徴に関する情報を含むMRIまたはCTスキャン画像が収録されています。
  • COCO: 文脈における一般的な物体(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:1,203種類の物体カテゴリを含む、大規模な物体検出およびインスタンスセグメンテーション用データセットです。
  • Medical-pills: 医薬品の品質保証、錠剤の仕分け、規制遵守などの用途に向けてアノテーションされた、医薬品の錠剤画像を含むデータセットです。
  • Objects365: 365の物体カテゴリと170万枚を超えるトレーニング画像を含む、高品質で大規模な物体検出用データセットです。
  • OpenImagesV7:Googleが提供する包括的なデータセットで、トレーニング画像170万枚、検証画像4万2,000枚を収録しています。
  • Roboflow 100:包括七个画像ドメインにわたる100個のデータセットを収録した、多様な物体検出ベンチマークです。包括的なモデル評価に利用できます。
  • Signature:署名にアノテーションが付与されたさまざまな文書の画像を含むデータセットで、文書の検証や不正検出の研究を支援します。
  • SKU-110K:小売環境での高密度物体検出を特徴とするデータセットで、11K枚を超える画像と170万個のバウンディングボックスを収録しています。
  • TT100K:Tsinghua-Tencent 100K(TT100K)交通標識データセットをご覧ください。221種類の標識カテゴリにわたる16,817枚のストリートビュー画像を収録し、堅牢な検出と分類に役立ちます。
  • VisDrone:ドローンで撮影された画像を基にした物体検出およびマルチオブジェクトトラッキングデータセットで、1万枚を超える画像と動画シーケンスを含みます。
  • VOC:物体検出とセグメンテーション向けのPascal Visual Object Classes(VOC)データセットで、20種類の物体クラスと11K枚を超える画像を収録しています。
  • xView:60種類の物体カテゴリと100万個を超えるアノテーション付き物体を含む、上空から撮影した画像向けの物体検出データセットです。

独自のデータセットを追加する#

独自のデータセットをお持ちで、Ultralytics YOLO形式を使用して検出モデルのトレーニングを行う場合は、「Ultralytics YOLO format」で前述した形式に準拠していることを確認してください。アノテーションを必要な形式に変換し、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モデルファミリーで選択肢を比較できます。

よくある質問#

  • 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データセットの例をご覧ください。

  • 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")  # 事前トレーニング済みモデルを読み込む
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    CLIコマンドを含む各種モードの使用方法について詳しくは、使用方法セクションをご覧ください。

  • Ultralyticsは、さまざまな用途でYOLO26を使用するための数多くの例や実践ガイドを提供しています。包括的な概要については、Ultralyticsブログをご覧ください。YOLO26による物体検出、セグメンテーションなどを紹介する事例、詳細なチュートリアル、コミュニティストーリーを掲載しています。具体的な例については、ドキュメントのPredictモードページをご確認ください。

コメント