Skip to content
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

Question on fine-tuning for face pose evaluation #59

Closed
FunkyKoki opened this issue Dec 28, 2021 · 14 comments
Closed

Question on fine-tuning for face pose evaluation #59

FunkyKoki opened this issue Dec 28, 2021 · 14 comments
Labels
question Further information is requested

Comments

@FunkyKoki
Copy link

As your paper declares, for face pose evaluation, you fine-tune the model on 300W-LP dataset. However, I cannot find the corresponding code in your repository, did I miss it?

@vitoralbiero
Copy link
Owner

vitoralbiero commented Dec 28, 2021

The code to fine-tune on 300W-LP is the same as in here, we just didn't release the annotations.
If you want to fine-tune yourself, you will need to create 300W-LP ground-truth data, load the pre-trained WIDER-FACE weights when training, and fine-tune on 300W-LP.

If you prefer, the fine-tuned pre-trained model can be found here.

@FunkyKoki
Copy link
Author

Sorry, you missed the link in the first sentence. I cannot see it.

@vitoralbiero
Copy link
Owner

Edited.

@FunkyKoki
Copy link
Author

FunkyKoki commented Dec 29, 2021

So would you release the annotations?

As I see, without fine-tuning, the network performance is very poor.

Performance comparison on AFLW2000:

yaw pitch roll MAE
without fine-tuning 4.541 8.322 5.586 6.150
with fine-tuning 3.426 5.034 3.278 3.913

@vitoralbiero
Copy link
Owner

We have no plans on releasing these annotations at this time.
You can use our instructions to annotate it if you would like.

The performance only appears to be poor because of a problem with Euler angles.
This causes samples that have small qualitative and other format error to be computed as a large error.
You can see an example here.

Apart from evaluating with Euler angles, we recommend using the model without fine-tuning.

@FunkyKoki
Copy link
Author

Thank you so much. ❤️

@FunkyKoki
Copy link
Author

FunkyKoki commented Dec 29, 2021

The performance only appears to be poor because of a problem with Euler angles.

So what if we use 'xyz' and 'zxy' to decode the output at the same time, and choose the best as the final result? (I mean, for each face.)

@FunkyKoki FunkyKoki reopened this Dec 29, 2021
@vitoralbiero
Copy link
Owner

We could do that, but to be fair with other models compared to, we only use xyz.

@FunkyKoki
Copy link
Author

Alright, thank you.

@FunkyKoki FunkyKoki reopened this Jan 1, 2022
@FunkyKoki
Copy link
Author

FunkyKoki commented Jan 1, 2022

Happy new year!

As I have tried. Even though I choose the minimum error between xyz and zxy decoding, the redults are not very well as well.

yaw pitch roll MAE
without fine-tuning 4.541 8.322 5.586 6.150
without fine-tuning (choose minimum of xyz and zxy decoding) 4.830 7.816 5.517 6.054
with fine-tuning 3.426 5.034 3.278 3.913

So, the fine-tuning plays an important role in the pose evalution.

@vitoralbiero
Copy link
Owner

Thanks, to you too!

Have you also converted the GT to zxy? Just swapping axis won't work, and the errors will be big.
You'll need to do something like:
gt_zxy = Rotation.from_euler("xyz", pose_target[:3], degrees=True).as_euler("zxy", degrees=True)
Also make sure when converting the prediction to Euler angles in zxy format that z and y have a negative sign and x doesn't.

Regardless, the fine-tuning tries to constrain the poses learned to less than 90 degrees, that's why it performs better when tested with Euler angles.

@FunkyKoki
Copy link
Author

OK, I retest the model without fine-tuning, the results are as following:

yaw pitch roll MAE
without fine-tuning 4.541 8.322 5.586 6.150
without fine-tuning (choose minimum of xyz and zxy decoding) corrected 4.751 5.788 3.898 4.812
with fine-tuning 3.426 5.034 3.278 3.913

@FunkyKoki
Copy link
Author

I still consider this result as a big gap. 🐰

@vitoralbiero
Copy link
Owner

If what you care most is pose evaluation in Euler angles, then sure, use the fine-tuned model.

@vitoralbiero vitoralbiero added the question Further information is requested label Apr 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants