YOLO Vision 2026:

Bộ dữ liệu Cityscapes#

Dataset Cityscapes là một benchmark semantic segmentation quy mô lớn về cảnh đường phố đô thị được chụp tại 50 thành phố ở châu Âu, với 2.975 ảnh huấn luyện được chú thích chi tiết và 500 ảnh kiểm định trên 19 lớp. Đây là một trong những dataset được sử dụng rộng rãi nhất cho nghiên cứu lái xe tự động và hiểu cảnh đô thị với các model Ultralytics YOLO.

Tính năng chính#

  • Các chú thích chi tiết của Cityscapes bao gồm 2.975 ảnh huấn luyện và 500 ảnh kiểm định trên 19 lớp; tệp lưu trữ cũng cung cấp 1.525 ảnh kiểm tra, nhưng các mặt nạ được phát hành của chúng chỉ gán nhãn xe tự lái và viền ảnh — các chú thích lớp thực tế bị giữ lại và điểm số tập kiểm tra chính thức yêu cầu gửi dự đoán đến Cityscapes evaluation server.
  • Tập dữ liệu bao gồm 19 lớp đánh giá trải dài trên các danh mục phẳng, con người, phương tiện, xây dựng, đối tượng, thiên nhiên và bầu trời.
  • Cityscapes cung cấp các chỉ số đánh giá chuẩn hóa như mean Intersection over Union (mIoU) cho semantic segmentation, cho phép so sánh hiệu suất model một cách hiệu quả.
  • Trước khi tiến hành tải xuống thủ công ~11 GB, hãy kiểm tra tính hợp lệ của pipeline huấn luyện của bạn với tập con Cityscapes8 gồm 8 ảnh.

Cấu trúc tập dữ liệu#

Cấu hình Ultralytics yêu cầu bố cục sau sau khi chuẩn bị:

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/
Yêu cầu Tải xuống Thủ công

Cityscapes không có tính năng tự động tải xuống tệp lưu trữ. Hãy tạo một tài khoản trên Cityscapes website, sau đó tải xuống các tệp lưu trữ leftImg8bit_trainvaltest.zipgtFine_trainvaltest.zip (tổng cộng ~11 GB) và giải nén cả hai vào thư mục gốc của dataset cityscapes. Ultralytics sẽ tự động sắp xếp lại chúng thành bố cục images/masks/ ở trên vào lần đầu tiên bạn huấn luyện.

Các mặt nạ ngữ nghĩa là các tệp PNG một kênh. Các ID nhãn Cityscapes gốc được ánh xạ tới 19 ID huấn luyện tiêu chuẩn thông qua phần label_mapping, và các nhãn bị bỏ qua hoặc trống được ánh xạ tới 255 để chúng bị loại khỏi quá trình huấn luyện và đánh giá.

Lưu ý

Các mặt nạ gtFine/test được phát hành công khai chỉ gán nhãn cho các vùng xe tự lái và viền ảnh — tất cả các lớp khác đều trống. Tính toán mIoU trên tập chia val để đánh giá cục bộ; điểm số tập kiểm tra chính thức yêu cầu gửi dự đoán đến Cityscapes evaluation server.

Ứng dụng#

Cityscapes được sử dụng rộng rãi để huấn luyện và đánh giá các model deep learning trong semantic segmentation, đặc biệt là cho autonomous driving, hệ thống hỗ trợ người lái nâng cao (ADAS) và robot đô thị.

Các hình ảnh độ phân giải cao và chú thích chi tiết của nó cũng làm cho nó có giá trị cho nghiên cứu phân tích cảnh thời gian thực, hiểu làn đường và vật cản, và bất kỳ tác vụ nào yêu cầu hiểu mức độ điểm ảnh dày đặc của các môi trường đô thị phức tạp. Các model semantic segmentation YOLO26 được huấn luyện trước đạt tới 83,6 mIoU trên tập kiểm định Cityscapes — hãy xem trang semantic segmentation models để có bảng benchmark đầy đủ. Bạn có thể tổ chức, trực quan hóa và quản lý dữ liệu Cityscapes trong suốt vòng đời phát triển model với Ultralytics Platform.

YAML tập dữ liệu#

