davidsandberg / facenet

Face recognition using Tensorflow
MIT License
13.77k stars 4.81k forks source link

Why the dataset has to be aligned #429

Closed Zumbalamambo closed 7 years ago

Zumbalamambo commented 7 years ago

i ran the following script ,

sudo python align_dataset_mtcnn.py /datasets/lfw/raw /datasets/lfw/lfw_mtcnnpy_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25

May I know what this script basically does? why do we have to align it? This doesn't explain why alignment is necessary

maria8899 commented 7 years ago

The file align_dataset_mtcnn.py in the current repository does not do a proper face alignment. In fact, it does not even use the facial landmark points from MTCNN:

bounding_boxes, _ = align.detect_face.detect_face(img, minsize, pnet, rnet, onet, threshold, factor)

The second argument are the landmarks which are not used. So all this code does is just recropping the image so that the face is more centered in the image, based on the face detected bounding box.

There are some papers claiming that doing alignement does not help in training DCNN for face recognition. See for example http://openaccess.thecvf.com/content_cvpr_2017_workshops/w6/papers/Ferrari_Investigating_Nuisance_Factors_CVPR_2017_paper.pdf

Zumbalamambo commented 7 years ago

okay thank you...