sirius-ai / MobileFaceNet_TF

Tensorflow implementation for MobileFaceNet
Apache License 2.0
434 stars 170 forks source link

question: input normalization and expected euclidean distance ranges #71

Closed vladmandic closed 3 years ago

vladmandic commented 3 years ago

i've tried using provided frozen_model from https://github.com/sirius-ai/MobileFaceNet_TF/tree/master/arch/pretrained_model/
converting it to tfjs_graph_model and using in TensorFlow/JS - it appears to work without issues.

and i do have separate preprocessing to crop face from image and even straighten it.

based on utils/data_process.py, input should be in range -0.5..0.5 ?

img = img - 127.5
img = img * 0.0078125

but resulting feature vector contains really small values, up to a point that calculating euclidean distance results in values in range ~0.0025 for a near perfect match and up to ~0.004 for a bad match.

using non-normalized input (range 0..255) increases value of results, but precision is not that great.

but looking through old issues, i found link to https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip
which is not documented anywhere, but produces relatively good results with non-normalized inputs?

can you confirm which frozen model should be used, what is best value for input range and what is expected value of resulting euclidean distance between two embeddings for positive and negative matches?

vladmandic commented 3 years ago

@sirius-ai is this project still maintained?