一、首先安装DLib模组
这里只介绍linux安装的过程,windows安装过程请自行百度
1、首先,安装dlib、skimage前;先安装libboost
sudo apt-get install libboost-python-dev cmake
接下来到dlib官网dlib.net下载最新的dlib版本(我下的是dlib-19.7),进入档案所在目录解压
bzip2 -d dlib-19.7.tar.bz2
tar xvf dlib-19.7.tar
这是一个二级解压过程,解压得到档案dlib-19.7,进入该目录下,执行如下命令安装dlib
python setup.py install
安装完成后,切换到python,键入import dlib,无异常提示表明安装成功!
接着安装skimage
sudo apt-get install python-skimage
二、人脸检测

首先呼叫dlib.get_frontal_face_detector() 来载入dlib自带的人脸检测器
dets = detector(img, 1)将检测器应用在输入图片上,结果返回给dets(引数1表示对图片进行上取样一次,有利于检测到更多的人脸);
dets的个数即为检测到的人脸的个数;
遍历dets可以获取到检测到的每个人脸四个座标极值。
为了框出检测到的人脸,用dlib.image_window()来载入显示视窗,window.set_image(img)先将图片显示到视窗上,再利用window.add_overlay(dets)来绘制检测到的人脸框;
dlib.hit_enter_to_continue()用于等待点选(类似于opencv的cv2.waitKey(0),不加这个会出现闪退)。
检测结果如下图:

三、关键点的提取
实现关键点描述需要用到用于特征提取的官方模型,下载地址如下:
http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2

首先通过dlib.shape_predictor(predictor_path)从路径中载入模型,返回的predictor就是特征提取器
对dets遍历,用predictor(img, d)计算检测到的每张人脸的关键点;
获取每个关键点座标shape.parts()的x,y值,存入landmark矩阵(模型预设提取68个关键点,所以landmark为68×2矩阵)。
关键点提取结果如下:






























