Skip to main content

A package wrapping the FaceNet embedding model

Project description

keras-facenet

This is a simple wrapper around this wonderful implementation of FaceNet. I wanted something that could be used in other applications, that could use any of the four trained models provided in the linked repository, and that took care of all the setup required to get weights and load them. I prefer using Keras wherever possible because of its API, so I used the example provided here and implemented it as part of the code.

Enough background -- so how are you supposed to use this?

Installing

pip install keras-facenet

Usage

To get the embeddings for cropped images of some faces, you can do something like the following.

from keras_facenet import FaceNet
embedder = FaceNet()

# images is a list of images, each as an
# np.ndarray of shape (H, W, 3).
embeddings = embedder.embeddings(images)

keras-facenet expects you to provide cropped images of faces and does not ship with a face detector. You can use another library of your choice to get those lovely cropped images. I provide two examples below.

Using keras-facenet with mira

mira is another package I developed to do simple object detection. Install it using pip install mira

Then you can use mira to extract faces with the built-in MTCNN model.

from mira.detectors import MTCNN
from keras_facenet import FaceNet

detector = MTCNN()
embedder = FaceNet()

faces = detector.detect(image)
embeddings = embedder.embeddings([
    face.selection.extract(image) for face in faces
])

Using keras-facenet with face_recognition

face_recognition is a fantastic all-in-one package for face detection and recognition. Anecdotally, I find that its face detection model is not quite as good as MTCNN and that the embeddings are not quite as good as FaceNet. but you can use its detection model with FaceNet as follows.

from face_recognition import face_location
from keras_facenet import 

embedder = FaceNet()

faces = face_locations(image)
embeddings = embedder.embeddings([
    image[t:b, l:r] for for t, r, b, l in faces
])

Logging

To see what's going on under the hood, set logging to view INFO logs. If using in a Jupyter notebook, you can use the following.

import logging

logging.basicConfig()
log = logging.getLogger()
log.setLevel('INFO')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keras-facenet-0.1a5.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

keras_facenet-0.1a5-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file keras-facenet-0.1a5.tar.gz.

File metadata

  • Download URL: keras-facenet-0.1a5.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for keras-facenet-0.1a5.tar.gz
Algorithm Hash digest
SHA256 74a7a812b79cd7826e143f34b4a87b7f02cd6362588133b3bd6d4462dc8cfeab
MD5 ad6a31fb1c218eba508de21a1ed0dd22
BLAKE2b-256 43aa1ac5d3457607a7dde78bc5aa38a1f8456625cfca5c8ecce0f9cebe62d292

See more details on using hashes here.

File details

Details for the file keras_facenet-0.1a5-py3-none-any.whl.

File metadata

  • Download URL: keras_facenet-0.1a5-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for keras_facenet-0.1a5-py3-none-any.whl
Algorithm Hash digest
SHA256 b6aec68997ea4e33956c4bc581feefac2a8181c54c5123a31c9628c80664b9b4
MD5 27cf9ee103abf2ce254a7c3656bbfe6e
BLAKE2b-256 cb02c54e423454cb2aa17e91f0bc7417e9ea8995bc19fa6e68013e23794d1498

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page