基于mediapipe深度学习的眨眼检测和计数系统python源码

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

(完整程序运行后无水印)

2.算法运行软件版本

人工智能算法python程序运行环境安装步骤整理_本地ai 运行 python-CSDN博客

3.部分核心程序

(完整版代码包含详细中文注释和操作步骤视频)

...................................................................................while True:frame_counter +=1 # 帧计数器ret, frame = camera.read() # 从相机获取帧if not ret: break # 没有更多帧则退出frame = cv.resize(frame, None, fx=1.5, fy=1.5, interpolation=cv.INTER_CUBIC)frame_height, frame_width= frame.shape[:2]rgb_frame = cv.cvtColor(frame, cv.COLOR_RGB2BGR)results  = face_mesh.process(rgb_frame)if results.multi_face_landmarks:mesh_coords = landmarksDetection(frame, results, False)ratio = blinkRatio(frame, mesh_coords, RIGHT_EYE, LEFT_EYE)if ratio >2.85:CEF_COUNTER +=1else:if CEF_COUNTER>CLOSED_EYES_FRAME:TOTAL_BLINKS +=1CEF_COUNTER =0colorBackgroundText(frame,  f'Total blink times: {TOTAL_BLINKS}', FONTS, 0.85, (10,50),2)
0Y_006

4.算法理论概述

       MediaPipe是一个跨平台的机器学习框架,用于处理和分析视频流中的图像数据。它提供了一系列的预训练模型和工具,能够检测和跟踪人体的各种特征,包括面部特征点。

       眨眼检测原理:眼睛的状态变化(睁开或闭合)会导致眼睛周围的面部特征点的位置和几何关系发生变化。通过 MediaPipe 检测出眼睛区域的关键特征点,分析这些特征点的坐标信息及其动态变化,来判断眼睛是否处于眨眼状态。例如,计算眼睛纵横比(Eye Aspect Ratio,EAR),当 EAR低于某个阈值且持续一定时间,就认为发生了一次眨眼。

       MediaPipe提供了多种用于面部特征点检测的模型,如轻量级的解决方案和高精度的模型。根据实际应用场景和计算资源的限制,选择合适的模型。例如,对于实时性要求较高的移动设备应用,可以选择轻量级模型;对于对精度要求较高的桌面应用,可以选择高精度模型。

       在MediaPipe面部特征点检测模型的基础上,构建眨眼检测模型。该模型主要基于眼睛特征点的坐标信息来判断眨眼行为。通常会计算一些与眼睛状态相关的特征参数,如眼睛纵横比(EAR)。设眼睛的六个特征点坐标为(x1​,y1​),(x2​,y2​),⋯,(x6​,y6​),则 EAR 的计算公式为:

       一般来说,当眼睛睁开时,EAR值较大;当眼睛闭合时,EAR值较小。通过大量的实验数据,可以确定一个合适的阈值T,当EAR<T时,认为眼睛处于闭合状态。

       将训练好的模型应用于实时视频流或图像序列中。对于每一帧图像,首先通过 MediaPipe 的面部特征点检测模型获取眼睛区域的特征点坐标,然后根据 EAR 公式计算眼睛纵横比。将计算得到的 EAR 值与阈值T进行比较,如果EAR<T,则认为眼睛处于闭合状态;如果EAR≥T,则认为眼睛处于睁开状态。

     眨眼计数:为了实现眨眼计数功能,需要设置一个状态变量来记录眼睛的状态(睁开或闭合)。当眼睛从睁开状态变为闭合状态时,开始计时;当眼睛从闭合状态变为睁开状态时,停止计时。如果闭合时间在一定范围内(例如,0.1秒到0.5秒之间),则认为发生了一次眨眼,眨眼计数加1。通过这种方式,可以对视频流中的眨眼行为进行实时检测和计数。

       基于MediaPipe深度学习的眨眼检测和计数系统通过利用MediaPipe强大的面部特征点检测能力,结合深度学习算法对眼睛特征点的分析,实现了对眨眼行为的准确检测和计数。通过不断的优化和改进,可以使其在各种实际应用场景中发挥重要作用。

5.算法完整程序工程

OOOOO

OOO

O

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/48941.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(二)毛子整洁架构(CQRS/Dapper/DomianEvent Handler)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 GetBooking Query1. 创…

数据结构与算法:图论——最短路径

最短路径 先给出一些leetcode算法题&#xff0c;以后遇见了相关题目再往上增加 最短路径的4个常用算法是Floyd、Bellman-Ford、SPFA、Dijkstra。不同应用场景下&#xff0c;应有选择地使用它们&#xff1a; 图的规模小&#xff0c;用Floyd。若边的权值有负数&#xff0c;需要…

uniapp-商城-43-shop 后台管理 页面

后台管理较为简单&#xff0c;主要用于后台数据的管理&#xff0c;包含商品类别和商品信息&#xff0c;其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码&#xff1a; <template><view class"manage">…

LeetCode 1. 两数之和(Java)

LeetCode 1. 两数之和&#xff08;暴力 vs 哈希表&#xff09; 题目描述 给定一个整数数组 nums 和一个整数 target&#xff0c;要求找出数组中和为目标值的两个数&#xff0c;并返回它们的下标。假设每个输入只有一种答案&#xff0c;且同一元素不能重复使用。 示例&#xf…

《软件项目管理》笔记一

软件项目管理概述 项目管理属于软件工程的组成之一&#xff0c;另外两部分为&#xff1a;软件开发&#xff0c;过程改进。 参考书如下&#xff1a; 1.1 项目与软件项目 1、项目&#xff1a; 为了创造一个唯一的产品或提供一个唯一的服务而进行 的临时性的努力。 2、项目的…

