summaryrefslogtreecommitdiff
path: root/megapixels
diff options
context:
space:
mode:
Diffstat (limited to 'megapixels')
-rw-r--r--megapixels/app/models/sql_factory.py22
-rw-r--r--megapixels/app/processors/faiss.py3
-rw-r--r--megapixels/app/server/api.py1
3 files changed, 16 insertions, 10 deletions
diff --git a/megapixels/app/models/sql_factory.py b/megapixels/app/models/sql_factory.py
index a71eabb0..5b3cb5a3 100644
--- a/megapixels/app/models/sql_factory.py
+++ b/megapixels/app/models/sql_factory.py
@@ -96,22 +96,24 @@ class SqlDataset:
Get an identity given an ID.
"""
# id += 1
- print('fetching {}'.format(id))
-
file_record_table = self.get_table('file_record')
file_record = file_record_table.query.filter(file_record_table.id == id).first()
+ if not file_record:
+ return None
+
identity_table = self.get_table('identity')
identity = identity_table.query.filter(identity_table.id == file_record.identity_id).first()
- if file_record and identity:
- return {
- 'file_record': file_record.toJSON(),
- 'identity': identity.toJSON(),
- 'face_roi': self.select('face_roi', id),
- 'face_pose': self.select('face_pose', id),
- }
- return {}
+ if not identity:
+ return None
+
+ return {
+ 'file_record': file_record.toJSON(),
+ 'identity': identity.toJSON(),
+ 'face_roi': self.select('face_roi', id),
+ 'face_pose': self.select('face_pose', id),
+ }
def search_name(self, q):
"""
diff --git a/megapixels/app/processors/faiss.py b/megapixels/app/processors/faiss.py
index 5156ad71..ab067fd0 100644
--- a/megapixels/app/processors/faiss.py
+++ b/megapixels/app/processors/faiss.py
@@ -30,6 +30,9 @@ def build_faiss_database(name, recipe):
vec_fn = os.path.join(cfg.DIR_FAISS_METADATA, name, "vecs.csv")
index_fn = os.path.join(cfg.DIR_FAISS_INDEXES, name + ".index")
+ if not os.path.exists(vec_fn):
+ return
+
index = faiss.index_factory(recipe.dim, recipe.factory_type)
keys, rows = load_csv_safe(vec_fn)
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py
index af3db4d0..5f80a0c4 100644
--- a/megapixels/app/server/api.py
+++ b/megapixels/app/server/api.py
@@ -114,6 +114,7 @@ def upload(dataset_name):
ids.append(_i+1)
identities = [ dataset.get_identity(int(_i)) for _i in ids ]
+ identities = list(filter(None, identities))
# print(distances)
# print(ids)