Github项目地址:https://github.com/MiChongGET/face_collection
环境搭建
1. 环境
- ubuntu14.04 LTS
- python2.7
- pip
注:ubuntu14.04自带python2.7.6和python3.4,因此不再重新安装python。我这里使用python2.7,但需要更新一下python 2.7至python2.x
命令如下:
sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7
sudo apt-get update
sudo apt-get upgrade
2. face_recognition简介
基于face_recognition人脸识别库,实现人脸检测及人脸识别。face_recognition,使用dlib的最先进的人脸识别技术构建深度学习。该模型的准确率为99.38%。
3. 部署环境步骤
- 人脸检测基于dlib,dlib依赖Boost和cmake
参考链接:https://github.com/ageitgey/face_recognition/issues/120
Installing Boost, Boost.Python, and X11 can be accomplished easily with
$ sudo apt-get install build-essential cmake
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libboost-all-dev
注:如安装失败,请sudo apt-get update后重试;另,可以更新源为国内源(阿里源or网易源)。
Installation of Cmake:(it tooks a while to install ~1.5 min)
1 sudo wget https://cmake.org/files/v3.9/cmake-3.9.0-rc5.tar.gz -O cmake.tar.gz
2 sudo tar -xvf cmake.tar.gz
3 cd cmake-3.9.0-rc5/
4 sudo chmod +x bootstrap
5 sudo ./bootstrap
6 sudo make
7 sudo make install
注:安装好cmake后,输入cmake -version查看cmake版本是否安装成功。
pip installation
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
注:安装完成后,终端输入pip -V查看pip版本是否安装成功。
注:如果使用python3.x版本,最后一步命令python改为python3
- 下面通过手动编译dlib的方式进行安装dlib
版本1(默认版本)
1 git clone https://github.com/davisking/dlib.git //Clone the code from github 2 cd dlib 3 mkdir build 4 cd build 5 cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1 //以AVX指令的方式编译dlib 6 cmake --build . 7 cd .. 8 sudo python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA
注:最后一步需要等待一些时间。如果使用python3.x版本,最后一步命令python改为python3
版本2(版本1不成功,请试下版本2)
1 git clone https://github.com/davisking/dlib.git //Clone the code from github 2 cd dlib 3 mkdir build 4 cd build 5 cmake .. //以默认方式(SSE41指令)编译dlib 6 cmake --build . 7 cd .. 8 sudo python setup.py install
注:最后一步需要等待一些时间。如果使用python3.x版本,最后一步命令python改为python3
安装完成后,运行python,输入
import dlib
此时执行成功。
- 安装face_recognition
$ sudo pip install face_recognition
注:需要加sudo,之前没有加,后期遇到权限不足的问题,加了sudo,问题解决,成功安装。
安装完成后,运行python,输入
import face_recognition
此时执行成功。
- 安装opencv-python
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
注意,simple
不能少, 是 https
而不是 http
参考链接:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
测试:运行python,输入
import cv2
通过即导入opencv成功。
4. 测试
- 读取图片-人脸检测
- 读取摄像头视频流-实时检测并识别人脸
5. 遇到问题
Q1:在安装dlib的时候,用的是版本1,运行python,输入import dlib,遇到“Dlib was compiled to use AVX instructions, but these aren't available on your machine.”的问题,中文翻译“Dlib编译为使用AVX指令,但这些指令在您的机器上不可用。”。于是换用版本2,运行python,输入import dlib,又遇到“Dlib was compiled to use SSE41 instructions, but these aren't available on your machine.”的问题,中文翻译“Dlib编译为使用SSE41指令,但这些指令在您的机器上不可用。”。
于是网上各种查资料,大概意思是你的机器不支持这种指令的编译方式,(我的机器是服务器建立的虚拟机(ubuntu14.04LTS)),本以为虚拟机的原因不能运行程序,过了一会重新运行python,输入import dlib,通过了。。。没有报错。。。然后我并没有进行其他操作。
注意:后期运行程序时,发现报了这个问题,但并不耽误使用,请看截图:
Q2:在安装face_recognition时遇到一个问题:“from pkg_resources import resources_filename”,往前翻,发现需要安装一个distributed包,这里pip装了一下:“pip install distributed”,装完重新运行python,执行import face_recognition,执行成功。