天天看点

基于深度学习的分心驾驶行为检测方法

作者:新能源新说

1 前言

在“人-车-路”复杂道路交通系统中,驾驶员行为是影响交通安全的重要因素之一。中国社科院与某保险机构的相关调查结果表明,34%的受访者在驾驶过程中存在分心驾驶的行为[1]。此外,美国高速公路安全管理局的报道显示,美国的交通事故中25%~30%的案例与分心驾驶行为有关[2]。因此,如果能够实时监测驾驶员的分心驾驶行为并进行预警,将对提升道路交通安全具有重要意义。

目前,分心驾驶检测方法主要分为间接检测法和直接检测法。间接检测法即通过传感器检测车辆的行驶状态特征,如加速度、运行轨迹和转向盘转角变化等,从而间接获取驾驶员的分心状态。间接检测法的成本相对较低,且不影响驾驶员的操作行为,但检测精度易受驾驶条件和驾驶员驾驶习惯等影响,研究方法和准确性均需改进[3-4]。直接监测法即利用驾驶员生理参数或视觉特征直接获取其状态数据。基于生理参数的监测方法通过穿戴医疗设备获取驾驶员的心电信号、脑电信号和肌电信号,提取分析信号信息,获取驾驶员状态[5],该方法准确率较高,但相关设备成本较高,且可能影响正常驾驶,实际应用难度较高。

随着计算机视觉和深度学习技术的发展,可以通过输入图像进行端到端的分心驾驶行为检测[6-8]。黄向康[9]采用改进后的多任务级联卷积神经网络进行驾驶员人脸检测,得到人脸检测框和5个特征点,根据检测结果进行分心行为判别,其中包括通话和吸烟2种行为,检测准确率分别为93.3%和92.4%。庞再统[10]针对图像分类网络MobileNetV3 进行改进,提出轻量化模型SMobileNet,对分心驾驶行为进行识别以实现实时监测。

本文采集分心驾驶数据集,包括驾驶员饮水、使用手机和吸烟3 种分心驾驶行为的图像,利用预训练的Yolov5[11](You Only Look Once)模型得到分心驾驶行为对应目标物的标注文件,最后,采用一种轻量化的目标检测网络NanoDet[12]进行训练,以便在移动端进行部署。

2 数据集获取及标注

2.1 数据集图像获取

数据集图像来源包括多视角、多模态和多光谱驾驶员行为数据集(Multiview,Multimodal and Multispectral Driver Action Dataset,3MDAD)和驾驶员监测数据集(Driver Monitoring Dataset,DMD),采集19 位驾驶员饮水、使用手机和吸烟的视频,对视频进行裁剪并逐帧输出以便得到图像集合。其中,3MDAD 数据集共包含16类驾驶行为,本文提取驾驶员使用右手发短信、使用左手发短信、使用右手通话、使用左手通话、拍照、使用右手饮水、使用左手饮水、吸烟类别的图像。其中,使用右手发短信、使用左手发短信、使用右手通话、使用左手通话、拍照统一为使用手机类行为;使用右手饮水、使用左手饮水统一为饮水类行为。整理后的数据集包括驾驶员不同角度的饮水、使用手机和吸烟3类图像,如表1和图1所示。

基于深度学习的分心驾驶行为检测方法

图1 分心驾驶行为图像示例

基于深度学习的分心驾驶行为检测方法

表1 数据集图像数量

2.2 数据集标注

本文采用基于COCO[13]数据集预训练的Yolov5 快速标注方法对数据集图像进行标注。

具有不同网络深度和宽度的5 种Yolov5 模型在COCO val2017 数据集上的性能如表2 所示。综合考虑检测精度和推理速度,选取Yolov5l 作为推理时的权重文件。

基于深度学习的分心驾驶行为检测方法

表2 Yolov5的5种网络模型

