首页> 中国专利> 基于人脸识别、关键点检测的疲劳度检测装置及其检测方法

基于人脸识别、关键点检测的疲劳度检测装置及其检测方法

摘要

本发明公开了基于人脸识别、关键点检测的疲劳度检测装置,包括人脸信号处理模块、人脸状态采集模块、感光模块、GPS模块、语音报警模块和电源管理模块,所述人脸信号处理模块分别与人脸状态采集模块、感光模块、GPS模块、语音模块有线连接通信,同时由电源管理模块供电;疲劳度检测方法包括人脸注册阶段、疲劳度检测阶段、补光调节阶段、更新阶段,通过智能调节补光亮度,解决疲劳驾驶检测中个体存在差异、结果受光照条件的影响等问题,并提供了一种基于手机APP更新和操作的方法,减少设备维护的成本。

著录项

  • 公开/公告号CN112668393A

    专利类型发明专利

  • 公开/公告日2021-04-16

    原文格式PDF

  • 申请/专利权人 海纳致远数字科技(上海)有限公司;

    申请/专利号CN202011369802.1

  • 申请日2020-11-30

  • 分类号G06K9/00(20060101);G06K9/20(20060101);

  • 代理机构31280 上海申浩律师事务所;

  • 代理人龚敏

  • 地址 200030 上海市徐汇区桂林路656号5层5205室

  • 入库时间 2023-06-19 10:38:35

说明书

技术领域

本发明是属于计算机视觉领域,具体涉及基于人脸识别、关键点检测的疲劳度检测装置及其检测方法。

背景技术

市面上疲劳度检测的方法比较多,比较典型的有下面三种:

一、利用生理传感器检测驾驶员的生理状态,如脑电、心率、呼吸等。该方法准确度最高,但成本高,且驾驶员多会排斥佩戴生理传感器。

二、利用车载传感器检测车的状态,如油门、刹车、方向盘转向等,从而进一步推测驾驶员的状态。该方法成本低,但缺乏实时性和准确性,往往是事故将要发生,才能告警,导致驾驶员的反应不及。

三、利用计算机视觉检测驾驶员的面部状态,如眼睛、嘴巴等,其中利用PERCLOS算法检测出驾驶员的疲劳状态,也是大部分疲劳检测专利所用的方法。

A、专利号CN105354985介绍了一种利用计算机视觉检测疲劳度的算法,具体的,使用Haar-Like特征计算出瞳孔大小,结合PERCLOS算法,检测驾驶员疲劳状态。

B、专利号CN105096528介绍了一种通用性的疲劳度检测方法,从驾驶员肢体和表情状态、驾驶时长、车辆状态、路况信息等因素综合检测疲劳度。

上述专利在解决技术问题主要存在以下几点问题:

1.专利一虽然采用PERCLOS算法检测,但其中需要用到的几个重要指标,个体存在差异,比如眼睛完全睁开时的大小、眼睛睁开到80%的时间等。如果只用PERCLOS算法检测,容易产生误检、检测不准的情况。

2.专利二采用驾驶员的状态随时间改变来判断疲劳度,且会4小时更新一次基准人脸,该方法不受驾驶员个体差异的影响,但无法确保驾驶员刚开始驾驶既为疲劳状态的情况,而且设备安装较为麻烦,需安装多种传感器。

3.考虑到行驶过程中,光照条件比较复杂,图片容易出现过暗或者过亮,会使人脸关键点算法表现不佳,从而导致结果不准确。

4.车载设备程序的设置和更新,多数需要专业开发或者维护人员操作,操作成本较高。

发明内容

本发明提供一种基于人脸识别、关键点检测的疲劳度检测装置及其检测方法,并通过智能调节补光亮度,解决疲劳驾驶检测中个体存在差异、结果受光照条件的影响等问题,并提供了一种基于手机APP更新和操作的方法,减少设备维护的成本。

本发明的技术方案是:基于人脸识别、关键点检测的疲劳度检测装置,包括人脸信号处理模块、人脸状态采集模块、感光模块、GPS模块、语音报警模块和电源管理模块,所述人脸信号处理模块分别与人脸状态采集模块、感光模块、GPS模块、语音模块有线连接通信,同时由电源管理模块供电。

进一步的,还包括APP模块,所述APP模块通过BLE与WIFI协议与人脸信号处理模块无线连接通信。

进一步的,所述人脸信号处理模块采用ESP32系列芯片作为处理器,所述ESP32系列芯片与人脸状态采集模块、语音模块、GSP模块通过UART连接,与感光模块通过I2C连接;

