Arthur151 / ROMP

Monocular, One-stage, Regression of Multiple 3D People and their 3D positions & trajectories in camera & global coordinates. ROMP[ICCV21], BEV[CVPR22], TRACE[CVPR2023]
https://www.yusun.work/
Apache License 2.0
1.33k stars 229 forks source link

Params Loss #356

Closed GuKerui closed 1 year ago

GuKerui commented 1 year ago

Hi, Yu, thank you for your great work!

I noticed that ROMP used 6D representation in the outputs[params_maps], but in the loss, still axis-angle representation to matrix? why not using the parameters in ['params_maps']?

Thank you!

Arthur151 commented 1 year ago

Hi, @GuKerui ,

Yes, we take the 6D representation. For loss calculation, we convert it to 9D rotation matrix for supervision. https://github.com/Arthur151/ROMP/blob/b108da9e9fe96282d8235a1051a7030d335d9869/romp/lib/loss_funcs/params_loss.py#L25 Please note that 6D rep. is the normalized version of 9D 3x3 rotation matrix. https://github.com/Arthur151/ROMP/blob/b108da9e9fe96282d8235a1051a7030d335d9869/romp/lib/utils/rot_6D.py#L12

GuKerui commented 1 year ago

thank you for your reply! by the way, why does my code not report results on 3dpw test test, but only val set? is there a hyper-parameter thing?

Arthur151 commented 1 year ago

@GuKerui Because we think the right way is to choose the best checkpoints on validation set. Then we individually perform evaluation on the test set for only one time to perform a fair comparison with other SOTAs. We may miss the best number on the test set, but I think this is the right way.

If you want to see the performance on the test set, then you can replace the 'self.dataset_val_list' at https://github.com/Arthur151/ROMP/blob/b108da9e9fe96282d8235a1051a7030d335d9869/romp/train.py#L117 with the 'self.dataset_test_list', which is defined at https://github.com/Arthur151/ROMP/blob/b108da9e9fe96282d8235a1051a7030d335d9869/romp/base.py#L146

GuKerui commented 1 year ago

Thank you so much!