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

How to get face embedding / encoding? #102

Open
josephernest opened this issue Oct 30, 2020 · 6 comments
Open

How to get face embedding / encoding? #102

josephernest opened this issue Oct 30, 2020 · 6 comments

Comments

@josephernest
Copy link

josephernest commented Oct 30, 2020

Congrats for this nice project @ipazc!
I see the output of your algorithm is something like:

[
    {
        'box': [277, 90, 48, 63],
        'keypoints':
        {
            'nose': (303, 131),
            'mouth_right': (313, 141),
            'right_eye': (314, 114),
            'left_eye': (291, 117),
            'mouth_left': (296, 143)
        },
        'confidence': 0.99851983785629272
    }
]

i.e. it gives the bounding box, the keypoints (nose, mouth, eye, etc.).

But how to get an face embedding / face encoding, to be able to do face identification?

@MattyB95
Copy link
Contributor

I may have misunderstood what you are asking, but this project isn't about getting face encodings for recognition purposes. For that, you will need something else, such as https://github.com/ageitgey/face_recognition.

@josephernest
Copy link
Author

@MattyB95 Maybe I misunderstood this project, but I thought MTCNN + FaceNet not only allows face detection, but also recognition / identification, by assigning a 128D vector embedding to each face.

https://github.com/davidsandberg/facenet

Is it correct @ipazc?

@MattyB95
Copy link
Contributor

@josephernest I'm not completely familiar with FaceNet but wouldn't that be providing the face recognition/identification encodings. This project would be more about cropping the image to the facial region for that purpose, but I will let @ipazc give his verdict :)

@imnimn
Copy link

imnimn commented Nov 3, 2020

MTCNN is only used to detect faces in an image,
The value in the the "box" are the corners for the face box in an image
To get the face encoding you will need to pass the the pixels resulted from cropping the image to a face corners to one of the models that are used for face encoding, as facenet, deepface,....

@josephernest
Copy link
Author

josephernest commented Nov 8, 2020

@imnimn Is there a Python implementation that packs together: MTCNN to get the face box + facenet or deepface for the encoding?

@imnimn
Copy link

imnimn commented Nov 9, 2020

@imnimn Is there a Python implementation that packs together: MTCNN to get the face box + facenet or deepface for the encoding?

@josephernest please check this article:
https://arsfutura.com/magazine/face-recognition-with-facenet-and-mtcnn/,
It is implementation is in this repository
https://github.com/arsfutura/face-recognition

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants