使用OpenCV,Python和dlib进行眨眼检测及计数
前三篇博客学习了
- windows10+Python3.7安装dlib库进行面部标志识别
- python dlib实现面部标志识别
- 使用python,dlib,OpenCV提取眼睛,鼻子,嘴唇及下颌
这篇博客将进行进阶版的学习——眨眼检测。眨眼检测在现实中有非常重要的应用,可以用于睡意检测。 比如:每年有9万人因为疲劳驾驶死亡,睡意检测可以起到很好的提醒作用,挽救人的生命。让N多个家庭失去亲人,免于破碎。
传统的眨眼检测是:
- 首先眼睛定位;
- 阈值化找到白色的眼睛区域;
- 确定眼睛的“白色”区域是否消失了一段时间(表示眨眼)。
本文使用的眨眼检测是:
构建一个称为眼睛纵横比(EAR “eye aspect ratio”)的指标,EAR的原理是眼睛的纵横比,在睁着眼时是一个基本恒定的值,而在眨眼的瞬间,EAR会瞬间达到0,然后在回到恒定值。
这种眨眼检测方法快速,高效且易于实现。
1. EAR为什么可以成为判断眨眼的标准
如下图,通过应用人脸检测,面部标志检测可以得出眼睛的关键点:如下图所示6个点构成;
使用EAR进行判断的原理:睁开眼睛时眼睛的纵横比大约是恒定的,但眨眼时会迅速降至零。
2. 眨眼检测及原则
(1)面部检测
(2)面部标志检测
(3)根据索引找到左眼、右眼的位置,计算纵横比ear,求平均值
(4)判断是否眨眼:(有超过3帧的连续帧——ear低于阈值,则认为是进行了一次眨眼);
3. 优化
可采用第N维,第N-6,第N+6维均计算EAR指标,求平均值。
参考:
- https://www.pyimagesearch.com/2017/04/24/eye-blink-detection-opencv-python-dlib/
使用OpenCV,Python和dlib进行眨眼检测及计数相关推荐
- 使用opencv python进行手检测和手指计数
By seeing above image now you are very excited for implement it (like me). So not wasting too much t ...
- python使用opencv_教你快速使用OpenCV/Python/dlib進行眨眼檢測識別!
摘要: 影象識別的新思路:眼睛縱橫比,看看大牛如果用這種思路玩轉識別眨眼動作! 今天我們來使用面部標誌和OpenCV 檢測和計算視訊流中的眨眼次數.為了構建我們的眨眼檢測器,我們將計算一個稱為眼睛縱橫 ...
- python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现
之前已经介绍过人脸识别的基础概念,以及基于opencv的实现方式,今天,我们使用dlib来提取128维的人脸嵌入,并使用k临近值方法来实现人脸识别. 人脸识别系统的实现流程与之前是一样的,只是这里我们 ...
- python pip安装第三方库老是报错_#python pip 安装dlib一直失败?#python安装dlib错误...
#python pip 安装dlib一直失败?#python安装dlib错误 python dlib 教程2020-10-11 07:52:36人已围观 ubuntu里面怎么安装dlib 下面是在ub ...
- 美颜(磨皮,大眼)opencv python实现
本文是利用opencv python 的美颜(磨皮,大眼)实现. 1 磨皮 1.1 导向滤波 磨皮使用的是导向滤波进行磨皮.关于导向滤波的介绍,可以看我的另一篇文章导向滤波与opencv python ...
- opencv python安装 centos_centos下安装opencv
根据项目需要,安装opencv并提供给开发使用,并且使用opencv提供python3的API接口.虽然不知道是个啥,还是简单了解下. opencv是什么? OpenCV的全称是Open Source ...
- 基于Python,dlib实现人脸关键点检测
@代码实现及安装过程 基于Python,dlib实现人脸关键点检测 dilb 在做人脸检测人脸识别方面用到比较多的.face_recognition就是基于dlib实现的. 这篇文章将使用Python ...
- OpenCV+python:Canny边缘检测算法
1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...
- OpenCV Python在计算机视觉中的应用
OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...
最新文章
- Py之pyglet:Python之pyglet库的简介、安装、使用详细攻略
- poj - 2356 Find a multiple
- springboot启动报错:Unregistering JMX-exposed beans on shutdown
- 分布式认证需求-统一认证授权
- VC++调用UpdateLayeredWindow实现半透明窗体【转】
- WP7开发小技巧之快捷键
- 面试官系统精讲Java源码及大厂真题 - 01 开篇词:为什么学习本专栏
- java 面试题分析
- if函数python_关于函数:如何在python中为一个if语句提供多个条件
- 机器学习算法总结之Boosting:Boosting Tree、GBDT
- 苹果发生大规模宕机,网友调侃“突然白苹果了一会。”
- 【HDU 1024】【线性DP】Max Sum Plus Plus
- Java电子书下载地址
- videoJs常用方法、事件、VUE中使用的注意事项
- 网狐6603全部架设过程棋牌源码下载搭建教程
- 【工控老马】力控7.0与S7-200SMART的驱动连接
- 线性代数笔记19——格拉姆-施密特正交化
- debian linux 桌面,Debian/Ubuntu使用tasksel安装桌面环境
- windows10 热点一直显示正在断开中
- Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路
热门文章
- 自动驾驶系统关系与自动泊车原理
- 2021年大数据Spark(三十六):SparkStreaming实战案例一 WordCount
- CentOS7安装Composer
- OpenResty搭建高性能服务端
- Ubuntu 系统打不开图片提示Fatal error reading PNG image File: Not a PNG file
- Android TextView 数字后面追加2个0 或者保留小数点后面2位
- Java 成员变量与局部变量
- Unable to inject views for BcFragment{8d4c0 #1 id=0x7f0d00a1}
- 微信小程序 在使用wx.request时显示加载中
- 机器学习入门(01)— 感知机概念、实现、局限性以及多层感知机