cityscapes语义分割
时间: 2025-01-14 08:01:57 浏览: 20
Cityscapes 数据集概述
Cityscapes 是一个专为城市街景设计的语义分割数据集,其目标在于提升自动驾驶汽车和其他智能交通系统的性能。该数据集中包含了大量的高质量图像,并附带详细的像素级标签,使得研究者可以利用这些资源来开发更精确的计算机视觉算法[^1]。
数据集特点
- 丰富的标注信息:每一张图片都配有细致入微的对象边界框以及实例掩码。
- 多样化的环境条件:涵盖了不同天气状况下的场景变化,如晴天、雨天等;同时也考虑到了时间因素的影响——白天与夜晚的不同表现形式。
- 多样的视角角度:不仅限于正面拍摄的照片,还包括斜角视图等多种观察方式,增加了模型泛化能力的要求。
细分结构
按照用途划分,Cityscapes 主要分为两个部分:
- 精细标注子集:由3475幅用于训练的高分辨率RGB影像组成,另有1525张作为验证/测试样本。这部分资料提供了最详尽的目标识别依据。
- 粗略标记扩展库:除了上述核心集合外,还有近两万份仅带有简单类属说明而非具体轮廓描绘的数据条目可供选用,在某些情况下能够有效补充样本量不足的问题[^3]。
如何获取并加载 Cityscapes 数据集?
为了便于开发者快速上手操作,官方已经准备好了完整的安装指南和技术文档支持。通常来说,可以从官方网站下载所需文件夹后解压至本地磁盘位置即可完成初步部署工作。对于 Python 用户而言,则推荐借助 PyTorch 或 TensorFlow 这样流行的机器学习框架所提供的工具函数来进行高效便捷的数据预处理任务[^2]。
import os
from PIL import Image
import numpy as np
def load_cityscapes_images(root_dir='path/to/cityscapes'):
images = []
labels = []
# 遍历目录下所有符合条件的文件路径
for split in ['train', 'val']:
img_folder = os.path.join(root_dir, f'leftImg8bit/{split}')
label_folder = os.path.join(root_dir, f'gtFine/{split}')
city_names = sorted(os.listdir(img_folder))
for city_name in city_names:
imgs_in_city = sorted([os.path.join(img_folder, city_name, name)
for name in os.listdir(os.path.join(img_folder, city_name))])
lbls_in_city = sorted([os.path.join(label_folder, city_name.replace('leftImg8bit','gtFine'),name.replace('_leftImg8bit.png','_gtFine_labelIds.png'))
for name in os.listdir(os.path.join(img_folder, city_name))])
images.extend(imgs_in_city)
labels.extend(lbls_in_city)
return images, labels
此段代码展示了如何遍历指定根目录内的 Cityscapes
文件树形结构,收集到所有的输入图像及其对应的地面真值(ground truth)。通过这种方式获得的数据列表可以直接应用于后续的训练过程之中。
阅读全文
相关推荐


















