kingvision / pytorch_face_landmark

Fast and accurate face landmark detection library using PyTorch; Support 68-point semi-frontal and 39-point profile landmark detection; Up to 100FPS landmark inference on CPU.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pytorch Face Landmark Detection

Implementation of face landmark detection with PyTorch. The model was trained using coordinate-based regression methods. A video demo was displayed here.

  • Support 68-point and 39-point landmark inference.
  • Support different backbone networks.
  • Support ONNX inference.

Inference

Test on a sample folder and save the landmark detection results.

python3 -W ignore test_batch_mtcnn.py

Optimize with ONNX and test on a camera. The pytorch model has been converted to ONNX for fast inference.

python3 -W ignore test_camera_mtcnn_onnx.py

Benchmark Results on 300W

  • Inter-ocular Normalization (ION)
Algorithms Common Challenge Full Set CPU Inference (s)
ResNet18 (224×224) 3.73 7.14 4.39 /
Res2Net50 (224×224) 3.43 6.77 4.07 /
Res2Net50_SE (224×224) 3.37 6.67 4.01 /
Res2Net50_ExternalData (224×224) 3.30 5.92 3.81 /
HRNet_Small (224×224) 3.57 6.85 4.20 /
MobileNetV2 (224×224) 3.70 7.27 4.39 1.2
MobileNetV2_SE (224×224) 3.63 7.01 4.28 /
MobileNetV2 (56×56) 4.50 8.50 5.27 0.01 (onnx)
MobileNetV2_ExternalData (224×224) 3.48 6.0 3.96 1.2

Visualization Results

  • Face alignment on 300W dataset img1

  • Semi-frontal face alignment on Menpo dataset img1

  • Profile face alignment on Menpo dataset img1

TODO

The following features will be added soon.

  • Still to come:
    • Support for the 39-point detection
    • Support for the 106 point detection
    • Support for heatmap-based inferences

Datasets:

References:

About

Fast and accurate face landmark detection library using PyTorch; Support 68-point semi-frontal and 39-point profile landmark detection; Up to 100FPS landmark inference on CPU.


Languages

Language:Python 100.0%