nuscenes数据集有关
-
- [1、calibrated_sensor.json 在特定车辆上校准的特定传感器(激光雷达/雷达/摄像头)的定义。 所有外在参数都相对于自我车身框架给出。相机参数在这## 2、sample_data.json](## 2、sample_data.json)
- 一、由图像名找相机参数
- [二 根据图片中找到tocken,放入vis_devkit.py显示全景图片](#二 根据图片中找到tocken,放入vis_devkit.py显示全景图片)
- [三 在特定传感器展示数据](#三 在特定传感器展示数据)
- vis_devkit代码如下:
1、calibrated_sensor.json 在特定车辆上校准的特定传感器(激光雷达/雷达/摄像头)的定义。 所有外在参数都相对于自我车身框架给出。相机参数在这## 2、sample_data.json
一、由图像名找相机参数
先根据图片从sample_data.json找到,
从sample_data.json找到"calibrated_sensor_token": "4ff47c4950f04cb4be1876bc0b028326"是calibrated_sensor.json中"token"
二 根据图片中找到tocken,放入vis_devkit.py显示全景图片
先根据图片从sample_data.json找到,
这里的sample_token是传入vis_devkit.py的my_sence[token]
注:sample是样品,里面有6张图片和一个激光雷达等。
三 在特定传感器展示数据
由图片先找到"sample_token"
由于相机和雷达传感器时间不一致,他们的"sample_token"一样,"token"不一样。所以根据"sample_token"找到相机对应雷达。
根据"sample_token"在sample_data.json中找到有雷达LIDAR_TOP的'token',
根据token在lidarseg.json找到
vis_devkit代码如下:
javascript
#https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/tutorials/nuscenes_lidarseg_panoptic_tutorial.ipynb
from nuscenes.nuscenes import NuScenes
version = "mini"
dataroot = "/home/deng/dataset_hao/nuscenes-mini"
"""一、在特定传感器展示数据"""
nusc = NuScenes(version='v1.0-{}'.format(version), dataroot=dataroot, verbose=False) #实例化类NuScenes
nusc.list_scenes()#mini数据集中只包含10个场景,每个场景大约持续20s【有的19s】,即每个场景有20秒采集到的信息
my_sample = nusc.sample[10]
# # 现在让我们看一下这个特定样本的点云中存在哪些类。"""
nusc.get_sample_lidarseg_stats(my_sample['token'], sort_by='count')
# """您可以将示例数据传递到render_sample_data中,以渲染点云的鸟瞰图。然而,这些点将根据与自我车辆的距离进行着色。现在有了扩展的nuScenesdevkit,
# 您所需要做的就是将show_lidarseg=True设置为可视化点云的类标签。"""
# sensor = 'CAM_FRONT'
sensor = 'LIDAR_TOP'
#lidar_token=my_sample['data'][sensor]
lidar_token='6be2618c971046478919fe91a9880bd8'
lidar_front_data = nusc.get('sample_data',lidar_token)
nusc.render_sample_data(lidar_front_data['token'],
show_lidarseg = True,
show_lidarseg_legend = True,
#filter_lidarseg_labels = [22],
show_panoptic=True)
"""二、在图像中呈现lidarseg/panoptic标签"""
"""如果你想将点云叠加到相机的相应图像中,你可以像使用原始的nuScenes devkit一样使用render_pointcloud_in_image,但是设置show_lidarseg=True(记住设置render_intensity=False)。
与render_sample_data类似,您可以使用filter_lidarseg_labels进行筛选,以便只查看某些类。您可以使用show_lidarseg_legend在渲染中显示图例。"""
# nuscenes-lidarseg
# nusc.render_pointcloud_in_image(my_sample['token'],
# pointsensor_channel='LIDAR_TOP',
# camera_channel='CAM_FRONT',
# render_intensity=False,
# show_lidarseg=True,
# # filter_lidarseg_labels=[22, 23, 24],
# show_lidarseg_legend=True)
"""同样,此函数支持show_panoptic=True模式,将显示全图标签而不是语义标签。只显示物品类别的图例。"""
# Panoptic nuScenes
# nusc.render_pointcloud_in_image(my_sample['token'],
# pointsensor_channel='LIDAR_TOP',
# camera_channel='CAM_FRONT',
# render_intensity=False,
# show_lidarseg=False,
# #filter_lidarseg_labels=[17,22, 23, 24],
# show_lidarseg_legend=True,
# show_panoptic=True)
"""三、渲染样本(即激光雷达、雷达和所有摄像头)
当然,就像在最初的nuScenes devkit中一样,您可以使用render_sample一次渲染所有传感器。在这个扩展的nuScenes开发工具包中,
您可以设置show_lidarseg=True来查看lidarseg标签。与上述方法类似,您可以使用filter_lidarseg_labels来只显示您希望看到的类。"""
"""要使用render_sample显示全景标签,设置show_panoptic=True"""
# Panoptic nuScenes
# nusc = NuScenes(version='v1.0-{}'.format(version), dataroot=dataroot, verbose=False) #实例化类NuScenes
# nusc.list_scenes()#mini数据集中只包含10个场景,每个场景大约持续20s【有的19s】,即每个场景有20秒采集到的信息
# my_sample = nusc.sample[10]
# a=my_sample['token']
#
# """现在让我们看一下这个特定样本的点云中存在哪些类。"""
# nusc.get_sample_lidarseg_stats(my_sample['token'], sort_by='count')
# # nusc.render_sample(my_sample['token'],
# nusc.render_sample('8bf071b1b92c4ff1bd5016bfb30de3f7',
# #show_lidarseg=True,
# show_lidarseg= False,
# filter_lidarseg_labels=[17, 23, 24],
# show_panoptic=False)