StyleGene / preprocess /landmarks_detector.py
wmpscc
add
7d1312d
raw
history blame
839 Bytes
import dlib
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() # cnn_face_detection_model_v1 also can be used
self.shape_predictor = dlib.shape_predictor(predictor_model_path)
def get_landmarks(self, img):
# img = dlib.load_rgb_image(image) # load from path
dets = self.detector(img, 1)
all_faces = []
for detection in dets:
try:
face_landmarks = [(item.x, item.y) for item in self.shape_predictor(img, detection).parts()]
all_faces.append(face_landmarks)
except:
print("Exception in get_landmarks()!")
return all_faces