エンタープライズ対応のセキュリティ: ISO 27001 + SOC 2 Type I準拠。

Link to this sectionセマンティックセグメンテーションデータセットの概要#

セマンティックセグメンテーションは、画像のすべてのピクセルに1つのクラスラベルを割り当てます。インスタンスセグメンテーションとは異なり、セマンティックセグメンテーションでは同じクラスの個々のオブジェクトを分離しません。学習ターゲットは、各ピクセルがクラスIDを保持する密なクラスマップです。

このガイドでは、Ultralytics YOLOセマンティックセグメンテーションモデルで使用されるデータセット形式を説明し、学習と検証に利用可能な組み込みのデータセット設定を一覧表示します。

Link to this sectionサポートされているデータセット形式#

2種類のラベルフォーマットがサポートされています。データセットローダーは、データセットのYAMLで masks_dir キーが定義されている場合、またはデータセットのルートディレクトリにある画像フォルダの隣に masks/ フォルダが存在する場合にPNGマスクを読み込みます。それ以外の場合は、YOLOポリゴンラベルを使用します。

Link to this sectionPNGマスク形式#

セマンティックセグメンテーションデータセットは、サンプルごとに1つの画像ファイルと1つのマスクファイルを使用します。マスクは通常PNG形式のシングルチャネル画像であり、各ピクセル値は対応する画像ピクセルのクラスインデックスとなります。

  • ピクセル値012、...は、データセットのnamesマッピングからのクラスIDを表します。
  • ピクセル値255は無視ラベルとして扱われ、損失およびメトリック計算から除外されます。
  • マスクファイルは、対応する画像ファイルと同じファイル名(拡張子を除く)を使用する必要があります。例:frankfurt_000000_000294.png
  • Masks are resolved as .png by default; if missing, other supported image extensions are also accepted. Use lossless formats such as .png or .tiff, since lossy compression (e.g. .jpg) corrupts the class ID pixel values.

デフォルトのレイアウトでは、画像とマスクを並列のフォルダーに保持します。データセットYAMLのmasks_dir値は、マスクを見つけるためにimagesパスコンポーネントを置換します。

dataset/
├── images/
│   ├── train/
│   └── val/
└── masks/
    ├── train/
    └── val/

For example, an image at images/train/aachen_000000_000019.png is paired with a mask at masks/train/aachen_000000_000019.png when masks_dir: masks.

Link to this sectionYOLOポリゴンラベル形式#

データセットにすでにUltralytics YOLOポリゴンラベル(画像1枚につき1つの.txtファイルに<class-index> <x1> <y1> <x2> <y2> ...の行があるもの)がある場合は、PNGマスクへの変換なしで直接セマンティックセグメンテーションを学習できます。行レベルのレイアウトについては、インスタンスセグメンテーションのデータセット形式を参照してください。

このパスは、データセットのYAMLで masks_dir省略され、かつデータセットのルートに masks/ フォルダが存在しない場合に自動的に選択されます。不要な masks/ フォルダがある場合は削除または名前を変更してください。そうしないと、ローダーがPNGマスクモードに切り替わり、そのフォルダ内を検索してしまいます。動作は以下の通りです。

  • ポリゴンはロード時に画像ごとのセマンティックマスクに変換され、重なり領域では小さなオブジェクトが大きなオブジェクトを上書きするように面積順でソートされます。
  • Multi-class (N > 1 in names): an extra background class is appended after your declared classes for pixels not covered by any polygon. The model is built with N + 1 output channels and the last channel is background.
  • Single-class (N == 1 in names): still trained as 1 class. The mask is binary, with your declared class shown as 1 and pixels not covered by any polygon as 0. No extra background class is added to names.
  • オーギュメンテーションのパディング(例:ランダムクロップ)によって追加されたピクセルは、無視ラベルとして255を使用します。

データがすでにインスタンスポリゴンとしてラベル付けされており、同じファイルからセマンティックセグメンテーションモデルを作成したい場合、このパスを使用してください。

Link to this sectionデータセットYAML形式#

セマンティックセグメンテーションデータセットはYAMLファイルで構成されます。主なフィールドは以下の通りです:

キー説明
pathデータセットのルートディレクトリ。
trainpathからの相対的な学習画像パス、または絶対パス。
valpathからの相対的な検証画像パス、または絶対パス。
testオプションのテスト画像パス。
masks_dirセマンティックマスクに使用されるディレクトリ名です。このキーを省略し(かつデータセットのルートに masks/ フォルダを置かないようにする)、YOLOポリゴンラベルフォーマットに切り替えてください。
namesクラスIDからクラス名へのマッピング。
label_mappingソースデータセットのIDから学習IDまたはignore_labelへのオプションのマッピング。
ultralytics/cfg/datasets/cityscapes8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Cityscapes semantic segmentation dataset (19 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/cityscapes8
# Example usage: yolo semantic train data=cityscapes8.yaml model=yolo26n-sem.pt
# parent
# ├── ultralytics
# └── datasets
#     └── cityscapes8 ← downloads here (small subset)
#         └── images
#         └── masks

# Dataset root directory
path: cityscapes8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

masks_dir: masks # semantic mask directory

# Cityscapes 19-class labels
names:
  0: road
  1: sidewalk
  2: building
  3: wall
  4: fence
  5: pole
  6: traffic light
  7: traffic sign
  8: vegetation
  9: terrain
  10: sky
  11: person
  12: rider
  13: car
  14: truck
  15: bus
  16: train
  17: motorcycle
  18: bicycle

# Map source label IDs to train IDs; ignore_label is converted to 255.
label_mapping:
  -1: ignore_label
  0: ignore_label
  1: ignore_label
  2: ignore_label
  3: ignore_label
  4: ignore_label
  5: ignore_label
  6: ignore_label
  7: 0
  8: 1
  9: ignore_label
  10: ignore_label
  11: 2
  12: 3
  13: 4
  14: ignore_label
  15: ignore_label
  16: ignore_label
  17: 5
  18: ignore_label
  19: 6
  20: 7
  21: 8
  22: 9
  23: 10
  24: 11
  25: 12
  26: 13
  27: 14
  28: 15
  29: ignore_label
  30: ignore_label
  31: 16
  32: 17
  33: 18

# Download URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/cityscapes8.zip

ソースマスクのIDが連続した学習クラスIDと一致しない場合は、label_mappingを使用してください。CityscapesおよびADE20Kには、元のラベルIDをYOLOセマンティックセグメンテーション学習IDに変換し、未使用のラベルを無視するマッピングが含まれています。

Link to this section使用方法#

PythonまたはCLIを使用してYOLO26セマンティックセグメンテーションモデルを学習します:

from ultralytics import YOLO

# Load a pretrained semantic segmentation model
model = YOLO("yolo26n-sem.pt")

# Train on the Cityscapes8 semantic segmentation dataset
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

Link to this sectionサポートされているデータセット#

Ultralyticsは、これらのデータセット用にセマンティックセグメンテーション用のデータセットYAMLファイルを提供しています。事前学習済みモデルのベンチマークテーブルの詳細は、セマンティックセグメンテーションのタスクページを参照してください。

  • Cityscapes: 19の学習クラスを持つ都市のストリートシーンのセマンティックセグメンテーションデータセット。
  • Cityscapes8: クイックテストおよびCIチェック用の8画像Cityscapesサブセット。
  • ADE20K: 150のセマンティッククラスを持つシーン解析データセット。

Link to this section独自のデータセットを追加する#

Link to this sectionオプションA — PNGマスク#

  1. images/trainimages/valなどの分割フォルダーの下に画像を保存します。
  2. 画像1枚につき1つのシングルチャネルマスクを、masks/trainmasks/valなどのミラーリングされたマスクフォルダーの下に保存します。
  3. マスクのピクセル値がクラスIDであることを確認してください。無視されるべきピクセルには255を使用してください。
  4. pathtrainvalmasks_dirnamesを含むデータセットYAMLを作成します。
  5. マスクIDを連続した学習IDに変換する必要がある場合にのみ、label_mappingを追加します。
path: path/to/my-semantic-dataset
train: images/train
val: images/val
masks_dir: masks

names:
    0: background
    1: road
    2: building

Link to this sectionオプションB — ポリゴンラベル#

  1. 画像と .txt ポリゴンファイルを、インスタンスセグメンテーション と全く同じように配置してください。
  2. pathtrainvalnamesを含むデータセットYAMLを作成します。masks_dirは省略してください
  3. データセットのルートにある画像フォルダの隣に masks/ フォルダが存在しないことを確認してください。YAMLに masks_dir が指定されていなくても、フォルダが存在するだけでローダーがPNGマスクモードに切り替わります。
  4. namesに「background」エントリを追加しないでください。マルチクラスデータセットの場合、ローダーが自動的に追加します。シングルクラスデータセットの場合、学習は1クラスのままとなり、宣言されたクラスはマスク内で1になり、カバーされていないピクセルは0になります。
path: path/to/my-polygon-dataset
train: images/train
val: images/val

names:
    0: person
    1: car

Ultralytics Platform では、セマンティックタスク用のポリゴンアノテーションツールや、SAMを利用したスマートアノテーションを提供しています。ブラウザ上で直接アノテーションを行い、このレイアウトを手動で設定することなく、結果として得られたポリゴンラベル付きデータセットをエクスポートしたり、学習に使用したりできます。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionセマンティックセグメンテーションマスクとインスタンスセグメンテーションラベルの違いは何ですか?#

セマンティックセグメンテーションマスクは、密なピクセルマップです。各ピクセルがクラスIDを保持し、学習画像1枚につき1つのマスク画像が存在します。Ultralytics YOLOのインスタンスセグメンテーションラベルは、ポリゴン座標を持つテキストファイルを使用し、オブジェクトインスタンスごとに1行が割り当てられます。

Link to this section学習中に無視されるピクセル値は何ですか?#

ピクセル値255が無視ラベルとして使用されます。これらのピクセルは損失およびメトリック計算時にスキップされ、無効な領域、ラベルのないピクセル、または学習ラベルセット外のクラスに役立ちます。

Link to this sectionマスクファイル名は画像ファイル名と一致する必要がありますか?#

Yes. Each semantic mask should have the same file stem as the corresponding image. The dataset loader replaces the images directory component with masks_dir and searches for matching mask files, falling back to other supported image extensions (.jpg, .tiff, etc.) if a .png mask isn't found — though only lossless formats are recommended, since the fallback doesn't enforce this.

Link to this section元のデータセットラベルIDを直接使用できますか?#

はい、それらがすでにnamesクラスIDと一致していれば可能です。ソースデータセットが非連続のIDを使用している場合や、無視すべきラベルが含まれている場合は、label_mappingセクションを追加してソースピクセル値を学習IDに変換してください。

Link to this sectionインスタンスセグメンテーションデータセットを使用してセマンティックセグメンテーションを学習できますか?#

Yes. Instance segmentation datasets use Ultralytics YOLO polygon labels (one .txt per image with <class-index> <x1> <y1> <x2> <y2> ... rows), and the same files can be reused for semantic segmentation — just omit masks_dir from the dataset YAML, and make sure no masks/ folder exists next to your images at the dataset root (its presence alone triggers PNG-mask mode even without masks_dir set). The loader then converts polygons to per-image masks on the fly. For multi-class datasets (N > 1) an extra background class is appended, and the model is built with N + 1 output channels. For single-class datasets (N == 1) training stays at 1 class — the mask shows your declared class as 1 and uncovered pixels as 0.

Link to this sectionセマンティックセグメンテーションのためにUltralyticsに付属しているデータセットは何ですか?#

Ultralyticsには、Cityscapes(19の都市シーンクラス)、パイプラインテスト用の軽量な Cityscapes8 サブセット、および ADE20K(150のシーン解析クラス)ですぐに使用できるデータセットYAMLファイルが含まれています。各ページには、正確なクラスリスト、ダウンロード手順、および検証済みの学習例が記載されています。

コメント