davidsandberg / facenet

Face recognition using Tensorflow
MIT License
13.73k stars 4.8k forks source link

mtcnn+facenet bad performance on the new person not trained by knn or svm #899

Open yuqj1991 opened 5 years ago

yuqj1991 commented 5 years ago

hi,@davidsandberg,I used the facenet framework to train my own images ,then I used the mtcnn+facenet framework to real-time-recognition video stream, for the new and unknown person face. At present,I have a face data set that I give the 128-d embedding data as some one face data,which I call the face data set.And the data set has 20 people face (which was not trained by knn or svm)data now.The goal is that when someone go to in the front of the camera,the system will identify the face whether included by the data face set,if not included,then put in the data face. But,when I run the system I give the very bad performance,can you help me explain the reason? thanks

Salary-only-17k commented 5 years ago

I have the same problem, fewer personal data sets donot performance good. and children( between 3 years old and 8 years old children ) faces have bad result.

yuqj1991 commented 5 years ago

@WhiteAzzan hi,I am not sure whether used the classify method like SVM or Knn after getting the face embedding feature vector .Firstly,I got a embedding face data set(20 people) which were not appearance in the training set or testing set.Then, I did not use the knn or svm to classify the embedding feature vector further,Instead of directly calculating the Euclidean distance (d), if d<1.2 ,i think the input new face belong to someone in the face data.But the result is very bad.

ZhangYuef commented 5 years ago

@WhiteAzzan hi,I am not sure whether used the classify method like SVM or Knn after getting the face embedding feature vector .Firstly,I got a embedding face data set(20 people) which were not appearance in the training set or testing set.Then, I did not use the knn or svm to classify the embedding feature vector further,Instead of directly calculating the Euclidean distance (d), if d<1.2 ,i think the input new face belong to someone in the face data.But the result is very bad.

Maybe because the dataset size is too small, how many images do you have for those 20 people?

yuqj1991 commented 5 years ago

@ZhangYuef hi, it‘ s not about how big the dataset for the 20 people. I directly get the new one face picture ,and get the feature verctor. And then comparison to camera input buffer image.

prnvjb commented 5 years ago

How to do 1:1 face verification but not using a clustering classifier like kNN? Thanks!

cristhoper commented 4 years ago

you need to implement balanced datasets collection. Check FERET image dataset to work with. if you have 20 persons, all persons need the same amount of embedded faces. That creates a dense matrix, and with the support vector classification, allow us to find the right label.