人脸检测实战高级:使用 OpenCV、Python 和 dlib 完成眨眼检测

本文介绍如何利用OpenCV、Python和dlib库进行眨眼检测。首先介绍了人脸检测器和面部标志预测器的初始化,接着展示了如何计算眼睛纵横比以检测眨眼。文章详细解释了眼睛纵横比的阈值设定、连续帧计数以及如何处理眨眼检测。此外,还提供了代码示例和实际应用的测试步骤。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

在确定视频流中是否发生眨眼时,我们需要计算眼睛纵横比。

如果眼睛纵横比低于某个阈值,然后又高于阈值,那么我们将注册一个“眨眼”——EYE_AR_THRESH 就是这个阈值。我们默认它的值为 0.3,因为这对我的应用程序最有效,但您可能需要为自己的应用程序调整它。

然后我们有一个重要的常量,EYE_AR_CONSEC_FRAME——这个值被设置为 3 以指示眼睛纵横比小于 EYE_AR_THRESH 的三个连续帧必须发生,以便注册眨眼。

同样,根据管道的帧处理吞吐率,您可能需要为自己的实现提高或降低此数字。

第 44 和 45 行初始化两个计数器。 COUNTER 是眼睛纵横比小于 EYE_AR_THRESH 的连续帧的总数,而 TOTAL 是脚本运行时发生的眨眼总数。

现在我们的导入、命令行参数和常量都已经处理好了,我们可以初始化 dlib 的人脸检测器和面部标记检测器:

初始化dlib的人脸检测器(基于HOG)然后创建

面部标志预测器

print(“[INFO] loading facial landmark predictor…”)

detector = dlib.get_frontal_face_detector()

predictor = dlib.shape_predictor(args[“shape_predictor”])

初始化实际的面部标志预测器。

dlib 生成的面部标志遵循可索引的列表,如下:

img

因此,我们可以确定开始和结束数组切片索引值,以便为下面的左眼和右眼提取 (

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值