深度学习:智能车牌识别系统(python)

这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…

Redis 持久化机制全面解析:RDB 与 AOF 的原理与实践

目录 前言1. Redis 持久化的总体思路2. RDB&#xff1a;快照机制详解2.1 RDB 的工作原理2.2 RDB 的优势2.3 RDB 的局限性 3. AOF&#xff1a;追加日志机制详解3.1 AOF 的工作原理3.2 AOF 的优势3.3 AOF 的缺陷 4. RDB 与 AOF 的对比分析4.1 数据丢失风险4.2 文件大小与恢复速度…

混淆矩阵(Confusion Matrix)

混淆矩阵&#xff08;Confusion Matrix&#xff09;是一个用于评估分类模型性能的工具&#xff0c;特别是在机器学习和统计学领域。它展示了模型预测结果与实际结果之间的关系。混淆矩阵通常用于二分类或多分类问题中&#xff0c;但也可以扩展到更多类别的情况。 一、混淆矩阵…

TB6600HG是一款PWM(脉宽调制)斩波型单芯片双极性正弦波微步进电机驱动集成电路。

该驱动器支持电机的正向和反向旋转控制&#xff0c;并具有多种激励模式&#xff0c;包括2相、1-2相、W1-2相、2W1-2相和4W1-2相。 使用这款驱动器&#xff0c;只需时钟信号即可驱动2相双极性步进电机&#xff0c;且振动小、效率高。 主要特点&#xff1a; 单芯片双极性正弦波…

【论文阅读】Towards Stable Backdoor Purification through Feature Shift Tuning

NeurIPS 2023 & 2024 Spotlight https://github.com/AISafety-HKUST/Backdoor_Safety_Tuning 我们的贡献包括&#xff1a; 我们对各种调整策略进行了广泛的评估&#xff0c;发现普通的微调&#xff08;FT&#xff09;和简单的线性探测&#xff08;LP&#xff09;在高投毒率…

创龙全志T536全国产(4核A55 ARM+RISC-V+NPU 17路UART)工业开发板硬件说明书

前 言 本文档主要介绍TLT536-EVM评估板硬件接口资源以及设计注意事项等内容。 T536MX-CXX/T536MX-CEN2处理器的IO电平标准一般为1.8V、3.3V,上拉电源一般不超过3.3V或1.8V,当外接信号电平与IO电平不匹配时,中间需增加电平转换芯片或信号隔离芯片。按键或接口需考虑ESD设计…

Jenkins忘记admin密码后的恢复步骤

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 时间较长没有使用…

React 组件prop添加类型

给函数的props做注解 import { useState } from reacttype Props { className:string,title?:string } // 自定义一个Button组件 function Button(props:Props){// 解构出classname\const {className} propsreturn <button className{className}>点击我</button&g…

如何使用docker配置ros-noetic环境并使用rviz,gazebo

参考链接&#xff1a;【Ubuntu】Docker中配置ROS并可视化Rviz及Gazebo_docker ros-CSDN博客 前言&#xff1a; 其实这个东西是相当必要的&#xff0c;因为我们有时候需要在一台电脑上跑好几个项目&#xff0c;每个项目都有不同的依赖&#xff0c;这些依赖冲突搞得人头皮发麻&…

(已完结)完美解决C盘拓展卷是灰色的无法扩容的问题以及如何正确地在WINDOS上从一个盘扩容到C盘

众所周知&#xff0c;window系统在“计算机”管理中自带了一个磁盘管理系统 但是在使用过程中会出现各种各样无法扩容的毛病。 第一&#xff1a;首先排查&#xff0c;大多数人在扩容之前忽视了一点就是&#xff0c;我们现代的很多新机器都是默认开启BitLocker加密的&#xff…

阿里云服务器-centos部署定时同步数据库数据-dbswitch

前言&#xff1a; 本文章介绍通过dbswitch工具实现2个mysql数据库之间实现自动同步数据。 应用场景&#xff1a;公司要求实现正式环境数据库数据自动冷备 dbswitch依赖环境&#xff1a;git ,maven,jdk 方式一&#xff1a; 不需要在服务器中安装git和maven&#xff0c;直接用…

leetcode 141. Linked List Cycle

题目描述&#xff1a; 代码&#xff1a; 用哈希表也可以解决&#xff0c;但真正考察的是用快慢指针法。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Soluti…

微软输入法常用快捷键介绍以及调教技巧

微软输入法&#xff08;Microsoft Pinyin Input Method&#xff09;是 Windows 系统内置的中文输入工具&#xff0c;以其高效、智能化的特点广受用户喜爱。掌握其常用快捷键和特殊模式可以显著提升输入效率。本文将介绍微软输入法在 Windows 10/11 环境下的常用快捷键及 U 模式…

Paddle Serving|部署一个自己的OCR识别服务器

前言 之前使用C部署了自己的OCR识别服务器&#xff0c;Socket网络传输部分是自己写的&#xff0c;回过头来一看&#xff0c;自己犯傻了&#xff0c;PaddleOCR本来就有自己的OCR服务器项目&#xff0c;叫PaddleServing&#xff0c;这里记录一下部署过程。 1 下载依赖环境 1.1 …

AI与情感计算:如何让机器更好地理解人类情感与情绪?

引言&#xff1a;当AI遇上人类情感 当我们说起人工智能&#xff0c;脑海里第一时间想到的&#xff0c;可能是聪明的语音助手、精准的推荐系统&#xff0c;或者无所不能的机器人。但如果有一天&#xff0c;这些机器不再只是“执行指令”&#xff0c;而是能看出你今天心情不好&am…
推荐文章