File size: 740 Bytes
01d08da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import dlib
import cv2
class LandmarksDetector:
def __init__(self, predictor_model_path):
"""
:param predictor_model_path: path to shape_predictor_68_face_landmarks.dat file
"""
self.detector = dlib.get_frontal_face_detector()
self.shape_predictor = dlib.shape_predictor(predictor_model_path)
def get_landmarks(self, image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
dets = self.detector(gray, 1)
for detection in dets:
try:
face_landmarks = [(item.x, item.y) for item in self.shape_predictor(gray, detection).parts()]
yield face_landmarks
except:
print("Exception in get_landmarks()!")
|