前面讲到用OpenCV实现简单的人脸识别,这里用dlib实现人脸的关键点检测。
前提条件
系统环境:这里是在mac系统下进行开发的,其他系统仅供参考。
Python:安装python3.6环境。具体操作见之前的博客:http://blog.csdn.net/u012842255/article/details/70171617
dlib之前的准备
进入终端安装一系列可能用到的包:
安装easy-install:
$ sudo pip install python-setuptools
安装python-dev:
$ sudo pip install python-dev
安装numpy:
$ sudo pip install numpy
安装PIL:
$ sudo pip install Image
安装scipy:
$ sudo apt-get install python-scipy
安装matplotlib:
$ sudo apt-get install python-matplotlib
安装dlib依赖
dlib安装需要的依赖有openblas,opencv:
$ brew install openblas
$ brew install opencv
dlib的so库需要的依赖libboost:
$ sudo pip install libboost-python-dev cmake
安装Mac的X11:
X11是执行Unix程序的图形窗口环境。Mac OS X本身的程序是Aqua界面的,但是为了能够兼容unix和Linux移植过来的程序,需要x11窗口环境。
运行dlib需要X11,但Mac目前没有自带X11,需要重新下载安装,下载地址为:https://www.xquartz.org/,下载后直接安装,默认安装目录为/opt/X11,需要在/usr/loca/opt目录下创建软连接,创建命令如下,创建后重启Mac。
$ cd /usr/local/opt
$ ln -s /opt/X11 X11
安装dlib
进入dlib官网下载安装包http://dlib.net/,选择合适位置解压。或者使用git下载:
$ git clone https://github.com/davisking/dlib.git
下载完成后进行解压与安装:
$ cd dlib/examples
$ mkdir build
$ cd build
$ cmake ..
$ cmake –build . –config Release
安装dlib中的python模块:
在dlib-18.17及之前的版本中,之后进入python_examples下使用bat文件进行编译,编译需要先安装libboost-python-dev和cmake。
$ cd to dlib-18.17/python_examples
$ ./compile_dlib_python_module.bat
在18.18及之后,采用新的方式,用setup.py安装生成so依赖文件:
$ cd dlib
$ sudo python setup.py install
在得到dlib.so之后将其复制到dist-packages目录下:
$ sudo cp dlib.so /usr/local/lib/python3.6/dist-packages/
设置python环境变量:
# Put the following line in .bashrc or .profile
$ export PYTHONPATH=/path/to/dlib/python_examples:$PYTHONPATH
之后再安装一些可能会用到的依赖包:
安装skimage
$ sudo pip install python-skimage
安装imtools
$ sudo pip install imtools
实例检测
实例1(会出现X11窗口,打开Mac摄像头自动检测人脸并标注人脸的landmar):
$ cd dlib/examples/build/
#下载face landmark模型
$ wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
# 解压文件
$ ./webcam_face_pose_ex
实例2(显示有人脸标记的图片):
$ ./face_landmark_detection_ex shape_predictor_68_face_landmarks.dat ../faces/2008_002506.jpg
参考文档:
1. http://www.learnopencv.com/facial-landmark-detection/
2. http://blog.csdn.net/Quincuntial/article/details/53572415
3. http://www.th7.cn/Program/Python/201511/706515.shtml