基于级联卷积神经网络的驾驶员分心驾驶行为检测

2020-06-23 09:02罗维平马双宝
科学技术与工程 2020年14期
关键词:级联驾驶员准确率

陈 军, 张 黎, 周 博, 罗维平, 马双宝

(武汉纺织大学机械工程与自动化学院,武汉 430200)

根据美国国家公路交通管理局发布的调查结果显示,80%的交通事故主要原因是由于驾驶员分心驾驶导致的[1]。随着中国汽车保有量的逐年递增,交通事故发生频率也随之增长,其中主要原因也是驾驶员行车过程中分心驾驶,注意力转移,如打电话、喝水、与其他人交谈、调收音机等。驾驶员分心驾驶会导致车辆行驶偏离,失去对当前道路及行驶环境状况的实时判断,增加交通事故发生的风险,危及自身及他人生命财产安全。因此,对驾驶员分心驾驶进行实时检测与判断,及时提醒驾驶员安全驾驶是非常必要的工作。

近年来,已有大量专家学者对分心驾驶进行研究,对驾驶员的疲劳驾驶行为已经实现了较为精准的检测与判断。文献[2]提出基于反向双目识别的分心检测方法,通过Hough算法对车辆的偏航率和驾驶员头部姿态检测,并建立高斯隶属度函数模糊判断规则,进而根据两者融合信息判断驾驶状态。文献[3]提出一种基于卷积神经网络的疲劳驾驶检测,通过获取驾驶员面部图像信息,分析其眼动次数和打哈欠次数,进而推测其疲劳度,这种非侵入式检测方法更为方便,也取得了较好的效果。但是他们只实现了对疲劳驾驶的检测,对其他分心驾驶类型没有较好的研究成果。分心驾驶检测是近年来研究的重点课题,分心驾驶检测类型较多,目前也取得一定成果。文献[4]提出使用Faster-RCNN网络来检测驾驶员双手位置,进而判断驾驶员手中是否拿着手机。文献[5]建立以径向基为核函数的驾驶人分心状态判别支持向量机模型(support vector machine,SVM),可以有效识别驾驶员是否进行语音通话、发送语音信息等分心行为。

上述研究虽取得一定研究成果,但驾驶员分心行为种类繁多,针对多种分心行为同时检测准确识别问题,目前还没有较好的研究方法。因此,提出一种基于级联卷积神经网络的驾驶员分心驾驶行为检测方法,利用美国StateFram公司公开的驾驶行为数据集进行模型训练与测试,期望达到实时检测驾驶员打电话、发短信、与乘客交谈、调节收音机、喝水等9种分心驾驶行为的目的。

1 研究思路与迁移学习

1.1 研究思路

级联卷积神经网络驾驶员分心驾驶行为检测方法主要设计搭建了一个两级卷积神经网络框架结构,第一级网络由分心行为预筛选卷积网络构成,负责对原始数据进行快速预判,该层搭建了一个7层神经网络,选取3×3的卷积核,其网络层数少、训练速度快,结构特征冗余较少,能够减少后续网络的计算负担,实现对输入图像进行特征粗提取,筛选出疑似分心行为的图像,送入后一级精确检测卷积网络进行精准识别。第二级分心行为精确检测卷积网络是一个改进的基于超分辨率测试序列VGG(visual geometry group)模型特征提取的深度迁移学习检测算法网络,通过迁移学习重新训练分类器和部分卷积层,对上一层预筛选出的疑似分心行为图像进行准确识别,该层网络结构较为复杂,可以实现图像像素级分类,有效提高了检测精度,对输出结果通过非极大值抑制可以准确输出正常驾驶和常见的9种驾驶员分心驾驶行为的检测结果。检测的驾驶员驾驶行为具体如表1所示。

表1 检测的驾驶员驾驶行为Table 1 Types of driving behaviors detected

1.2 迁移学习

在机器视觉领域,视觉系统对物体的识别是分层的,随着网络层次的增加,特征越来越抽象,低层的卷积特征以方向线段为主,高层则以较大的拐角及形状为主,不同物体的低层特征往往具有较大的相似性,因此利用训练好的大型模型,并对各层参数在原有模型的基础上进行微调可以在较短的时间内训练出精度较高的模型。这种方法称为迁移学习,迁移学习定义了源域和源任务、目标域和目标任务,利用源域在解决任务中获得一些知识来提升目标任务。文献[6]中迁移学习定义了一个给定源域Ds,一个对应的源任务Ts,目标域Dt,以及目标任务Tt,迁移学习的目的就是:在Ds≠Dt,Ts≠Tt的情况下,利用来源域Ds和源任务Ts的信息,学习得到目标域Dt中的条件概率分布P(Yt|Xt)。

