metrabs icon indicating copy to clipboard operation
metrabs copied to clipboard

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

Open ChangjianLi opened this issue 3 years ago • 3 comments

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?

ChangjianLi avatar Jul 19 '22 06:07 ChangjianLi

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.

isarandi avatar Jul 19 '22 08:07 isarandi

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

ChangjianLi avatar Jul 19 '22 09:07 ChangjianLi

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.

isarandi avatar Jul 19 '22 09:07 isarandi