NVlabs / Deep_Object_Pose

Deep Object Pose Estimation (DOPE) – ROS inference (CoRL 2018)
Other
1.03k stars 287 forks source link

nvisii: Add handling of symmetries #239

Closed mintar closed 2 years ago

mintar commented 2 years ago

This adds support for rotationally symmetrical objects to the nvisii data generation script.

Instead of writing a long description here, a good starting point is the README section that I've added in this PR:

https://github.com/mintar/Deep_Object_Pose/tree/2d667e59deca5db528527462b479c714dbc24fe4/scripts/nvisii_data_gen#handling-objects-with-symmetries

TontonTremblay commented 2 years ago
image

This is a huge feature, thank you so much 🙏! I read the readme, it is very well written, and I love that you have a second example. I will test the code later today. Maybe we could add a little bit more about how symmetries_discrete works. This is the most common one. I thought about it as planes that dissects the object in two. But I think you put a single transform. Also are they in the nvisii coordinate frame or in opencv?

mintar commented 2 years ago

Maybe we could add a little bit more about how symmetries_discrete works. This is the most common one.

Yes, I'll do that.

I thought about it as planes that dissects the object in two. But I think you put a single transform. Also are they in the nvisii coordinate frame or in opencv?

You can think of it like this: If you choose two different transforms from symmetries_discrete (for example the identity transform and the transform that rotates the object by 180° around the z axis), apply either the first or the second of those transforms to the object and render the result, the resulting image should look the same.

The hex_screw object has a 6-way symmetry, that's why the symmetries_discrete has 5 elements (because the identity transform is automatically added). Likewise the cylinder has a 180° discrete symmetry (top + bottom look the same), so symmetries_discrete has one element (plus the automatically added identity transform).

They are in the model coordinate frame.

TontonTremblay commented 2 years ago

Also the hex screw video is corrupted for me, could you reupload it? Or is it just me.

mintar commented 2 years ago

Also the hex screw video is corrupted for me, could you reupload it? Or is it just me.

For me that video plays just fine, and I generated it exactly the same as the other videos. Perhaps try a different browser?

mintar commented 2 years ago

Here' s a re-upload, not sure if that helps

https://user-images.githubusercontent.com/320188/160875294-3fe63e1b-c825-495f-911c-e74e17e5a8fe.mp4

:

TontonTremblay commented 2 years ago

Yeah firefox really does not like that file, chrome likes it fine :( not sure why. humm. Lets leave it. Let me accept the PR then. Thank you so much again. Stellar work. Quick question did you change your email address? I sent you 2 emails but I never got an answer.

mintar commented 2 years ago

Yeah firefox really does not like that file, chrome likes it fine

Weird, works for me in firefox... Thanks for merging!