perclos嘴巴_一种基于视频分析的疲劳状态检测方法及装置与流程

本发明涉及疲劳检测领域,特别是涉及一种基于视频分析的疲劳状态综合检测方法及装置。

背景技术:

疲劳状态检测技术在交通运输、生产安全、教育培训等许多领域应用广泛。目前,疲劳状态检测的方法一般可分为接触式和非接触式两大类。

其中,接触式疲劳状态检测包括脑电波检测等方法,即通过采集脑电图频率分布和波形数据,分析大脑活动状态,从而判断是否存在疲劳状况,此种方法通常需要引入复杂设备,成本较高,而且脑电图结果数据易受个体差异和外界干扰等因素的影响,因此实际应用效果存在限制。

非接触式疲劳状态检测则主要基于视频分析手段来进行,比如通过分析该人的头部姿势是否存在向下倾斜、眼睛闭合情况等;另外还可以结合具体应用场景考虑引入更多特定的检测手段,比如在开展驾驶员疲劳状态检测时,可通过结合对车辆行驶状态的监测来综合判定驾驶员的疲劳状况。

总体而言,当前的疲劳状态检测技术存在识别精度低、信号源单一、实用性能差等问题。另外,针对某些单一场景而专门设计的特定技术方法又存在通用性差的问题,不利于进一步推广,从而限制了自身的实际应用前景。

技术实现要素:

为了克服上述现有技术的不足,本发明在于提供一种相对通用的、非接触式疲劳状态综合检测方法,其基本功能流程如附图1所示。

其中,图像预处理模块负责实时接收外部网络摄像头端发送而来的视频图像数据,通过调用opencv库中的bilateralfilter接口对其进行双边滤波式实时预处理,并将处理结果发送给人脸及特征点检测模块。

人脸及特征点检测模块负责通过引入多任务级联卷积神经网络(mtcnn),利用3层级联架构配合卷积神经网络算法进行人脸检测和关键点定位。

眼睛和嘴巴区域提取模块通过眼部和嘴部周围特征点的位置信息来实现对眼部和嘴部区域的提取,从而实现对眼部和嘴部区域的定位。

眼睛和嘴巴状态识别模块负责基于“adaboost算法+haar-like特征”分别实现对眼睛和嘴巴状态识别的训练过程,以此实现对眼睛和嘴巴的特定状态的识别,例如闭合、张开等。

疲劳参数计算模块负责通过提取perclos、眨眼频率、打哈欠等3类参数,计算该人的疲劳程度。

疲劳状态判定模块负责基于上述计算得出的疲劳参数,以及各自预先设定的阈值,实现对疲劳状态的判定。

与现有技术相比,本发明的有益效果是:本发明提供的是一种基于视频分析的非接触式疲劳状态综合检测方法,相对于现有技术,检测效果更佳、适用性更广。

附图说明

附图1为该方法的具体功能流程图。

附图2为perclos参数计算示意图。

具体实施方式

下面结合附图对本发明进一步说明。

图像预处理模块负责实时接收外部网络摄像头端发送而来的视频图像数据,对其进行实时预处理并将处理结果发送给人脸及特征点检测模块。该模块主要用于改善图像质量,减少噪声干扰,从而提高检测效果。本发明中的图像预处理模块采用双边滤波方式,并通过调用opencv库中的bilateralfilter接口实现。

人脸及特征点检测模块通过引入多任务级联卷积神经网络(mtcnn),利用3层级联架构配合卷积神经网络算法进行人脸检测和关键点定位。本发明在该模块中引入widerface和celeba两大人脸库作为该模块的训练数据库,并将训练样本划分为4类标注数据:

1)正样本,随机选取的框与任何的实际人脸区域的重叠度(即intersection-over-union,iou)大于0.7;

2)负样本,iou<0.4;

3)部分人脸样本,0.4≤iou≤0.7;

4)地标人脸样本,标注五个特征点的人脸图。

其中正负样本用于人脸分类,正样本和部分人脸样本用于人脸边界框的回归,地标人脸样本用于人脸特征点定位。以上4类样本数量的比例设为1∶2∶1∶2,其中正样本、负样本和部分人脸样本从widerface人脸库随机裁剪图片获取,地标人脸样本从celeba人脸库中随机裁剪图片获取。

眼睛和嘴巴区域提取模块用于实现对眼部和嘴部区域的定位。由于人脸特征点包含眼部和嘴部在图像中的位置信息,因此,本发明通过眼部和嘴部周围特征点的位置信息来实现对眼部和嘴部区域的提取。提取规则如下:

we=2.1*xe

he=3.6*ye

wm=1.3*xm

hm=2.0*ym

其中,xe和ye分别为特征点检测中眼部的宽度和高度,we和he分别为提取眼部区域的宽度和高度,xm和ym分别为特征点检测中嘴部的宽度和高度,wm和hm分别为提取嘴部区域的宽度和高度。

眼睛和嘴巴状态识别模块用于识别眼睛和嘴巴的特定状态,例如闭合、张开等。本发明基于“adaboost算法+haar-like特征”分别实现对眼睛和嘴巴状态识别的训练过程。训练过程如下:

1)输入样本集,在给定的矩形特征原型下,计算获取特征集;

2)输入特征集,根据给定的弱学习算法,确定阈值,将特征与弱分类器对应获得弱分类器集;

3)输入弱分类器集,在训练检出率和误判率限制下,使用adaboost算法挑选最优弱分类器构成强分类器;

4)输入强分类器集,组合为级联分类器;

5)输入非人脸图片集,组合强分类器为临时级联分类器,筛选并补充非人脸样本。

其中的训练样本包括正样本和负样本两部分。以眼睛状态识别为例,由于该模块的目标是检测闭眼状态,因此,训练集中正样本为闭眼图片,负样本为睁眼图片以及其他图片。在样本制作方式上,考虑到目前公开的人眼及嘴巴数据库资源较少,本发明通过调用上述训练好的mtcnn模型基于公开的人脸库进行人脸检测,再结合眼睛及嘴巴区域提取模块对人眼和嘴巴进行截取实现样本的制作。

疲劳参数计算模块负责基于特定标准计算该人的疲劳程度。本发明中该模块主要通过提取perclos、眨眼频率、打哈欠等三类参数进行疲劳状态的计算:

1)闭眼时间:指一定时间内闭眼时间所占的百分比。本发明采用perclos方法。该方法通常有三种度量标准:p70、p80、em,本发明选择p80标准作为疲劳判断标准,即眼睛闭合面积超过80%的时间百分比,该值可通过如下公式计算得出:

如附图2所示,t3-t2是眼睛20%瞳孔闭合到20%瞳孔睁开程度所用的时间,t4-t1是眼睛80%瞳孔闭合到80%瞳孔睁开程度所用的时间。

由于时间和视频中图像序列是相对应的,所以可以利用帧的数量来计算perclos值:

2)眨眼频率:指单位时间内的眨眼次数,计算公式如下所示:

其中,n为当前检测时间内所有的眨眼次数,t帧为处理每帧的时间,n为当前统计时间内的总帧数。正常情况下,成年人清醒状态下的眨眼频率在12~15次/分钟。若该人在一段时间内的眨眼频率过低(例如,低于7次/分钟),则可判定该人进入疲劳状态。

3)嘴巴张开(打哈欠):统计一段时间内嘴巴持续张开的时间,打哈欠参数的计算如下:

fmouth=n/n

其中,n为统计时间内嘴巴张开状态的总帧数,n为统计时间内的总帧数。当该人打哈欠时,fmouth达到最大值。正常状态下,人的嘴巴基本处于闭合状态,而当处于疲劳状态时往往伴随频繁的打哈欠行为。当该人频繁地与他人讲话时,嘴巴的状态为普通张开,当打哈欠时,其嘴巴处于张大状态。一般情况下,打哈欠是一个比较长的过程,并且嘴巴张开的幅度较大。因此,当嘴巴张开且持续一定的时间,则可判定为打哈欠状态。

疲劳状态判定模块负责基于上述计算得出的疲劳参数,以及各自预先设定的阈值,实现对疲劳状态的判定,判定过程如附图2所示。当perclos值大于预先设定的阈值tp时,判定此人为疲劳状态;否则将对眨眼频率进行判断,当眨眼频率小于预先设定的te时,判断为疲劳状态;否则将对此人的嘴巴张开状态进行判断,当嘴巴张开参数大于预先设定的tm时,则判断此人存在打哈欠现象,判定此人为疲劳状态。

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

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

相关文章

Mybatis-Plus条件

Mybatis-Plus条件 条件构造器 说明: 以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中没有标明condition的方法,默认为true以下出现的泛型Param均为Wrapper的子类实例(均具有AbstractWrapper的所有方法)以下方法在入参中出现的R为泛型,在普通wrapper中…

Mysql - Innodb锁、事务与隔离级别

我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库…

东南西北十字图_word画东南西北方向图标 怎么在Word里绘制方向十字图标

如果你使用的是2007版的话,可以在插入选项中找到插入图形选项,里面有一个箭头总汇,选择你所需要的就行了!如果是2003版的话,也可以在插入选项中找到图形,里面也有这一项!怎么样在word07文档里键…

语言非递归求解树的高度_算法素颜(11):无死角“盘”它!二分查找树