具体如下:将IO19设为TXD1接口,IO18设为RXD1接口与人脸状态采集模块连接,双向通信;将IO32设为RXD2接口与GPS模块连接,单向接收GPS数据;将IO33设为TXD2接口与语音模块连接,单向发送指令;将IO20设为CLK接口,IO21设为SD0接口,与感光模块连接,双向通信。

进一步的,所述ESP32支持两种无线连接方式:BLE和WIFI;且支持OTA功能。

本发明还提供基于人脸识别、关键点检测的疲劳度检测方法,包括人脸注册阶段和疲劳度检测阶段;

所述人脸注册阶段:先提取驾驶员的人脸特征,再与人脸库进行人脸对比,如果未找到人脸特征,语音提示保持正常驾驶姿势,并启用关键点检测,记录正常状态下驾驶员的人脸信息,所述人脸信息包括人脸特征值、眼睛完全睁开时的大小E

所述疲劳度检测阶段:先得到人脸特征中的关键点,计算当前瞳孔大小E

进一步的,所述人脸注册阶段具体步骤如下:

步骤1001、判断是否首次检测到人脸:设备通电后,初始化标志A为False.在人脸状态采集模块检测到人脸时,取检测到的最大人脸,如果人脸角度在正常范围内且A的值为False且人脸区域的清晰度大于第三阈值,则进入步骤1002中特征匹配人脸库并将A的值置为True;否则重新检测人脸;其中人脸角度在正常范围内(|roll|<60、|pitch|<18、|yaw|<18),其中:roll为人脸左右倾斜角,pitch为人脸上下俯仰角,yaw为人脸左右扭头角。

步骤1002、特征匹配人脸库:人脸状态采集模块根据步骤1001中检测到的人脸图片进行提取人脸特征,再将检测到的人脸特征与人脸库中的特征进行遍历比较;取比较结果最大的分数,如果该分数大于第四阈值,则进入步骤1003调用人脸库中的眼睛大小;否则进入步骤1004判断车速;所述第四阈值为80。

步骤1003、调用人脸库中的眼睛大小:根据步骤1002中匹配人脸库的结果ID,读取ID在人脸库中对应的眼睛大小字段,并进入步骤1007人脸追踪;

步骤1004、判断车速:读取GPS模块的速度参数,如果速度小于第五阈值,则进入步骤1005采集信息,否则进入步骤1006读取系统预留的眼睛大小;所述GPS模块中,在检测到车的时速小于第五阈值时,关闭检测;所述第五阈值为20km/h。

步骤1005、采集信息:语音报警模块提示用户,正在采样,保持正常驾驶姿势;人脸状态采集模块采集多帧用户的眼睛相对大小;并取出现次数最多的眼睛大小数值,与人脸特征一起存入人脸库中;并进入步骤1007人脸追踪;

步骤1006、读取系统预留的眼睛大小:读取人脸信号处理模块中默认的眼睛大小参数,进入步骤1007人脸追踪;

步骤1007、人脸追踪:判断当前帧人脸矩形框和上一帧人脸矩形框的交并比,计算公式为:

IOU=(C∩D)/(C∪D)

C为当前帧矩形框,D为上一帧矩形框;

当交并比大于第六阈值时,进入疲劳度检测阶段,否则进入步骤1001重新检测人脸并将标志A的值置为False。

进一步的,所述疲劳度检测阶段具体步骤如下:

步骤2001、疲劳度检测初始化:根据人脸注册阶段,获取用户正常眼睛大小E0;记录当前时间戳T0、T1;连续闭眼时间TE为0;连续闭眼状态V0为False;闭眼时间TC为0;睁眼时间TP为0;进入步骤2002检测眼睛大小;

步骤2002、检测眼睛大小:人脸状态采集模块先进行关键点检测,计算当前帧的眼睛大小E1,再记录当前时间戳为T2,最后进入步骤2003判断是否闭眼;

步骤2003、判断是否闭眼:当前帧眼睛大小E1除以用户正常眼睛大小E0,如果比值小于第一阈值,进入步骤2004更新闭眼状态,否则进入步骤2005更新睁眼状态;所述第一阈值为0.2。

步骤2004、更新闭眼状态:闭眼时间TC、连续闭眼时间TE的值加上时间戳T2与T1的差;进入步骤2006判断是否连续闭眼;

步骤2005、更新睁眼状态:睁眼状态TP的值加时间戳T2与T1的差,连续闭眼时间TE的值重置为0,接着进入步骤2007判断检测是否持续了一分钟;

步骤2006、判断是否连续闭眼:判断连续闭眼时间TE的值,当TE大于第六阈值时,将连续闭眼状态V0的值置为True;否则不处理;最后进入步骤2007判断检测是否持续了一分钟;第六阈值为3秒。

