face alignment
v1.4.0
使用世界上最准确的面部对齐网络从 Python 检测面部标志,能够检测 2D 和 3D 坐标中的点。
使用 FAN 最先进的基于深度学习的人脸对齐方法进行构建。
import face_alignment
from skimage import io
fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . TWO_D , flip_input = False )
input = io . imread ( '../test/assets/aflw-test.jpg' )
preds = fa . get_landmarks ( input )
import face_alignment
from skimage import io
fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . THREE_D , flip_input = False )
input = io . imread ( '../test/assets/aflw-test.jpg' )
preds = fa . get_landmarks ( input )
import face_alignment
from skimage import io
fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . TWO_D , flip_input = False )
preds = fa . get_landmarks_from_directory ( '../test/assets/' )
默认情况下,该包将使用 SFD 面部检测器。然而,用户也可以使用 dlib、BlazeFace 或预先存在的地面实况边界框。
import face_alignment
# sfd for SFD, dlib for Dlib and folder for existing bounding boxes.
fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . TWO_D , face_detector = 'sfd' )
为了指定运行代码的设备(GPU 或 CPU),可以显式传递设备标志:
import torch
import face_alignment
# cuda for CUDA, mps for Apple M1/2 GPUs.
fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . TWO_D , device = 'cpu' )
# running using lower precision
fa = fa = face_alignment . FaceAlignment ( face_alignment . LandmarksType . TWO_D , dtype = torch . bfloat16 , device = 'cuda' )
另请参阅examples
夹
# dlib (fast, may miss faces)
model = FaceAlignment ( landmarks_type = LandmarksType . TWO_D , face_detector = 'dlib' )
# SFD (likely best results, but slowest)
model = FaceAlignment ( landmarks_type = LandmarksType . TWO_D , face_detector = 'sfd' )
# Blazeface (front camera model)
model = FaceAlignment ( landmarks_type = LandmarksType . TWO_D , face_detector = 'blazeface' )
# Blazeface (back camera model)
model = FaceAlignment ( landmarks_type = LandmarksType . TWO_D , face_detector = 'blazeface' , face_detector_kwargs = { 'back_model' : True })
虽然不是必需的,但为了获得最佳性能(尤其是检测器),强烈建议使用支持 CUDA 的 GPU 运行代码。
最简单的安装方法是使用 pip 或 conda:
使用点 | 使用康达 |
---|---|
pip install face-alignment | conda install -c 1adrianb face_alignment |
或者,您可以在下面找到从源代码构建它的说明。
安装 pytorch 和 pytorch 依赖项。请检查 pytorch 自述文件。
git clone https://github.com/1adrianb/face-alignment
pip install -r requirements.txt
python setup.py install
提供了一个 Dockerfile 来构建具有 cuda 支持和 cudnn 的映像。有关运行和构建 docker 映像的更多说明,请查看原始 Docker 文档。
docker build -t face-alignment .
虽然这里的工作是作为黑盒呈现的,但如果您想了解更多有关该方法的细节,请查看 arxiv 或我的网页上的原始论文。
欢迎所有贡献。如果您遇到任何问题(包括失败的图像示例),请随时提出问题。如果您计划添加新功能,请在提出拉取请求之前打开一个问题进行讨论。
@inproceedings{bulat2017far,
title={How far are we from solving the 2D & 3D Face Alignment problem? (and a dataset of 230,000 3D facial landmarks)},
author={Bulat, Adrian and Tzimiropoulos, Georgios},
booktitle={International Conference on Computer Vision},
year={2017}
}
要引用 dlib、pytorch 或此处使用的任何其他包,请查看其各自作者的原始页面。