COCO数据集共包含80个数据类别,本文只需检测瓶子(Bottle)、高脚杯(Wine glass)、茶杯(Cup)和手机(Cellphone)共4 类目标物。将瓶子、高脚杯、茶杯统一为水瓶类数据,用于得到驾驶员饮水行为目标检测物的标注文件;手机用于得到驾驶员使用手机行为目标检测物的标注文件。此外,COCO 数据集不包含香烟类别,需要对香烟类别进行单独预训练,用于得到驾驶员吸烟行为目标检测物的标注文件。

Yolov5模型推理得到的txt文件包括目标物的种类信息、检测框中心点归一化坐标信息和检测框归一化宽高信息。需要对推理过程中出现的冗余检测、错误检测和遗漏检测等情况进行剔除、修正或重复推理,如图2所示。

基于深度学习的分心驾驶行为检测方法

图2 数据图像推理结果示例

最终整理得到的正确推理的图像数量如表3 所示。将数据集的每一类驾驶行为随机分为训练集和验证集。其中,训练集占数据集总量的96%,验证集占数据集总量的4%。之后对正确的txt 文件进行格式转换得到json格式的数据集标注文件。

基于深度学习的分心驾驶行为检测方法

表3 带有标注的分心驾驶行为数据集

3 模型训练及结果分析

3.1 NanoDet轻量化模型

Yolo、单次多边框检测器(Single Shot Multibox Detector,SSD)、区域卷积神经网络(Region-based Convolutional Netural Network,R-CNN)等目标检测模型可以实现较好的精度和速度,但模型相对较大,不适合在移动端嵌入式设备上进行部署。而轻量级目标检测模型NanoDet分别对主干网络、特征融合网络和检测头网络进行轻量化,具有检测速度快、模型文件小等优点,并且提供了新卷积神经网络(New Convolutional Netural Network,NCNN)推理框架下的C++代码,可直接在移动端进行部署。NanoDet 模型和Yolo 系列模型在COCO val2017数据集上的性能对比如表4所示,NanoDet 模型具有参数量小、模型尺寸小和推理速度快的优势。因此,本文选用NanoDet作为训练模型。

基于深度学习的分心驾驶行为检测方法

表4 NanoDet模型和Yolo模型性能比较

NanoDet 是单阶段的无锚框检测模型,该设计基于全卷积单阶段(Fully Convolutional One-Stage,FCOS)检测算法,NanoDet模型结构如图3所示。

基于深度学习的分心驾驶行为检测方法

图3 NanoDet模型结构

NanoDet 的主干网络使用ShuffleNetV2[14],去掉了最后一层卷积,并且抽取8倍、16倍、32倍下采样的特征输入特征融合网络。ShuffleNetV2 通过通道拆分操作,将通道均分为2 个分支,一个分支进行卷积操作,并使输入和输出通道数量相等,可以最小化内存访问成本,另一个分支进行恒等映射,之后将2 个分支的通道连接,最后进行通道重组操作,增加通道间的信息交流。

NanoDet 的特征融合网络使用路径聚合网络(Path Aggregation Network,PANet)[15]进行浅层特征与深层特征的融合。卷积网络中,高层特征感受野大、语义信息丰富,有利于分类;相反,低层特征细节信息丰富、目标位置准确,有利于定位。因此,特征金字塔网络(Feature Pyramid Networks,FPN)[16]采用自下而上、自上而下以及横向连接来构造特征。自下而上是卷积网络前向传播的过程,选取每个阶段的最后一层特征图构建特征金字塔;自上而下是将上层特征图进行上采样得到新的特征图,新的特征图尺度需要与下层特征图保持一致;横向连接是将新的特征图和原始的下层特征图中每个对应元素相加,实现上层特征和下层特征融合。最后,对融合后的每层特征图进行卷积处理,从而得到融合更加充分的特征图。PANet在FPN后增加了自底向上的通路,从而缩短了低层与顶层特征之间的信息路径。此外,NanoDet 为了使模型更加轻量化,使用插值替代卷积进行特征图尺度的缩放。