因此如果有一个原始图像数据集足够大,在这个训练集上训练的网络模型权重参数足够多,那么该网络模型学到的特征的空间层次结构可以有效地作为视觉世界的通用模型。在本文的研究中,选用VGG模型作为预训练模型,它是在大型数据集ImageNet中训练而来,可以实现1 000种图像分类,VGG模型通过反复堆叠3×3的小型卷积核和2×2的最大池化层,成功地构筑了16层深的卷积神经网络,由13个卷积层+3个密集全连接层叠加而成,通过加深网络结构提升了性能。VGG模型错误率很低,同时拓展性很强,迁移到其他图片数据上的泛化性非常好,常用来作迁移学习的预训练模型。其详细建构如图1所示。

图1 VGG模型详细建构Fig.1 VGG model detail architecture

2 级联神经网络模型构建

2.1 第一级网络构建

第一级分心行为预筛选卷积网络主要完成特征粗提取,筛选出原始图像中的可疑分心行为图像,不需要进行精确的图像检测,可以由一个简单的神经网络完成。为了提升检测速度,在本层搭建了一个9层深度的卷积神经网络,网络结构如图2所示。其中包含1个输入层,6个卷积层,3个池化层,3个全连接层,1个输出层。输入层是以归一化为64×64像素大小的图像集作为输入,6个卷积层均采用3×3像素大小的卷积核进行卷积运算,池化层采用2×2像素大小的采样窗口,以最大值池化方式进行降维操作,经过卷积、池化、扁平化等操作后将结果输入到全连接层,最后通过输出层生成特征粗提取图像检测结果,在保证较高准确率的前提下,提高检测速度。

图2 第一级神经网络详细建构Fig.2 The first level neural network constructs the composition in detail

2.2 第二级网络构建

第二级分心行为精确检测卷积网络相比较第一级较为复杂,设计了更深的网络层,目的是对第一级输出的可疑分心行为图像进一步精确检测,识别其分心行为类型,提升检测准确性。该层设计使用了VGG模型的权重参数,提取其空间特征进行改进训练,重新训练了其分类器,然后对模型进行微调,重新训练了其部分卷积层,以达到更高的检测精度。

2.2.1 空间特征提取

卷积神经网络主要包含两部分:一部分是池化层和卷积层,称为模型的卷积基,另一部分是密集全连接层[7-8]。特征提取就是取出训练好的网络卷积基,在上面运行新数据,添加新的密集全连接层构成的分类器,输出自己的分类预测,其特征提取示意图如图3所示。特征提取只选择提取卷积基释放密集全连接层的原因在于,卷积基在训练中学到的表示更加通用,其特征图表示通用概念在图像中是否存在,任何计算机视觉问题,这种特征图存在通用信息,而密集连接层学到的是针对模型训练的类别,结果是某个类别出现在整张图像中的概率信息,它不再包含物体在输入图像中的位置信息,舍弃了空间概念,位置信息主要由卷积特征图表示[9-12],所以提取空间层次结构特征可以将训练好的大量通用权重参数应用在新的分类问题中。现提取VGG整个卷积基,提取出来后的特征矩阵维度为(4,4,512),然后在这个卷积基上添加卷积层来扩展已有模型,训练自己的密集连接分类器,并在输入数据上端到端地运行整个模型,确保每个输入图像都可以经过卷积基。经过迁移学习后的第二级网络模型架构如表2所示。由表2可以看出,VGG的卷积基约有147万个参数,本文中新添加的密集全连接层有20万个参数,为了确保卷积基权重参数保持不变,在开始训练密集全连接层前需要冻结卷积基,让其之前学习到的表示不会被修改,否则会因为新添加的密集全连接层中的卷积层是随机初始化的,训练时非常大的权重更新会在网络中传播,对之前卷积基预学习的表示造成破坏。

图3 特征提取示意图Fig.3 Feature extraction schematic diagram

权重层输出维度参数数量VGG51214 714 688Flatten层8 1920卷积层2562 097 408卷积层1257

2.2.2 模型微调

