共计 1786 个字符,预计需要花费 5 分钟才能阅读完成。
1. BDD100K 数据集简介
BDD100K(Berkeley DeepDrive 100K)是目前最大的自动驾驶场景数据集之一,由加州大学伯克利分校的 DeepDrive 项目发布。该数据集包含:

- 10 万段高清视频(1280×720 分辨率)
- 10 万张带标注的图像(涵盖目标检测、语义分割、实例分割等任务)
- 多样化的驾驶场景(白天 / 夜晚、晴天 / 雨天、城市 / 高速等)
典型应用场景
- 自动驾驶算法开发
- 交通场景理解
- 多任务学习(如同时处理检测和分割)
- 恶劣天气下的计算机视觉研究
2. 数据集下载指南
官方下载渠道
- 访问官方网站:https://bdd-data.berkeley.edu/
- 点击 ”Download” 进入下载页面
- 填写邮箱和用途说明(学术 / 商业)
- 选择需要下载的数据子集:
100k Images(基础图像数据)10k Video(视频片段)Detection/Instance Segmentation/Semantic Segmentation(不同任务的标注)- 获取下载链接(通常为 AWS S3 链接)
备用下载方案
- 通过学术 P2P 网络(如 Academic Torrents)
- 使用国内镜像源(部分高校实验室提供)
- 按需下载部分数据(避免一次性下载全部内容)
# 使用 wget 下载示例(替换实际链接)import os
os.system('wget https://s3-us-west-2.amazonaws.com/bdd-data/bdd100k/images.zip')
3. 数据集结构解析
解压后的典型目录结构:
bdd100k/
├── images/
│ ├── train/ # 训练集(70k)│ ├── val/ # 验证集(10k)│ └── test/ # 测试集(20k)└── labels/
├── det_20/ # 检测标注(COCO 格式)├── ins_seg/ # 实例分割标注
└── sem_seg/ # 语义分割标注
标注格式说明
- 目标检测:JSON 格式,遵循 COCO 标准
- 语义分割:PNG 掩码图像(每个像素值对应类别 ID)
- 实例分割:包含对象 ID 和类别信息的复合标注
4. 数据加载与预处理
基础加载示例
import json
from PIL import Image
import matplotlib.pyplot as plt
# 加载标注文件
with open('bdd100k/labels/det_20/det_train.json') as f:
annotations = json.load(f)
# 可视化样本
img_path = 'bdd100k/images/train/0a0a0b1a-7c39d841.jpg'
img = Image.open(img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
数据增强技巧
import albumentations as A
transform = A.Compose([A.RandomBrightnessContrast(p=0.5),
A.HorizontalFlip(p=0.5),
A.RandomRain(p=0.1) # 模拟雨天增强
])
5. 常见问题解决
下载中断处理
- 使用
wget -c支持断点续传 - 校验文件 MD5:
md5sum images.zip
内存不足问题
- 使用生成器(Generator)逐步加载数据
- 降低图像分辨率(首次实验时可缩放)
# 内存友好的数据加载
class BDDDataset(torch.utils.data.Dataset):
def __getitem__(self, idx):
img_path = self.image_paths[idx]
return Image.open(img_path) # 按需加载
6. 实战建议与局限
最佳实践
- 优先使用验证集进行快速原型验证
- 利用多任务学习(如同时训练检测和分割)
- 注意类别不平衡问题(行人 / 车辆比例差异)
已知局限
- 美国道路场景为主(左舵驾驶)
- 某些天气条件样本不足(如大雪)
- 夜间场景的标注质量相对较低
7. 延伸学习
- 官方文档:https://doc.bdd100k.com/
- 相关论文:《BDD100K: A Diverse Driving Video Database》
- 进阶工具:
- BDD 数据集可视化工具(GitHub 开源)
- 转换脚本(转 VOC/COCO 格式)
提示:首次使用建议从 1 - 2 万张图像的小子集开始,熟悉数据特点后再扩展。遇到标注问题时,建议交叉参考不同任务的标注结果。
正文完
