首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]

后端 2.51MB 13 需要积分: 1
立即下载

资源介绍:

3.检测方法 1)方法 与用于计算眨眼的传统图像处理方法不同,该方法通常涉及以下几种组合: 1、眼睛定位。 2、阈值找到眼睛的白色。 3、确定眼睛的“白色”区域是否消失了一段时间(表示眨眼)。 相反,眼睛长宽比是一种更为优雅的解决方案,它涉及基于眼睛面部轮廓之间的距离之比的非常简单的计算。 参考该博客,这种眨眼检测方法快速,高效且易于实现。 (2)眼睛纵横比 我们可以应用脸部界标检测来定位脸部重要区域,包括眼睛,眉毛,鼻子,耳朵和嘴巴 这也意味着我们可以通过了解特定面部部分的索引来提取特定面部结构: 在眨眼检测方面,我们只对两套面部结构感兴趣:眼睛。 每只眼睛都由6 (x,y)坐标表示,从坐标的左角开始(就像您在看那个人一样),然后沿该区域的其余部分顺时针旋转: 基于此图像,我们应该取消关键点: 这些坐标的宽度和高度之间存在关系。 根据Soukupová和Čech在2016年的论文《使用面部地标进行实时眼睛眨眼检测》的工作,我们可以得出一个反映这种关系的方程,称为眼睛纵横比(EAR):
 # 1.图片演示 ![2.png](3582ee6fec5a4a79a3c7d6cf4fec4b86.png) ![3.png](c925be67b4efaa0c5fc3d20cc4017afc.png) # 2.视频演示 [[项目分享]Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1xP411V7Zg/?vd_source=bc9aec86d164b67a7004b996143742dc) # 3.检测方法 1)方法 与用于计算眨眼的传统图像处理方法不同,该方法通常涉及以下几种组合: 1、眼睛定位。 2、阈值找到眼睛的白色。 3、确定眼睛的“白色”区域是否消失了一段时间(表示眨眼)。 相反,眼睛长宽比是一种更为优雅的解决方案,它涉及基于眼睛面部轮廓之间的距离之比的非常简单的计算。 [参考该博客](https://afdian.net/item?plan_id=71141eac5e6c11ed9bd852540025c377),这种眨眼检测方法快速,高效且易于实现。 (2)眼睛纵横比 我们可以应用脸部界标检测来定位脸部重要区域,包括眼睛,眉毛,鼻子,耳朵和嘴巴 这也意味着我们可以通过了解特定面部部分的索引来提取特定面部结构: 在眨眼检测方面,我们只对两套面部结构感兴趣:眼睛。 每只眼睛都由6 (x,y)坐标表示,从坐标的左角开始(就像您在看那个人一样),然后沿该区域的其余部分顺时针旋转: ![4.png](2a9229605b943edf23dccbb183566681.png) 基于此图像,我们应该取消关键点: 这些坐标的宽度和高度之间存在关系。 根据Soukupová和Čech在2016年的论文《使用面部地标进行实时眼睛眨眼检测》的工作,我们可以得出一个反映这种关系的方程,称为眼睛纵横比(EAR): ![5.png](80f4496d190b04f08adf4a17cd50635c.png) ``` def eye_aspect_ratio(eye): # 计算距离,竖直的 A = dist.euclidean(eye[1], eye[5]) B = dist.euclidean(eye[2], eye[4]) # 计算距离,水平的 C = dist.euclidean(eye[0], eye[3]) # ear值 ear = (A + B) / (2.0 * C) return ear ``` 其中p1,…,p6是2D面部界标位置。 该方程的分子计算垂直眼界标之间的距离,而分母计算水平眼界标之间的距离,对分母进行适当加权,因为只有一组水平点,但有两组垂直点。 (3)眨眼检测标准 睁开眼睛时眼睛的纵横比大约是恒定的,但是当眨眼时眼睛的纵横比会迅速降至零。 使用这个简单的方程式,我们可以避免使用图像处理技术,而只需依靠眼睛界标距离的比率来确定一个人是否在眨眼。 为了更清楚地说明这一点,[参考该博客](https://mbd.pub/o/bread/Y5WTkplx): ![6.png](89f004c6fe21c4760a183ba651321110.png) 图: 左上:当眼睛睁开时,眼睛界标的可视化。右上:闭上眼睛时的眼睛地标。底部:绘制随时间变化的眼睛纵横比。眼睛纵横比的下降表示眨眼 ``` def shape_to_np(shape, dtype="int"): # 创建68*2 coords = np.zeros((shape.num_parts, 2), dtype=dtype) # 遍历每一个关键点 # 得到坐标 for i in range(0, shape.num_parts): coords[i] = (shape.part(i).x, shape.part(i).y) return coords ``` 在左上角,我们的眼睛完全张开-此处的眼睛长宽比会很大(r),并且随着时间的推移会相对保持恒定。 但是,一旦眨眼(右上角),眼睛的宽高比就会急剧下降,接近零。 在底部图中绘出了眼纵横比随时间的视频剪辑的曲线图。如我们所见,眼睛的纵横比是恒定的,然后迅速下降到接近零,然后再次增加,表明已经发生了一次眨眼。 在确定视频流中是否发生眨眼时,我们需要计算眼睛的宽高比。 ``` # 设置判断参数 EYE_AR_THRESH = 0.3 # ear小于0.3判断为闭眼 EYE_AR_CONSEC_FRAMES = 3 # 连续三帧ear都小于0.3判断为眨眼 # 初始化计数器 COUNTER = 0 TOTAL = 0 ``` 如果眼睛的宽高比下降到某个阈值以下,然后又上升到该阈值以上,那么我们将注册“眨眼”- EYE_AR_THRESH 是此阈值。我们将其默认设置为0. 3 因为这对我的应用程序最有效,但是您可能需要针对自己的应用程序进行调整。 ``` # 遍历每一帧 while True: # 预处理 frame = vs.read()[1] if frame is None: break (h, w) = frame.shape[:2] width=1200 r = width / float(w) dim = (width, int(h * r)) frame = cv2.resize(frame, dim, interpolation=cv2.INTER_AREA) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 检测人脸 rects = detector(gray, 0) # 遍历每一个检测到的人脸 for rect in rects: # 获取坐标 shape = predictor(gray, rect) shape = shape_to_np(shape) # 分别计算ear值 leftEye = shape[lStart:lEnd] rightEye = shape[rStart:rEnd] leftEAR = eye_aspect_ratio(leftEye) rightEAR = eye_aspect_ratio(rightEye) # 算一个平均的 ear = (leftEAR + rightEAR) / 2.0 # 绘制眼睛区域 leftEyeHull = cv2.convexHull(leftEye) rightEyeHull = cv2.convexHull(rightEye) cv2.drawContours(frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours(frame, [rightEyeHull], -1, (0, 255, 0), 1) # 检查是否满足阈值 if ear < EYE_AR_THRESH: COUNTER += 1 else: # 如果连续几帧都是闭眼的,总数算一次 if COUNTER >= EYE_AR_CONSEC_FRAMES: TOTAL += 1 # 重置 COUNTER = 0 # 显示 cv2.putText(frame, "Blinks: {}".format(TOTAL), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText(frame, "EAR: {:.2f}".format(ear), (300, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.imshow("Frame", frame) key = cv2.waitKey(10) & 0xFF if key == 27: break vs.release() cv2.destroyAllWindows() ``` 然后我们有一个重要的常数, EYE_AR_CONSEC_FRAME —此值设置为 3 表示连续三个帧的眼睛长宽比小于EYE_AR_THRESH 必须进行眨眼才能注册眨眼。 同样,根据流水线的帧处理吞吐率,您可能需要为自己的实现提高或降低此数字。 第44和45行初始化两个计数器。柜台 是眼睛长宽比小于的连续帧的总数 EYE_AR_THRESH 尽管 全部的 是脚本运行期间发生的总闪烁次数。 ![7.png](de1fd8db9defd70cccb4bb4c59c42818.png) 完整[源码&环境部署视频教程&自定义UI界面](https://s.xiaocichang.com/s/8ce3b3) 参考博客[《Python基于OpenCV的实时疲劳检测\[源码&演示视频&部署教程\]》](https://mbd.pub/o/qunma/work) # 4.参考文献 *** [1] 汪明明,林小竹.基于OpenCV人眼定位的人脸检测方法[D].北京石油化工学院.2012(12). [2] 傅亚煌,黄鸣宇.基于眼动特性的机动车驾驶疲劳系统[J].电脑与信息技术.2013(2). [3] 王奕直,周凌霄,孔万增.基于Adaboost的疲劳驾驶眨眼检测[D].杭州[电子](http://www.youerw.com/tongxin/)科技大学学报.2013(8). [4] 张旭,李亚利,陈晨,王生进,丁晓青.嵌入式驾驶员状态检测算法的实现与优化[J].自动[化学](http://www.youerw.com/huaxue/)报.2012(12). [5] 赵钟.驾驶员疲劳检测方法研究及嵌入式实现[D]. 大连海事大学.2010(6). [6] 徐淑峰,孙炜,赵峰,张忠.Adaboost人脸检测算法在嵌入式平台上的优化与实现[D].上海交通大学微电子学院.2008(6). [7] 牛慧萍.基于DSP的人眼状态信息检测系统的研究和设计.[D].沈阳理工大学.2010(3). [8] 郑玉铎.田杨萌.靳薇.基于Adaboost 和ASM 算法的人眼定位.[J] .北京信息科技大学学报.2013(6). [9] 郭纯宏.基于嵌入式的人眼信息检测系统研究.[D].沈阳理�

