una-dinosauria / 3d-pose-baseline

A simple baseline for 3d human pose estimation in tensorflow. Presented at ICCV 17.
MIT License
1.41k stars 355 forks source link

Hip Centering in data preprocessing #210

Open YuktiADY opened 1 year ago

YuktiADY commented 1 year ago

Hallo,

I have been using this repo for estimating 3d skeleton. Below is my question that i would appreciate if you can answer.

  1. In the code this is this line which is doing hip centering. poses = poses - np.tile( poses[:,:3], [1, len(H36M_NAMES)] ) poses_set[k] = poses Is this necessary to do hip centering on 3d skeleton for estimating 3d pose? Is the hip centering only on 3d skeleton not on 2d ?

Because i have been training this model on my custom dataset but my validation loss is not decreasing even after the so much hypermparamter tuning.

Please give your valuable suggestion.

reyrobs commented 1 year ago

Hello, I am currently trying to train on the Human3.6m dataset, but my training loss is not decreasing at all and the errors for each joint is always the same at each epoch. So something tells me the model is not updating any weights since everything is the same at each epoch. Could you please tell me if you managed to successfully train on the Human3.6m dataset? And if so how did you do it?

YuktiADY commented 1 year ago

Hello, Hope you are doing good.

I didnt train on Human3.6m dataset, rather i trained on my custom dataset. It was running fine. Have you evaluated your trained model. If yes which script you ran ? Can you share the script ? Because i have trained model and i want to evaluate on different dataset .

reyrobs commented 1 year ago

Hi and thanks for your reply. It turns out in the end that I had to import tensorflow differently in order to use the older version of it. I managed to run the model on the Human3.6m in the end and got good results. I will now run it on a custom dataset but I still need some time to get that to work

TaengguK commented 1 year ago

Recently I use this model to estimate hip joint. I think this centering is only on 3d skeleton because this centering function only passes 3d poses. There is a note in "linear_model.LinearModel" class: "There are in total 17 joints in H3.6M and 16 in MPII (and therefore in stacked hourglass detections). We settled with 16 joints in 2d just to make models compatible (e.g. you can train on ground truth 2d and test on SH detections). This does not seem to have an effect on prediction performance." "In 3d all the predictions are zero-centered around the root (hip) joint, so we actually predict only 16 joints. The error is still computed over 17 joints, because if one uses, e.g. Procrustes alignment, there is still error in the hip to account for!" In my opinion, from this note, it can be seen that centering is necessary in this model.