步骤2007、判断检测是否持续了一分钟:先将T2的值赋予T1,再判断T2减T0的值是否大于60秒,如果大于则进入步骤2008判断疲劳度,否则进入步骤2002继续检测眼睛大小;

步骤2008、判断疲劳度:先计算PERCLOS的值,疲劳值PERCLOS的计算公式为:PERCLOS=TC/(TC+TP);如果PERCLOS的值大于第二阈值且连续闭眼状态V0的值为True,则说明用户处于疲劳状态,进行语音告警,否则进入步骤2001重新初始化疲劳度检测。第二阈值为0.4。

进一步的,还包括补光调节阶段,所述补光调节阶段:当光敏电阻每次检测到光强时,会与基准光强做对比,如果光强过低则记为弱光状态,反之则记为强光状态;再与系统记录的光照状态做对比,如果连续第七阈值时间内都检测到不同,则系统记录当前光强状态,并根据光强状态调整摄像头和补光灯。第七阈值时间为5秒。

进一步的,所述补光调节阶段具体步骤如下:

步骤3001、初始化:读取系统预留的光强状态为L

步骤3002、检测当前光强状态:感光模块检测当前光强,进入步骤3003判断当前光强状态;

步骤3003、判断光强状态:判断检测出的光强是否大于第八阈值,如果大于当前光强状态L1为强光状态,否则L1为弱光状态;进入步骤3004判断环境光是否改变;第八阈值为50lx。

步骤3004、判断环境光是否改变:判断L

步骤3005、判断是否连续多次检测:判断连续改变标识I的值是否大于第九阈值,如果大于则说明环境光发生改变,进入步骤3006切换摄像头模式;否则继续进入步骤3002检测当前光强;第九阈值为5。

步骤3006、切换摄像头模式:当检测到强光状态时,将人脸状态采集模块中的摄像头切换为RGB模式,并关闭补光灯;当检测到弱光状态时,将摄像头切换为IR模式,并调整补光灯强度为15~35;并记录当前光强状态,进入步骤3001初始化。

进一步的,还包括更新阶段,所述更新阶段:当用户在APP端发送更新指令时,设备会由BLE协议收到指令,并切换至WIFI连接,如果APP端版本号大于设备端版本号(例如APP端版本号为1.1.0,设备端版本号为1.0.0,则说明APP端版本号大于设备端版本号,需要更新),则建立连接,接受校验更新包;反之则直接退出更新;最后切换回BLE连接。

本发明的优点在于:1、通过人脸识别的方式,使得疲劳度检测不受驾驶员个体差异的影响;2、当检测到强光状态时,将人脸状态采集模块中的摄像头切换为RGB模式,并关闭补光灯;当检测到弱光状态时,将摄像头切换为IR模式,并调整补光灯强度为20;通过智能的控制补光灯,适用于光照复杂的路面;3、提出了一种移动端与嵌入式端基于BLE和WIFI的通讯与更新方式,减少操作成本与设备功耗。

附图说明

图1为本发明实例提供的疲劳度检测系统模块示意图;

图2(a)为本发明实例提供的电源模块原理图;

图2(b)为本发明实例提供的人脸信号处理模块原理图;

图2(c)为本发明实例提供的人脸状态采集模块原理图;

图2(d)为本发明实例提供的感光模块原理图;

图2(e)为本发明实例提供的语音报警模块原理图;

图2(f)为本发明实例提供的GPS模块原理图;

图3为本发明实例提供的人脸注册阶段流程图;

图4为本发明实例提供的疲劳度检测阶段流程图;

图5为本发明实例提供的补光调节阶段流程图;

图6为本发明实例提供的更新阶段流程图。

具体实施方式

下面结合图1至图6给出本发明较佳实施例,以详细说明本发明软硬结合的技术方案。

如图1所示,疲劳度检测包含以下六个硬件模块:

1 人脸信号处理模块

2 人脸状态采集模块

3 感光模块

4 GPS模块

5 语音模块

6 电源管理模块

人脸信号处理模块分别与人脸状态采集模块、感光模块、GPS模块、语音模块有线连接通信,同时由电源管理模块供电。APP通过BLE与WIFI协议与人脸信号处理模块无线连接通信。

如图2所示,各模块所使用的具体硬件型号与连接方式:

