davidsandberg / facenet

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

Training over a pretrained model #1206

Open RAJA-PARIKSHAT opened 3 years ago

RAJA-PARIKSHAT commented 3 years ago

I was using pretrained model for face recognition, and wanted to use in an attendance system but turns out that model give some wrong predictions of similar person. I tried to train that pretrained model with my dataset. My dataset is around 4500 images including 30 people. I want to know is my approach appropriate to train over pretrained model and what hyperparameters I should choose, as I choose adam optimizer and the triplet loss started to increase in the very next iteration. Plz help....

Ram-Godavarthi commented 3 years ago

Did you train with your own dataset ?? Could you please let me know what have you done to train it successfully ?

RAJA-PARIKSHAT commented 3 years ago

No I haven't because I couldn't figure out the choice of hyperparameters and how to fine tune the model. There are two possibilities which I tried one is transfer learning where I learned the two fully connected layers, second was too fine tune. In both cases I couldn't get satisfactory result.

pv4n commented 2 years ago

@RAJA-PARIKSHAT was your data good enough? Did you try any other repos? There's https://github.com/JDAI-CV/FaceX-Zoo and facenet_pytorch (didn't work for me)

Jawabreh0 commented 1 year ago

The accuracy of the face recognition system in your case depends on the quality of the training data, rather than the quantity. It is possible to have 100,000 samples for the same face, yet still achieve lower accuracy than expected. Therefore, it is important to focus on obtaining high-quality data to address this issue. Since this is an attendance system, you can capture face scans of your students/employees. To achieve this, you will need two different software programs. The first one will be for registration, where you will enter the students' personal information, such as their full name and ID number, and capture a slow-motion video of their face scan during the registration process. Then, you will divide this video into a fixed number of samples, let's say 1,000, and use these samples for training. The second software program will be the recognizer software, which can operate in real-time. check this dir it contains a python implemntation of the divide video algorithm https://github.com/Jawabreh0/HumanexAI_FaceRecognition/blob/master/helpers/Divide_Video.py check the pipeline in this repo to understand the steps of what i said https://github.com/Jawabreh0/HumanexAI-Masked-Face-Recognition