we use MTCNN to align Face to the size of [96,112],MTCNN is a good Face detector but still there are something you should pay attention:
while MTCNN will return a confidence of the deteced face,make sure to use this face image while the confidence is pretty high,like larger than 0.9 or 0.95
there are two example of low confidence face aligment:
landmark will be different while detect the same person,which will make confusion to CNN learning:
also bad for occlusion:
we use the alignment offered by @happynear and the repository is here:
at https://github.com/happynear/FaceVerification/dataset/CK/align_CK.py
MS_Celeb_1M dataset is pretty dirty.A pre-cleaning list will be find here:
Light CNN for Deep Face Recognition
whilch use a pre-trained center_loss model to do cluster.
there are two types of noise:inter_class & intra_class
we have done the intra_class by ourselves,which contains two lists:
outlier:images that do not belong to the label class
same:images that repeated in the same class
we also do inter_class cleanning but at this stage we can't offer the cleansed list.
the map list of class_id(in the cleaned list) and corresponding person id(Ms_celeb_1M) is here:
we use A-softmax to train our model,with a 28-Layers ResFace CNN construction.
we also use FN(described in this paper:DeepVisage: Making face recognition simple yet with powerful generalization skills) method to help the trainning convergeing faster.If you want to train a 64 Layers CNN model,this method really helps a lot.
the deploy.txt at 'example' folder.You may need to add the classification layer and the softmax_loss layer by youself If you want to train model on your dataset.
We do not offer slover.prototxt & log.txt but you can know the parament in solver.txt
alignment by MTCNN:
alignment by Ours:
we reach 99.76% on LFW by our own dataset and 99.6% on MS-Celeb-1M
If you find SphereFace or FN useful,please cite the link above in your paper.
@KaleidoZhouYN @TuringKi @Dickachu Yang
If you want to know more about Face recognition,please see: