Skip to content
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

Does metro.py can be used for training and testing? what are the differences between metrabs.py and metro.py #41

Closed
ChangjianLi opened this issue Jul 19, 2022 · 3 comments

Comments

@ChangjianLi
Copy link

Hi, I would like to produce root-relative only results by Metro, is this possible to run the training and testing using this repo instead of the old one? because the main.py will use Metrabs as the default model for the processes right?

@isarandi
Copy link
Owner

That's still possible, though I don't have sample code for that. Those experiments from the paper were trained with the old repo using Tensorflow 1, where I did provide the commands for training.

It should be quite simple you just need to replace Metrabs with Metro in a few places in main.py (or introduce a command line argument to choose between them). The difference is that Metro gives no estimate for the absolute root position, and the result cannot be projected onto the image, it is simply a root-relative 3D output with unspecified 2D correspondence.

@ChangjianLi
Copy link
Author

That's still possible, though I don't have sample code for that. Those experiments from the paper were trained with the old repo using Tensorflow 1, where I did provide the commands for training.

It should be quite simple you just need to replace Metrabs with Metro in a few places in main.py (or introduce a command line argument to choose between them). The difference is that Metro gives no estimate for the absolute root position, and the result cannot be projected onto the image, it is simply a root-relative 3D output with unspecified 2D correspondence.

Hi, thx for your fast reply : ). This project is amazing, I wish there can be an update for Metro implementation guidance in this repo lol. So I looked through the init.py and there is an argument 'model_class' which can choose metro for the processes, and is that the only thing I need to change? or I have to change the setup of the datasets as well and such.
And I also checked through the metrabs.py and I found that it set up an option which if FLAGS.transform_coords is True then applying the function latent_points_to_joints() , what's the purpose for this function?

thx

@isarandi
Copy link
Owner

That's an experimental flag that should normally be off. It's not used for the paper. I will push an update sometime that cleans those things up.

Dataset-wise there's no difference. But actually MeTRAbs performs a strict superset of MeTRo's functionality at negligible additional computation and gives results that can be projected onto the image and the 2D head also improves the quantitative results somewhat. Though if I recall correctly pure MeTRo got a little better numbers on H36M, but H36M is also not totally representative of everything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants