Face verification with mxnet on android
OpenCV has an in-built Viola-Jones face detector which is used here to detect faces.
I use pre-trained LightenedCNN as feature extractor.
For more information please read the original paper
My notes about this paper: Lightened CNN
The similarity metric is cosine similarity. The threshold should be about 0.5 ,and it should be adjusted according to specific applications.
I use VanillaCNN to detect facial landmarks. This step is crucial for high accuracy.
The paper can be found below
http://www.openu.ac.il/home/hassner/projects/tcnn_landmarks/
My notes about this paper: VanillaCNN
The original implementation is based on Caffe, and I have turned it into MXNet model.You can get more details from below:
The face is aligned by three landmarks including two inter-ocular points and one mid-mouth point. Affine transformation is applied with these three points.
MXNet is a great deep learning framework and can be used on Android efficiently and flexibly.
I have compiled mxnet for android with ndk-r13b. You can also refer to my blog for more details.
You can also download compiled libmxnet_predict.so here
I test on my Xiaomi 4C (Snapdragon 808) and I get about 1.5s per image.