人脸识别openface

来源:互联网 发布:网页版淘宝的微淘 编辑:程序博客网 时间:2024/06/05 04:48
  • OpenFace源代码:https://github.com/cmusatyalab/openface/
  • OpenCV源代码:https://github.com/opencv/opencv
  • dlib源代码:https://github.com/davisking/dlib 

首先安装上面三个库,你可以手动安装或直接使用Docker 



我使用Docker,Ubuntu系统:

$ docker pull bamos/openface$ docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash$ cd /root/openface
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

创建一个目录用来保存待训练的图片数据:

$ mkdir training_images
  • 1
  • 1

为要识别的人创建单独的目录:

$ cd training_images$ mkdir obama$ mkdir print_panda$ mkdir xiao_ming$ mkdir trump
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

把收集的每个人的图片拷贝到对应的目录,确保每张图片只有一张脸。不用特意的提取脸,OpenFace会自动干这个活。

提取和aligned:

$ cd ..$ ./util/align-dlib.py ./training_images/ align outerEyesAndNose ./aligned-images/ --size 96
  • 1
  • 2
  • 1
  • 2

生成的./aligned-images/目录包含了处理过的图片。

提取特征:

$ ./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
  • 1
  • 1

开始训练:

$ ./demos/classifier.py train ./generated-embeddings/
  • 1
  • 1

生成的SVM模型位于./generated-embeddings/classifier.pkl。

使用训练的模型进行识别:

$ ./demos/classifier.py infer ./generated-embeddings/classifier.pkl test_image.jpg
  • 1
  • 1

如果结果不理想,尝试添加更多的训练数据,最好包含各种角度。