使用OpenFace进行人脸识别
Posted Image Process
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用OpenFace进行人脸识别相关的知识,希望对你有一定的参考价值。
http://blog.csdn.net/u011531010/article/details/52270023
第一步
在 openface 文件中建立一个名为./training-images/的文件夹
mkdir training-images
第二步
为你想识别的每个人建立一个子文件夹。例如:我找了7组图像,每组为不同的明星,每组明星人脸图像大概有10个
第三步
然后把这几个训练文件夹放到openface/tarin-images。图片的格式无所谓。确保每张图像上只出现一张脸。不需要裁剪脸部周围的区域。OpenFace 会自己裁剪。
第四步
从这个 OpenFace 的根目录中运行这个 OpenFace 脚本。
首先,进行姿势检测和校准:
./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96
这将创建一个新./aligned-images/子文件夹,带有每一个测试图像的裁剪过的并且对齐的版本。
第二,从对齐的图像中生成表征:
./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
运行完后,这个./aligned-images/子文件夹会包含一个带有每张图像的嵌入的 csv 文件。
第三,训练自己的面部检测模型:
./demos/classifier.py train ./generated-embeddings/
这将产生名为./generated-embeddings/classifier.pkl的新文件名。这个文件有你将用来识别新面部的 SVM 模型。
到了这,你应该有一个可用的面部识别器。
第五步:识别面部!
mkdir ./test-images
放入明星测试图像,这些图像保证没有参与过training
测试训练的人像种类
获取一张未知脸的新照片。把它像这样传递给分类器脚本:
./demos/classifier.py infer ./generated-embeddings/classifier.pkl ./test-images/liangchaowei-test.jpg
我们会得到一个看起来像这样的预测:置信度在0.6以上
=== ./test-images/liangchaowei-test.jpg ===
Predict liangchaowei with 0.77 confidence.
=== ./test-images/zhourunfa-test.jpg ===
Predict zhourunfa with 0.62 confidence.
测试没有训练的人像种类: 置信度在0.5以下
=== ./test-images/fanbinbin-test.jpg ===
Predict zhouxun with 0.50 confidence.
=== ./test-images/huge-test.jpg ===
Predict liudehua with 0.34 confidence.
以上是关于使用OpenFace进行人脸识别的主要内容,如果未能解决你的问题,请参考以下文章