VGG模型是一个大型预训练模型,有1 000个类别输出,其训练的原始数据集与本文数据集差异较大,所以本文在提取的VGG特征上添加自定义密集全连接层后训练的模型上进一步改进,对卷积基顶部几层解冻重新训练权重,重新学习模型中的抽象表示,让这些表示和驾驶行为检测更加相关。卷积基中靠近底部的层编码是更加通用的可复用特征,而更靠近顶部层编码的是更专业化的特征[13],微调这些更专业化的权重参数更加有用。但随着训练参数越多,过拟合的风险越大,整个卷积基有大约150万个参数,在本文的数据集上如果训练过多权重参数是存在过拟合风险的,所以为了确定解冻几层卷积层重新训练专业化特征参数,又给定模型一个打电话分心驾驶行为图像,输入后将VGG模型的全部卷积基输出的特征图从宽度、高度、深度3个维度进行可视化显示,将每个通道的内容绘制成二维图像。通过可视化验证,发现卷积层第1层是各种边缘探测器的集合,几乎保留了原始图像中的所有信息,如图4所示。随着层数的加深,卷积层所提供的特征越来越抽象,即关于图像视觉内容的信息越来越少,空白过滤器越来越多,而关于类别的信息越来越多,基于此,选定解冻卷积基的第8~13层,因为在第8层过后图像视觉内容信息逐渐消失,第8~13层部分通道可视化二维图如图5所示,解冻卷积基的第8~13层后联合自定义添加的第14~16层再次重新训练。至此,本文提出的级联神经网络检测模型第2层最终架构调整如图6所示。

图6 级联神经网络第二级最终架构调整图Fig.6 Final architecture adjustment diagram of the second level of cascade neural network

图4 卷积层第1层64个通道图像信息可视化二维图Fig.4 Layer 1 of convolution layer 64 channels image information visualization two-dimensional graph

图5 卷积层第8~13层部分通道图像信息可视化二维图Fig.5 2D visualization of partial channel image information in layer 8~13 of convolution layer

3 实验设计与分析

3.1 数据预处理

对司机分心驾驶行为的研究目前主要集中在疲劳驾驶方面,其他分心驾驶行为数据集较少,大多学者研究时多采用自建数据集,数据集较少且种类不全,有效数据有限。本文研究时采用的数据集来自美国State Farm公司最新公开的司机驾驶行为数据集,它采集了近百位驾驶员的不同驾驶行为,数据集共有102 150张,尺寸大小都为640×480像素,所有图像被人工确认划分为本文检测的10个类别。为了保证数据平衡,在每个类别里大约选取2 000多张图像,合计23 500张图像作为模型训练数据集,对其按照8∶1∶1的比例划分为训练集、验证集和测试集,对两级神经网络采用两种不重复的同样大小的数据集进行训练,数据集中部分驾驶行为样本如图7所示。在训练时为了防止过拟合,增强模型泛化能力,还采用数据增强技术从现有的训练样本中利用多种随机变换生成可信图像扩充数据集。使用图像随机旋转范围90°、水平、垂直方向平移比例0.3、90°随机错切、透视变换0.2、缩放范围0.1、水平、垂直随机翻转等变换参数来扩增数据。对一张伸手到后排的分心驾驶行为图像进行数据增强后的部分扩增图像如图8所示。

图7 数据集中部分样本图像Fig.7 Partial sample images in the data set location of the structure

图8 对一张伸手到后排的样本数据应用数据 增强后的部分扩增图像Fig.8 Apply a partially augmented image of the data to a sample that reaches back

对级联神经网络模型测试和其他对比试验测试,使用的是未经过两级神经网络训练时使用过的其他43 000张原始图像样本,每种驾驶行为样本数据为4 300张。

3.2 评估指标

模型训练中通常使用准确率PAcc和损失函数LLoss作为模型的评价指标。准确率是评价模型对全部样本的判定能力,在分类问题中要将实例分为正类(positive)和负类(negative),分类模型在实际的分类结果中可能会出现下面4种情况:若一个实例是正类,分类器将其判定为正类,称为真正类TTP;反之,如果分类器将其判定为负类,称为假负类FFN;若一个实例是负类,分类器将其判定为正类,称为假正类FFP;反之,若分类器将其判定为负类,称为真负类TTN[14]。这样可以推导出准确率PAcc的计算式为

(1)

本文中的准确率表示识别正确的样本占总样本的比例。除此之外,训练过程中的损失值也是重要指标之一,它是用于评价学习权重张量的反馈信号,能够衡量当前任务是否解决,训练中需要最小化。损失函数采用的是Softmax损失,计算式为