人脸信号处理模块1,使用乐鑫公司ESP32系列芯片作为处理器。由于ESP32可以设置引脚的具体接口功能,比如:UART、I2C、SPI等。在本案例中,与人脸状态采集模块、语音模块、GSP模块通过UART连接,与感光模块通过I2C连接;具体的,将IO19设为TXD1接口,IO18设为RXD1接口与人脸状态采集模块连接,双向通信;将IO32设为RXD2接口与GPS模块连接,单向接收GPS数据;将IO33设为TXD2接口与语音模块连接,单向发送指令;将IO20设为CLK接口,IO21设为SD0接口,与感光模块连接,双向通信。

同时,ESP32支持两种无线连接方式:BLE和WIFI。WIFI传输速度快,但功耗大,如果不加散热元件,长时间连接,容易引起设备发烫。BLE则不会,但传输速度较慢;在本案例中,设备与手机通过BLE长期连接,且实现读取、修改配置的功能。如果用户需要更新设备,会自动切换至WIFI方式连接,待更新完成后,切换回BLE连接。

最后,ESP32支持OTA功能。在本案例中,实现设备更新的步骤如下:1.手机接收到服务端最新的更新包,并向ESP32发送更新指令;2.ESP32连接手机WIFI,建立TCP/IP连接;3.读取手机端版本号V

人脸状态采集模块2,采用腾讯优图VisionSeed模组。该模组支持人脸检测、人脸关键点检测、人脸特征提取、人脸对比、人脸追踪等功能,并支持双目摄像头模式,在光照正常时使用RGB摄像头,在光照过暗时使用IR摄像头;

感光模块3,采用BH1750FVI,检测光照强度并反馈给人脸信号处理模块,控制人脸状态采集模块的摄像头模式。

GPS模块4,采用ATGM332D-5N-31,在检测到车的时速小于S km/h时,关闭检测,S的值用户可在APP中自定义,默认为20。

语音报警模块5,采用WT2003M02芯片,可编程的MP3模块,通过ESP32控制,完成注册提醒、语音告警的功能。

电源模块6,采用AMS1117稳压器,给人脸状态采集模块、GPS模块提供5V电压,给人脸信号处理模块、语音报警模块提供3.3V电压;同时使用一个BAT760-7二极管做稳压电路、三个LESD5D5.0CT1G做保护电路。

如图3所示,实现人脸注册阶段程序100,包括步骤:

判断是否首次检测到人脸(步骤1001):设备通电后,初始化标志A为False.在人脸状态采集模块2检测到人脸时,取检测到的最大人脸,如果人脸角度在正常范围内(|roll|<60、|pitch|<18、|yaw|<18)且A的值为False且人脸区域的清晰度大于3.5(此处使用sobel算子计算图片的清晰度为本领域公开方法,不再赘述),则进行特征匹配人脸库(步骤1002)并将A的值置为True。否则重新检测人脸。其中:roll为人脸左右倾斜角,pitch为人脸上下俯仰角,yaw为人脸左右扭头角。

特征匹配人脸库(步骤1002):人脸状态采集模块2根据步骤1001中检测到的人脸图片进行提取人脸特征,再将检测到的人脸特征与人脸库中的特征进行遍历比较。取比较结果最大的分数,如果该分数大于80,则调用人脸库中的眼睛大小(步骤1003)。否则判断车速(步骤1004)。

调用人脸库中的眼睛大小(步骤1003):根据匹配人脸库(步骤1002)的结果ID,读取ID在人脸库中对应的眼睛大小字段。并进入人脸追踪(步骤1007)。

判断车速(步骤1004):读取GPS模块4的速度参数,如果速度小于20km/h,则采集信息(步骤1005),否则读取系统预留的眼睛大小(步骤1006)。

采集信息(步骤1005):语音报警模块5提示用户,正在采样,保持正常驾驶姿势。人脸状态采集模块2采集100帧用户的眼睛相对大小。

眼睛大小L的计算公式为:

L1=点2到点6的距离;点2为眼睛最下端点,点6为眼睛最上端点;

L2=点0到点4的距离;点0为眼睛最左端点,点4为眼睛最右端点;

L=(L1)/(L2+0.01)

并取出现次数最多的眼睛大小数值,与人脸特征一起存入人脸库中。并进入人脸追踪(步骤1007)。

读取系统预留的眼睛大小(步骤1006):读取人脸信号处理模块1中默认的眼睛大小参数。进入人脸追踪(步骤1007)。

人脸追踪(步骤1007):判断当前帧人脸矩形框和上一帧人脸矩形框的交并比,计算公式为:

IOU=(C∩D)/(C∪D)

C为当前帧矩形框,D为上一帧矩形框。

当交并比大于0.8时,进入疲劳度检测阶段(图4),否则重新检测人脸(步骤1001)并将标志A的值置为False。

如图4所示,实现疲劳度检测阶段程序200,包括步骤:

