APP下载

基于CNN-LSTM模型的红外图像疲劳情感状态分析方法

2023-10-30黄子琪

中国新技术新产品 2023年18期
关键词:跟踪器关键点人脸

刘 星 黄子琪

(南京信息职业技术学院数字商务学院,江苏 南京 210021)

1 相关工作

汽车智能化是当前全球汽车重要的技术发展趋势之一,也是实施《中国制造2025》、“两化融合”战略的重要支撑。深度学习是人工智能领域取得的一个较大突破,且在汽车智能化应用方面深度学习模型已具有极大潜力。司机疲劳驾驶是造成致命事故的最重要的原因之一,当驾驶员处于疲劳驾驶状态时,其路况识别能力和驾驶技能明显下降,约25%~30%的交通事故是由驾驶员疲劳驾驶导致的。为了解决这个问题,开发一种可以有效检测驾驶员疲劳驾驶并及时发出警告的系统非常必要。基于车辆行为、驾驶员生理状态和面部表情的研究已被用于识别疲劳驾驶[1-2],基于车辆行为的驾驶员疲劳驾驶检测方法主要处理车辆行驶数据,即车辆的转向角度、行驶速度、加速度和转弯角度[3-4],不考虑驾驶员自身情况进行早期检测和预警,就无法起到事前预警的作用。

2 基于面部图像特征的驾驶员疲劳状态检测框架

基于驾驶员生理状态的检测方法是基于眼电(EOG)、心电图(ECG)[5]、心率(HR)、脑系统[6]、心率变异性(HRV)以及脑电图(EEG)等生理信号的。然而,驾驶员必须在驾驶过程中穿戴设备才能获得相应的信号,会影响驾驶员的舒适感。基于驾驶员面部表情的疲劳驾驶检测方法通过分析眼睑闭合时间、眨眼、打哈欠、头部姿态和眼睑运动[7-9]取得了较好的效果。集成视觉信号和生理信号的方法比单一信号具有更高的性能,但是存在价格昂贵、体验不舒适的缺点。该文重点研究了基于视觉的疲劳驾驶检测中最重要的一步,即利用KCF 改进的MTCNN 对人脸进行检测和跟踪,并对眼睛、嘴巴和头部姿态进行鲁棒性定位,特别是在低照度、戴口罩以及大幅度运动等复杂真实车载情况下进行相关检测。

该文提出的疲劳检测方法的整体框架如图1所示,主要包括3 个部分,即红外图像采集和使用VIBE 算法定位前景、人脸检测以及疲劳特征识别。首先,在实际车辆环境下采集红外图像。在获取红外图像后,运用VIBE 算法来准确定位前景区域。其次,进行人脸检测。该文提出了一种改进的MTCNN 方法,基于核相关滤波技术可以在一段时间内对检测的人脸进行跟踪,特别是在面临大运动或光照变化等情况下,也可以比较稳定地定位人脸区域。最后,进行疲劳特征的融合和识别。提取眼睛区域特征、嘴巴区域特征和头部姿势特征,并将它们输入多维度卷积神经网络进行疲劳识别。

图1 疲劳驾驶检测系统框图

3 基于核相关滤波器改进的MTCNN 人脸检测

该文提出的驾驶员疲劳驾驶检测系统的第一步就是获取人脸的位置,并标定面部关键点的坐标。为了获取人脸关键点,该文采用人脸关键点检测网络MTCNN 对人脸进行检测和提取关键点。MTCNN 是一个三级联的卷积神经网络,即提议网络(P-Net)、精炼网络(R-Net)和回归网络O-Net,可以整合人脸检测和人脸对齐2 个任务,最终输出的结果是人脸目标框、嘴部、鼻子和眼部等关键人脸点坐标。但是当人脸出现光照不均匀造成的“阴阳脸”或者驾驶员看后视镜造成的大角度侧脸的情况时,会导致MTCNN 人脸检测算法短暂失效,无法定位人脸和提取人脸的关键点。同时,因为在实车驾驶过程中,图像视野中可能会出现多个人脸的情形,所以在MTCNN 的检测参数中设定最小检测目标尺寸为100 px,如果检测到多个目标,就默认驾驶员的头像为最大尺寸。

另外,由于该方法在嵌入式芯片上运行,芯片的运算算力有限,MTCNN 算法的运行时间为200 ms,因此提出跟踪器与检测器相融合的方法,既可以在短暂时间内用跟踪算法更好地锁定人脸,又可以减少对CPU 处理资源的占用,使算法具有更高的鲁棒性且更高效。

