人脸识别项目openface简介

/

软硬件环境

  • openface
  • ubuntu 16.04 64bit
  • python2

openface项目

openface是一个在github上开源的基于深度神经网络(Deep Neural Networks)的人脸识别项目,目前star数已经接近9.5k,fork数也有2k,可见非常受欢迎,openface基于python2.

安装依赖

安装lua,不知从哪个版本开始,ubuntu安装软件的apt-get可以只写apt了,挺好

  1. sudo apt install lua5.3

安装dlib, pandas

  1. sudo pip2 install dlib
  2. sudo pip2 install pandas

安装torch

  1. git clone https://github.com/torch/distro.git ~/torch --recursive
  2. cd ~/torch
  3. bash install-deps
  4. sudo ./install.sh

安装程序会在~/.bashrc中添加语句

  1. . /home/xugaoxiang/torch/install/bin/torch-activate

执行使之生效

  1. source ~/.bashrc

安装luarocks及相关模块

  1. sudo apt-get install luarocks
  2. sudo chown -R xugaoxiang:xugaoxiang ~/.cache
  3. luarocks install csvigo
  4. luarocks install dpnn
  5. luarocks install image
  6. luarocks install torchx
  7. luarocks install graphicsmagick
  8. luarocks install nn

运转openface

下载源码

  1. git clone https://github.com/cmusatyalab/openface.git
  2. cd openface
  3. python setup.py install

准备自己的样本图片

在ubuntu系统下用cheese(sudo apt install cheese)摄像头工具录制一段15秒左右的视频,然后利用ffmpeg(同样利用apt安装)工具将视频转化成图片,将生成的图片集合存放在openface/training-images/xugaoxiang下,大概就有了400左右的样本数量了,据openface的官方说法是样本数量越大,准确度是越高的,经过简单的测试,发现的确是这样.

  1. ffmpeg -i 2018-03-16-170319.webm -r 25 -f image2 xugaoxiang/%05d.png

预处理

对每张照片进行alignment操作,就是把跟人脸无关的元素去掉,以便解决一些如不一致和弱光线的问题,形成一张张96x96的图片

  1. ./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96

生成Representations

  1. cd models
  2. ./get-models.sh
  3. cd ..
  4. ./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/

创建分类模型

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

到此, 各项准备工作都已经OK了,接下来看看效果吧.

照片中人脸的识别

  1. ./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

我从training-images中找了张照片测试,结果非常好,相似度90%

2张照片的对比

  1. ./demos/compare.py training-images/xugaoxiang/00100.png training-images/xugaoxiang/00200.png

从webcam中识别

  1. ./demos/classifier_webcam.py ./generated-embeddings/classifier.pkl

在线交流gitter

https://gitter.im/cmusatyalab/openface, 这点非常的不错,比提issue要更快速有效,参与的人也多,但也不是你提问就有人来帮你,毕竟大家都很忙.

参考资料

https://github.com/cmusatyalab/openface
http://cmusatyalab.github.io/openface/setup/
https://github.com/conda/conda/issues/4860
http://torch.ch/
https://www.cs.cmu.edu/~satya/docdir/CMU-CS-16-118.pdf
https://zhuanlan.zhihu.com/p/24567586
http://blog.csdn.net/dev_csdn/article/details/79176037

转载请注明作者和出处,并添加本页链接。
原文链接: http://xugaoxiang.com/post/116

给我留言