Một tệp YAML của dataset định nghĩa các đường dẫn, lớp, thư mục mặt nạ và ánh xạ nhãn của Cityscapes. Tệp cityscapes.yaml được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml.

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)

Cách sử dụng#

Để huấn luyện model YOLO26n-sem trên dataset Cityscapes trong 100 epochs với kích thước ảnh là 1024, bạn có thể sử dụng các đoạn mã sau. Để có danh sách đầy đủ các đối số có sẵn, hãy tham khảo trang Training của model.

Ví dụ về Training
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)

Trích dẫn, Giấy phép và Ghi nhận#

Cityscapes được phát hành theo custom non-commercial license — miễn phí cho nghiên cứu học thuật và đánh giá, nhưng việc sử dụng thương mại, cấp phép hoặc phân phối lại dữ liệu đòi hỏi sự cho phép riêng từ nhóm Cityscapes.

Nếu bạn sử dụng bộ dữ liệu Cityscapes trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:

Trích dẫn
@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}
}

Chúng tôi xin cảm ơn nhóm Cityscapes vì đã tạo và duy trì nguồn tài nguyên có giá trị này cho cộng đồng lái xe tự động và thị giác máy tính. Để biết thêm thông tin về dataset Cityscapes và những người tạo ra nó, hãy truy cập Cityscapes dataset website.

Câu hỏi thường gặp#

  • Dataset Cityscapes là một benchmark semantic segmentation quy mô lớn về cảnh đường phố đô thị trên 50 thành phố ở châu Âu, được sử dụng rộng rãi như một tài liệu tham khảo chuẩn cho nghiên cứu lái xe tự động và ADAS. 19 lớp đánh giá được chú thích chi tiết, hình ảnh độ phân giải cao và chỉ số mean Intersection over Union (mIoU) chuẩn hóa của nó làm cho nó trở thành một trong những benchmark được trích dẫn nhiều nhất cho các model hiểu cảnh dày đặc.

  • Để huấn luyện model YOLO26n-sem trên dataset Cityscapes trong 100 epochs với kích thước ảnh là 1024, bạn có thể sử dụng các đoạn mã sau. Để có danh sách chi tiết các đối số có sẵn, hãy tham khảo trang Training của model.

    Ví dụ về Training
    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)
  • Sau khi chuẩn bị, dataset được tổ chức thành các thư mục images/{train,val,test}/masks/{train,val,test}/, với mỗi ảnh được ghép nối với một mặt nạ PNG một kênh. Tệp YAML của Ultralytics ghép nối mỗi ảnh với mặt nạ của nó thông qua trường masks_dir: masks, và sử dụng label_mapping để chuyển đổi các ID nhãn Cityscapes gốc thành 19 ID huấn luyện liên tục tiêu chuẩn, ánh xạ các nhãn bị bỏ qua và trống tới 255. Mặt nạ của tập chia test chỉ gán nhãn các vùng xe tự lái và viền, vì vậy hãy sử dụng val để kiểm tra mIoU cục bộ.

  • Có. Hãy tạo một tài khoản trên Cityscapes website và tải xuống các tệp lưu trữ leftImg8bit_trainvaltest.zipgtFine_trainvaltest.zip (tổng cộng ~11 GB). Giải nén cả hai vào thư mục gốc của dataset cityscapes — Ultralytics sẽ tự động sắp xếp lại chúng thành bố cục images/masks/ dự kiến vào lần đầu tiên bạn huấn luyện.

  • Các mặt nạ nguồn của Cityscapes lưu trữ các ID nhãn gốc khác với 19 ID huấn luyện được sử dụng để đánh giá. Phần label_mapping chuyển đổi các nhãn hợp lệ thành các ID lớp liên tục 018, và gán 255 cho các nhãn bị bỏ qua và trống để chúng bị loại khỏi hàm mất mát và các chỉ số trong quá trình huấn luyện và kiểm định.

  • Không. Cityscapes được phát hành theo non-commercial license cho phép nghiên cứu học thuật, giảng dạy và đánh giá, nhưng cấm sử dụng thương mại, cấp phép hoặc bán dataset hoặc các tác phẩm phái sinh. Hãy liên hệ trực tiếp với nhóm Cityscapes để biết các tùy chọn cấp phép thương mại.

Bình luận