garyzhao / SemGCN

The Pytorch implementation for "Semantic Graph Convolutional Networks for 3D Human Pose Regression" (CVPR 2019).
https://arxiv.org/abs/1904.03345
Apache License 2.0
460 stars 78 forks source link

can't reproduce same performance #16

Closed hongsukchoi closed 4 years ago

hongsukchoi commented 4 years ago

Hi, first of all thank you for sharing the codes.

I am currently trying to reproduce MPJPE(P1) 40.78 with your SemGN+nonlocal model, having ground truth 3d pose as input.

I copied your model, adjacency matrix parsing code. Optimizer and loss function, data preprocesses are all coded according to this repo.

The only different thing is the preprocessed Human3.6M dataset and dataloader code, joint coordinates are in mm scale, but I'm sure it doesn't have problem.

Do you have any clue what's going wrong? This is my training loss graph and error graph.

스크린샷 2019-12-23 14 44 09 스크린샷 2019-12-23 14 43 50

ps) While the code uses normalized adjacency matrix which is defined as 'A serves as a mask which forces that for node i in the graph' in the paper, what is the point of normalizing if it is just a mask? Is there any difference with just using original adjacency matrix? Thanks.

garyzhao commented 4 years ago

Hi @hongsukchoi

Thanks for your interest in our work.

Your training and evaluation curves make sense to me. I have no idea why the performance is different here. Maybe you can check "data/prepare_data_h36m.py" to see if we have the same preprocessed data.

No, they should be the same. In "models/sem_graph_conv.py", we just convert the adj into a mask, so the normalization does not matter here.

Best, Long

hongsukchoi commented 4 years ago

Hi Long,

I really appreciate your answer and suggestion. I found the difference between your's and my setting. It was whether to root align the img coordinate input after _normalize_screencoordinates function. I didn't realize that this repo don't align the input relative to root joint. I was confused with the paper's guideline.
After removing the code of root-aligning, I got a similar performance.

and thanks for assuring me about the preprocessing adjacency matrix!