Deteksi penanda wajah dari Python menggunakan jaringan penyelarasan wajah paling akurat di dunia, yang mampu mendeteksi titik dalam koordinat 2D dan 3D.
Bangun menggunakan metode penyelarasan wajah berbasis pembelajaran mendalam yang canggih dari 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/' )
Secara default paket akan menggunakan detektor wajah SFD. Namun pengguna dapat menggunakan dlib, BlazeFace, atau kotak pembatas kebenaran dasar yang sudah ada sebelumnya.
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' )
Untuk menentukan perangkat (GPU atau CPU) yang akan menjalankan kode, seseorang dapat meneruskan flag perangkat secara eksplisit:
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' )
Silakan lihat juga folder 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 })
Meskipun tidak diperlukan, untuk kinerja optimal (terutama untuk detektor) sangat disarankan untuk menjalankan kode menggunakan GPU yang mendukung CUDA.
Cara termudah untuk menginstalnya adalah menggunakan pip atau conda:
Menggunakan pip | Menggunakan conda |
---|---|
pip install face-alignment | conda install -c 1adrianb face_alignment |
Alternatifnya, di bawah, Anda dapat menemukan instruksi untuk membuatnya dari sumber.
Instal dependensi pytorch dan pytorch. Silakan periksa readme pytorch untuk ini.
git clone https://github.com/1adrianb/face-alignment
pip install -r requirements.txt
python setup.py install
Dockerfile disediakan untuk membuat image dengan dukungan cuda dan cudnn. Untuk instruksi lebih lanjut tentang menjalankan dan membuat image buruh pelabuhan, periksa dokumentasi Docker asli.
docker build -t face-alignment .
Meskipun di sini karya disajikan sebagai kotak hitam, jika Anda ingin mengetahui lebih banyak tentang intrisec metode ini, silakan periksa makalah asli di arxiv atau halaman web saya.
Semua kontribusi disambut baik. Jika Anda mengalami masalah apa pun (termasuk contoh gambar yang gagal), jangan ragu untuk membuka masalah. Jika Anda berencana untuk menambahkan fitur baru, silakan buka masalah untuk mendiskusikan hal ini sebelum membuat permintaan penarikan.
@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}
}
Untuk mengutip dlib, pytorch atau paket lain yang digunakan di sini silakan periksa halaman asli dari penulisnya masing-masing.