diff options
Diffstat (limited to 'megapixels/app/processors/face_recognition.py')
| -rw-r--r-- | megapixels/app/processors/face_recognition.py | 29 |
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 |
