Comments (14)
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.
from img2pose.
Sorry, you missed the link in the first sentence. I cannot see it.
from img2pose.
Edited.
from img2pose.
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 |
from img2pose.
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.
from img2pose.
Thank you so much. ❤️
from img2pose.
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.)
from img2pose.
We could do that, but to be fair with other models compared to, we only use xyz.
from img2pose.
Alright, thank you.
from img2pose.
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.
from img2pose.
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.
from img2pose.
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 |
from img2pose.
I still consider this result as a big gap. 🐰
from img2pose.
If what you care most is pose evaluation in Euler angles, then sure, use the fine-tuned model.
from img2pose.
Related Issues (20)
- Question for face alignment HOT 2
- Question about 300W-LP labels acquirements HOT 6
- Pose to angle HOT 1
- jaw data HOT 1
- Hi, I'm confused about the definition of the output pose HOT 1
- Slow inference HOT 2
- Question about Visualizing the Activation Map on each layer of the model HOT 1
- Question on fine-tuning HOT 1
- Question about Fine tuning Model with 300W-LP HOT 1
- Bug in readme file HOT 1
- img2pose_v1.pth convert onnx? HOT 1
- A Question about the conversion of t .
- A question about K_box and K_img. HOT 1
- A Question about fine-tuning HOT 2
- TypeError: a bytes-like object is required, not 'NoneType' HOT 4
- A Question about the 6DoF HOT 1
- A Question about the convert_to_aflw
- ONNX output is giving incorrect DOF values HOT 1
- How to get the tvec=[tx,ty,tz]?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from img2pose.