Link to this sectionBộ dữ liệu Cityscapes#
Tập dữ liệu Cityscapes là một benchmark semantic segmentation quy mô lớn tập trung vào các cảnh đường phố đô thị được ghi lại tại 50 thành phố ở châu Âu. Tập dữ liệu này cung cấp các chú thích ở cấp độ pixel chất lượng cao và 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 xe tự lái và hiểu cảnh quan đô thị với các model 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 hình ảnh huấn luyện, 500 hình ảnh kiểm thử và 1.525 hình ảnh kiểm tra.
- Bộ dữ liệu bao gồm 19 lớp đánh giá trải dài trên các danh mục đường xá, phương tiện, con người, xây dựng, vật thể, tự 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.
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/Các mask ngữ nghĩa là các tệp PNG đơn 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 vô hiệu được ánh xạ thành 255 để chúng bị loại trừ khỏi quá trình huấn luyện và đánh giá. Tải xuống các kho lưu trữ chính thức leftImg8bit và gtFine từ trang web Cityscapes và giải nén chúng vào thư mục gốc của bộ dữ liệu; khối chuẩn bị trong cityscapes.yaml sau đó sẽ sắp xếp các hình ảnh và mask theo bố cục này.
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à các chú thích chi tiết của nó cũng làm cho nó trở nên giá trị cho việc nghiên cứu phân tích cảnh thời gian thực, hiểu 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 hiểu biết sâu sắc ở cấp pixel về các môi trường đô thị phức tạp.
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 và Ghi nhận#
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?#
Bộ dữ liệu Cityscapes là một benchmark semantic segmentation quy mô lớn tập trung vào các cảnh đường phố đô thị được ghi lại tại 50 thành phố ở châu Âu. Nó chứa 5.000 hình ảnh được chú thích chi tiết trên 19 lớp đánh giá, trở thành một tài nguyên nền tảng cho nghiên cứu lái xe tự động và hiểu cảnh quan đô thị. Hình ảnh độ phân giải cao, chú thích dày đặc và chỉ số mean Intersection over Union (mIoU) tiêu chuẩn của nó làm cho nó trở nên lý tưởng để đánh giá các model dự đoán dày đặc.
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ị, bộ 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 đôi với một mask PNG đơn kênh. Tệp YAML của Ultralytics ghép đôi mỗi 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à vô hiệu thành 255.
Link to this sectionTôi có cần phải tải xuống Cityscapes theo cách thủ công không?#
Có. Cityscapes yêu cầu phải chấp nhận các điều khoản về bộ dữ liệu trên trang web chính thức. Tải xuống và giải nén leftImg8bit và gtFine vào thư mục gốc của bộ dữ liệu cityscapes trước khi sử dụng khối chuẩn bị trong cityscapes.yaml để tạo bố cục images/ và masks/ dự kiế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á.