Link to this sectionBộ dữ liệu Cityscapes#
Tập dữ liệu Cityscapes là một benchmark semantic segmentation quy mô lớn về các cảnh quan đường phố đô thị được ghi lại 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 xác thực trên 19 lớp. Đây là một trong những tập dữ liệu đượ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 quan đô thị với các mô hình Ultralytics YOLO.
Link to this sectionTí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 xác thực trên 19 lớp; kho lưu trữ cũng cung cấp 1.525 ảnh kiểm tra, nhưng các mask được phát hành của chúng chỉ dán nhãn xe tự hành và biên ảnh — các chú thích lớp thực tế bị ẩn đi, và điểm tập kiểm tra chính thức yêu cầu gửi dự đoán đến máy chủ đánh giá Cityscapes.
- 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á tiêu chuẩn như mean Intersection over Union (mIoU) cho semantic segmentation, cho phép so sánh hiệu quả hiệu suất của các model.
- Trước khi tải xuống thủ công ~11 GB, hãy kiểm tra quy trình huấn luyện của bạn với tập con Cityscapes8 gồm 8 ảnh.
Link to this sectionCấ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/Cityscapes không có tính năng tải xuống kho lưu trữ tự động. Hãy tạo tài khoản trên trang web Cityscapes, sau đó tải xuống các tệp lưu trữ leftImg8bit_trainvaltest.zip và gtFine_trainvaltest.zip (tổng cộng ~11 GB) và giải nén cả hai vào thư mục gốc của tập dữ liệu cityscapes. Ultralytics sẽ tự động sắp xếp lại chúng vào bố cục images/ và masks/ ở trên vào lần đầu tiên bạn huấn luyện.
Các semantic mask là các tệp PNG một kênh. Các ID nhãn gốc của Cityscapes được ánh xạ sang 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ạ thành 255 để chúng bị loại khỏi quá trình huấn luyện và đánh giá.
Các mask gtFine/test được phát hành công khai chỉ dán nhãn các vùng xe tự hành và biên ảnh — tất cả các lớp khác đều trống. Tính toán mIoU trên tập 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 máy chủ đánh giá Cityscapes.
Link to this sectionỨ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ợ lái xe tiên tiến (ADAS) và robot đô thị.
Hình ảnh có độ phân giải cao và chú thích chi tiết của tập dữ liệu cũng giúp nó trở nên giá trị cho việc nghiên cứu phân tích cảnh quan thời gian thực, hiểu về làn đường và chướng ngại vật, cũng như bất kỳ tác vụ nào yêu cầu sự hiểu biết sâu sắc về mức pixel trong các môi trường đô thị phức tạp. Các mô hình semantic segmentation YOLO26 được huấn luyện trước đạt tới 83.6 mIoU trên tập xác thực Cityscapes — hãy xem trang mô hình semantic segmentation để biết bảng benchmark đầy đủ. Các chú thích của Cityscapes cũng có sẵn trên Ultralytics Platform để duyệt và quản lý tập dữ liệu.
Link to this sectionYAML tập dữ liệu#
Một tệp YAML của bộ dữ liệu xác định các đường dẫn, lớp, thư mục mask 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 🚀 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 sectionCách sử dụng#
Để huấn luyện một model YOLO26n-sem trên bộ dữ liệu Cityscapes trong 100 epochs với kích thước hình ảnh là 1024, bạn có thể sử dụng các đoạn mã sau. Để có danh sách toàn diện các đối số khả dụng, hãy tham khảo trang Training của model.
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 sectionTrích dẫn, Giấy phép và Ghi nhận#
Cityscapes được phát hành theo giấy phép phi thương mại tùy chỉnh — 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 yêu cầu 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:
@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 muốn ghi nhận đội ngũ Cityscapes vì đã tạo ra và duy trì tài nguyên quý giá 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ề bộ dữ liệu Cityscapes và những người tạo ra nó, hãy truy cập trang web bộ dữ liệu Cityscapes.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionBộ dữ liệu Cityscapes là gì và tại sao nó lại quan trọng đối với thị giác máy tính?#
Tập dữ liệu Cityscapes là một benchmark semantic segmentation quy mô lớn về các cảnh quan đường phố đô thị tại 50 thành phố ở châu Âu, được sử dụng rộng rãi như một tham chiếu tiêu 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) tiêu chuẩn hóa khiến nó trở thành một trong những benchmark được trích dẫn nhiều nhất cho các mô hình hiểu cảnh quan chuyên sâu.
Link to this sectionLàm thế nào để tôi có thể huấn luyện một model YOLO bằng cách sử dụng bộ dữ liệu Cityscapes?#
Để huấn luyện một model YOLO26n-sem trên bộ dữ liệu Cityscapes trong 100 epochs với kích thước hình ả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ố khả dụng, hãy tham khảo trang Training của model.
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 sectionBộ dữ liệu Cityscapes được cấu trúc như thế nào?#
Sau khi chuẩn bị, tập dữ liệu được tổ chức vào các thư mục images/{train,val,test}/ và masks/{train,val,test}/, với mỗi hình ảnh được ghép nối với một mask PNG đơn kênh. Tệp YAML của Ultralytics ghép nối từng hình ảnh với mask 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 gốc của Cityscapes 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 thành 255. Các mask của tập test chỉ dán nhãn các vùng xe tự hành và biên, vì vậy hãy sử dụng val để kiểm tra mIoU cục bộ.
Link to this sectionTôi có cần phải tải xuống Cityscapes theo cách thủ công không?#
Có. Hãy tạo tài khoản trên trang web Cityscapes và tải xuống các tệp lưu trữ leftImg8bit_trainvaltest.zip và gtFine_trainvaltest.zip (tổng cộng ~11 GB). Giải nén cả hai vào thư mục gốc của tập dữ liệu cityscapes — Ultralytics sẽ tự động sắp xếp lại chúng vào bố cục images/ và masks/ dự kiến trong lần đầu tiên bạn huấn luyện.
Link to this sectionTại sao Cityscapes sử dụng label_mapping?#
Các mask 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 từ 0 đến 18, và gán 255 cho các nhãn bị bỏ qua và vô hiệu để chúng bị loại trừ khỏi loss và các chỉ số trong quá trình huấn luyện và đánh giá.
Link to this sectionTập dữ liệu Cityscapes có miễn phí cho sử dụng thương mại không?#
Không. Cityscapes được phát hành theo giấy phép phi thương mại cho phép nghiên cứu học thuật, giảng dạy và đánh giá, nhưng nghiêm cấm việc sử dụng thương mại, cấp phép hoặc bán tập dữ liệu hoặc các sản 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.