Nanodet 基于FCOS 系列的共享权重检测头进行优化,由于移动端模型推理由CPU 进行计算,共享权重并不会加速推理过程,而且在检测头非常轻量化的情况下,共享权重使得其检测能力进一步下降,因此每一层特征使用一组卷积。并且使用批归一化(Batch Normalization,BN)替代组归一化(Group Normalization,GN)作为归一化的方式,BN 在推理时能够将其归一化的参数直接融合进卷积中,可以省去这一步计算。此外,为了将其轻量化,选择使用深度可分离卷积[17]替换普通卷积减少参数量,并将卷积堆叠的数量减少到2组。

损失函数分为2 个部分。一部分是广义交并比损失(Generalized Intersection over Union Loss,GIoULoss)[18]对应目标预测框的输出,GIoULoss 相对于交并比损失(Intersection over Union Loss,IoULoss),在解决预测框和真实框不重合的问题时,能够更好地反映预测框和真实框的关系,可在目标检测任务中取得更好的结果:

式中,A为预测框;B为真实框;C为框A和框B的最小包围框。

另一部分是广义焦点损失(Generalized Focal Loss,GFL)[19],可细分为分布焦点损失(Distribution Focal Loss,DFL)和质量焦点损失(Quality Focal Loss,QFL)。DFL对应目标预测框的输出,考虑到真实的分布通常与标注位置接近,使网络能够快速地聚焦到标注位置附近的数值。QFL 对应目标类别输出,QFL 对焦点损失(Focal Loss)[20]进行改进,联合表示类别和定位质量,即将焦点损失中的离散类别标签转换为0~1 范围内的连续质量标签:

式中,y为0~1范围内的质量标签值;σ为预测值;β为缩放因子的超参数,用于控制降权的速率。

3.2 训练环境及超参数

训练过程中图像的尺寸为320像素×320像素;设置训练轮次数(Epochs)为300;批训练大小(Batach-Size)为128;优化器使用带动量的随机梯度下降法,如果当前收敛效果好,即可加速收敛,如果收敛差,则减慢其步伐,其中动量设为0.9,权值衰减设为0.000 1;使用多步长调整学习率,对于不同的训练阶段使用不同的学习率,一方面可以加快训练的过程,另一方面可以加快网络收敛,其中初始学习率为0.14,衰减系数为0.1。此外,训练环境设置如表5所示。

基于深度学习的分心驾驶行为检测方法

表5 训练环境设置

3.3 试验结果分析

对训练过程进行可视化分析,在训练集和验证集上的损失曲线如图4所示。

基于深度学习的分心驾驶行为检测方法

图4 模型在训练集和验证集上的训练损失曲线

为了评价模型的目标检测性能,本文采用mAP 作为评价指标,mAP 是对每类的平均精度(Average Preci⁃sion,AP)求均值:

其中,AP是精准率-召回率(PR)曲线下的面积,PR曲线以不同置信度阈值下的召回率(Recall)R为横坐标,精准率(Precision)P为纵坐标得到:

式中,NTP为真正例数量;NFP为假正例数量;NFN为假反例数量;p(r)为PR曲线;C为目标类别数量。

NanoDet模型在验证集上的mAP可达到0.833 9,如图5所示。

基于深度学习的分心驾驶行为检测方法

图5 模型验证集mAP曲线

此外,对模型的检测效果和推理速度进行测试,检测效果如图6所示,测试速度如表6所示。

基于深度学习的分心驾驶行为检测方法

图6 分心驾驶检测效果示例

4 结束语

本文采集驾驶员分心驾驶行为的数据集,包括饮水、使用手机和吸烟,利用在COCO 数据集上预训练的Yolov5 模型得到分心驾驶行为对应目标物的标注文件代替人工标注,采用轻量化的目标检测网络NanoDet进行训练,在验证集上的平均精度均值达到0.833 9,且推理速度和测试准确率皆能达到较好的效果。

继续阅读