summaryrefslogtreecommitdiff
path: root/megapixels/app/processors/face_recognition.py
diff options
context:
space:
mode:
Diffstat (limited to 'megapixels/app/processors/face_recognition.py')
-rw-r--r--megapixels/app/processors/face_recognition.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/megapixels/app/processors/face_recognition.py b/megapixels/app/processors/face_recognition.py
index 9c3a301d..e0b9f752 100644
--- a/megapixels/app/processors/face_recognition.py
+++ b/megapixels/app/processors/face_recognition.py
@@ -17,25 +17,38 @@ class RecognitionDLIB:
# https://github.com/davisking/dlib/blob/master/python_examples/face_recognition.py
# facerec.compute_face_descriptor(img, shape, 100, 0.25)
- def __init__(self, opt_gpu=0):
+ def __init__(self, gpu=0):
self.log = logger_utils.Logger.getLogger()
- if opt_gpu > 0:
+
+ if gpu > -1:
cuda_visible_devices = os.getenv('CUDA_VISIBLE_DEVICES', '')
- os.environ['CUDA_VISIBLE_DEVICES'] = str(opt_gpu)
- self.predictor = dlib.shape_predictor(cfg.DIR_MODELS_DLIB_5PT)
- self.facerec = dlib.face_recognition_model_v1(cfg.DIR_MODELS_DLIB_FACEREC_RESNET)
+ os.environ['CUDA_VISIBLE_DEVICES'] = str(gpu)
+
+ self.predictor = dlib.shape_predictor(cfg.DIR_MODELS_DLIB_5PT)
+ self.facerec = dlib.face_recognition_model_v1(cfg.DIR_MODELS_DLIB_FACEREC_RESNET)
+
+ if gpu > -1:
os.environ['CUDA_VISIBLE_DEVICES'] = cuda_visible_devices # reset GPU env
+
def vec(self, im, bbox, width=100,
- jitters=cfg.DLIB_FACEREC_JITTERS, padding=cfg.DLIB_FACEREC_PADDING):
+ jitters=cfg.DLIB_FACEREC_JITTERS, padding=cfg.DLIB_FACEREC_PADDING):
# Converts image and bbox into 128d vector
# scale the image so the face is always 100x100 pixels
+ #self.log.debug('compute scale')
scale = width / bbox.width
- im = cv.resize(im, (scale, scale), interploation=cv.INTER_LANCZOS4)
+ #im = cv.resize(im, (scale, scale), cv.INTER_LANCZOS4)
+ #self.log.debug('resize')
+ cv.resize(im, None, fx=scale, fy=scale, interpolation=cv.INTER_LANCZOS4)
+ #self.log.debug('to dlib')
bbox_dlib = bbox.to_dlib()
+ #self.log.debug('precitor')
face_shape = self.predictor(im, bbox_dlib)
- vec = self.facerec.compute_face_descriptor(im, face_shape, jitters, padding)
+ # vec = self.facerec.compute_face_descriptor(im, face_shape, jitters, padding)
+ #self.log.debug('vec')
+ vec = self.facerec.compute_face_descriptor(im, face_shape, jitters)
+ #vec = self.facerec.compute_face_descriptor(im, face_shape)
return vec