引言《菜鸟也能“种”好二叉树!》一文中提到了:为了方便查找,需要进行分层分类整理。而满足这种目标的数据结构之一就是树。树的叶子节点可以看作是最终要搜寻的目标物;叶子节点以上的每一层,都可以看作是一个大类别、…

Mysql InnoDB存储引擎的锁相关

Mysql InnoDB存储引擎的锁相关 InnoDB下,mysql四个级别隔离下加锁操作 四个级别隔离的写操作都加X锁串行化下读加S锁select … for update, select … lock in share mode 分别加x锁,s锁在需要加锁的场景下,会根据情况使用三种加锁策略&…

安装python37路径报错_Robot framework安装python3.7导入HttpLibrary.HTTP报错

报错信息:20200106 18:23:28.178 [WARN]: Importing test library "HttpLibrary.HTTP" failedTraceback (most recent call last):Importing test library HttpLibrary.HTTP failed: SyntaxError: invalid syntax (__init__.py, line 16)Traceback (most …

MySQLl的可串行化_mysql事务串行化的锁机制是怎样的?

1、mysql的可串行化 首先:可串行化serializable 这是事务的最高级别,在每条读的数据上,加上锁,使之不可能相互冲突,因此,会导致大量的超时现象。 解释如下: 以A,B用户为例&#…

显示器尺寸对照表_电脑显示器尺寸对照表一览,教你怎么选择最适合自己的显示器尺寸...

显示小课堂:显示器买大买小谁说了算? [本文来自:www.ii77.com]今天,笔者想和大家讨论一下关于显示器尺寸选择方面的问题。通过这两年显示器行业的发展我们不难看出,现在显示器的尺寸越来越大,三十几吋、四十…

MySQL事务隔离级别理解_解读MYSQL的可重复读、幻读及实现原理

前言 提到事务,你肯定不会陌生,最经典的例子就是转账,甲转账给乙100块,当乙的账户中到账100块的时候,甲的账户就应该减去100块,事务可以有效的做到这一点。 在MySQL中,事务支持实在引擎层实现的…

react 子传参父_React 子组件向父组件传值的方法

本文介绍了React 子组件向父组件传值的方法,分享给大家子组件需要控制自己的 state, 然后告诉父组件自己的state,通过props调用父组件中用来控制state的函数,在父组件中展示子组件的state变化。/***实现在输入框输入邮箱时&#x…

MySQ事务

事务 事务是访问数据库的一个操作序列,事务的正确执行使得数据库从一种状态转换为另一种状态。事务必须服从ACID原则。原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。 原子性:不可分割,事务要么全部被执…

boost互斥锁_boost锁使用总结

boost锁的概述:boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。举个通俗的例子,如果共享资源是一个自动锁住的房间,互斥体是钥匙,进入房间必须取钥匙,离开房间应该还钥匙。这就对应…

MySQL 是如何实现四大隔离级别的?

MySQL 是如何实现四大隔离级别的? 在mvcc下,mysql中用到的锁还是共享锁和排他锁么?如果是的话,那么是怎样结合锁和mvcc来实现rc和rr隔离级别的呢?还有mysql中在ru隔离级别下,两个事务同时读取数据对象A&am…

无符号右移负数_关于负数的右移与无符号右移运算小结

对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变:对于负数的右移:因为负数在内存中是以补码形式存在的,所有首先根据负…

Linux命令 移动/复制文件/目录到指定目录下

1、同一个服务器下复制文件或文件夹 1.1 复制文件 复制文件:把1.txt 复制到根目录下的sbin目录 cp 文件名(可带路径)目标路径(带路径)如:cp 1.txt ~/sbin/1,2 复制目录 复制目录:把relea…

springboot2稳定版本_重要版本Spring Boot 2.3.0发布 - spring.io

重要版本Spring Boot 2.3.0于2020年5月15日发布,此版本增加了大量新功能和改进。有关完整的升级说明以及新的和值得注意的功能,请参阅发行说明。2.3的新功能依赖升级Spring Boot 2.3移至几个Spring项目的新版本:Spring Data NeumannSpring HA…

正则表达式——手机号

手机表达式: /^13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/ 可以校验 11为手机号,包含了大部分号段 座机表达式: /^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})(-[0-9]{1,4}){0,1}$/可以校验 区号-电话-分机 上面两条…

Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException

异常信息: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name BusinessAccountController for bean class [com.hs.BusinessAccountController] conflicts with existing, non-compatible bean definit…

c mysql web开发实例教程_Web开发(六)MySql

数据库简介数据库(DB)数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种…

Git——工作中使用命令详解

1、Linux常用命令 cd:改变目录cd…:返回上级目录pwd:显示当前目录clear:清屏ls:显示当前目录所有文件touch:添加文件rm:删除文件mkdir:新建文件夹rm -r:删除文件夹mv&am…