XgTu / 2DASL

The code (pytorch for testing & matlab for 3D plot and evaluation) for our project: Joint 3D Face Reconstruction and Dense Face Alignment from A Single Image with 2D-Assisted Self-Supervised Learning (2DASL)
MIT License
467 stars 116 forks source link

How did you evaluate the NME of your model and PRNet in 3D face reconstruction? #33

Open deepdarkfans opened 3 years ago

deepdarkfans commented 3 years ago

PRNet has different dimensions than any other model because the neck part is removed. When I evaluated PRNet and your model, I found that PRNet's has the worst NME, probably because I removed some dimensions from the ground truth, so how did you evaluate the two models?

Nancyh-e commented 3 years ago

hi, how to get NME of PRNet,i get a bigger result compare to the NME paper. hope your reply!thanks!

HOMGH commented 3 years ago

Hi @deepdarkfans , did you get your answer? I have the same question as we get 43K vertices using PRNet but the groundtruth for AFLW2000 data set has 53K vertices.

deepdarkfans commented 3 years ago

Hi @deepdarkfans , did you get your answer? I have the same question as we get 43K vertices using PRNet but the groundtruth for AFLW2000 data set has 53K vertices.

No, but I have a method you can try. When calculating NME, you can multiply the ground truth of AFLW2000 by the weight matrix of the PRNet loss function, which should ignore the neck part

deepdarkfans commented 3 years ago

hi, how to get NME of PRNet,i get a bigger result compare to the NME paper. hope your reply!thanks!

I have a method you can try. When calculating NME, you can multiply the ground truth of AFLW2000 by the weight matrix of the PRNet loss function, which should ignore the neck part

HOMGH commented 3 years ago

Hi @deepdarkfans , did you get your answer? I have the same question as we get 43K vertices using PRNet but the groundtruth for AFLW2000 data set has 53K vertices.

No, but I have a method you can try. When calculating NME, you can multiply the ground truth of AFLW2000 by the weight matrix of the PRNet loss function, which should ignore the neck part

Thank you for your reply. Where can I find this weight matrix? Do you mean the uv_face _mask in ./Data folder? (below) But this can be multiplied by the uv position map not the vertices. So should we first convert AFLW2000 ground truth to uv position map and then multiply with this map? image

deepdarkfans commented 3 years ago

Yes, you need to convert AFLW2000 to UV position map,

HOMGH commented 3 years ago

Yes, you need to convert AFLW2000 to UV position map,

Awesome! Thanks :)