mmdetection3d

场景中 gt_3d_BBox 未对齐

我正在尝试绘制 3D 地面实况框,并且我已按照在点云上绘制 3D 框中的演示代码进行操作。在此代码中,尝试使用以下代码绘制 00000.8.pkl 文件中的 3D 框 但我得到一个错位框。原问题链接:https://github.com/open-mmlab/mmdetection3d/issues/2696


bboxes_3d = []

for instance in info_file['data_list'][0]['instances']:
    bboxes_3d.append(instance['bbox_3d'])

# Define a single RGB color for all bounding boxes (e.g., green)
single_bbox_color = [0, 255, 0]

# Duplicate the color for all bounding boxes
bbox_colors = [single_bbox_color] * len(bboxes_3d)

points = np.fromfile('demo/data/kitti/000008.bin', dtype=np.float32)
points = points.reshape(-1, 4)
visualizer = Det3DLocalVisualizer()
# set point cloud in visualizer
visualizer.set_points(points,vis_mode='add')


# Draw and visualize each bounding box with the duplicated color
for bbox, color in zip(bboxes_3d, bbox_colors):
    visualizer.draw_bboxes_3d(LiDARInstance3DBoxes(torch.tensor(bbox).unsqueeze(0)), bbox_color=np.array([color]))
visualizer.show()

img

引用 皆我百晓生 小程序回复内容作答:

根据您提供的代码,您正在尝试绘制3D地面实况框。根据您的描述,您遇到了一个错位框的问题。

根据您提供的代码,我注意到您使用了visualizer.draw_bboxes_3d函数来绘制3D框。这个函数接受一个LiDARInstance3DBoxes对象作为参数,并且您将每个框的颜色设置为相同的颜色。

在您的代码中,我没有看到您对3D框的坐标进行任何处理或转换。这可能导致框的位置不正确。

我建议您检查以下几点:

  1. 确保bbox_3d的坐标格式正确。您可以打印出bbox_3d的值,确保它们是正确的3D框坐标。

  2. 确保LiDARInstance3DBoxes对象的输入格式正确。您可以查看相关文档,确保您正确地创建了LiDARInstance3DBoxes对象。

  3. 检查点云数据的格式和坐标系是否正确。您可以打印出points的值,确保它们是正确的点云数据。

  4. 检查绘制框的坐标是否与点云数据的坐标系对齐。如果坐标系不对齐,可能会导致框的位置不正确。

如果您仍然遇到问题,我建议您在相关的论坛或社区中寻求帮助,以便其他开发者可以更详细地了解您的问题并提供更准确的解决方案。