智算多多联系我们


关注我们

公众号

视频号
隐私协议用户协议
◎ 2025 北京智算多多科技有限公司版权所有京ICP备 2025150592号-1
在开始探索NuScenes之前,需要完成基础环境搭建。推荐使用Python3.8+环境,通过conda创建独立虚拟环境:
conda create -n nuscenes python=3.8
conda activate nuscenes
pip install nuscenes-devkit matplotlib numpy opencv-python
数据集下载后,目录结构通常如下:
nuscenes
├── maps # 高清地图数据
├── samples # 关键帧传感器数据
├── sweeps # 中间帧传感器数据
├── v1.0-mini # 迷你版元数据
└── v1.0-trainval # 完整版元数据
首次加载数据集时,开发包会自动构建缓存,这个过程可能需要几分钟,取决于硬件性能。
NuScenes采用关系型数据库结构组织数据,主要包含以下核心表:
通过Python接口访问这些数据非常直观:
from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-mini', dataroot='./data/nuscenes')
scene = nusc.scene[0] # 获取第一个场景
sample = nusc.get('sample', scene['first_sample_token']) # 获取场景首帧
NuScenes包含6个摄像头、1个激光雷达和5个雷达的数据,掌握这些数据的可视化方法对算法调试至关重要。
渲染前视摄像头数据并叠加标注框:
cam_front_data = nusc.get('sample_data', sample['data']['CAM_FRONT'])
nusc.render_sample_data(cam_front_data['token'], with_anns=True, # 显示标注
box_vis_level=BoxVisibility.ANY) # 显示所有可见度框
点云数据可以多种形式呈现:
lidar_data = nusc.get('sample_data', sample['data']['LIDAR_TOP'])
points = np.fromfile(lidar_data['filename'], dtype=np.float32).reshape(-1, 5)
# 使用Matplotlib可视化
fig = plt.figure(figsize=(12, 6))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(points[:, 0], points[:, 1], points[:, 2], c=p