nuscenes 点云 显示
时间: 2023-10-26 12:08:25 浏览: 30
要在nuscenes中显示点云,可以使用nuscenes-devkit提供的可视化工具nuscenes_viz。以下是显示点云的步骤:
1. 安装nuscenes-devkit,并下载nuscenes数据集。
2. 打开Jupyter Notebook并导入必要的库和模块:
```python
from nuscenes.nuscenes import NuScenes
from nuscenes.utils.data_classes import LidarPointCloud
from nuscenes.utils.geometry_utils import transform_matrix
from nuscenes.utils.map_mask import MapMask
from nuscenes.utils.geometry_utils import view_points
from nuscenes.utils.color_map import get_colormap
from pyquaternion import Quaternion
import numpy as np
import matplotlib.pyplot as plt
```
3. 加载数据集:
```python
nusc = NuScenes(version='v1.0-mini', dataroot='/path/to/data', verbose=True)
scene = nusc.scene[0]
sample_token = scene['first_sample_token']
sample = nusc.get('sample', sample_token)
lidar_token = sample['data']['LIDAR_TOP']
lidar_data = nusc.get('sample_data', lidar_token)
lidar_path = nusc.get_sample_data_path(lidar_token)
lidar_pc = LidarPointCloud.from_file(lidar_path)
```
4. 转换点云坐标系:
```python
cs_record = nusc.get('calibrated_sensor', lidar_data['calibrated_sensor_token'])
pc_record = nusc.get('sample_data', lidar_token)
lidar_top_pose_record = nusc.get('ego_pose', pc_record['ego_pose_token'])
lidar_top_to_ego = transform_matrix(cs_record['translation'], Quaternion(cs_record['rotation']), inverse=False)
ego_to_global = transform_matrix(lidar_top_pose_record['translation'], Quaternion(lidar_top_pose_record['rotation']), inverse=False)
lidar_top_to_global = np.dot(ego_to_global, lidar_top_to_ego)
lidar_pc.transform(lidar_top_to_global)
```
5. 可视化点云:
```python
# 设置画布大小
fig, ax = plt.subplots(1, 1, figsize=(14, 10))
# 将点云投影到2D平面上
point_cloud = lidar_pc.points.T
point_cloud = view_points(point_cloud[:3, :], np.eye(4), normalize=False)
# 设置点云颜色
color_map = get_colormap()
color = np.array([color_map[cls] for cls in lidar_pc.colors])
# 绘制点云
ax.scatter(point_cloud[0,:], point_cloud[1,:], c=color, s=0.1)
# 设置坐标轴范围和标签
ax.set_xlim(-50, 50)
ax.set_ylim(-50, 50)
ax.set_xlabel("X")
ax.set_ylabel("Y")
plt.show()
```
这样就可以在Jupyter Notebook中显示nuscenes点云了。