转载:http://blog.topspeedsnail.com/archives/10933
OpenFace – Free and open source face recognition with deep neural networks.
- OpenFace源代码:https://github.com/cmusatyalab/openface/
- OpenCV源代码:https://github.com/opencv/opencv
- dlib源代码:https://github.com/davisking/dlib
首先安装上面三个库,你可以手动安装或直接使用Docker
我使用Docker,Ubuntu系统:
$ docker pull bamos/openface
$ docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
$ cd /root/openface
创建一个目录用来保存待训练的图片数据:
$ mkdir training_images
为要识别的人创建单独的目录:
$ cd training_images
$ mkdir obama
$ mkdir print_panda
$ mkdir xiao_ming
$ mkdir trump
把收集的每个人的图片拷贝到对应的目录,确保每张图片只有一张脸。不用特意的提取脸,OpenFace会自动干这个活。
提取和aligned:
$ cd ..
$ ./util/align-dlib.py ./training_images/ align outerEyesAndNose ./aligned-images/ --size 96
生成的./aligned-images/目录包含了处理过的图片。
提取特征:
$ ./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
开始训练:
$ ./demos/classifier.py train ./generated-embeddings/
生成的SVM模型位于./generated-embeddings/classifier.pkl。
使用训练的模型进行识别:
$ ./demos/classifier.py infer ./generated-embeddings/classifier.pkl test_image.jpg
如果结果不理想,尝试添加更多的训练数据,最好包含各种角度。