在MTCNN 中有3 种任务,包括人脸/非人脸分类、边界框回归和关键点定位。为了获得稳定的结果,该文在边界和关键点定位中加入了空间约束和时间约束。针对每个候选窗口,该文预测它与上一帧的面边界框之间的偏移量(边界框的左上角、高度和宽度)。欧氏距离损失适用于每个样本,如公式(1)所示。

与边界框回归任务类似,人脸目标检测也被定义为一个回归问题。该文还应用了候选目标的关键点与上一帧图像的人脸关键点之间的欧氏距离,如公式(2)所示。

经过测算,在实际应用中,当KCF 跟踪算法及MTCNN检测在海思3521DV200 芯片上运行时,针对1280px×720px的图像,KCF 跟踪器的运算速度约为60 f/ms,而MTCNNmobilenet 的运算速度约为200 f/ms。因此,在加入KCF 跟踪器后,平均3 s 内跟踪了46 f,平均运算速度为15 f/s,而在国家标准中,要求须在2 s 内对疲劳驾驶的行为发出预警,因此该文提出的方法在海思的嵌入式芯片上也基本能满足实时预警的要求。

该文主要通过O-Net 输出的目标框与上一帧存储的目标框之间的重叠率来判断MTCNN 是否检测到人脸,设定当IoU超过70%且满足O-Net输出的概率大于0.7时,即认为有效检测出人脸目标。该文主要通过KCF跟踪器输出的目标框与上一帧存储的目标框之间的重叠率来判定KCF 跟踪器是否跟踪人脸,具体方法与检测阶段一致。交并比(Intersection over Union,IoU)是指检测框与Ground Truth 的交集和并集之间的比,当IoU=1 时,检测框完全等于Ground Truth,当IoU=0 时,检测框与Ground Truth 没有交集。

4 基于LSTM 网络的疲劳状态识别方法

针对CNN 提取到的特征序,应用标准的RNN 模型可以计算一个隐藏层序列ht和一个输出序列yt,分别如公式(3)、公式(4)所示。

式中:Wfh为遗忘门的权重系数矩阵;bh为遗忘门的偏置向量;fa为激活函数(激活函数可以用tanh 函数、Sigmod 函数等);Whh为输入门的权重系数矩阵;ht-1为t-1 时刻的隐藏层序列;Why为输出门的权重系数矩阵;bh为输出门的偏置向量。

虽然RNN 可以对非线性时间序列的数据进行预测,但是仍然存在梯度消失、爆炸以及需要预先确定延迟窗口长度的问题。因此,LSTM 模型应运而生,隐藏层计算如公式(5)~公式(9)所示。

式中:it为t时刻输入门状态;Wxi为输入门i时刻权重值;Wci为对于细胞状态i的权重;Ct-1为t-1 时刻的细胞状态值;bi为输出门偏置向量;ft为t时刻遗忘门状态;Wxf为遗忘门i时刻权重值;Whf为遗忘门的权重系数;Wcf为对于遗忘门计算中细胞状态i的权重;bf为遗忘门的偏置向量;ct为t时刻细胞状态;ft为细胞状态计算中的激活函数;tanh 为激活函数之一;Wxc为细胞状态中对于向量xt的权重;Whc为细胞状态中对于ht-1隐藏序列的权重;bc为细胞状态的偏置向量;ot为输出门t时刻输出;Wxo为输出门对于xt向量的权重;Who为输出门中ht-1隐藏序列的权重。

该文采用LSTM 作为网络主体,将眼部和嘴巴提取到的时间序列特征集记为F,并将其输入LSTM 网络的时序序列中进行判定。

5 试验设计及结果

5.1 试验平台

为了验证该文提出的方法在真实车辆环境下的性能,采集7 个不同车辆的真实车辆数据序列,分别为土方车、长途重卡、冷链运输车、私家车、SUV、公共汽车以及施工卡车。摄像头放置在司机的前面。为了最大限度地减少驱动器的影响(特别是在夜间),采用940 nm 小波的红外光提供照明。该文提出的方法使用约10 000 f 进行训练,并在6 个实车序列上进行测试,总共超过60 000 f(见表1),其分辨率为1280px×720px,训练数据和测试数据之间不存在重叠。使用lableImg 软件手动标注眼睛、嘴的真实坐标以及驾驶员疲劳状态。

表1 人脸检测算法对比

