diff options
| author | adamhrv <adam@ahprojects.com> | 2019-01-21 11:03:39 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2019-01-21 11:03:39 +0100 |
| commit | dc56b3326d7776e626039eb144e29562e9fdf355 (patch) | |
| tree | 2edbddd0885cfdb59e202bde43bc1b7c692ae4ed /megapixels/app/server/api.py | |
| parent | e06af50389f849be0bfe4fa97d39f4519ef2c711 (diff) | |
| parent | 3ea3d6991f50c9cd94d8a9b4130c3194bd50e160 (diff) | |
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'megapixels/app/server/api.py')
| -rw-r--r-- | megapixels/app/server/api.py | 23 |
1 files changed, 14 insertions, 9 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({ |
