nuScenes数据集使用

nuScenes数据集使用

(一)官方提供的开发者工具:

nuscenes-devkit

pip install nuscenes-devkit

使用nuscenes-devkit需要使用的文件结构:

/data/sets/nuscenes
    samples	-	Sensor data for keyframes.
    sweeps	-	Sensor data for intermediate frames.
    maps	-	Folder for all map files: rasterized .png images and vectorized .json files.
    v1.0-*	-	JSON tables that include all the meta data and annotations. Each split (trainval, test, mini) is provided in a separate folder.

如果使用自己的文件结构,需要修改源码/Users/wennie/anaconda3/lib/python3.6/site-packages/nuscenes。

(二)下载数据集的结构:

2020年10月5日补充

在这里插入图片描述

  1. Metadata包含v1.0-trainval文件夹,该文件夹中包含所有850个场景的配置文件
  2. 所有的图像和点云数据被分成十个部分。每个File blobs包含samples和sweeps两个文件夹,samples表示各传感器时间轴对应时的数据,sweeps表示其他剩余数据。samples和sweeps两个文件夹下,各有12个文件夹,分别为6路摄像头数据,1路激光雷达数据,5路毫米波雷达数据。
  3. 实际使用时,可以只下载keyframe数据,此时仅包括samples数据。因为实际训练预测,基本上都是基于samples内的数据。
  4. 也可只下载某一传感器数据,例如只下载Lidar blobs,此时下载内容也包括samples和sweeps两个文件夹,但这两个文件夹下只包含激光雷达数据。
  5. Radar blobsCamera blobs同上一条同理。

(三)部分功能:

主要参考官方的应用示例

一、 结合各表,获取信息

# 参数1:各个表名
# 参数2:token
nusc.get('sample', first_sample_token)
举例:sample

data中根据各传感器token,可以得到传感器文件的存放位置。
anns表示该sample中存在的所有Ground Truth,其token可以得到物体的标注信息。

举例:sample_data
举例:sample_annotation
拓展:读取image_annotations

image_annotations 文件获得方法:
跑一下/nuscenes/scripts/export_2d_annotations_as_json.py,即可获得。

源码接口不支持使用nusc.get('image_annotation', sample_annotation_token)。需要稍微修改一下源码 /anaconda3/lib/python3.6/site-packages/nuscenes/nuscenes.py,即可获得:

二、 各坐标系间的转换

(1)转换Ground Truth坐标,使其与像素坐标系一致
  • 转换为像素坐标系下的二维坐标,即image_annotations.json里的值
  • 转换为像素坐标系下的三维坐标:render_sample_data函数中有具体实现步骤。
(2)转换Ground Truth坐标,使其与雷达坐标系一致
  • 得到一个三维的box坐标
# Returns the data path as well as all annotations related to that sample_data.
# Note that the boxes are transformed into the current sensor's coordinate frame.
    _, boxes, _ = nusc.get_sample_data(sensor_token)
  • 都映射到二维后,查看Ground Truth(即图中的框)与点云:

(3)转换点云坐标,使其与像素坐标系一致
  • 得到坐标

已经筛去超出图像大小1600*900的点。

    # 需使用NuScenesExplorer类方法
    from nuscenes.nuscenes import NuScenesExplorer
    nusc_exp = NuScenesExplorer(nusc)
    
    nusc_exp.map_pointcloud_to_image(my_sample['data']['RADAR_FRONT'],my_sample['data']['CAM_FRONT'])
  • 查看图像

三、毫米波雷达点云数据

源码在nuscenes/utils/data_classes.py RadarPointCloud类中

    point_sensor = nusc.get('sample_data', sensor_token)
    pcl_path = osp.join(DATAROOT, point_sensor['filename'])
    pc = RadarPointCloud.from_file(pcl_path)
    
    pc.points

内容:

    # FIELDS x y z dyn_prop id rcs vx vy vx_comp vy_comp is_quality_valid ambig_state x_rms y_rms invalid_state pdh0 vx_rms vy_rms
    
    # Below some of the fields are explained in more detail:
    
    # x is front, y is left
    # vx, vy are the velocities in m/s.
    # vx_comp, vy_comp are the velocities in m/s compensated by the ego motion.
    # We recommend using the compensated velocities.       
  • 16
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
nuscenes数据集 devkit是为了帮助研究者和开发者更好地利用nuscenes数据集而开发的一套工具和库。nuscenes数据集是一个广泛使用的自动驾驶领域的开源数据集,其中包含了来自于纽约和新加坡的高质量传感器数据和注释。它提供了一个丰富的环境来进行自动驾驶相关的研究和开发。 nuscenes数据集devkit提供了一系列功能来处理、分析和可视化nuscenes数据集。它包括了Python API,可以用于读取和解析nuscenes数据集,提取有用的信息。研究者和开发者可以使用这些功能来快速访问和处理数据,为他们的研究和开发工作节省了大量的时间和精力。 除了数据处理外,nuscenes数据集devkit还包括了一些强大的视觉化工具。它提供了一个交互式的图形界面,可以用于可视化和浏览nuscenes数据集中的传感器数据、注释和场景信息。这对于研究者和开发者来说非常有用,可以帮助他们更好地理解数据,分析结果,并进行模型评估和验证。 此外,nuscenes数据集devkit还提供了一些实用的功能,如路线规划、物体检测和跟踪等。这些功能可以帮助研究者和开发者进行高级驾驶场景的仿真和测试,以及开发自动驾驶系统的算法和模型。 综上所述,nuscenes数据集devkit是一个强大的工具和库,它为研究者和开发者提供了便捷的数据处理、分析和可视化功能,帮助他们更好地利用nuscenes数据集进行自动驾驶相关的研究和开发工作。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值