summaryrefslogtreecommitdiff
path: root/megapixels/app/processors/face_landmarks.py
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2019-01-04 13:21:59 +0100
committeradamhrv <adam@ahprojects.com>2019-01-04 13:21:59 +0100
commitbff4e1c50349b0ba7d8e5fab6ce697c0b856f13f (patch)
treef4b802439709cd6eebc6b067361dbe9573953dc7 /megapixels/app/processors/face_landmarks.py
parentb7aba5109bfdab302b82fe9021f16f73edbeb11d (diff)
adding 3D landmarks...
Diffstat (limited to 'megapixels/app/processors/face_landmarks.py')
-rw-r--r--megapixels/app/processors/face_landmarks.py60
1 files changed, 0 insertions, 60 deletions
diff --git a/megapixels/app/processors/face_landmarks.py b/megapixels/app/processors/face_landmarks.py
deleted file mode 100644
index dfcb9ee8..00000000
--- a/megapixels/app/processors/face_landmarks.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import os
-from os.path import join
-from pathlib import Path
-
-import cv2 as cv
-import numpy as np
-import imutils
-from app.utils import im_utils, logger_utils
-from app.models.bbox import BBox
-from app.settings import app_cfg as cfg
-from app.settings import types
-from app.models.bbox import BBox
-
-class LandmarksDLIB:
-
- def __init__(self):
- # init dlib
- import dlib
- self.log = logger_utils.Logger.getLogger()
- self.predictor = dlib.shape_predictor(cfg.DIR_MODELS_DLIB_68PT)
-
- def landmarks(self, im, bbox):
- # Draw high-confidence faces
- dim = im.shape[:2][::-1]
- bbox = bbox.to_dlib()
- im_gray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
- landmarks = [[p.x, p.y] for p in self.predictor(im_gray, bbox).parts()]
- return landmarks
-
-
-class LandmarksMTCNN:
-
- # https://github.com/ipazc/mtcnn
- # pip install mtcnn
-
- dnn_size = (400, 400)
-
- def __init__(self, size=(400,400)):
- from mtcnn.mtcnn import MTCNN
- self.detector = MTCNN()
-
- def detect(self, im, opt_size=None, opt_conf_thresh=None, opt_pyramids=None):
- '''Detects face using MTCNN and returns (list) of BBox
- :param im: (numpy.ndarray) image
- :returns list of BBox
- '''
- rois = []
- dnn_size = self.dnn_size if opt_size is None else opt_size
- im = im_utils.resize(im, width=dnn_size[0], height=dnn_size[1])
- dim = im.shape[:2][::-1]
-
- # run MTCNN
- dets = self.detector.detect_faces(im)
-
- for det in dets:
- rect = det['box']
- keypoints = det['keypoints'] # not using here. see 'face_landmarks.py'
- bbox = BBox.from_xywh_dim(*rect, dim)
- rois.append(bbox)
- return rois \ No newline at end of file