zhan-xu / RigNet

Code for SIGGRAPH 2020 paper "RigNet: Neural Rigging for Articulated Characters"
GNU General Public License v3.0
1.36k stars 189 forks source link

Code to compute metrics is missing #81

Open Mostly-Clueless opened 1 year ago

Mostly-Clueless commented 1 year ago

Hi, I was wondering if it would be possible to share the code you have used to compute all the evaluation metrics mentioned in the paper? I'm trying to reproduce the results and the lack of code to compute these metrics is a major bottleneck.

zhan-xu commented 1 year ago

Hi please check https://github.com/zhan-xu/RigNet/issues/65

Mostly-Clueless commented 1 year ago

Hi, thank you so much for the link to the code! I noticed that the code makes use of joint_featuresize to determine error thresholds for reference joints, but couldn't find the code to compute these. Can you please share the code to compute these as well?

zhan-xu commented 1 year ago

feature size is calculated by a cpp code that unfortunately I couldn't share.

You can take a look at this code that might be helpful. The average length of the rays that go from joints perpendicular to the bones hitting at the surface is the feature size...

Alternatively, feature size is similar to half the local shape diameter, as we put in the paper. To get local shape diameter, you can refer to libigl (https://libigl.github.io/libigl-python-bindings/igl_docs/#shape_diameter_function) or pymesh (https://libigl.github.io/libigl-python-bindings/igl_docs/#shape_diameter_function). You can find nearest surface vertex around each joint, get their shape diameters and average.

Mostly-Clueless commented 1 year ago

Hi, thank you so much for your reply. The links that you shared were super helpful for me to implement the code to compute feature size. I was wondering if it is possible for you to share the threshold values alone? I find that the final metrics are quite sensitive to changes in the thresholds which makes reproducing the results challenging. So would it be possible to share the threshold values that you have used in the paper so that I can verify if the thresholds I'm computing are correct?

zhan-xu commented 1 year ago

I used threshold like 1e-4 or 1e-5. A better way is grid-searching the threshold on test split that produces the best numbers. I also discarded three results where RigNet totally failed. So the numbers in the paper are calculated on 267 out of 270 test characters.