Link to this sectionCityscapes データセット#
Cityscapesデータセットは、ヨーロッパの50都市で撮影された都市のストリートシーンを収録した大規模なセマンティックセグメンテーションベンチマークであり、19のクラスにわたる2,975枚の高精度なアノテーション付きトレーニング画像と500枚の検証画像で構成されています。Ultralytics YOLOモデルを用いた自動運転研究や都市環境の理解において、最も広く利用されているデータセットの一つです。
Link to this section主な特徴#
- Cityscapesの高精度アノテーションには、19クラスにわたる2,975枚のトレーニング画像と500枚の検証画像が含まれます。アーカイブには1,525枚のテスト画像も同梱されていますが、公開されているマスクには自車両(ego-vehicle)と画像境界のみがラベル付けされており、実際のクラスアノテーションは非公開です。公式のテストセットスコアを得るには、予測結果をCityscapes評価サーバーに提出する必要があります。
- このデータセットは、フラット(平面)、人間、車両、構築物、物体、自然、空の各カテゴリにまたがる19の評価クラスを網羅しています。
- Cityscapes は、セマンティックセグメンテーション向けのmean Intersection over Union (mIoU) のような標準化された評価指標を提供しており、モデルパフォーマンスの効率的な比較を可能にします。
- ~11 GBの手動ダウンロードを行う前に、8枚の画像で構成されるCityscapes8サブセットを使用してトレーニングパイプラインの健全性を確認してください。
Link to this sectionデータセットの構造#
Ultralytics の設定では、準備後に以下のレイアウトが想定されています:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Cityscapesには自動アーカイブダウンロード機能はありません。Cityscapesウェブサイトでアカウントを作成し、leftImg8bit_trainvaltest.zipとgtFine_trainvaltest.zipのアーカイブ(合計~11 GB)をダウンロードして、両方をcityscapesデータセットのルートディレクトリに展開してください。Ultralyticsは、初回トレーニング時に自動的にこれらをimages/およびmasks/レイアウトに再構成します。
セマンティックマスクはシングルチャンネルのPNGファイルです。元のCityscapesラベルIDは、label_mappingセクションを通じて標準的な19のトレーニングIDにマッピングされ、無視または無効(void)とされるラベルは255にマッピングされるため、トレーニングや評価から除外されます。
公開されているgtFine/testマスクは、自車両と画像境界領域のみをラベル付けしており、他のすべてのクラスは無効です。ローカル評価のためにval分割データでmIoUを計算してください。公式のテストセットスコアを得るには、予測結果をCityscapes評価サーバーに提出する必要があります。
Link to this sectionアプリケーション#
Cityscapes は、セマンティックセグメンテーションにおけるディープラーニングモデルの学習および評価、特に自動運転、先進運転支援システム (ADAS)、および都市ロボティクスにおいて広く利用されています。
高解像度画像と詳細なアノテーションにより、リアルタイムのシーン解析、車線や障害物の理解、および複雑な都市環境におけるピクセル単位の詳細な理解を必要とするあらゆるタスクの研究に役立ちます。事前学習済みのYOLO26セマンティックセグメンテーションモデルは、Cityscapes検証セットで最大83.6 mIoUに達します。詳細なベンチマーク表については、セマンティックセグメンテーションモデルページを参照してください。Cityscapesのアノテーションは、データセットの閲覧や管理のためにUltralytics Platformでも利用可能です。
Link to this sectionデータセット YAML#
データセットの YAML ファイルは、Cityscapes のパス、クラス、マスクディレクトリ、およびラベルマッピングを定義します。cityscapes.yaml ファイルは https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml で管理されています。
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Cityscapes semantic segmentation dataset (19 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/cityscapes
# Example usage: yolo semantic train data=cityscapes.yaml model=yolo26n-sem.pt
# parent
# ├── ultralytics
# └── datasets
# └── cityscapes ← downloads here (11 GB)
# └── images
# └── masks
# Dataset root directory
path: cityscapes # dataset root dir
train: images/train # train images (relative to 'path') 2975 images
val: images/val # val images (relative to 'path') 500 images
test: images/test # test images (relative to 'path') 1525 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
# Preparation script (requires manual Cityscapes download)
download: |
from pathlib import Path
from shutil import copy2
cityscapes_dir = Path(yaml["path"]) # dataset root dir
# Download and extract the official Cityscapes leftImg8bit and gtFine archives into cityscapes_dir first.
leftimg8bit_dir = cityscapes_dir / "leftImg8bit"
gtfine_dir = cityscapes_dir / "gtFine"
for split in ("train", "val", "test"):
print(f"Processing {split} set")
src_image_dir = leftimg8bit_dir / split
dst_image_dir = cityscapes_dir / "images" / split
dst_mask_dir = cityscapes_dir / "masks" / split
dst_image_dir.mkdir(parents=True, exist_ok=True)
dst_mask_dir.mkdir(parents=True, exist_ok=True)
image_paths = sorted(src_image_dir.rglob("*_leftImg8bit.png"))
for image_path in image_paths:
relative_path = image_path.relative_to(src_image_dir)
mask_path = gtfine_dir / split / relative_path.parent / image_path.name.replace(
"_leftImg8bit.png", "_gtFine_labelIds.png"
)
if not mask_path.exists():
raise FileNotFoundError(f"Mask not found for {image_path}: {mask_path}")
image_name = image_path.name.replace("_leftImg8bit", "")
mask_name = mask_path.name.replace("_gtFine_labelIds", "")
copy2(image_path, dst_image_dir / image_name)
copy2(mask_path, dst_mask_dir / mask_name)Link to this section使用方法#
YOLO26n-sem モデルを Cityscapes データセットで100 エポック、画像サイズ 1024 で学習するには、以下のコードスニペットを使用できます。利用可能な引数の包括的なリストについては、モデルのトレーニングページを参照してください。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)Link to this section引用、ライセンス、謝辞#
Cityscapesはカスタム非商用ライセンスの下で公開されています。学術的な研究や評価には無料で使用できますが、商用利用、ライセンス供与、またはデータの再配布にはCityscapesチームからの個別の許可が必要です。
研究や開発作業で Cityscapes データセットを使用する場合は、以下の論文を引用してください:
@inproceedings{Cordts2016Cityscapes,
title={The Cityscapes Dataset for Semantic Urban Scene Understanding},
author={Cordts, Marius and Omran, Mohamed and Ramos, Sebastian and Rehfeld, Timo and Enzweiler, Markus and Benenson, Rodrigo and Franke, Uwe and Roth, Stefan and Schiele, Bernt},
booktitle={Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2016}
}自動運転およびコンピュータビジョンコミュニティのためのこの貴重なリソースを作成・維持してくださっている Cityscapes チームに感謝いたします。Cityscapes データセットとその作成者の詳細については、Cityscapes データセットウェブサイトをご覧ください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionCityscapes データセットとは何か、なぜコンピュータビジョンにおいて重要なのか?#
Cityscapesデータセットは、ヨーロッパの50都市にわたる都市ストリートシーンの大規模なセマンティックセグメンテーションベンチマークであり、自動運転やADAS研究の標準的なリファレンスとして広く使用されています。19の高精度にアノテーションされた評価クラス、高解像度画像、および標準化された平均Intersection over Union(mIoU)メトリクスにより、詳細なシーン理解モデルのベンチマークとして最も引用されているデータセットの一つとなっています。
Link to this sectionCityscapes データセットを使用して YOLO モデルを学習するにはどうすればよいか?#
YOLO26n-sem モデルを Cityscapes データセットで 100 エポック、画像サイズ 1024 で学習するには、以下のコードスニペットを使用できます。利用可能な引数の詳細なリストについては、モデルのトレーニングページを参照してください。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)Link to this sectionCityscapes データセットはどのように構成されているか?#
準備が完了すると、データセットはimages/{train,val,test}/およびmasks/{train,val,test}/ディレクトリに整理され、各画像はシングルチャンネルのPNGマスクとペアになります。UltralyticsのYAMLファイルは、masks_dir: masksフィールドを通じて各画像とマスクをペアリングし、label_mappingを使用して元のCityscapesラベルIDを標準の19の連続したトレーニングIDに変換し、無視または無効なラベルを255にマッピングします。test分割のマスクは自車両と境界領域のみをラベル付けしているため、ローカルのmIoU確認にはvalを使用してください。
Link to this sectionCityscapes は手動でダウンロードする必要があるか?#
はい。Cityscapesウェブサイトでアカウントを作成し、leftImg8bit_trainvaltest.zipとgtFine_trainvaltest.zipのアーカイブ(合計~11 GB)をダウンロードしてください。両方をcityscapesデータセットのルートに展開すると、Ultralyticsは初回トレーニング時に自動的に期待されるimages/およびmasks/レイアウトへ再構成します。
Link to this sectionなぜ Cityscapes は label_mapping を使用するのか?#
Cityscapes のソースマスクには、評価に使用される 19 の学習 ID とは異なるオリジナルのラベル ID が格納されています。label_mapping セクションは有効なラベルを連続したクラス ID 0~18 に変換し、無視または無効なラベルを 255 に割り当てることで、学習および検証中の損失計算と指標算出からそれらが除外されるようにします。
Link to this sectionCityscapesデータセットは商用利用が無料ですか?#
いいえ。Cityscapesは非商用ライセンスの下でリリースされており、学術研究、教育、評価は許可されていますが、商用利用、ライセンス供与、またはデータセットや派生作品の販売は禁止されています。商用ライセンスのオプションについては、Cityscapesチームに直接お問い合わせください。