Open ujaejoon opened 1 week ago
Good question. We reuse the implementation code from Open3DSOT
I'll check these lines at my convenience.
Here’s what I’ve found so far. I investigated further into how point clouds are transformed in kitti_mem.py
and discovered that a π/2 rotation along the x-axis converts the input point cloud from the camera coordinate system to the velodyne coordinate system. From what I understand, this aligns the axis conventions with other scripts, such as bounding_box.py
, metrics.py
, and others.
In short, even if cfg.coordinate_mode
is set to 'camera,' the model’s input point cloud still follows the Velodyne coordinate system. Additional rotation of π/2 applied along the x-axis and the crop_and_center_pcd
function in pcd_utils.py
are responsible for this conversion.
This is code from https://github.com/slothfulxtx/MBPTrack3D/blob/main/datasets/kitti_mem.py
As I understand, in the KITTI dataset, the bounding box orientation is already annotated in the camera coordinate system (Reference: KITTI Coordinate Transformations).
Given this, why is there an additional rotation of π/2 applied along the x-axis? I’m having trouble understanding the reason behind this rotation.