使用OpenFace进行人脸识别

Posted Image Process

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用OpenFace进行人脸识别相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/u011531010/article/details/52270023

http://www.vccoo.com/v/2ed520

第一步

在 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进行人脸识别的主要内容,如果未能解决你的问题,请参考以下文章

Apple Vision Framework 识别人脸

人脸识别人脸识别损失函数学习笔记

怎样使用OpenCV进行人脸识别

人脸识别 介绍

刷脸背后:人脸检测人脸识别人脸检索_张重生资料整理

使用OpenFace进行人脸识别