Giter Club home page Giter Club logo

Comments (12)

nkolot avatar nkolot commented on August 26, 2024 1

The code for training is already available on this repo. You just need to choose the FullDataset in the command line options.
We include code to prepare the test data of Human3.6M for evaluation. You can use this code to create the .npz file for the train data with only trivial modifications. You will need though to manually add the SMPL betas and shape parameters in the npz file. Our dataset class should be able to handle all that with no changes.

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

That's great thanks -- I'll close issue for now :)

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

I'm not sure this is quite trivial yet... The version of SMPL parameters I have contains a series of pkl files named (action)_cam(id)_aligned.pkl. In these files there is a 'new_poses' and 'betas' entry.

I'm struggling at present to get my SMPL renders to line up with the 3D key-points from S24 which originally come from 'D3_Positions_mono'.

I render these with code like:

poses = smpl_data['new_poses'][frame_i / 5]
betas = smpl_data['betas']
verts, joints_3d = SMPL(betas[None, :], poses[None, :])

Then to get them to even nearly align, I have to flip the y-coordinate:

verts *= np.array([1, -1, 1])
joints_3d *= np.array([1, -1, 1])

However, the result still looks wrong to me:

Screenshot 2019-07-26 at 16 32 23

I wonder if you have any tips on getting this to work?

from graphcmr.

nkolot avatar nkolot commented on August 26, 2024

Did you try to align them? E.g. subtract the 3D location of the same joint for the 2 sets of joints? This should remove any spatial offset.

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

That would work in theory, although (as far as I know) your code only expects a set of shape & pose parameters for SMPL... I wouldn't be able to provide these offsets downstream?

It would be very useful to see the code your team used in this dataloader (which creates a .npz file) if at all possible.

from graphcmr.

nkolot avatar nkolot commented on August 26, 2024

This is the standard process used in most implementations. We do not explicitly regress depth or the precise translation of the object in the camera coordinate system. In the training and evaluation code as you can see, I align them at the root joint. So it should work as intended with the pose and beta parameters we have.

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

I see... In this case, does it not matter that the 3D joints generated by the SMPL model (via shape + pose) do not align with the 3D key points from S24 (via D3_positions_mono) in the preprocessing script?

from graphcmr.

nkolot avatar nkolot commented on August 26, 2024

Yes it does not matter. But you might have to check this issue, where they had to reflect the pose.

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

Thanks so much for the help, and the tip about the 'upside-down' people. I'll close the issue again and train tonight.

from graphcmr.

benjiebob avatar benjiebob commented on August 26, 2024

As a very brief final question... is it strange that I can't see any 2D positions marked on the Human3.6m images when I view in tensorboard? It was this that began my debugging exercise -- I assumed I had them positioned incorrectly.

See example of joints identified in top row and not in human3.6m bottom row:

Screenshot 2019-07-26 at 20 20 31

from graphcmr.

geopavlakos avatar geopavlakos commented on August 26, 2024

You should also populate the training .npz files with the correct 2D joints. This is probably why you can't see the 2D locations here.
Also, for the SMPL parameters, you can confirm that they are correct by generating the mesh and projecting it to the image. Then you can easily evaluate the alignment between the model and the image.

from graphcmr.

NewCoderQ avatar NewCoderQ commented on August 26, 2024

Hi @nkolot , what is the different processing between *.pkl and the *_camx_aligned.pkl, or could you tell me where I can find the process scripts? I want to get the continuous smpl mesh.

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.