- 用dlib和opencv进行不同角度人脸检测及68个关键点提取(Python)
- 摘要:用dlib和opencv进行不同角度人脸检测及68个关键点提取(Python)前几日为了在自己的单个旋转人脸数据集上复现SDMforfaceAlignment算法,研究了用dlib机器学习工具箱和opencv进行旋转人脸的检测及关键点提取,整理一下思路,希望有所帮助。1.软件要求Ubuntu(Windows应该也适用)dlibopencv2Python+Numpy具体的安装过程不作详细介绍,可能要花些时间=.=2.程序介绍话不多说,直接上代码。a)导入函数importcv2i
- 用dlib和opencv进行不同角度人脸检测及68个关键点提取(Python)
前几日为了在自己的单个旋转人脸数据集上复现SDM for face Alignment算法,研究了用dlib机器学习工具箱和opencv进行旋转人脸的检测及关键点提取,整理一下思路,希望有所帮助。
1. 软件要求- Ubuntu(Windows应该也适用)
- dlib
- opencv2
- Python + Numpy
具体的安装过程不作详细介绍,可能要花些时间 =.=
2. 程序介绍话不多说,直接上代码。
a) 导入函数
b) 读取文件夹下的图片
得到me_1文件夹下的所有图片。
c) 人脸检测及关键点提取
首先,要下载dlib提供的已经训练好的关键点提取模型[链接]。因为我的人脸图片是不同角度的,所以不一定能够检测到人脸,所以当检测不到人脸时,依次旋转图片60度,再次检测,直到能够检测到人脸为止,如果旋转了360度还是检测不到人脸的话,那么认为该图片中不存在人脸。
d) 保存68个关键点的子函数并依次显示
将检测到的每张人脸的68个特征点保存到一个pts文件中。
读取原始图像,如果不能检测到人脸,依次旋转该图片以便检测到人脸,检测到人脸之后进行特征点提取:
原图 旋转60度后的图 关键点标记图