一、dlib简介
Dlib是一个现代C++框架,解决包含机器学习算法以及开发复杂软件的实现问题,它被广泛应用在工业和学术研究领域,包括机器人、嵌入式设备、移动手机以及大规模高性能计算环境中,DLib的开源使得在使用过程中方便,自由。
Dlib主要特点:文档说明全,高质量的代码,机器学习算法,科学计算算法,图模型推理算法,图像处理,线程,网络编程,图形用户接口,数据压缩与整合算法等,可以参考官网说明:http://dlib.net
二、dlib安装
dlib库的安装还是一般会遇到一点问题的,我自己第一次使用也是折腾了半天。这里交代一下我的环境是64位win7+Python3.6.6+opencv-python 4.0.0.21。
1、首先安装opencv模块
直接在cmd模式下输入pip install opencv-python 即可
2、安装dlib库
网上有很多说法,大部分都说要先安装cmake、boost,其实没有必要。这里提供两种简单方法:
方法一:直接cmd模式下输入 pip install dlib==19.6.1即可,如下图所示(当然也可以安装其他版本,方法类似,我自己后来安装的是19.7.0版本)
方法二:直接在pycharm中安装(但要注意相应的版本号,因为pycharm默认都是最新版本)
File-settings-Project Interpreter-…
补充:本来到这里就安装成功了,但是肯定有小伙伴发现虽然import dlib没有问题,但是在运行代码时报错:detector = dlib.get_frontal_face_detector() AttributeError: module ‘dlib’ has no attribute ‘get_frontal_face_detector’ 或者 can’t open 'get_frontal_face_detector’等问题,则是因为你没有下载人脸库shape_predictor_68_face_landmarks,需要下载下来并解压后放到你代码所在的文件夹里。
人脸库下载链接:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
3、简单小例子 :任意图像中人脸检测及关键点提取
(1)原理及步骤:
a)首先用opencv读取图片(img = cv2.imread(“duoren.jpg”)
b)调用dlib库提供的人脸提取器,检测出图片有无人脸,若有则输出检测到的人脸数目并进行特征点Landmark提取,若无则输出未检测到人脸
detector = dlib.get_frontal_face_detector() # 使用dlib库提供的人脸提取器
predictor = dlib.shape_predictor(‘shape_predictor_68_face_landmarks.dat’)#构建特征提取器
c)利用cv2.circle给每个特征点画一个圈,共68个
cv2.circle(img, pos, 5, color=(0, 255, 0))
(2)效果展示:
图1 单人模式
图2 多人模式
4、代码获取:
扫码关注微信公众号“StrongerTang”,输入关键词“dlib小例子”,即可获取。
也有其他资料可免费领取。