Skip to main content

Face Recognition Tools

Project description

new_face

new_face repository includes face detection, face landmark, face alignment, and face recognition technique.


Necessary softwares

  1. cmake
  2. graphviz

Installation

pip install -r requirements

or

pip install new_face

or

conda env create -f new_face36.yaml -n new_face36
conda env create -f new_face37.yaml -n new_face37
conda env create -f new_face38.yaml -n new_face38
conda env create -f new_face39.yaml -n new_face39

Methods List

Face Detection Face Landmark Face Alignment Face Recognition
haar_detect dlib_5_points mtcnn_alignment LBPH
dlib_detect dlib_68_points dlib_alignment OpenFace
ssd_dnn_detect × × LBPCNN
mtcnn_detect × × ×

Face Detection

import logging
import cv2
import imutils
from new_face import FaceDetection

FORMAT = '%(asctime)s [%(levelname)s] %(message)s'
DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
logging.basicConfig(level=logging.INFO, format=FORMAT, datefmt=DATE_FORMAT)


image = cv2.imread("images/people.jpg")
resize_image = imutils.resize(image, width=1280)

face_detect = FaceDetection()
mtcnn = face_detect.load_detector(face_detect.MTCNN)

rois, raw_image, face_images = face_detect.mtcnn_detect(mtcnn,
                                                        resize_image,
                                                        conf_threshold=0.5,
                                                        vision=True,
                                                        save_path="images/mtcnn.jpg")

Face Landmark

import logging
import cv2
import imutils
from new_face import FaceLandmark

FORMAT = '%(asctime)s [%(levelname)s] %(message)s'
DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
logging.basicConfig(level=logging.INFO, format=FORMAT, datefmt=DATE_FORMAT)


image = cv2.imread("images/people-3.jpg")
resize_image = imutils.resize(image, width=1280)

shape_5_predictor = FaceLandmark.load_shape_predictor("shape_predictor_5_face_landmarks.dat")
# shape_68_predictor = FaceLandmark.load_shape_predictor("shape_predictor_68_face_landmarks.dat")

face_points = FaceLandmark.dlib_5_points(image=resize_image,
                                        shape_predictor=shape_5_predictor,
                                        vision=True,
                                        save_path="images/dlib_5_points.jpg")

# face_points = FaceLandmark.dlib_68_points(image=resize_image,
#                                           shape_predictor=shape_68_predictor,
#                                           vision=True,
#                                           save_path="images/dlib_68_points.jpg")

Face Alignment

import logging
import cv2
import imutils
from new_face import FaceAlignment

FORMAT = '%(asctime)s [%(levelname)s] %(message)s'
DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
logging.basicConfig(level=logging.INFO, format=FORMAT, datefmt=DATE_FORMAT)


image = cv2.imread("images/people-2.jpg")
resize_image = imutils.resize(image, width=1280)

face_alignment = FaceAlignment()
mtcnn_detector = face_alignment.load_detector(face_alignment.MTCNN)

rois, raw_image, face_images = face_alignment.mtcnn_alignment(mtcnn_detector,
                                                              resize_image,
                                                              conf_threshold=0.9,
                                                              vision=True,
                                                              save_dir="images/align",
                                                              face_size=256)

Face Recognition

Dataset Structure

 ├─dataset
 │ └─YaleB_align_256
 │  ├─yaleB11
 │  ├─yaleB12
 │  ├─yaleB13
 │  ├─yaleB15
     .
     .
     .

Train and Predict Model

Train LBPH model

python train_lbph.py

Train OpenFace model

python train_openface.py

Train LBPCNN model

python train_lbpcnn.py

Predict by LBPH model

python predict_lbph.py

Predict by OpenFace model

python predict_openface.py

Predict by LBPCNN model

python predict_lbpcnn.py

Reference

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

new_face-0.0.4.6.tar.gz (16.6 kB view hashes)

Uploaded Source

Built Distribution

new_face-0.0.4.6-py3-none-any.whl (25.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page