OpenFace是一款优秀的开源深度学习人脸识别库。如果你熟悉torch,python或者lua,这款丰富的人脸识别库更是一款不可多得的工具。
今天David 9 就带大家手把手训练一个人脸识别模型,测试一下你像哪个明星?
1. 下载openface的docker镜像,免去你配置openface的过程:
docker pull bamos/openface
2. 跑这个docker镜像,进入项目目录:
docker run -v /Users:/host/Users -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface
注意 -v /Users:/host/Users 这个参数是必要的。因为docker中的openface项目还没有训练数据集,把你本地的/Users目录挂载到docker镜像中的/host/Users目录,可以方便你复制一些用于训练的图片数据集。
3. 在工作目录/root/openface下准备数据集:
mkdir training-images mkdir ./training-images/wuyifan/ mkdir ./training-images/yangmi/ mkdir ./training-images/zhaowei/
如上代码创建一个training-images训练数据集的文件夹,里面再建三个明星吴亦凡,杨幂,赵薇的3个文件夹,别忘了在这3个文件中放一些对于的JPG图片。这样才算准备好了训练集,差不多每个文件夹15张图片即可。
4. 对齐所有训练图片方向,使得都以鼻子和眼睛的正向为标准:
./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96
此处.//training-images/就是我们的训练数据集了,./aligned-images/是生成的对齐后的训练集合。
5. 根据刚才对齐后的训练集,生成特征:
./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
我们使用Openface很牛叉的预训练模型,在./generated-embeddings/中生成所有图片的特征,两个csv文件:
root@0787fe31c4a1:~/openface# ls generated-embeddings/ labels.csv reps.csv
6. 最后用这些特征,我们训练一个SVM分类模型就OK了:
root@0787fe31c4a1:~/openface# ./demos/classifier.py train ./generated-embeddings/ /root/.local/lib/python2.7/site-packages/sklearn/lda.py:4: DeprecationWarning: lda.LDA has been moved to discriminant_analysis.LinearDiscriminantAnalysis in 0.17 and will be removed in 0.19 "in 0.17 and will be removed in 0.19", DeprecationWarning) Loading embeddings. Training for 3 classes. Saving classifier to './generated-embeddings//classifier.pkl'
7. 最让人兴奋的时刻到了,看你的头像更像哪个明星?
root@0787fe31c4a1:~/openface# ./demos/classifier.py infer ./generated-embeddings/classifier.pkl yicunzhao.jpg /root/.local/lib/python2.7/site-packages/sklearn/lda.py:4: DeprecationWarning: lda.LDA has been moved to discriminant_analysis.LinearDiscriminantAnalysis in 0.17 and will be removed in 0.19 "in 0.17 and will be removed in 0.19", DeprecationWarning) === yicunzhao.jpg === Predict wuyifan with 0.90 confidence.
上述结果表明我的头像yicunzhao.jpg明显更像吴亦凡(90%可信度)
啥?长这么像我也很无奈呢
参考文献:
- https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78
- https://cmusatyalab.github.io/openface/
本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com
或直接扫二维码:
David 9
Latest posts by David 9 (see all)
- 修订特征已经变得切实可行, “特征矫正工程”是否会成为潮流? - 27 3 月, 2024
- 量子计算系列#2 : 量子机器学习与量子深度学习补充资料,QML,QeML,QaML - 29 2 月, 2024
- “现象意识”#2:用白盒的视角研究意识和大脑,会是什么景象?微意识,主体感,超心智,意识中层理论 - 16 2 月, 2024