-
Notifications
You must be signed in to change notification settings - Fork 288
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question regarding data generation pipeline #327
Comments
Hello @TontonTremblay , Thanks for the reply. I understood 1 & 3 but couldn't understand point 2. I can see the https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/single_video_pybullet.py#608 Inside the utils.py file, in the export_to_ndds_files function definition, it's set to none: https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/utils.py#1103. I do see some cuboid definitions inside the utils.py file as add_cuboid here: https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/utils.py#913 And here: https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/utils.py#998 Lastly, I see a logic here: https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/utils.py#1233
I am somewhat confused as there are some things parallely going on as well as I need those cuboid keypoints with respect to camera frame (not world frame). To ensure everything is on right track, it's important that I don't do anything wrong. |
Also, just wanted to confirm that have you used opengl camera convention for centerpose prediction ?? I believe centerpose is using objectron dataset and in that logic, objectron dataset is also following opengl convention. If that's the case, inside utils.py, if I commented out the cam_matrix 180 degree rotation part, and add camera_projection_matrix like the same way as cam_matrix to produce everything in opengl format, is that ok ??
After that, here is how my json file was updated:
|
When we did objectron, I am afraid I do not remember exactly how we parsed the data. So I am afraid I wont be able to help, but normally we train algorithms on opencv conventions to make our life a little easier on the robot. But to answer your question, yes, if you remove the rotation you will get the camera pose in opengl coordinate frame. nvisii uses opengl coordinate frames (and going to opencv is pretty simple). In the script when you pass the cuboid data structure, you will export the cuboid in its local frame, I did not include it in the final version of the code to avoid confusion with the exported data with the projected_cuboid. But also it is a data structure to keep track of. If you check the add_cuboid in the utils, it returns the cuboid in the object coordinate frame, you can use that to export the normalize cuboid centerpose needs. I hope this helps. https://github.com/NVlabs/Deep_Object_Pose/blob/master/scripts/nvisii_data_gen/utils.py#L996 I think the cuboid to export_ndds needs object_name:cuboid dictionary. |
Hello,
As you know from some other issues, I have been trying to generate some ground truth data for centerpose using dope's pipeline. Here is a json data containing the annotation for cup model from objectron dataset (generated using the methods mentioned inside the original centerpose repo) :
Now, here is the data that has been generated by dope's pipeline (nvisii):
I have modified a little bit to the nvisii script to add the scale, rename and change projected cuboid orientation to match the objectron dataset coordintate frame. Now I have 3 questions:
In the centerpose json data, Inside AR_data field, there is plane_center and plane_normal which is missing in the synthetic data generation pipeline. Also, the keypoints_3d ( actual location) value is missing in the synthetic datasets. Are these values needed if I am trying to train a single instance of mug which has no axis symmetry for centerpose ??
In vast amount of the centerpose annotation json data, you have the z value of the "location" field to be negetive like this:
-0.38022490531119946
but for the synthetic data generation pipeline, the data is more or less bounded by a volume like this:where z value is never negetive for synthetic data generation pipeline (which also makes sense as in front of camera, the z depth should be positive not negetive). Why is the discrepency and how to mitigate through this problem ??
The text was updated successfully, but these errors were encountered: