Code Monkey home page Code Monkey logo

Comments (4)

nkolot avatar nkolot commented on August 10, 2024

HMR uses the axis-angle representation for the rotation matrix, i.e. they regress the 3-dimensional axis angle vector for each joint that is then converted to a 3x3 rotation matrix inside the SMPL model using the Rodrigues formula.

Here we are regressing the full 3x3 rotation matrix, but the regressed matrix won't necessarily be a valid rotation matrix. So we do an extra step of "projecting" it to the manifold of rotation matrices. The process that we are doing here is one of the possible ways of achieving this.

from graphcmr.

Maqingyang avatar Maqingyang commented on August 10, 2024

Thanks for your fast reply! It's very informative.
It sounds to me a natural choice to regress axis angle vector instead of rotation matrix. The axis angle vector is always valid, which seems superior than rotation matrix,because rotation matrix needs extra process to make it valid.
So, why you choose rotation matrix in your paper? Is it based on your prior assumption? Or you have tried both and found that rotation matrix is better?
I'm curious about the insight behind this choice. BTW, you really did a good job which seems so different from previous work!

from graphcmr.

nkolot avatar nkolot commented on August 10, 2024

Although it might seem simpler, regressing axis-angle representations (or Euler angles e.g.) is very challenging.

Other works (e.g. Pavlakos et al. CVPR2018) used axis angle but applied the loss on the rotation matrices instead of the axis angle representations, because distance in axis angle space is not always a good measure of the distance between the rotation matrices.

I tried both at some point and regressing the full 3x3 rotation matrix performed significantly better.

I would suggest reading this paper that discusses the problem of regressing 3D rotations in detail. Here they propose another 6D representation for 3x3 rotation that is continuous. It is hypothesized that it is easier to regress continuous functions with neural networks. I've used this 6D representation in other works and it seems to be working really well.

from graphcmr.

Maqingyang avatar Maqingyang commented on August 10, 2024

Thanks! I will read more about it!

from graphcmr.

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.