资源文件列表:

real-time-fatigue-detection-opencv-python-main.zip 大约有12个文件
  1. real-time-fatigue-detection-opencv-python-main/
  2. real-time-fatigue-detection-opencv-python-main/2a9229605b943edf23dccbb183566681.png 240.78KB
  3. real-time-fatigue-detection-opencv-python-main/3582ee6fec5a4a79a3c7d6cf4fec4b86.png 744.54KB
  4. real-time-fatigue-detection-opencv-python-main/80f4496d190b04f08adf4a17cd50635c.png 66.82KB
  5. real-time-fatigue-detection-opencv-python-main/89f004c6fe21c4760a183ba651321110.png 458.38KB
  6. real-time-fatigue-detection-opencv-python-main/README.md 8.87KB
  7. real-time-fatigue-detection-opencv-python-main/_设置判断参数.py 196B
  8. real-time-fatigue-detection-opencv-python-main/_遍历每一帧.py 1.78KB
  9. real-time-fatigue-detection-opencv-python-main/c925be67b4efaa0c5fc3d20cc4017afc.png 796.5KB
  10. real-time-fatigue-detection-opencv-python-main/de1fd8db9defd70cccb4bb4c59c42818.png 362.93KB
  11. real-time-fatigue-detection-opencv-python-main/eye_aspect_ratio.py 277B
  12. real-time-fatigue-detection-opencv-python-main/shape_to_np.py 286B
