python+opencv 我们也可以这样玩人脸识别
off999 2024-10-20 08:08 21 浏览 0 评论
使用dlib,OpenCV和Python进行人脸识别--检测眼睛,鼻子,嘴唇和下巴
前期文章我们分享了如何使用python与dlib来进行人脸识别,本期我们就来更细的来了解一下人脸识别的内容
如下图,dlib人脸数据把人脸分成了68个数据点,从图片可以看出,人脸识别主要是识别:人眉,人眼,人鼻,人嘴以及人脸下颚边框,每个人脸的部位都有不同的数据标签从1-68
当我们识别出人脸的这68个点,可以通过访问不同的数据点来检测到人脸的部分数据
- · 口可以访问 [48,68]
- · 右眉可以访问 [17,22]
- · 左眉可以访问 [22,27]
- · 右眼可以访问 [36,42]
- · 左眼 可以访问 [42,48]
- · 鼻可以访问 [27,35]
- · 下巴边框可以访问 [0,17]
通过访问不同的数据点,来进行人脸上的部位检测
我们可以建立一个数组来访问不同的人脸部分
FACIAL_LANDMARKS_IDXS = OrderedDict([
("mouth", (48, 68)),
("right_eyebrow", (17, 22)),
("left_eyebrow", (22, 27)),
("right_eye", (36, 42)),
("left_eye", (42, 48)),
("nose", (27, 35)),
("jaw", (0, 17))
])
第三方库from imutils import face_utils中的face_utils已经集成了人脸部分的数据以及格式化代码,我们可以直接来使用它来进行人脸部分的检测
· 导入我们所需的Python包(第1-5行)
· 实例化dlib 面部检测器并加载面部界标预测器(第8行和第10行)。
· 加载和预处理我们的输入图像(第13-17行)。
·
· 在输入图像中检测人脸(第20行)
· 循环检测到的人脸,格式化人脸数据(第22-26行)
· 循环人脸部分,把人脸部分的标签显示在图片上(29-34行)
·