-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
left-right flip #46
Comments
Hi @jutanke, Nice catch. There seems to be a reflection about the x axis. This seems quite strange to me to be honest, as it's hard for me to image a preprocessing that would accidentally flip the coordinates. I am not sure what the visualization function has to do with this. Could you please elaborate? |
Hi @una-dinosauria , |
I am just trying to find this figure today! So nice of you, it is very useful for my project. |
Are you sure about the label of joints number in the figure? From the code to visualize data, I see that 👍 parent = np.array([0, 1, 2, 3, 4, 5, 1, 7, 8, 9,10, 1,12,13,14,15,13, Because 1 has appearance three times, 13 two times so I think the hip is 1 and chest is 13, or hip is 0 and chest is 12. It cannot be hip mark 0 and chesht 13, it doesn't match this code |
Hi, human-motion-prediction/src/forward_kinematics.py Lines 174 to 178 in c9a2774
. This yields n x 32 x 3 as 3D joint coordinates which you can then simply plot. The number is the respective index. I am not super familiar with the code base yet but the code you posted parent = np.array([0, 1, 2, 3, 4, 5, 1, 7, 8, 9,10, 1,12,13,14,15,13,17,18,19,20,21,20,23,13,25,26,27,28,29,28,31])-1 seems to be taken from matlab as there is a -1 at the end. |
Update I align the ground-truth pose (poses from the original dataset and not converted from the exp maps) by first translating the whole pose so that the hip centre is at (0, 0, 0), then rotate around the z-axis so that the person faces forward in the positive y-direction ("facing" means: the 2d normal in the xy-plance from the vector [left hip - right hip]), then rotate around the y-axis to ensure that the left and right hip both touch the x-axis. In the pictures below the orange/green person is from the original ground truth points while the blue/red person is the pose extracted by forward kinematics from the exponential maps. It seems that the poses generated by the forward kinematics lean backwards quite significantly. I was first thinking that there might be some constant rotation difference but that is also not the case: in the last plot I plot the the radians along the x-axis needed to match the two poses and it is definitively not constant. @una-dinosauria do you think that there are issues with the forward kinematics or are there other things at play that I have not taken into account? All plots below where generated from the second sub-action video "Walking" from actor "S1". (I flip left and right so that the extracted poses have the correct left/right sides) |
Hi @jutanke, Thanks for your great work tracking down this issue, and sorry for the delay in responding; I was very busy with a deadline. I suspect this is probably my fault. I try to be pretty careful when I port code to make these transformations, but it seems like this time I really did mess something up. You may want to look into that function and the corresponding matlab reference code and that may fix the issue. I'll be super grateful if you can submit a fix as well. Cheers, |
It seems like left and right are flipped in your 3D representation, e.g. the following code
human-motion-prediction/src/viz.py
Line 25 in c9a2774
seems to conflict with the human 3.6m matlab code
.
The plot below shows the original 3D ground truth location ('Ground Truth') from human3.6m, the particular frame of the video and the 3D plot in expmap format, transformed to 3D joint coordinates using your forward kinematics function, provided with your repository ('ExpMaps').
Is there an intention behind the flip?
The text was updated successfully, but these errors were encountered: