2、第一步
在 openface 文件中建立一个名为./training-images / 的文件夹
mkdir training-images
第二步
为你想识别的每个人建立一个子文件夹。例如:我找了四组训练图片,每组图片大约在 15 张左右,其实有点少了。一组我的 Pengjunzhu/,一组我女朋友的 Xinqi/、另两组分别是孙红雷 Hongleisun / 和黄磊 Leihuang / 的,这是在《男人帮》截的图。把这四组图片放在四个文件夹里面。
第三步然后把这几个训练文件夹放到 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 模型。
到了这,你应该有一个可用的面部识别器。
第五步:识别面部!
获取一张未知脸的新照片。把它像这样传递给分类器脚本:
./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg
我们会得到一个看起来像这样的预测:
=== /test-images/will-ferrel-1.jpg ===
Predict will-ferrell with 0.73 confidence.
注:我这里用的自己的照片进行测试结果,最好的结果达到了 89%,最坏的结果 66% 这是因为我的训练图片比较少。
从这里开始直到你适应这个 ./demos/classifier.py Python 脚本 做任何你想做的。
重要提示:
今天又测试了下模型。这个模型是不能识别一张猫脸的。哈哈...
抛出的错误是 Exception: Unable to find a face: train-test/haha.jpeg 那能不能识别出一个陌生人的脸的呢?这个结果很让我吃惊,我 copy 了一直刘德华的照片,拿去测试,竟然发现他和孙红雷的置信度是 90%,我一下子就蒙逼。要知道我拿孙红雷自己的照片最高置信的度才 89%. 这一定是那里出了问题。训练量不够么?我下一步要去找几组比较多的训练集。看看效果怎么样。就这个问题今天在群里请教了下,可能的原因是预处理没处理好 , 也许是裁剪的问题, 裁剪和定位的问题。来源: http://www.taocms.org/1130.html