GithubHelp home page GithubHelp logo

Comments (2)

XYZ-99 avatar XYZ-99 commented on August 16, 2024 1

I'll answer the second question first. Yes, these rotations are sampled from a uniform distribution over SO(3).

For the first question, let me elaborate on that. (Just in case of confusion from overridden terms, I will put quotes around "grid" when I'm referring to the "grid" mode; otherwise I'm using the term—grid—to simply denote a discretization of SO(3) of shape [num, 3, 3] in our code.)

A little background context:

  1. The "grid" mode will generate an equivolumetric grid over SO(3), which is deterministic and perfectly even over SO(3). The "random" mode samples a given number of rotations from a uniform distribution over SO(3). If the number is sufficiently large, either mode is expected to provide a decent discretization of SO(3).
  2. Whenever we are predicting the probability of an arbitrary rotation, we will rotate the grid to align with the input rotation so that one rotation from that grid is exactly the input rotation. And then we will query the network with rotations from that grid and normalize the outputs to get the probabilities.

Now if we choose the "grid" mode during training, for each training sample, its probability is normalized over the same grid. This will not be a problem if:

  1. the number of training samples is sufficiently large;
  2. the distribution of rotations in the training samples is sufficiently even across SO(3).

However, these conditions might not always hold true because the line for "sufficiently" is fairly blurry. Under those circumstances, you can imagine it's theoretically possible that the probabilities of rotations outside those grids are out of control and can be a troublemaker when we sample during testing.

If we use the "random" mode, for each training sample, the probability is normalized over different grids of rotations, which effectively helps smooth the probabilistic distribution over SO(3).

When we sample from GraspIPDF, we use a pre-generated grid under the "grid" mode for efficiency.

I hope I have delivered my points clearly. Feel free to follow up in this issue otherwise!

from unidexgrasp.

waqc avatar waqc commented on August 16, 2024

Thanks a lot for the detailed explanation. I fully understand it now.

from unidexgrasp.

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.