智算多多联系我们

官方邮箱:service@zsdodo.com

公司地址:北京市丰台区南四环西路188号总部基地三区国联股份数字经济总部
关注我们

公众号

视频号
◎2025 北京智算多多科技有限公司版权所有 京ICP备 2025150592号-1
第一次接触nuScenes数据集时,我被它丰富的传感器配置震撼到了——6个摄像头、1个激光雷达、5个毫米波雷达的同步数据,这简直就是自动驾驶研究的“黄金标准”。作为目前最权威的自动驾驶开源数据集之一,nuScenes包含了1000个场景、40万帧标注数据,总大小约400GB(mini版约4GB)。不过别被这个数字吓到,实际使用时我们可以按需下载特定传感器数据。
安装过程其实非常简单,只需要两行命令:
pip install nuscenes-devkit
mkdir -p /data/sets/nuscenes
官方推荐的目录结构是这样的:
/data/sets/nuscenes
├── samples # 关键帧传感器数据
├── sweeps # 中间帧传感器数据
├── maps # 高精地图文件
└── v1.0-* # 元数据和标注文件
我在第一次安装时踩过一个坑:如果使用自定义目录,需要修改devkit源码中的路径配置。后来发现更简单的方法是通过初始化参数指定:
from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-mini', dataroot='/your/custom/path')
nuScenes的数据组织非常讲究,理解这个结构对后续开发至关重要。samples和sweeps的区别就像电影的关键帧和过渡帧——samples是人工标注的关键帧(每0.5秒一帧),sweeps是传感器原始数据(10Hz采集频率)。实际训练时,80%的情况我们只需要使用samples数据。
每个传感器的数据都单独存放:
v1.0-*文件夹下的JSON文件构成了一个完整的关系型数据库。我画了个简化版的关系图帮助理解:
场景(Scene) → 样本(Sample) → 样本数据(SampleData)
↓
样本标注(SampleAnnotation)
每个表记录都通过token唯一标识,外键如sample_token用来建立关联。这种设计让跨传感器数据查询变得非常高效。
加载第一个场景的第一个样本:
scene = nusc.scene[0] # 获取第一个场景
sample_token = scene['first_sample_token'] # 获取场景首样本
sample = nusc.get('sample', sample_token) # 获取完整样本数据
这个sample对象包含所有传感器
