July 1-July 31 (2): Neural Network is Ok for Face Recognition

These days I keep on importing code and fix the bugs from dlib. Now, the neural network can calculate the 128d vector for each face image, and the ouput vector is the same as in dlib. The code can be seen in the test project
The error I reported last week that the overloaded function operator* can not distinguish between mat*mat and mat*integer is solved. As Marcel said the template magic "disable_if, const matrix_mul_scal_exp >::type" is important, and the input parameter for operator* can be distinguished by this disable_if. The error happens because the function "is_matrix" does not work. The neural network can output 128d vector after I fixed this bug, and thanks for Marcel's help. We can see the two output vector is same form the screenshot:
(1) This is the vector from dlib

(2) This is the vector from my test code

The 128d vector is the most crucial step for deep learning face recognition, but it has not finished for recognition. To have a high accuracy, I have to finished the next steps:
(1) Detect face region for face landmark location using algorithm in dlib. This detection progress can help with face landmark location.
(2) Get the 68 face landmarks. I will use the shape-predictor code from red-eye. This part is in progress, and my test code can be seen here.
(3) Extract the face chip. This part includes face pose estimation based on face landmarks. And this part will produce the input image for neural network.



|