Link to this sectionTập dữ liệu Cityscapes#
Tập dữ liệu Cityscapes là một chuẩn đánh giá semantic segmentation quy mô lớn, tập trung vào các cảnh quan đường phố đô thị được ghi lại tại 50 thành phố ở châu Âu. Nó 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 mô hình Ultralytics YOLO.
Link to this sectionCác 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, 500 ảnh xác thực và 1.525 ảnh kiểm thử.
- Tập 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, công trình, vật thể, thiên nhiên và bầu trời.
- Cityscapes cung cấp các số liệu đánh giá tiêu chuẩn hóa 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 mô hì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/Các mặt nạ semantic là các tệp PNG đơn kênh. Các ID nhãn gốc của Cityscapes đượ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 nhãn trống được ánh xạ tới 255 để chúng bị loại trừ khỏi quá trình huấn luyện và đánh giá. Hãy tải xuống các tệp lưu trữ leftImg8bit và gtFine chính thức từ trang web Cityscapes và giải nén chúng vào thư mục gốc của tập dữ liệu; khối chuẩn bị trong cityscapes.yaml sau đó sẽ sắp xếp các hình ảnh và mặt nạ theo bố cục này.
Link to this sectionCác ứng dụng#
Cityscapes được sử dụng rộng rãi để huấn luyện và đánh giá các mô hình deep learning trong semantic segmentation, đặc biệt là cho autonomous driving, các hệ thống hỗ trợ lái xe nâng cao (ADAS) và robot đô thị.
Hình ảnh độ 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 có giá trị đối với nghiên cứu về phân tích cảnh quan thời gian thực, nhận biết 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 sâu về cấp độ pixel của các môi trường đô thị phức tạp.
Link to this sectionYAML tập dữ liệu#
Tệp YAML tập dữ liệu xác định các đường dẫn, các 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 🚀 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ô hình YOLO26n-sem trên tập dữ liệu 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ố khả dụng, hãy tham khảo trang Training của mô hình.
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 tập 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 xe tự lái và thị giác máy tính. Để biết thêm thông tin về tập dữ liệu Cityscapes và những người tạo ra nó, hãy truy cập trang web tập dữ liệu Cityscapes.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionTập 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 chuẩn đánh giá semantic segmentation quy mô lớn, tập trung vào các cảnh quan đườ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á, khiến nó trở thành tài nguyên nền tảng cho nghiên cứu về xe tự lái và hiểu cảnh quan đô thị. Hình ảnh độ phân giải cao, chú thích dày đặc và số liệu mean Intersection over Union (mIoU) tiêu chuẩn hóa làm cho nó trở nên lý tưởng để đánh giá các mô hình dự đoán dày đặc.
Link to this sectionLàm thế nào để tôi có thể huấn luyện một mô hình YOLO bằng cách sử dụng tập dữ liệu Cityscapes?#
Để huấn luyện mô hình YOLO26n-sem trên tập dữ liệu 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ố khả dụng, hãy tham khảo trang Training của mô hình.
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 sectionTập dữ liệu Cityscapes được cấu trúc như thế nào?#
Sau khi chuẩn bị, tập dữ liệu được sắp xếp 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 mặt nạ PNG đơn kênh. Tệp YAML của Ultralytics ghép đôi mỗi hình ả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 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à nhãn trống tới 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ề tập dữ liệu trên trang web chính thức. Hãy tải xuống và giải nén leftImg8bit và gtFine vào thư mục gốc của tập 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/ như yêu cầu.
Link to this sectionTại sao Cityscapes sử dụng label_mapping?#
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 0–18, và gán 255 cho các nhãn bị bỏ qua và nhãn trống để chúng bị loại trừ khỏi hàm mất mát và các số liệu trong quá trình huấn luyện và xác thực.