疲劳度检测初始化(步骤2001):根据人脸注册阶段,获取用户正常眼睛大小E0;记录当前时间戳T0、T1;连续闭眼时间TE为0;连续闭眼状态V0为False;闭眼时间TC为0;睁眼时间TP为0;进入检测眼睛大小(步骤2002)。

检测眼睛大小(步骤2002):人脸状态采集模块2先进行关键点检测,计算当前帧的眼睛大小E1,再记录当前时间戳为T2,最后判断是否闭眼(步骤2003)。

判断是否闭眼(步骤2003):当前帧眼睛大小E1除以用户正常眼睛大小E0,如果比值小于0.2,更新闭眼状态(步骤2004),否则更新睁眼状态(步骤2005)。

更新闭眼状态(步骤2004):闭眼时间TC、连续闭眼时间TE的值加上时间戳T2与T1的差。进入判断是否连续闭眼(步骤2006)。

更新睁眼状态(步骤2005):睁眼状态TP的值加时间戳T2与T1的差,连续闭眼时间TE的值重置为0,接着判断检测是否持续了一分钟(步骤2007)。

判断是否连续闭眼(步骤2006):判断连续闭眼时间TE的值,当TE大于3秒时,将连续闭眼状态V0的值置为True;否则不处理。最后判断检测是否持续了一分钟(步骤2007)。

判断检测是否持续了一分钟(步骤2007):先将T2的值赋予T1,再判断T2减T0的值是否大于60秒,如果大于则判断疲劳度(步骤2008),否则继续检测眼睛大小(步骤2002)。

判断疲劳度(步骤2008):先计算PERCLOS的值。疲劳值PERCLOS的计算公式为:PERCLOS=TC/(TC+TP)。如果PERCLOS的值大于0.4且连续闭眼状态V0的值为True,则说明用户处于疲劳状态,进行语音告警,否则重新初始化疲劳度检测(步骤2001)。

如图5所示,实现智能补光阶段程序300,包括步骤:

初始化(步骤3001):读取系统预留的光强状态为L

检测当前光强状态(步骤3002):感光模块3检测当前光强,判断当前光强状态(步骤3003)。

判断光强状态(步骤3003):判断检测出的光强是否大于50lx,如果大于当前光强状态L1为强光状态,否则L1为弱光状态。进入判断环境光是否改变(步骤3004)。

判断环境光是否改变(步骤3004):判断L

判断是否连续五次检测(步骤3005):判断连续改变标识I的值是否大于5,如果大于则说明环境光发生改变,切换摄像头模式(步骤3006);否则继续检测当前光强(步骤3002)。

切换摄像头模式(步骤3006):当检测到强光状态时,将人脸状态采集模块2中的摄像头切换为RGB模式,并关闭补光灯;当检测到弱光状态时,将摄像头切换为IR模式,并调整补光灯强度为20。并记录当前光强状态,进入初始化(步骤3001)。

如图6所示,实现更新阶段程序400,包括步骤:

初始化(步骤4001):人脸信号处理模块1关闭BLE连接,开启WIFI,并设置AP模式、SSID、password。APP端根据SSID扫描到WIFI,输入password连接,并建立TCP/IP。进入校验版本号(步骤4002)。

校验版本号(步骤4002):人脸信号处理模块1接受前16个字节,并转化为版本号、更新包大小(注:此处版本号格式为1.0.0包含3个int类型,更新包大小为1个int类型,一共4个int类型,故接受16个字节)。比较版本大小(例如APP端版本号为1.1.0,设备端版本号为1.0.0,则说明APP端版本号大于设备端版本号,需要更新),如果需要更新,则继续下载更新包(步骤4003)。反之则切换BLE连接(步骤4006)。

下载更新包(步骤4003):人脸信号处理模块1通过socket接收APP端发送的数据。

校验更新包(步骤4004):当人脸信号处理模块1接收完数据后,读取接收到的更新包大小,与校验版本号(步骤4002)中得到的更新包做对比,如果相等则开始更新设备(步骤4005),否则重新下载更新包(步骤4003)。

更新设备(步骤4005):人脸信号处理模块1安装更新包,将新的版本号存入配置文件中,删除更新包,切换BLE连接(步骤4003)。

切换BLE连接(步骤4006):人脸信号处理模块1关闭WIFI连接,并开启BLE广播。APP端扫描到BLE广播并连接。

该基于人脸识别、关键点检测的疲劳度检测装置及其检测方法,通过智能调节补光亮度,解决疲劳驾驶检测中个体存在差异、结果受光照条件的影响等问题,并提供了一种基于手机APP更新和操作的方法,减少设备维护的成本。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号