summaryrefslogtreecommitdiff
path: root/megapixels
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2019-01-21 11:03:39 +0100
committeradamhrv <adam@ahprojects.com>2019-01-21 11:03:39 +0100
commitdc56b3326d7776e626039eb144e29562e9fdf355 (patch)
tree2edbddd0885cfdb59e202bde43bc1b7c692ae4ed /megapixels
parente06af50389f849be0bfe4fa97d39f4519ef2c711 (diff)
parent3ea3d6991f50c9cd94d8a9b4130c3194bd50e160 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'megapixels')
-rw-r--r--megapixels/app/server/api.py23
-rw-r--r--megapixels/app/server/tasks/demo.py2
2 files changed, 15 insertions, 10 deletions
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py
index b3bce9bc..81fffdd8 100644
--- a/megapixels/app/server/api.py
+++ b/megapixels/app/server/api.py
@@ -7,7 +7,7 @@ import operator
from flask import Blueprint, request, jsonify
from PIL import Image # todo: try to remove PIL dependency
-from app.processors import face_recognition
+from app.processors import face_extractor
from app.processors import face_detector
from app.processors.faiss import load_faiss_databases
from app.models.sql_factory import load_sql_datasets, list_datasets, get_dataset, get_table
@@ -66,28 +66,33 @@ def upload(dataset_name):
detector = face_detector.DetectorDLIBHOG()
# get detection as BBox object
- bboxes = detector.detect(im_np, largest=True)
+ bboxes = detector.detect(im_np, largest=True, pyramids=2)
+
if not bboxes or not len(bboxes):
return jsonify({
'error': 'bbox'
})
- bbox = bboxes[0]
- if not bbox:
+
+ bbox_norm = bboxes[0]
+ if not bbox_norm:
return jsonify({
'error': 'bbox'
})
dim = im_np.shape[:2][::-1]
- bbox = bbox.to_dim(dim) # convert back to real dimensions
+ bbox_dim = bbox_norm.to_dim(dim)
+ # bbox = bbox.to_dim(dim) # convert back to real dimensions
# print("got bbox")
- if not bbox:
+ if not bbox_dim:
return jsonify({
'error': 'bbox'
})
# extract 128-D vector
- recognition = face_recognition.RecognitionDLIB(gpu=-1)
- vec = recognition.vec(im_np, bbox)
+ extractor = face_extractor.ExtractorDLIB()
+ vec = extractor.extract(im_np, bbox_norm) # NB use norm, not bbox_dim
+ # recognition = face_recognition.RecognitionDLIB(gpu=-1)
+ # vec = recognition.vec(im_np, bbox)
query = np.array([ vec ]).astype('float32')
# query FAISS
@@ -122,7 +127,7 @@ def upload(dataset_name):
query = {
'timing': round(time.time() - start, 3),
- 'bbox': str(bbox),
+ 'bbox': str(bbox_norm),
}
# print(results)
return jsonify({
diff --git a/megapixels/app/server/tasks/demo.py b/megapixels/app/server/tasks/demo.py
index f7db9034..12d83383 100644
--- a/megapixels/app/server/tasks/demo.py
+++ b/megapixels/app/server/tasks/demo.py
@@ -81,7 +81,7 @@ def demo_task(self, uuid_name, fn):
face_detector_instance = face_detector.DetectorDLIBCNN(gpu=opt_gpu) # -1 for CPU
step('Detecting face')
st = time.time()
- bboxes = face_detector_instance.detect(im_resized, largest=True)
+ bboxes = face_detector_instance.detect(im_resized, largest=True, pyramids=2)
bbox = bboxes[0]
dim = im_resized.shape[:2][::-1]
bbox_dim = bbox.to_dim(dim)