2D 및 3D 좌표 모두에서 점을 감지할 수 있는 세계에서 가장 정확한 얼굴 정렬 네트워크를 사용하여 Python에서 얼굴 랜드마크를 감지합니다.
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 또는 기존 Ground Truth 경계 상자를 대신 사용할 수 있습니다.
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 readme를 확인하세요.
git clone https://github.com/1adrianb/face-alignment
pip install -r requirements.txt
python setup.py install
cuda 지원 및 cudnn을 사용하여 이미지를 빌드하기 위해 Dockerfile이 제공됩니다. 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 또는 기타 패키지를 인용하려면 해당 작성자의 원본 페이지를 확인하세요.