上一篇博客介绍了在正式工作前我用到的一些知识和相关的资源,那这一篇就是正式的介绍如何进行人脸特征的提取了。
那么首先大家都知道,我们经常在运行代码的时候是时候配置好相应所需的环境的。那么我这次也不例外。那么我这里就讲一下最重要也是最麻烦的部分——如何在 python3.7 +pycharm2019的环境下下载并成功导入dlib库。
如果以下内容对你有所帮助,可以点赞关注一下表示支持哦!
import cv2
import dlib
# 与人脸检测相同,使用dlib自带的frontal_face_detector作为人脸检测器
detector = dlib.get_frontal_face_detector()
# 使用官方提供的模型构建特征提取器
predictor = dlib.shape_predictor("E:\\Mutilmodal expression recognition\\shape_predictor_68_face_landmarks\\shape_predictor_68_face_landmarks.dat")
# cv2读取图片
img = cv2.imread("E:\\Mutilmodal expression recognition\\video\\harassment 01\\harassment 01_20191115_115146.633.jpg")
# 与人脸检测程序相同,使用detector进行人脸检测 dets为返回的结果
dets = detector(img, 1)
# 使用enumerate 函数遍历序列中的元素以及它们的下标
# 下标k即为人脸序号
for k, d in enumerate(dets):
# 使用predictor进行人脸关键点识别 shape为返回的结果
shape = predictor(img, d)
# 绘制特征点
for index, pt in enumerate(shape.parts()):
print('Part {}: {}'.format(index, pt))
pt_pos = (pt.x, pt.y)
cv2.circle(img, pt_pos, 1, (255, 0, 0), 2)
# 利用cv2.putText输出1-68
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, str(index + 1), pt_pos, font, 0.3, (0, 0, 255), 1, cv2.LINE_AA)
cv2.imshow("img", img)
k = cv2.waitKey()
cv2.destroyAllWindows()
很简洁的代码,就可以提取出我们想要的人脸坐标了(注意这里提取出来的是相对于图片而不是相对于框出来的人脸的坐标)
这里主要有两样是需要我们事先就做好的。
首先是 下载 shape_predictor_68_face_landmarks.dat这个东西,
其次就是配好 opencv 和dlib啦。
之前导入了dilb但是运行的时候会报错,大概就是说dlib模块找到不到get_frontal_face_detector属性,试了挺久还是没办法。那行吧,只能全部工作认认真真来一遍了。
下面我开始讲如何在pycharm2019.1.2和python3.7的环境下成功将dlib导入pycharm中。
1、安装visualStudio2017,这里建议大家安装community版本的。
https://visualstudio.microsoft.com/zh-hans/downloads/
2、下载好了之后,要注意在就开始选择工作负载的时候,要选上“使用C++的桌面开发”和“python开发”这两样。
vs2017安装好C++开发环境之后,要记得将cl.exe的路径加到 环境变量 中,正常cl.exe会在你选择VS安装的路径下的Tools\MSVC\14.16.27023\bin\Hostx**\x**,这里的**代指64和86这两个数字,所以为了以防万一,将四个文件夹下的cl.exe都加入到环境变量中。

3、接下来就是python3.7的安装了,这个比较简单,没啥可以注意的哈哈。
4、使用pip install cmake 安装cmake插件。
安装好之后把cmake的bin路径加到环境变量中。
5、然后到http://www.boost.org/下载boost,我这里选择的版本是1.68.0(建议不要换版本)
将下载好的boost解压,运行bootstrap.bat文件,成功的话会出现b2.exe、bjam.exe和project-config.jam。
然后在当前目录命令行运行b2 install(耐心点,一两个小时是要有的)
之后就执行b2 -a --with-python address -model=64 toolset=msvc runtime-link=static
6、将安装完成的boost文件加路径加入到环境变量中。
7、下载dlib源码http://dlib.net/files/,选择安装dlib-19.14。cd 到 dlib目录下运行命令python setup.py install等待完成安装。
然后将 安装完成后的目录下的dist、dilb和dlib.egg-info这三个 文件夹 复制到 python安装文件夹的lib下面
然后将dlib安装路径下的dlib.cp37-win_amd64.pyd文件复制到python的安装目录的DLLs文件夹下。
8、最后一步,验证是否正常运行

emmm,我觉得安装opencv应该挺简单的,这里就略过吧哈哈。
但是,要注意版本最好是跟你的dlib版本对应得上。
这里附上我的版本截图。

大家加油!
由于博主能力有限,博文中提及的信息,也难免会有疏漏之处。希望发现疏漏的朋友能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的方法也请不吝赐教。
需要文中提到的资料的朋友,也可以关注评论留下自己的邮箱,我会尽量及时发送!
希望与大家共同进步!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删