疲劳驾驶摄像头采集到的图像为RGB 图像及红外图像,可以通过分析图像质量结合当前时间来选取采用RGB图像还是红外图像。该设备的显示器主要用来提示驾驶员是否处于疲劳驾驶,当驾驶员处于疲劳驾驶时,可以通过屏幕与驾驶员互动或发出声光提示报警。

5.2 主要参数对比

召回率反映了测试方法的鲁棒性和持续跟踪能力,精度反映了测试方法对干扰物和目标的识别能力。不同车辆视频序列的结果概述见表1。由表1 可知,该文提出的方法比原来的MTCNN 和Dlib19.22 具有更高的鲁棒性,这是改进后的MTCNN 加上KCF 跟踪的效果。该文提出的方法也具有更高的性能,特别是在人脸侧面,现有方法很难在光照变化以及侧脸等困难环境下取得同样的性能。由表1 可知,该文凸出的方法在侧脸和光照变化方面具有更高的性能,这是KCF跟踪器的作用。如果MTCNN 在3 s 内检测到驾驶员的人脸,KCF 跟踪器将检测结果作为初始目标对人脸进行跟踪,那么该目标不会受到太多光照变化、大幅度运动和侧脸的影响。

5.3 参数分析

该文将所提出的方法与dlib 算法的最新版本19.22、原始MTCNN 和Face++进行比较。由表1 可知,3 种方法在手干扰、背景杂波、大运动和正常驾驶方面的性能差异不大。

该文提出的方法在光照变化和侧脸方面具有更高的性能,这是KCF 跟踪器的效果。在序列五中,需要检测驾驶员侧脸,这对人脸检测方法来说是一个问题,尤其是大角度的人脸检测。然而,如果在前方检测驾驶员的人脸并将人脸的边界框输入KCF 跟踪器中,那么该文提出的方法是目前最先进的跟踪方法,可以跟踪侧脸而不是检测侧脸。在序列四中,光照变化是车辆驾驶员人脸检测的另一个问题,由于光照总是会发生变化的,因此可以假设在一段时间内光照良好,MTCNN 人脸检测算法可以工作于检测驾驶员面部,将检测到的面部区域与上一次保存的人脸结果进行比对,当相似度大于80%时,认为当前检测到的人脸是可靠的,并将其作为KCF 跟踪器的输入,在接下来的3 s 内进行跟踪,由于采集帧率为30 f/s,因此跟踪的总帧数为90 f。运用该文提出的方法在光照变化不均衡的图像序列上具有更高的性能。

5.4 疲劳状态识别结果

MCNN 对睁眼图像进行分类的准确数为2 753 张,准确率为93.3%,对闭眼图像进行分类的准确数为978 张,准确率为91.7%,依然无法达到实际车载使用准确率为99%的要求,其原因是驾驶员佩戴墨镜及眼镜镜片反光导致识别准确率下降,这也是后期需要解决的重要问题之一,当前运用的技术一般为偏振光片,但是存在价格昂贵无法商用的问题。

识别嘴巴状态(打哈欠)图像的准确数为5 411 张,识别正确率为95.2%,主要识别错误的情况为驾驶员张嘴说话以及手部的一些干扰动作。识别嘴巴正常情况图像的准确数为14 753 张,识别准确率为98.4%。嘴部识别的准确率比眼睛该,其原因是嘴部的识别难度较小且干扰少,容易分类。识别打电话图像的准确数为1 001 张,识别正确率为89.2%,识别率较低,其原因是打手机与摸脸、整理头发等动作相似,存在一些误检的情况。

6 结语

该文针对驾驶员疲劳检测提出了一种基于CNN-LSTM模型的红外图像检测方法,通过分析眼动和嘴巴状态来判别驾驶员的疲劳程度,该方法识别的状态包括闭眼、打哈欠和打手机等行为。该文研究重点利用CNN 网络提取驾驶员面部特征,并通过LSTM 网络来推断实际车辆运行环境下驾驶员疲劳状态的关键问题。大量真实驾车试验数据验证了该文提出的方法具有较高的性能,并且可以进一步应用于实际场景中。然而,该方法仍面临一个问题,即对打手机动作的识别率较低。为了解决这一问题,需要采集更多样本数据,并对网络模型进行优化。

猜你喜欢

跟踪器关键点人脸
光伏跟踪器阵列跟踪精度的测算方法研究
肉兔育肥抓好七个关键点
有特点的人脸
浅析一种风光储一体化跟踪器
三国漫——人脸解锁
双向多轨迹判定方法在目标跟踪中的应用研究
马面部与人脸相似度惊人
医联体要把握三个关键点
锁定两个关键点——我这样教《送考》