(2)

式(2)中:N为批量的大小;n为样本类别数;yi为第i个样本特征向量对应的标签;Wyi为其对应的权值;byi为其对应的偏置。

3.3 模型训练

为了训练得到准确和泛化性强的模型,需要在训练模型的过程中监控训练损失和验证损失,以及最重要的训练准确率和验证准确率,如果发现模型的验证数据的性能开始下降,则可以判断为过拟合。设定当验证准确率连续10轮训练都不再优化时则提前终止训练。通过反馈反复调节超参数、尝试不同的Dropout比例等,直到模型达到最佳性能。根据训练过程计算的值画出的损失曲线和准确率曲线具有一定噪声,本文中将其每个值都替换为指数移动平均值,让曲线更平滑直观。对于级联神经网络第一级模型训练过程的损失曲线和准确率曲线平滑后如图9所示;对于级联神经网络第二级模型训练过程的损失曲线和准确率曲线平滑后如图10所示。

将两个模型分别经过本文测试集测试,结果抑制最大概率值,取前三的值平均后,级联神经网络第一级模型准确率为0.871,级联神经网络第二级模型的准确率为0.905,级联模型最终检测准确率达到0.933。

图9 级联神经网络第一级模型训练100轮后的 训练损失和准确率平滑曲线Fig.9 The smooth curve of training loss and accuracy after 100 rounds of training of the first level model of cascade neural network

图10 级联神经网络第二级模型训练100轮后的 训练损失和准确率平滑曲线Fig.10 Smooth curve of training loss and accuracy after 100 rounds of training of the second level model of cascade neural network

3.4 实验及分析

为了评估级联卷积神经网络检测框架检测精度和检测时间,设计了3组对比实验,对比不同模型在相同数据集上的测试结果。实验1的对比模型选取了标准的深度残差网络(ResNet50)模型,基于本文数据集训练检测模型。实验2的对比模型选取了权重微调后的VGG模型,对VGG模型提取特征迁移学习,重新训练8~13层权重,利用本文训练集训练基于VGG迁移学习微调权重的检测模型。实验3的对比采用了级联网络第二层使用无迁移学习的VGG模型,基于本文数据集训练检测模型。实验结果如表3所示。

表3 不同方法在本文测试集上的实验结果对比Table 3 Comparison of experimental results of different methods on the test set in this paper

从实验1和实验2的结果可以看出,原始ResNet50检测模型的在本文验证集上的准确度只有86.59%,而应用本文级联网络第2层迁移学习权重微调方法后的VGG模型准确率可以达到90.05%,准确率相比ResNet50网络提升3.46%。正常情况下,同一训练集ResNet50模型准确率要高于VGG模型准确率,经过实验证明,经过迁移学习的模型检测准确率要高于原始框架下的检测模型。

从实验2和实验3的结果可以看出,增加了本文第1层级联神经网络和原始VGG模型网络构成的准确率可以达到89.73%,准确率低于权重微调的VGG模型0.32%,但高于原始ResNet50模型3.14%。这说明增加级联神经网络提高检测模型的准确率,但效果低于迁移学习权重微调检测模型。

综上所述,实验结果表明,本文提出的级联神经网络检测框架效果最好,其利用第一级检测模型联合第二级经过迁移学习权重微调的VGG模型在测试集上检测的准确率最高,可以达到93.3%,对各种分心驾驶行为可以实现较为准确的检测。

4 结论

实时检测驾驶员分心驾驶行为对交通事故预防具有重大意义,通过研究可以得出以下结论。

(1)本文提出的双级联卷积神经网络检测框架可以准确地检测出9种驾驶员分心驾驶行为。相比主流单模型检测方法,在保证算法效率的同时准确率均有明显提升,准确率达到93.3%,有效降低了误检率。

(2)通过构建级联神经网络,在第一级网络对原始数据进行快速筛选,可以有效减少后续网络的计算负担;在第二级网络深度迁移学习VGG模型权重,可以提高对分心驾驶行为精确识别的准确率。

(3)级联神经网络方法对比单模型检测方法,效果更好,具有较强的鲁棒性和模型泛化能力。

猜你喜欢
级联驾驶员准确率
基于高速公路的驾驶员换道意图识别
铀浓缩厂级联系统核安全分析
基于眼动的驾驶员危险认知
驾驶员安全带识别方法综述
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
如何提高汽车驾驶员预防事故的能力
整体级联式增压空气冷却器的进气模块