-
Notifications
You must be signed in to change notification settings - Fork 6
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
how did you annotate vertices of 3d-shape? #1
Comments
Thanks for your interest! We manually labeled an approximate location of the vertex corresponding to the key point. Here are our labels for the few categories we used. |
Hi, I used Autodesk mesh-mixer to create vertex groups. Yes, your interpretation of figure 2 is correct. We found that one transformation per part is sufficient to model the major articulations in quadrupeds. We also perform blending along with applying per-part transformations. Sample pseudo-code:
I hope this helps! |
Hi, Please edit the L559 and run the code as horse_parts.obj contains all parts as dis-connected components, and the part_names.txt provides the names for those disconnected components. Best, |
Thank you for your reply! I will try it. |
Best, |
|
|
|
First, you rotate the head by pi/2 and then you rotate the by the necks rotations., yes every vertex is rotated by the transformation of the part (which is T_{k} as in equation 4) remember we do not predict T_{k} directly we predict the local transforms for the parts. I think in your example pi/2 and pi/6 represent the local transformation for neck and head. So you should compute the global transforms for the head as R_{head_global} = R_{neck}* R_{head}. Similarly, create another set of vertices by rotating using just the R_{neck} and then do a linear combination of them using the alpha. |
I am still unclear, should I R_{neck}* R_{head} first or should I get mean of 7 rotation first and then rotate with R_{neck}? |
Here is the idea. Let's assume we have three parts body, neck, and head. Now let Thead = T' neck * T' head represents the global transform, and Tneck = T'neck since neck's parent has identity transform. T body = T' body With these parts, we can create a new set of vertices as follows vhead = Thead * v vblended = alphahead * vhead + alphaneck * vneck + alphabody * vbody |
I think I need to translate the head after neck rotation, but the rotation center changed and not equal to Rneck.dot(center_head). How can get this new center? |
This v = vertex - rotation center of each part, is it right? |
Yes, If you subtract the rotation center you do have to add it back after you perform the rotation. I'm abstracting out everything into the transform T |
so in practice we learn only rotation and translation of each part and get a final vertex like v_blended = alpha_head * v_head + alpha_neck * v_neck + alpha_body * v_body v_head = R_head * v + t this v is vertex that is not subtracted by rotation center. Is it right? |
If I am not misunderstood, there is no need to get rotation center of each part? Since you put all into t. |
Thank you for your advice. I finally finish this part. |
Thank you for your excellent work!
I have read your paper and have questions: how did you annotate vertices of 3d-shape, e.g. horse?
The text was updated successfully, but these errors were encountered: