Detect facial landmarks from Python using the world's most accurate face alignment network, capable of detecting points in both 2D and 3D coordinates.
Build using FAN's state-of-the-art deep learning based face alignment method.
Note: The lua version is available here.
For numerical evaluations it is highly recommended to use the lua version which uses indentical models with the ones evaluated in the paper. More models will be added soon.
Detect 2D facial landmarks in pictures
import face_alignment from skimage import io fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D, flip_input=False) input = io.imread('../test/assets/aflw-test.jpg') preds = fa.get_landmarks(input)
Detect 3D facial landmarks in pictures
import face_alignment from skimage import io fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._3D, flip_input=False) input = io.imread('../test/assets/aflw-test.jpg') preds = fa.get_landmarks(input)
Process an entire directory in one go
import face_alignment from skimage import io fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D, flip_input=False) preds = fa.get_landmarks_from_directory('../test/assets/')
Detect the landmarks using a specific face detector.
By default the package will use the SFD face detector. However the users can alternatively use dlib, BlazeFace, or pre-existing ground truth bounding boxes.
import face_alignment # sfd for SFD, dlib for Dlib and folder for existing bounding boxes. fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D, face_detector='sfd')
Running on CPU/GPU
In order to specify the device (GPU or CPU) on which the code will run one can explicitly pass the device flag:
import face_alignment # cuda for CUDA fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D, device='cpu')
Please also see the
- Python 3.5+ (it may work with other versions too). Last version with support for python 2.7 was v1.1.1
- Linux, Windows or macOS
- pytorch (>=1.5)
While not required, for optimal performance(especially for the detector) it is highly recommended to run the code using a CUDA enabled GPU.
The easiest way to install it is using either pip or conda:
|Using pip||Using conda|
Alternatively, bellow, you can find instruction to build it from source.
Install pytorch and pytorch dependencies. Please check the pytorch readme for this.
Get the Face Alignment source code
git clone https://github.com/1adrianb/face-alignment
Install the Face Alignment lib
pip install -r requirements.txt python setup.py install
A Dockerfile is provided to build images with cuda support and cudnn. For more instructions about running and building a docker image check the orginal Docker documentation.
docker build -t face-alignment .