共计 1440 个字符,预计需要花费 4 分钟才能阅读完成。
背景介绍
Cityscapes 是自动驾驶和计算机视觉领域最常用的语义分割数据集之一。它包含了从 50 个不同城市采集的街景图像,涵盖了各种天气、光照和场景条件。这个数据集对于训练自动驾驶系统理解复杂的城市场景至关重要,比如识别道路、车辆、行人等关键元素。

- 数据规模:5,000 张精细标注图像和 20,000 张粗略标注图像
- 标注类型:支持语义分割、实例分割和全景分割任务
- 应用场景:主要用于自动驾驶、场景理解、SLAM 等领域
下载指南
- 访问Cityscapes 官方网站
- 点击 ”Register” 创建账户(需要学术邮箱)
- 登录后签署数据使用协议
- 在 ”Downloads” 页面选择需要的数据包
常见的下载选项包括:
- leftImg8bit_trainvaltest.zip (11GB): 训练 / 验证 / 测试集图像
- gtFine_trainvaltest.zip (241MB): 精细标注
- gtCoarse.zip (1.3GB): 粗略标注
下载提示:
- 推荐使用 wget 或 aria2 等工具断点续传
- 准备好至少 50GB 的存储空间
- 下载可能需要数小时,建议在稳定网络环境下进行
数据结构解析
解压后目录结构如下:
cityscapes/
├── leftImg8bit/
│ ├── train/
│ ├── val/
│ └── test/
└── gtFine/
├── train/
├── val/
└── test/
关于标注类别:
- 19 类:常用的语义分割类别,如道路、人行道、建筑物等
- 34 类:更细粒度的分类,包含更多物体细节
代码实战
以下是使用 Python 加载 Cityscapes 数据的示例代码:
import os
import cv2
import numpy as np
# 设置数据集路径
data_dir = "/path/to/cityscapes"
img_path = os.path.join(data_dir, "leftImg8bit/val/frankfurt/frankfurt_000000_000294_leftImg8bit.png")
label_path = os.path.join(data_dir, "gtFine/val/frankfurt/frankfurt_000000_000294_gtFine_labelIds.png")
# 读取图像和标注
img = cv2.imread(img_path)
label = cv2.imread(label_path, cv2.IMREAD_GRAYSCALE)
# 可视化
cv2.imshow("Image", img)
cv2.imshow("Label", label*10) # 乘以 10 使标签更明显
cv2.waitKey(0)
cv2.destroyAllWindows()
避坑指南
- 下载速度慢
- 使用镜像站点
- 尝试非高峰时段下载
-
使用下载加速工具
-
解压失败
- 检查文件完整性(md5 校验)
- 确保磁盘空间足够
-
使用 7 -zip 替代系统自带解压工具
-
路径问题
- 注意 Linux/Windows 路径差异
- 使用 os.path.join 处理路径
扩展应用
要将 Cityscapes 用于语义分割模型训练,你需要:
- 创建数据加载器(推荐使用 torch.utils.data.Dataset)
- 实现类别权重平衡(处理类别不均衡问题)
- 选择合适的评估指标(如 mIoU)
思考题:
- 如何高效处理大型数据集以避免内存不足?
- 针对自动驾驶场景,哪些数据增强方法最有效?
- 如何处理夜间或恶劣天气条件下的图像分割?
希望这篇指南能帮助你顺利开始 Cityscapes 数据集的使用之旅。在实际项目中,记得参考 官方文档 获取最新信息。
正文完
发表至: 未分类
近两天内
