kasvii / GATOR

Official code of ICASSP 2023 paper "GATOR: Graph-Aware Transformer with Motion-Disentangled Regression for Human Mesh Reconstruction from a 2D Pose"
https://arxiv.org/pdf/2303.05652.pdf
MIT License
27 stars 2 forks source link

Code Questions #1

Closed jianlai123-123 closed 1 year ago

jianlai123-123 commented 1 year ago

Hello, I have a few questions about the code, and I hope to receive your answer. First, I didn't understand where the SDGA code started.

121

Secondly, from models import meshnet, posenet, I didn't see these two modules in models. Looking forward to your reply, thank you.

12

@kasvii

kasvii commented 1 year ago

Thank you for pointing out this. The old code was incomplete. We have collated and reuploaded the full code.

  1. SDGA is here.
  2. The 'meshnet' and 'posenet' were the old names of MDR and GAT, respectively. And we have corrected them.
jianlai123-123 commented 1 year ago

Thank you for your reply.

jianlai123-123 commented 1 year ago

Hello, what do these two sentences of code mean? shortest_path_result = np.load('./data/base_data/shortest_path_h36m.npy') path = np.load('./data/base_data/path_h36m.npy')

The dataset does not contain a shortest path H36m. npy and path_ h36m.npy

1

@kasvii

kasvii commented 1 year ago

The 'shortest path results' denotes the hop distances between joints. And the 'path' records the path information from one joint to another. Here shows the illustration. They are pre-processed from the skeletons, which are used to calculate the hop and path encodings. You can get them from the uploaded base_data.

jianlai123-123 commented 1 year ago

Thank you for your reply.

jianlai123-123 commented 1 year ago

Hello, I have a few questions about the code and hope to receive your response. First, shortest path result = np.load('./data/base_data/shortest_path_3dpw.npy') path = np.load('./data/base_data/path3dpw.npy')。 base Two data files not mentioned in data, such as shortest path 3dpw.npy and path 3dpw.npy。 Do I have to handle this myself? Download base Data does not have permissions.

2

Second, calculate edge Input mentions edg Adj, but calculate edg Adj requires a template joint,J regressor,init vertices,SMPL MEAN vertices。

How to obtain J regressor and what does it represent Is it obtained this way: J regressor = eval(f'torch.Tensor(main_dataset.jointregressor{cfg.DATASET.input_joint_set})') ?

Why use smpl mean Vertices.npy Calculate init_ vertices 。 I hope to receive your reply. @kasvii

kasvii commented 1 year ago
  1. Thank you for pointing out that. The download permission is available now. And the base_data list is updated including the path files.
  2. J_regressor is a transformation matrix that is multiplied by the mesh and can project the mesh to the 3D joints. For detailed information, you can refer to the Sec. 4.3 in the main paper of Pose2Mesh. The J_regressors are in data/COCO/J_regressor_coco.npy and data/Human36M/J_regressor_h36m_correct.npy. And you can get them by the code you mentioned.
  3. 'smpl mean vertices' is used as the initialization of vertices following previous work like GTRS, Mesh Graphormer, GraphCMR.
jianlai123-123 commented 1 year ago

Thank you for your reply.

jianlai123-123 commented 1 year ago

Hello, introduce graph structure information into the attention mechanism. Will adding structural information to the attention score make the model unable to train? I found that as long as the attention score model is modified, it cannot be trained. May I ask what is going on? Looking forward to your reply, thank you.

kasvii commented 1 year ago

Our model has added two kinds of structural information, i.e., hop and path. And it can be trained. If you are changing this part, you can check if the gradient is available.

jianlai123-123 commented 1 year ago

Thank you for your reply.