diff options
| author | adamhrv <adam@ahprojects.com> | 2019-01-16 13:30:16 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2019-01-16 13:30:16 +0100 |
| commit | 65cb506ca182272e2701136097fd00c55dc6bd69 (patch) | |
| tree | cc5be8e61a8d5173745be1d331b210e967e146b5 /megapixels/commands/demo/face_vector.py | |
| parent | fceeb3b7adbc8d522e9fe1c40e12e9a529199068 (diff) | |
change bbox to norm, refine face extractor
Diffstat (limited to 'megapixels/commands/demo/face_vector.py')
| -rw-r--r-- | megapixels/commands/demo/face_vector.py | 28 |
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 |
