summaryrefslogtreecommitdiff
path: root/megapixels/commands/demo/face_vector.py
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-01-17 15:11:47 +0100
committerJules Laplace <julescarbon@gmail.com>2019-01-17 15:11:47 +0100
commit85ae432fb6c6c17292b319bca068e46a4ea81eb3 (patch)
tree4d0270fac0fdc7c1c1333af9c4bb82c6eb00669d /megapixels/commands/demo/face_vector.py
parentc293006ba43944ffeb4dcab17b2256f3a5491a36 (diff)
parent03ad11fb2a3dcd425d50167b15d72d4e0ef536a2 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'megapixels/commands/demo/face_vector.py')
-rw-r--r--megapixels/commands/demo/face_vector.py28
1 files changed, 13 insertions, 15 deletions
diff --git a/megapixels/commands/demo/face_vector.py b/megapixels/commands/demo/face_vector.py
index 3ff68001..c7b5ef2e 100644
--- a/megapixels/commands/demo/face_vector.py
+++ b/megapixels/commands/demo/face_vector.py
@@ -1,9 +1,8 @@
"""
-Crop images to prepare for training
+Tests if the feature vector generator works
"""
import click
-# from PIL import Image, ImageOps, ImageFilter, ImageDraw
from app.settings import types
from app.utils import click_utils
@@ -14,11 +13,11 @@ from app.settings import app_cfg as cfg
@click.option('-i', '--input', 'opt_fp_in', default=None, required=True,
help='Image filepath')
@click.option('--size', 'opt_size',
- type=(int, int), default=(300, 300),
+ type=(int, int), default=cfg.DEFAULT_SIZE_FACE_DETECT,
help='Output image size')
@click.option('-g', '--gpu', 'opt_gpu', default=0,
help='GPU index')
-@click.option('--display/--no-display', 'opt_display', is_flag=True, default=False,
+@click.option('--display/--no-display', 'opt_display', is_flag=True, default=True,
help='Display detections to debug')
@click.pass_context
def cli(ctx, opt_fp_in, opt_gpu, opt_size, opt_display):
@@ -54,12 +53,12 @@ def cli(ctx, opt_fp_in, opt_gpu, opt_size, opt_display):
# ----------------------------------------------------------------------------
# detect face
- face_detector = face_detector.DetectorDLIBCNN(gpu=opt_gpu) # -1 for CPU
+ face_detector = face_detector.DetectorCVDNN() # -1 for CPU
bboxes = face_detector.detect(im_resized, largest=True)
- bbox = bboxes[0]
+ bbox_norm = bboxes[0]
dim = im_resized.shape[:2][::-1]
- bbox_dim = bbox.to_dim(dim)
- if not bbox:
+ bbox_dim = bbox_norm.to_dim(dim)
+ if not bbox_norm:
log.error('no face detected')
return
@@ -67,14 +66,13 @@ def cli(ctx, opt_fp_in, opt_gpu, opt_size, opt_display):
# ----------------------------------------------------------------------------
# generate face vectors, only to test if feature extraction works
- from app.processors import face_recognition
- facerec = face_recognition.RecognitionDLIB()
- vec = facerec.vec(im_resized, bbox_dim)
- vec_flat = facerec.flatten(vec)
- log.info(f'generated vector. showing vec[0:10]:')
- log.info(f'\n{vec_flat}')
+ from app.processors import face_extractor
+ extractor = face_extractor.ExtractorVGG()
+ vec = extractor.extract(im_resized, bbox_norm)
+ vec_str = extractor.to_str(vec)
+ log.info(f'\n{vec_str}')
if opt_display:
- draw_utils.draw_bbox(im_resized, bbox_dim)
+ im_resized = draw_utils.draw_bbox(im_resized, bbox_dim)
cv.imshow('Original', im_resized)
display_utils.handle_keyboard() \ No newline at end of file