0评论
提交 加载更多评论
其他资源 品达物流TMS,TMS全称为:Transportation Management System
一、关联仓库 品达物流-通用权限:https://gitee.com/itxinfei/pinda-authority 品达物流-集信达:https://gitee.com/itxinfei/jixinda.git 二、项目介绍 本项目名称为品达物流TMS,TMS全称为:Transportation Management System,即运输管理系统,是对运输作业从运力资源准备到最终货物抵达目的地的全流程管理。 TMS系统适用于运输公司、各企业下面的运输队等,它主要包括订单管理、配载作业、调度分配、行车管理、GPS车辆定位系统、车辆管理、线路管理、车次管理、 人员管理、数据报表、基本信息维护等模块。该系统对车辆、驾驶员、线路等进行全面详细的统计考核,能大大提高运作效率,降低运输成本,使公司能够在激烈的市场竞争中处于领先地位。 本项目从用户层面可以分为四个端:TMS后台系统管理端、客户端App、快递员端App、司机端App。 TMS后台系统管理端:公司内部管理员用户使用,可以进行基础数据维护、订
基于 Python实现的校园快递管理系统
基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统基于 Python实现的校园快递管理系统
基于SpringBoot+Thymeleaf的校园快递管理系统
express-delivery 基于SpringBoot+Thymeleaf的校园快递管理系统 介绍 该校园快递管理系统致力于改变传统的快递管理方式,旨在提高驿站管理人员的工作效率和快递分发的速度。系统能够在不使用传统纸质记录的情况下,存储和管理庞大的数据量,同时为驿站管理者、快递员和用户提供了一个更加清晰和便捷的操作界面。系统界面的简洁设计使用户能够轻松上手,而功能模块的优化则进一步提升了用户体验。这确保了所有使用者都能在一个高效和用户友好的环境中进行操作。同时,系统的功能模块是根据用户的实际需求定制的,允许管理人员在线上便捷地添加、修改、查看和删除快递信息。在系统设计过程中,也应重视管理员的操作需求,以确保能够提升其工作效能 软件架构 校园快递管理系统主要使用者分为三种,一是驿站管理员,二是快递员,三是用户,其中管理员模块属于是控制模块,管理员有查看和管理所有用户的信息、快递订单,回收订单,并且可以冻结账号,处理用户反馈等功能;快递员模块有查看派送单信息,处理用户反馈等功能;用户模块有在线寄件,查看自己的快递,用户反馈等功能。
SSM(spring+springMVC+mybaits)物流快递管理系统
项目开发意义 提高效率:通过自动化处理订单和物流信息,快递管理系统能够大幅提高企业的工作效率 降低成本:系统能够优化物流路径、减少冗余环节,从而降低企业的物流成本 数据支持:通过数据分析功能,企业可以更好地了解自身的运营状况,为决策提供数据支持 促进信息化和智能化进程:物流快递管理系统的开发和应用有助于推动物流信息化和智能化的进程 项目开发意义 提高效率:通过自动化处理订单和物流信息,快递管理系统能够大幅提高企业的工作效率 降低成本:系统能够优化物流路径、减少冗余环节,从而降低企业的物流成本 数据支持:通过数据分析功能,企业可以更好地了解自身的运营状况,为决策提供数据支持 促进信息化和智能化进程:物流快递管理系统的开发和应用有助于推动物流信息化和智能化的进程 项目开发意义 提高效率:通过自动化处理订单和物流信息,快递管理系统能够大幅提高企业的工作效率 降低成本:系统能够优化物流路径、减少冗余环节,从而降低企业的物流成本 数据支持:通过数据分析功能,企业可以更好地了解自身的运营状况,为决策提供数据支持 促进信息化和智能化进程:物流快递管理系统的开发和应用有助于推动物流信息化和智能化的
华东师范大学软件工程学院,研究生课程《软件架构设计》课程作业,会议论文投稿系统
1过程需求介绍 论文投稿系统是一个为用户设计的用于投稿的系统,用户主要分为投稿人与审稿人,投稿人可以将自己的论文上传进行投稿,审稿人负责将投稿人所投的稿件进行审批,一篇论文会由多个审稿人进行审稿,以保证审稿的合理性。 2运行环境 2.1硬件条件 计算机: CPU:intel i7-8700K,内存32G,64位操作系统 2.2软件条件 操作系统: Windows 7/10 基本软件: 任一浏览器 3软件详细功能需求 (1)登陆注册功能:审稿人和投稿人分别利用各自的信息完成注册,登陆后会有不同的权限。 (2)个人信息功能:投稿人与审稿人可以编辑自己的个人信息,同时想要修改信息的时候也可以进行修改。 (3)投稿功能:投稿人可将自己想要投稿的论文上传,同时投稿人可以看到自己的上传的论文‘ (4)审稿功能:审稿人可对稿件进行审批,并对不同的论文给出不同的评价。
信息登记系统的设计与实现
信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设计与实现信息登记系统的设
基于SpringBoot-Web平台的学生综合素质测评系统
项目背景: 为解决华软每年综测评定的复杂操作,以及效率低的问题,冲鸭小组决定开发一个无纸化线上综测评定系统。 项目说明: 用户角色分为管理员、辅导员、测评小组、学生,系统主要对学生的综合测评进行管理。实现线上一体化的综测测评评定方式,提高效率。 image-20210525183546252 相关功能如下: 学生端 学生资料:学生资料是系统的灵魂所在,此模块用来对学生资料进行管理,主要功能是对综测信息的上传提交,以及对提交的材料进行查看和修正。 主要功能点: \1. 个人信息的编辑。 \2. 查看期末考试成绩信息(绩点)。 \3. 上传综测证明材料 \4. 查看综测审核记录 \5. 修改综测材料信息 \6. 查看班级综测排名 测评小组 综测小组是审核班级学生的第一关,测评小组的本身是学生账户,只不过在综测评定阶段,辅导员可以指定班级的某些同学位测评小组成员,该学生将拥有审核本班综测信息的权力。 主要功能点: \1. 审核班级综测信息 辅导员老师 辅导员分管多个班级,是审核班级综测表的第二关,对测评小组审核提交后的班级综测信息进行第二次的进一步审核,最后再把
基于ssm汽车租赁系统实现
系统名称 汽车租赁系统 carRental 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块。其中系统模块和业务模块底下又有其子模块。 功能模块 一、业务模块 1、客户管理 客户列表 客户分页和模糊查询 客户添加、修改、删除 导出客户数据 2、车辆管理 车辆列表 车辆车辆分页和模糊查询 车辆添加、修改、删除 3、业务管理 汽车出租 1、根据客户身份证查询所有未出租的车辆信息 2、进行出租 出租单管理 1、多条件的模糊查询和分页 2、出租单的修改、删除、导出 汽车入库 检查单管理 1、多条件模糊查询和分页 2、检查单修改 3、导出检查单 4、统计分析 客户男女比例图 月出租量统计 销售员业绩统计 出租车辆类型统计 二、系统模块 1、用户登陆 校验用户名和密码 登陆成功将登陆信息写入登陆日志 未登录进行拦截 2、菜单管理 全查询菜单和根据左边的树查询不同菜单 菜单的添加、修改、删除 3、角色管理 全查询角色和模糊查询 角色的添加、修改、删除 4、用户管理 全查询用户和模糊查询 用户的添加、修改、删除以及重置密码 5、数据源的监控(druid monitor)