公开/公告号CN114973214A
专利类型发明专利
公开/公告日2022-08-30
原文格式PDF
申请/专利权人 浙江工业大学;
申请/专利号CN202210651680.8
申请日2022-06-09
分类号G06V20/59(2022.01);G06V40/16(2022.01);G06V10/82(2022.01);G06N3/04(2006.01);G06N3/08(2006.01);
代理机构杭州求是专利事务所有限公司 33200;
代理人忻明年
地址 310014 浙江省杭州市下城区潮王路18号
入库时间 2023-06-19 16:33:23
法律状态公告日
法律状态信息
法律状态
2022-09-16
实质审查的生效 IPC(主分类):G06V20/59 专利申请号:2022106516808 申请日:20220609
实质审查的生效
技术领域
本申请属于行为识别技术领域,特别涉及一种基于人脸特征点的不安全驾驶行为识别方法。
背景技术
随着经济飞速发展,人民生活水平不断提高,道路上汽车逐年增多,汽车给人们带来生活便利的同时,交通安全问题备受关注。
交通事故由多种因素导致如驾驶员不安全行为、道路条件、汽车损坏等,但大多数交通事故是由于驾驶员不安全行为导致的,其包括分心驾驶、疲劳驾驶、酒后驾驶等,都会在一定程度上导致交通事故的发生。根据交通管理局的相关统计,90%的交通事故均与驾驶员的行为有密切的联系,分心驾驶和疲劳驾驶成为导致交通事故的最大“杀手”。
根据国际标准化组织(ISO)的定义,分心驾驶指的是驾驶员在驾驶时,将自身注意力分散的指向与正常驾驶不相干的行为,如打电话、喝水、向后座拿东西等。有研究表明,边开车边打电话,交通事故发生的几率会增加4倍,边开车边喝水会增加1.5倍,驾驶员不注视前方超过2s时增加3倍。因此分心驾驶是不可以忽视的安全性问题,如果能够对驾驶员不安全行为进行实时检测并提醒,就可以在源头上降低交通事故发生的几率,但目前在驾驶员分心行为识别方便还未出现广泛的应用产品。
对于疲劳驾驶检测,现阶段的方法主要包括主观检测和客观检测。主观检测是通过对驾驶员自我记录表、主观调查表、皮尔逊疲劳量表以及斯坦福睡眠尺度表进行评定,该方法对驾驶员的依赖程度较高,且无法对疲劳驾驶进行实时检测。客观监测包括对驾驶员行为特性的检测、基于对车辆参数的检测和基于对驾驶员生理特征参数测量的检测,基于车辆参数的监测方式需要基于其他车辆行为统计信息,如方向盘受到来自驾驶员手部的压力、车辆加速等变化等特征,存在易受到自然环境、驾驶员的驾驶水平、心理素质以及驾驶心情等因素的影响等缺点;基于驾驶员生理特征的检测方式需要驾驶员穿戴相关的生理指标检测设备,会影响驾驶员在驾驶过程中的舒适度,给驾驶员带来不便。
发明内容
为了克服现有技术的不足,本发明提供了一种基于人脸特征点的不安全驾驶行为识别方法。采用的Resnet50模型融合了空间注意力机制,有效提高了分心驾驶检测的准确率;通过人脸特征点信息和头部姿态估计检测闭眼、打哈欠、低头行为,有效提高了疲劳驾驶检测的准确率和速率。
为了解决上述技术问题,本发明提供如下的技术方案:
一种基于人脸特征点的不安全驾驶行为识别方法,包括:
获取车内摄像头采集的图像,进行图像亮度自适应增强处理,得到处理后的亮度增强的图像;
将亮度增强的图像输入到融入空间注意力机制的ResNet50模型,判断驾驶员不安全驾驶行为,所述融入空间注意力机制的ResNet50模型在残差网络ResNet50的各个瓶颈块中融入了空间注意力机制,所述瓶颈块包括一个残差层,所述残差层输出的第一特征依次经过全局池化层、全连接层、线性整流函数和全连接层后,输出的第二特征再与残差层的输出的第一特征进行矩阵相乘,矩阵相乘后输出的第三特征与残差层的输入特征进行连接后作为瓶颈块最终的输出特征;
将亮度增强的图像输入到人脸关键点和欧拉角联合检测网络,检测得到人脸关键点信息和头部欧拉角信息,所述人脸关键点和欧拉角联合检测网络包括用于检测人脸关键点信息的人脸关键点检测网络PFLD,所述人脸关键点检测网络PFLD的骨干网络的输出还连接有用于检测头部欧拉角信息的头部欧拉角检测网络,所述头部欧拉角检测网络为所述人脸关键点检测网络PFLD的辅助子网络;
根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶。
进一步的,所述获取车内摄像头采集的图像,进行图像亮度自适应增强处理,包括:
在获得车内摄像头采集的图像后,计算图像亮度;
若图像亮度小于第一阈值则进行图像亮度增强,否则不进行图像亮度增强;
在进行图像亮度增强时,统计图像直方图,记录直方图两端异常数值分位点;
去除分位点区间之外的值,将分位点区间拉伸到(0,255);
获得处理后的亮度增强的图像。
进一步的,所述人脸关键点和欧拉角联合检测网络的损失函数如下:
Loss(x,y)=wing(x)+L2LossFunction(y)
其中,x表示预测的人脸关键点与真值绝对值差,y表示预测的头部欧拉角与真值绝对值差;
其中,ω为非负数,将非线性部分限制在区间(-ω,ω)之间,∈为常量,用于约束曲线的弯曲程度,提高训练的稳定性,C为常数,C=ω-ωln(1+|ω|/∈),用于平滑地连接分段定义的线性和非线性部分。
进一步的,所述根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶,包括:
通过人脸关键点信息确定眼部6个关键点信息,包括左眼角关键点、左上方关键点、右上方关键点、右眼角关键点、右下方关键点、左下方关键点,分别标注为P
计算眼睛长宽比EAR,具体计算公式如下:
若眼睛长宽比EAR超过设定的第二阈值,则判定为处于闭眼状态,进行疲劳报警,否则不进行疲劳报警。
进一步的,所述根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶,包括:
通过人脸关键点信息确定嘴部6个关键点信息,包括左嘴角关键点、左上方关键点、右上方关键点、右嘴角关键点、右下方关键点、左下方关键点,分别标注为Q
计算嘴部长宽比MAR,具体计算公式如下:
若嘴部长宽比MAR超过设定的第三阈值,判断出现打哈欠状态,进行疲劳报警,否则不进行疲劳报警。
进一步的,所述根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶,包括:
判断头部欧拉角是否超过设定的第四阈值,如果超过第四阈值,则判断驾驶员出现低头行为,进行疲劳报警,否则不进行疲劳报警。
本申请提出的一种基于人脸特征点的不安全驾驶行为识别方法,与现有技术相比,具有以下优点:
1、采用ResNet50网络模型来实现对驾驶员不安全驾驶行为识别与分类,融入空间注意力机制,不同行为识别准确率均大于97%,具有较大的应用场景。
2、相比于通过人脸关键点矩阵运算计算头部姿态欧拉角,本申请采用通过人脸关键点模型分支预测欧拉角的方法,通过该模型能够同时获取人脸关键点与欧拉角信息,避免了通过双模型分别预测人脸关键点与欧拉角的情况,检测速度有较大提升,对驾驶员行为实时检测具有较大的应用场景。
3、考虑了疫情常态化的影响,通过随即擦除的数据增强方式,提高人脸在大面积遮挡情况下人脸关键点标定的准确率,如戴口罩等情况。
4、采用了图像亮度增强自适应算法,能够有效提高在黑暗场景中对驾驶员不安全行为识别的准确率。
5、通过迁移学习的方法,证明将ResNet50模型应用与驾驶员不安全行为检测与分类识别是可行的,且该模式方法能够在较短实现内完成模型训练,且易扩充其他不安全驾驶行为,模型识别准确率高。
本申请采用基于融入空间注意力机制的ResNet50和人脸关键点检测的驾驶员不安全行为检测,该双模型囊括大多数驾驶员不安全行为检测,且采用惰性求值的方式提高该方法的检测速度,达到实时性要求。
附图说明
图1为本申请基于人脸特征点的不安全驾驶行为识别方法流程图;
图2为本申请实施例融入空间注意力机制的瓶颈块结构示意图;
图3为本申请实施例人脸关键点和欧拉角联合检测网络结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提出了一种基于人脸特征点的不安全驾驶行为识别方法,包括:
步骤S1、获取车内摄像头采集的图像,进行图像亮度自适应增强处理,得到处理后的亮度增强的图像。
本实施例在车内设置摄像头,采集含有驾驶室的图像,通常包括驾驶员的人脸图像,可以用于识别抽烟、打电话、玩手机、向后转拿物品、照镜子梳理头发、喝水、吃东西、安全驾驶等行为,以及驾驶员的人脸关键点特征信息和头部欧拉角信息。
本实施例通过图像亮度自适应算法进行采集的图像进行预处理。图像亮度自适应增强预处理流程如下:
在获得车内摄像头采集的图像后,计算图像亮度;
若图像亮度小于第一阈值则进行图像亮度增强,否则不进行图像亮度增强;
在进行图像亮度增强时,统计图像直方图,记录直方图两端异常数值分位点;
去除分位点区间之外的值,将分位点区间拉伸到(0,255)
最终获得处理后的亮度增强的图像。
具体的,在进行图像亮度增强时,首先统计图像直方图,根据直方图分布记录直方图两端异常数值分位点,即记录亮度过暗的第一阈值和亮度过亮的第二阈值。然后去除分位点区间之外的值,即将小于第一阈值或大于第二阈值的部分除去,将剩余的分位点区间按线性映射平均地分布在(0,255),完成亮度增强。
步骤S2、将亮度增强的图像输入到融入空间注意力机制的ResNet50模型,判断驾驶员不安全驾驶行为,所述融入空间注意力机制的ResNet50模型在残差网络ResNet50的各个瓶颈块中融入了空间注意力机制,所述瓶颈块包括一个残差层,所述残差层输出的第一特征依次经过全局池化层、全连接层、线性整流函数和全连接层后,输出的第二特征再与残差层的输出的第一特征进行矩阵相乘,矩阵相乘后输出的第三特征与残差层的输入特征进行连接后作为瓶颈块最终的输出特征。
本实施例采用融入空间注意力机制的ResNet50模型判断驾驶员不安全驾驶行为。本申请在残差网络ResNet50的瓶颈块中融入了空间注意力机制。
融入了空间注意力机制的瓶颈块如图2所示,包括一个残差层,所述残差层输出的第一特征依次经过全局池化层、全连接层、线性整流函数和全连接层后,输出的第二特征再与残差层的输出的第一特征进行矩阵相乘,矩阵相乘后输出的第三特征与残差层的输入特征进行连接后作为瓶颈块最终的输出特征。
在训练融入空间注意力机制的ResNet50的模型时,过程如下:
固定摄像头在车内位置,采集不同车型、不同年龄段、不同性别不安全驾驶行为数据集,包括抽烟、打电话、玩手机、向后转拿物品、照镜子梳理头发、喝水、吃东西、安全驾驶等八种行为;
为保证数据的尺寸相同、格式一致,需要对图片进行预处理,该预处理包括图像尺寸定义、图像样本归一化和图像直方图处理等预处理方法;
采用数据增强的方式增强预处理后的数据集,包括随机擦除、随机旋转、水平翻转、水平位移、随机裁剪与缩放,提高模型鲁棒性;
将处理后得到的图像作为模型数据集,并按照7:1:2的比例将其分为训练集、验证集和测试集;
对模型的各项参数进行配置与调整;
将训练样本和验证样本作为输入,对网络模型进行训练和验证;
采用分类交叉熵函数用于计算真实值与预测值之间的交叉熵损失,具体计算公式如下,其中n为样本数,true为真实样本标签值,pred为预测样本标签值
定义优化函数,采用AdamW优化器,提高模型在速度和精度上的训练达到最优,具体公式如下,其中λ为每一步权重衰减率,d为学习率,
设置模型训练参数,图像分辨率设置为224×224,初始学习率为0.0001,设置动态变化学习率,设置训练轮数为100轮;
对网络模型进行训练,当损失率函数不再减小且准确率函数不再增加时,得到训练完成的模型,将所得到的模型用于测试样本测试,最后完成模型的训练。
步骤S3、将亮度增强的图像输入到人脸关键点和欧拉角联合检测网络,检测得到人脸关键点信息和头部欧拉角信息,所述人脸关键点和欧拉角联合检测网络包括用于检测人脸关键点信息的人脸关键点检测网络PFLD,所述人脸关键点检测网络PFLD的骨干网络的输出还连接有用于检测头部欧拉角信息的头部欧拉角检测网络,所述头部欧拉角检测网络为所述人脸关键点检测网络PFLD的辅助子网络。
本实施例采用人脸关键点检测网络PFLD来检测人脸关键点信息,并提取PFLD辅助子网络来检测头部欧拉角信息。
人脸关键点和欧拉角联合检测网络如图3所示,其上半部分为人脸关键点检测网络PFLD,下半部分为头部欧拉角检测网络。
本实施例人脸关键点检测网络PFLD,输入的图像也即本实施例亮度增强的图像,其包括驾驶员人脸。输入图像经过移动端神经网络(例如MobileNetV2,PFLD的骨干网络),然后输入到多尺度特征融合模块和全连接层,最后输出人脸关键点信息。
采用PFLD辅助子网络来检测头部欧拉角信息,PFLD辅助子网络包括四个卷积层以及一个全连接层。PFLD辅助子网络的输入为移动端神经网络的输出,最后输出头部欧拉角信息。
需要说明的是,在训练人脸关键点检测网络PFLD时,需要用到PFLD辅助子网络来进行辅助训练,本实施例巧妙的利用了PFLD辅助子网络来作为头部欧拉角检测网络,来得到头部欧拉角信息,也即头部姿态欧拉角信息。原PFLD网络中其辅助子网络是用于进一步收敛loss的,即辅助子网络只在训练时使用但在预测时不参与,但本申请需要头部欧拉角,为了避免通过关键点复杂矩阵运算计算头部欧拉角或者引入新模型去预测头部欧拉角,本申请修改这个网络的结构,在训练和测试时都会使用该辅助子网络,形成双流网络,一流用于关键点检测,另一流用于头部欧拉角预测。由于在训练人脸关键点检测网络PFLD时就需要采用PFLD辅助子网络来进行辅助,采用本申请的网络结构,有效减少了训练所需要的计算量。
训练人脸关键点和欧拉角联合检测网络的过程如下:
融合人脸属性开源数据集WFLW、300W_LP和LAPA,并通过PRNet对人脸属性标注欧拉角标签;
对采集到的数据集进行图像预处理;
对预处理后的图像进行数据增强操作;
将处理后得到的图像作为模型数据集,并按照7∶1∶2的比例将其分为训练集、验证集和测试集;
对模型的各项参数进行配置与调整;
将训练样本和验证样本作为输入,对网络模型进行训练和验证;
定义损失函数由人脸关键点预测与头部欧拉角两部分损失函数组成,采用WingLoss作为人脸关键点预测的损失函数,用于提高网络收敛速度,采用L2损失函数作为头部欧拉角预测的损失函数,具体计算公式如下:
Loss(x,y)=wing(x)+L2LossFunction(y)
其中,x表示预测的关键点与Ground Truth绝对值差,y表示预测头部欧拉角与Ground Truth绝对值差。
损失函数wing(x)具体公式如下:
其中,x表示预测的关键点与Ground Truth的距离,ω为非负数,将非线性部分限制在区间(-ω,ω)之间,∈为常量,用于约束曲线的弯曲程度,提高训练的稳定性,C为常数,C=ω-ωln(1+|ω|/∈),用于平滑地连接分段定义的线性和非线性部分。
损失函数L2(y)具体公式如下:
其中,y
设置模型训练参数,图像分辨率设置为224×224,初始学习率为0.0001,设置动态变化学习率,设置训练轮数为250轮;
对网络模型进行训练,当损失率函数不再减小且准确率函数不再增加时,得到训练完成的模型,将所得到的模型用于测试样本测试,完成网络的训练。
步骤S4、根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶。
具体的,根据人脸关键点信息和头部欧拉角信息,判断驾驶员是否出现疲劳驾驶,包括如下实施例:
实施例1:通过驾驶员人脸关键点,计算嘴部和眼部长宽比,与阈值进行比较判断驾驶员是否闭眼与打哈欠。
其中,判断是否闭眼的过程如下:
通过人脸关键点信息确定眼部6个关键点信息,包括左眼角关键点、左上方关键点、右上方关键点、右眼角关键点、右下方关键点、左下方关键点,分别标注为P
计算眼睛长宽比EAR,具体计算公式如下:
实验统计闭眼与睁眼情况下眼睛长宽比阈值,通过比较阈值判断驾驶员是否长时间处于闭眼状态,即若眼睛长宽比EAR小于设定的第二阈值,则判定为处于闭眼状态,进行疲劳报警,否则判定为没有处于闭眼状态,不进行疲劳报警。
判断是否打哈欠的过程如下:
通过人脸关键点信息确定嘴部6个关键点信息,包括左嘴角关键点、左上方关键点、右上方关键点、右嘴角关键点、右下方关键点、左下方关键点,分别标注为Q
计算嘴部长宽比MAR,具体计算公式如下:
实验统计打哈欠、讲话、闭嘴情况下情况下嘴部长宽比阈值,通过比较阈值判断驾驶员是否长时间打哈欠。即若嘴部长宽比MAR超过设定的第三阈值,判断出现打哈欠状态,进行疲劳报警,否则不进行疲劳报警。
实施例2、根据头部欧拉角判断驾驶员长时间低头行为;
即判断头部欧拉角是否超过设定的第四阈值,如果超过第四阈值,则判断驾驶员出现低头行为,进行疲劳报警,否则不进行疲劳报警。
更进一步的,还结合时间或连续次数来进行疲劳判断,例如当连续判断出现低头行为的时间长度超过第五阈值,则认为出现长时间低头行为,进行疲劳报警,否则不进行疲劳报警。或者,当连续判断出现低头行为的次数超过第六阈值,则进行疲劳报警,否则不进行疲劳报警。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
机译: 一种基于神经网络的实时驾驶车辆自动驾驶识别方法
机译: 一种用于基于车辆的位置来个性化自动驾驶系统的驾驶行为的系统
机译: 停车位横向停车位,一种乘用车的识别方法,涉及基于描述车辆状况和/或环境状况的参数来确定驾驶员喜欢停车的泊车类型。