python opencv人脸识别_python+opencv 我们也可以这样玩人脸识别

ee4359d2f3ebc4125970370415599fc5.png

使用dlib,OpenCV和Python进行人脸识别--检测眼睛,鼻子,嘴唇和下巴前期文章我们分享了如何使用python与dlib来进行人脸识别,本期我们就来更细的来了解一下人脸识别的内容如下图,dlib人脸数据把人脸分成了68个数据点,从图片可以看出,人脸识别主要是识别:人眉,人眼,人鼻,人嘴以及人脸下颚边框,每个人脸的部位都有不同的数据标签从1-68当我们识别出人脸的这68个点,可以通过访问不同的数据点来检测到人脸的部分数据

  • · 口可以访问 [48,68]
  • · 右眉可以访问 [17,22]
  • · 左眉可以访问 [22,27]
  • · 右眼可以访问 [36,42]
  • · 左眼 可以访问 [42,48]
  • · 鼻可以访问 [27,35]
  • · 下巴边框可以访问 [0,17]

通过访问不同的数据点,来进行人脸上的部位检测

f07c6023843824febe4855d34a6cbca7.png

人脸68点数据
我们可以建立一个数组来访问不同的人脸部分
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已经集成了人脸部分的数据以及格式化代码,我们可以直接来使用它来进行人脸部分的检测

4ab8b56cc523dafd7e6504552bff0f2c.png

· 导入我们所需的Python包(第1-5行
· 实例化dlib 面部检测器并加载面部界标预测器(第8行和第10行)。
· 加载和预处理我们的输入图像(第13-17行)。
·

d2a265f7ad086a6ab57341ec6269fc6a.png

· 在输入图像中检测人脸(第20行
· 循环检测到的人脸,格式化人脸数据(第22-26行)
· 循环人脸部分,把人脸部分的标签显示在图片上(29-34行)
·

8a1b48234a5d7e0fa817e7b1fdb4040c.png

单独显示人脸部分的数据点(37-38行)
提取人脸部分的图片来进行显示(41-43行)
最后显示图片
通过以上的代码循环,可以来检测人脸部分,首先检查到的是人嘴,如下图

67943c9ce6e781c29ad33feddf201f97.png

然后是左右眉毛

7acee02c41a0fc4c1508dfe1fcba9f49.png

然后是左右人眼

baa927628a7dadfaa27ba5c6767585cb.png

然后是人鼻子

3e40950e2150a718aec44ac221c46222.png

最后是人脸的边框

8f7891f9309f3688c4f98bc57d22a80d.png

人脸检测完成后使用mask来进行人脸的显示

97db822532d016bb75a9d2b5e3e207a0.png

使用mask来进行人脸部分的显示(51-53行)

3a0063448682c55a93510edb49877481.png

通过以上步骤,我们便可以分别检测到人脸的部分地方,当然也可以检测到人眼,在人脸识别中,有一个比较困难的地方便是如何区分这个人脸是一个人正常的或者说不是一个照片,以免别人拿到照片也可对人脸进行检测,我们使用支付宝或者微信时,进行人脸识别时,有时候要求进行眨眼睛,通过此方法便可以有效的识别不是人脸照片,如何进行人脸的眨眼睛,我们后期分享

头条号:人工智能研究所

微@信搜索:启示AI科技,

体验不一样的AI工具

微信搜索小程序:AI人工智能工具

37b2ac17d085baf144d10c70040d520a.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值