目录
- 1 概述
- 2 点云可视化
- 2.1 原始点云
- 2.2 3D检测框+点云
- 2.3 点云鸟瞰视图BEV
- 3 图像可视化
- 3.1 原始图像
- 3.2 2D检测框+图像
- 3.3 3D检测框+图像
- 3.4 点云-图像对齐
1 概述
KITTI数据集是一个广泛被用于研究和开发自动驾驶和计算机视觉算法的公开数据集,其数据格式详解请参考3D目标检测实战 | 图解KITTI数据集与数据格式
通过可视化KITTI数据集,可以验证和评估针对自动驾驶和计算机视觉任务的算法的性能。可以将算法应用于数据集中的图像、点云、车辆轨迹等数据,并直观地观察算法的输出结果,从而判断算法的有效性和准确性。同时,也有助于深入理解自动驾驶和计算机视觉任务所涉及的数据类型和结构,从而为算法设计和数据处理提供洞察和启发。
2 点云可视化
2.1 原始点云
核心代码如下所示:
def drawPointCloud3d(self, pts_lidar: np.ndarray, fig: mlab.figure=None, bgcolor: tuple=(0, 0, 0),
fgcolor: tuple=(1.0, 1.0, 1.0), show_intensity: bool=False, size: tuple=(600, 600)) -> mlab.figure:
if not isinstance(pts_lidar, np.ndarray):
pts_lidar = pts_lidar.cpu().numpy()
if fig is None:
fig = mlab.figure(figure=None, bgcolor=bgcolor, fgcolor=fgcolor, engine=None, size=size)
if show_intensity:
mlab.points3d(pts_lidar[:, 0], pts_lidar[:, 1], pts_lidar[:, 2], pts_lidar[:, 3],
mode='point', colormap='jet', scale_factor=1, figure=fig)
else:
mlab.points3d(pts_lidar[:, 0], pts_lidar[:, 1], pts_lidar[:, 2],
mode='point', colormap='jet', scale_factor=1, figure=fig)
return fig
可视化如下
2.2 3D检测框+点云
核心代码如下所示:
pts_lidar = d.getLidar(d.index_sample_list[index])
gt_boxes3d = d.infos[index]['annos']["gt_boxes_lidar"]
name = d.infos[index]['annos']["name"]
fig = V.drawPointCloud3d(pts_lidar, show_intensity=True)
V.drawBoxes3dInLidar(gt_boxes3d, fig, cls_type=name)
V.show()
可视化如下
2.3 点云鸟瞰视图BEV
核心代码如下所示:
pts_lidar_slice = d.getSlicePointCloud(d.index_sample_list[index], 0.25, 0.2, [(0, 20), (-5, 5), (-3.5, 0.6)])
gt_boxes3d = d.infos[index]['annos']["gt_boxes_lidar"]
name = d.infos[index]['annos']["name"]
V.drawBoxes3dProjectedInBev(pts_lidar_slice, gt_boxes3d, name)
可视化如下
3 图像可视化
3.1 原始图像
核心代码如下所示:
img, _ = d.getImage(d.index_sample_list[index])
V.drawImage(img)
可视化如下
3.2 2D检测框+图像
核心代码如下所示:
img, _ = d.getImage(d.index_sample_list[index])
gt_boxes2d = d.infos[index]['annos']["bbox"]
name = d.infos[index]['annos']["name"]
V.drawBoxes2dInImage(gt_boxes2d, img, cls_type=name)
可视化如下所示
3.3 3D检测框+图像
核心代码如下:
img, _ = d.getImage(d.index_sample_list[index])
gt_boxes3d = d.infos[index]['annos']["gt_boxes_lidar"]
name = d.infos[index]['annos']["name"]
V.drawBoxes3dInImage(gt_boxes3d, img, d.getCalib(d.index_sample_list[index]), cls_type=name)
可视化如下所示
3.4 点云-图像对齐
核心代码如下:
img, _ = d.getImage(d.index_sample_list[index])
pts_lidar_fov = d.getFovPointCloud(d.index_sample_list[index])
V.drawLidarInImage(pts_lidar_fov, img, d.getCalib(d.index_sample_list[index]))
可视化如下所示
完整工程代码请联系下方博主名片获取
🔥 更多精彩专栏:
- 《ROS从入门到精通》
- 《Pytorch深度学习实战》
- 《机器学习强基计划》
- 《运动规划实战精讲》
- …