- VGGFace Model for FeatureExtraction
https://drive.google.com/file/d/0BysSXLPvHi7DVVA5UU0xUG1jSEU/view?usp=sharing
- lfw dataset (Optional, the repo has simple dataset lfw_only6/)
https://drive.google.com/file/d/0BysSXLPvHi7DMmN5VzdsSlVqTkE/view?usp=sharing
You can run all from following script, each cmd explain in Run sectin
sh run_all.sh
Pick only more 2 faces from lfw. (Because you need 1 for train, 1 for validation)
Like following cmd, lfw_only6_face is folder, and generate new folder lfw_only6_more2pic
python copy_exceed_2_pic.py lfw_only6
Crop face with haarcascade_frontalface_default.xml
Like following cmd, lfw_only6_more2pic is folder, and generate new folder train & validation folder
python crop_face.py lfw_only6_more2pic
Augment train folder picture to 10 pictures each person
Like following cmd, train is folder, and generate new folder train_aug folder
python pic_dir_aug.py train
Feature Extraction with VGGFace
(NOTE: You need to download vgg_face_caffe/ from Download section VGGFace Model)
train_augment -> train_augment_npys
validation -> validation_npys
python FeatureExtraction/Main.py train_augment
python FeatureExtraction/Main.py validation
Run SVM,
input: folders train_augment_npys/ & validation_npys/
output: face-index.json & svm.pkl
python SVMMatching/SVM_Test.py
You can test one face with Predict_one_face.ipynb
Test 1680 persons with 9164 faces
(lfw faces: from Download section lfw dataset)
Model accuracy (%): 83.980181668 %
Training the SVM classifier
--- Use 2867.5606029 seconds for SVM Training ---
Testing the SVM classifier
correctResults = 3051, len(formattedTestingLabels) = 3633
Model accuracy (%): 83.980181668 %
--- Use 0.127139806747 seconds only classifier.predict one face---
--- Use 0.0281112194061 seconds for only vggExtractor ---
('pre_result', 506)
--- Use 0.135752916336 seconds only classifier.predict---
Aaron_Peirsol
-
Fork and thank form the repo https://github.com/wajihullahbaig/VGGFaceMatching
-
dataset_aug.py & dataset.py from Jeffrey, Liu (https://github.com/jeffffrey/)