Git Product home page Git Product logo

Comments (14)

gakkiri avatar gakkiri commented on July 30, 2024 1

@pyaf Sorry for my belated clarification. I ignored the transformation of the coordinate system at that time, and in fact the BOX given is the same. I'm sorry very much.

from nuscenes-devkit.

bmankirLinker avatar bmankirLinker commented on July 30, 2024

For anyone who's interested in transformation, can update the line as below if wanna convert KITTI format.
kitti_to_nu_lidar = Quaternion(axis=(0, 0, 1), angle=np.pi)

from nuscenes-devkit.

gakkiri avatar gakkiri commented on July 30, 2024

Thank you so much for pointing this out. I am also doing the kitti format conversion. Is there anything else I should pay attention to?
I replaced most of the self.nusc class in export_kitti.py with class provided by lyft. Does this work?

Edit: I found that the center provided by get-box in the two SDK is different, so I replaced it.

from nuscenes-devkit.

Tai-Wang avatar Tai-Wang commented on July 30, 2024

So do your experiments show that the LiDAR axis definition in lyft data is "x-back, y-right, z-up"? @bmankirLinker

from nuscenes-devkit.

bmankirLinker avatar bmankirLinker commented on July 30, 2024

That transformation definition makes the https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/scripts/export_kitti.py#L153 assertion pass. However after converting the PCD and GTs accordingly, GT and the image don't match. And also training with PRCNN also gives bad results, unlike NuScenes. So apparently I'm missing some stuff as well but unfortunately, hope an update will come.

from nuscenes-devkit.

gakkiri avatar gakkiri commented on July 30, 2024

Oh, I can comment an assertion without modifying the axis definition, which seems to get the correct visualization, use the render module in the script. @bmankirLinker

from nuscenes-devkit.

Tai-Wang avatar Tai-Wang commented on July 30, 2024

Maybe some functions are not affected by its axis definition, but we are indeed encountered bugs when inferencing orientations of objects by using some models adapted from NuScenes/KITTI. BTW, @joinssmith do you know the clear definition of LiDAR in Lyft dataset?

from nuscenes-devkit.

gakkiri avatar gakkiri commented on July 30, 2024

@Tai-Wang Sorry, I don't know.

from nuscenes-devkit.

bmankirLinker avatar bmankirLinker commented on July 30, 2024

@joinssmith so you've used the same transformation as in NuScenes, but also updated z of cuboid GT based on definition?

from nuscenes-devkit.

Tai-Wang avatar Tai-Wang commented on July 30, 2024

All right, hope an update...Thanks all the same~

from nuscenes-devkit.

pyaf avatar pyaf commented on July 30, 2024

Just found out:

KITTI lidar frame is 90 degrees rotated from nuScenes lidar frame

here
So, kitti_to_nu_lidar = Quaternion(axis=(0, 0, 1), angle=np.pi / 2) makes sense.

from nuscenes-devkit.

pyaf avatar pyaf commented on July 30, 2024

I can confirm two things:

  1. kitti_to_nu_lidar = Quaternion(axis=(0, 0, 1), angle=np.pi / 2) and with no assert (velo_to_cam_rot.round(0) == np.array([[0, -1, 0], [0, 0, -1], [1, 0, 0]])).all() gives perfectly transformed boxes in KITTI format but 90 degrees rotated x-y axes.

  2. kitti_to_nu_lidar = Quaternion(axis=(0, 0, 1), angle=np.pi) and with assert (velo_to_cam_rot.round(0) == np.array([[0, -1, 0], [0, 0, -1], [1, 0, 0]])).all()gives perfectly aligned axes, but 90 degrees horizontally-off boxes.

from nuscenes-devkit.

pyaf avatar pyaf commented on July 30, 2024

@joinssmith

Edit: I found that the center provided by get-box in the two SDK is different, so I replaced it.

Could you please tell me what exactly is different in them?

from nuscenes-devkit.

pyaf avatar pyaf commented on July 30, 2024

@joinssmith there's nothing to be sorry about :)

The thing is if we could swap x and y axes, we'd be able to fix this issue.

from nuscenes-devkit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.