本篇文章关于OpenFace人脸分类器训练,默认已经安装好了OpenFace和其他的依赖关系,如何配置可见上一篇文章。
参考文章
如有雷同,绝非巧合
1.准备素材
人脸原图,每个图包含一个人脸,每个人脸n张图(>15)。不同人的照片放入不同的文件夹下。有多少个人就多少个文件夹即可,如下图:
2.素材处理
包括人脸查找(找到人脸在图像中的位置)
矫正(拉到正面)
裁剪(把矫正完的人脸裁剪成96*96像素的正方形图片)
./util/align-dlib.py ./2dface/ align outerEyesAndNose ./aligned-images/ --size 96
搞定之后在“aligned-images”文件夹中存放着处理好的图像(其中太模糊找不到脸的则被丢弃)
3.特征提取
每个人脸提取128个特征点,提取后保存为csv文件,放入/generated-embeddings/目录中:
./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images
4.模型训练
训练自己的面部检测模型(SVM模型):输出文件为“classifier.pkl”, 路径为:generated-embeddings/
./demos/classifier.py train ./generated-embeddings/
5.人脸分类
获取一张不在数据集中的照片,通过跟前面相同的操作提取出特征之后可由分类器分类得到分类结果和置信度。
./demos/classifier.py infer ./generated-embeddings/classifier.pkl 3.jpg