APP下载

深度可分离卷积网络的驾驶状态识别算法

2021-04-14马迎杰王佳斌郑力新朱新龙

关键词:梯度卷积神经网络

马迎杰, 王佳斌, 郑力新, 朱新龙

( 华侨大学 工学院, 福建 泉州 362021 )

根据国际标准化组织(ISO)的定义,分心驾驶是指驾驶时注意力指向与正常驾驶不相关的活动,从而导致驾驶操作能力下降的一种现象.美国运输部表示,分心驾驶是导致危险发生的最大因素.另外,根据美国国家公路交通安全管理局(NHTSA)的数据,2015年,共有35 092人死于美国道路的交通事故,较2014年死亡人数上升了7.2%,其中分心驾驶需要为39.1万名伤者和3 477名死者负责[1].

早期,研究人员运用生理数据[2-4]和车辆控制数据[5]来进行疲劳检测.Zhao等[6]提出了一种使用随机森林(RF)分类器的特征提取方法.Berri等[7]提出了一种基于支持向量机(SVM)的模型,对于视觉系统获得91.57%的成功率.Craye等[8]提出基于有源传感器Kinect和计算机视觉工具,但是他们的解决方案的数据来源于室内的模拟,与真实驾驶环境还是有很大不同.Le等[9]设计了一个快速RCNN(regions with convolutional neural network features)模型来检测驾驶员是否正在使用手机,以及驾驶员的手是否在方向盘上.Ruiz等[10]通过在300W-LP数据集上训练多损耗卷积神经网络来提供一种优雅而稳健的方法来确定姿势.

现有的驾驶人状态检测方法大都基于某一单项指标,在限定条件下能够达到一定的精度.然而,在实际复杂多变的行车环境下,其准确性和可靠性上还存在问题,难以达到预期要求,且大多数模型不易移植到嵌入式系统中.基于此,本文提出基于快速下采样网络结构(MF-Net)的驾驶状态识别系统.

2 实验数据与处理

2.1 数据处理

实验数据集来源于Kaggle“国家农场分心驾驶员检测”竞赛,包括具有22 400张标记的样本训练集(这些样本在各类之间平均分配),以及79 700张未标记的测试样本.考虑到摄像头的画面、位置、角度差异、司机调整座椅和方向盘位置,以及训练图像大小只有约22 KB,因此希望从训练集中综合获取更多图像,以确保模型不会因神经网络具有数百万个参数而学到不必要的特征,从而产生过拟合[11].

为了防止这种原因导致的过拟合,在训练数据之前,要对训练数据做数据增强.在图像数据中,数据增强的常用方法包括:对图片进行角度偏移、左右偏移、上下偏移、随机放大,以及缩小、水平翻转等.如果将上述方法组合排列起来,对图片进行放大后再进行角度偏移,将会产生大量图像.在此使用Keras中的图片生成器Image Data Generator()来创建更多图像,其中垂直平移范围(height_shift_range)=0.5,水平平移范围(width_shift_range)=0.5,随机缩放范围(zoom_range)=0.5,图像旋转角度范围(rotation_range)=40.

图1是某一位驾驶员身体姿势状态数据.其识别状态中,C0为安全类,C1~C9为非安全类.除了简单的对图像进行几何上的形变,还可以对图片的饱和度、亮度色彩进行小范围的幂次缩放或者乘法缩放等数学操作.另外还可以在不破坏图像质量的前提下,对图像的每个像素进行整体加减法等操作.

对于此数据,“图像增强”还具有其他一些优势.有时来自两个不同类别的图像之间的差异可能非常细微,如图2所示.在这种情况下,通过不同角度对同一幅图像进行多次查看会有所帮助.如果不仔细观察图2的两张对比图像,几乎认为他们属于同一类别.但是,图2(a)的图像是C2(右手打电话)类别,而图2(b)图像是C8(头发和化妆)类别.通过数据增强,网络可以更好的发现其特征,以利于分类.

(a) C0(正常驾驶) (b) C1(右手打字) (c) C2(右手打电话)

(d) C3(左手打字) (e) C4(左手打电话) (f) C5(调收音机)

(g) C6(喝饮料) (h) C7(拿后面东西)

(i) C8(整理头发和化妆) (j) C9(和其他乘客说话) 图1 驾驶员身体姿势识别状态数据Fig.1 Driver body posture recognition status data

(a) C2(右手打电话) (b) C8(整理头发和化妆)图2 两幅不同类别的图像对比Fig.2 Comparison of two images of different categories

2.2 特征可视化

卷积神经网络(CNN)采用类激活映射(class activation mapping)和类特定显着图(class-specific saliency map)寻找目标及改变视频中的注意力.即使用一种CNN中的全局平均池(GAP)生成类激活映射的技术[12],用于特定类别的类激活图表示CNN用于识别该类别的区别图像区域.类激活映射过程,如图3所示.

图3 类激活映射过程Fig.3 Class activation mapping process

图4 CAM类激活图Fig.4 CAM activation diagram

类激活图可用于对CNN的预测决策进行透视,而CNN由图像的不同语义区域触发,用于不同的预测.此外,网络的深层功能可以用于通用本地化,使用最新训练的SVM的权重来生成类激活映射,然后获得类特定的显著映射.随着神经网络训练次数的演化,重要的特征点对应的权重,通过一层层传递,会比较大;反之,不能作为特征的点,就会几乎没有权重.对于CAM图而言,权重大的点会从红到蓝分布,颜色越红说明这个地方越是特征部位.图4为CAM类激活图.

3 基于深度可分离卷积网络的驾驶状态识别算法

3.1 总体框架

采用卷积神经网络(CNN),把图片的部分相邻像素变成长宽更小,高度更深的单元,从而提炼出局部的特征;然后一层一层将特征往后映射,并提取出最终的特征.MF-Net利用深度可分离卷积[13]作为构建块,在一定程度上可降低网络的复杂度.深度可分离卷积实质上是将标准卷积分成了两步:1) 深度卷积,即对每个输入通道单独使用一个卷积核处理;2) 逐点卷积,即1×1卷积用于将深度卷积的输出组合起来,并且深度卷积和逐点卷积的输入与输出都是相同的.

图5 标准卷积参数示意图Fig.5 Schematic diagram of standard convolution parameters

为更好地理解,在此举例说明.首先输入的是2维数据,然后进行3×3卷积并输出3维数据.标准卷积参数和深度可分离卷积参数示意图,分别如图5,6所示.标准卷积参数量为2×3×3×3=54,而深度可分离卷积参数量为2×3×3⊕2×1×1×3=24.将两个参数量进行对比,可得24÷54≈0.44,可以看到深度可分离卷积的参数量是正常卷积参数量的一半,甚至更少,只不过在输入与输出维度相差不大的情况下,效果不那么明显.

当计算能力非常小时,信息容量在网络性能中起着更重要的作用.常规地,减少信道的数量可使紧凑的网络架构适应一定的复杂性.在采用慢速下采样方案的情况下,网络变得太狭窄而无法编码获得足够的信息,从而导致严重的性能下降.因此拟采用快速下采样策略,可以在有限的计算能力下实现了较高精度和较高效率.

图6 深度可分离卷积参数示意图Fig.6 Schematic diagram of depth separable convolution parameters

快速下采样策略是指,在现代的CNN采用分层架构中,同一阶段内各层的空间尺寸保持相同,而下阶段的空间尺寸则通过下采样来减小.鉴于计算能力有限,紧凑型网络的特征表示能力和信息容量均受到限制.不同的下采样策略为紧凑型网络提供了详细的功能表示和大量的信息容量之间的折衷.在低速下采样策略中,下采样是在网络的后续层中执行的,故更多的层具有较大的空间尺寸;相反,在网络的开始以快速的下采样策略执行下采样,这将大大降低计算成本.因此,在固定的计算预算下,慢速下采样策略倾向于生成更详细的功能,而快速下采样策略则可以增加通道数量并允许更多信息进行编码.

(a) VGG16模型 (b) MF-Net模型图7 不同CNN模型的结构对比示意Fig.7 Comparison of structure of different CNN models

不同CNN模型的结构对比示意,如图7所示.从图7可知:VGG16模型的输入图像是224 px×224 px×3,结构中通道数翻倍,由64→128→256→512后保持不变,不再翻倍,而高和宽变均减半,即224→112→56→28→14→7;MF-Net模型采用更快的下采样策略并利用更多的渠道,从而扩大了信息容量并提高了性能.DS Conv:深度方向可分离卷积.每个深度可分离卷积都由两层组成.

基于以上见解,决定在MF-Net的体系结构中采用快速下采样策略,并通过在网络开始时以较大步幅连续应用深度可分离卷积来实现,同时将特征提取过程推迟到最小分辨率.这里不使用最大池化,因为发现它不能提高性能,反而会引入额外的计算.所提出的MF-Net接受尺寸为224 px×224 px的图像,并在前2层内执行4倍下采样,其后在12层内执行32倍下采样.更具体地说,这12个层由1个标准卷积层,5个深度可分离卷积(每个都有一个深度卷积层和一个点向卷积层)和1个深度卷积层组成.

MF-Net采用24层的堆叠架构,包括1个标准卷积层,11个深度可分离卷积和1个全连接层,如表1所示.表1中:“/2”表示该层的步幅为2;DWConv表示深度卷积.由表1可知:在建议的体系结构中可以利用更多的层和更多的通道.这里利用6个深度可分离卷积来提高生成特征的表示能力,前5个深度可分离卷积的输出通道是512个,而最后一个是1 024个.信道数量的增加有助于获取更大的信息容量,这对于在有限的计算资源下的网络性能至关重要.

表1 MF-Net的网络架构图Tab.1 MF-Net network architecture diagram

与此同时,引入微调策略来训练框架.结果表明,该方法取得良好的效果.为提高训练速度,减轻深层神经网络过度参数化,防止过拟合,经过试验在BatchNormalization之后将Dropout比率设置为0.5,以减少复杂的共适应关系,从而创造一个稀疏的网络架构.另外,采用迁移学习以减少训练时间.

3.2 损失函数

(1)

而常用的二分分类模型一般采用的是Binary_Crossentropy的方法,其数学表达式为

(2)

面对的问题是10个分类,而不仅仅是2个分类,因此应采用 Categorical_Crossentropy的方法,而不该采用Binary_Crossentropy的方法.

3.3 优化器选择

(3)

RMSprop有两个特点:1) RMSprop依然依赖于全局学习率;2) RMSprop是Adagrad的一种发展和Adadelta的变体,效果趋于二者之间,适合处理非平稳目标.

Adam方法将惯性保持和环境感知两个优点集于一身.一方面,Adam记录梯度的一阶矩,即过往梯度与当前梯度的平均,这体现了惯性保持;另一方面,Adam还记录梯度的二阶矩,即过往梯度平方与当前梯度平方的平均.这类似AdaGrad方法,体现了环境感知能力,为不同参数产生自适应的学习率.一阶矩和二阶矩采用类似于滑动窗口内求平均的思想进行融合,即当前梯度和近一段时间内梯度的平均值,时间久远的梯度对当前平均值的贡献呈指数衰减.具体来说,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率.Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳,其计算式为

(4)

4 实验结果与分析

实验环境包括硬件设备和软件配置,测试所用的计算机配置为:GPUTesla K80,RAM 25.51GB.软件环境为:Linux 内核版本4.14.137+;Python3.6;tensorflow 1.15.0;keras 2.2.5.将文中所提出的算法与其他算法进行比较,结果如表2所示.表2中:AT,AV分别为训练准确率和验证准确率;LT,LV分别为训练损失和验证损失;M为参数量;N为模型大小;modified VGG16模型是参考文献[14]的相关研究进行实验得到的.

表2 不同算法的实验结果比较Tab.2 Comparison of experimental results of different algorithms

由表2可知:MF-Net模型在相同的计算能力下比其他几种模型都有一定的改进.MF-Net模型验证准确率比ResNet 50模型提升了1.4%,验证损失函数值提升0.241 2;MF-Net模型验证准确率比Xception模型提升了0.81%,验证损失函数值提升了0.108 6.将这些改进归因于MF-Net中快速下采样策略的有效性.最初的Xception模型采用后期慢速采样策略,更多的层具有相对较大的特征图,从而计算量也更大;而为保持计算效率,Xception模型相对较窄,这就限制了信息容量.MF-Net采用更快的下采样策略,这样可以利用更多的信道并减轻信息容量的下降.

由表2可知:MF-Net模型的参数量最少,为3.24×106个,这也意味着训练出来的模型最小,为25 MB,而其他的训练模型都大于100 MB,需要的存储容量大,不利于部署.如存储ResNet 50模型的权重值文件大小为188 MB,模型过大不利于移植到嵌入式系统中.Xception模型训练时间过长,调参难度较大.对于移动或嵌入式设备,内存和缓存资源是有限的,复杂的计算图可能导致频繁的内存/高速缓存切换,从而降低实际推断速度.通过分析表2的迭代次数与准确率间的关系发现:MF-Net网络可以在相同迭代次数情况下可以达到更高的准确率.另外在实验过程中,ResNet 50模型和Xception模型在迭代将近40次时才达到表2中的实验结果,而MF-Net模型只迭代了19次,这也就是说MF-Net模型可以降低计算成本.当前的MF-Net深度学习网络通过构建非循环计算图来实现神经网络的推理,继承了VGG16的简单体系结构,结合了深度可分离卷积,并采用了前期快速下采样策略,使得MF-Net对工程实施非常友好,并在移动物理设备上比较高效.

F1-score是分类问题的一个衡量指标,它是精确率和召回率的调和平均数,最大为1,最小为0,一些多分类问题常常将F1-score作为最终测评的方法.将文中提出的算法与其他算法的F1-score值进行比较,结果如表3所示.由表3可知:文中所提算法在F1-score均值比较中表现最好,其值为0.87.

表3 不同算法的F1-score值比较Tab.3 Comparison of F1-score values of different algorithms

5 结束语

文中提出利用深度可分离卷积作为网络结构MF-Net构建块,并结合快速下采样策略构建驾驶状态识别系统.与VGG 16,ResNet 50等神经网络相比,该模型的深度可分离卷积大大减少了参数量,快速下采样方案的运用增加了网络的信息容量.这种设计有助于性能的提升且所需存储容量小,便于今后嵌入式系统的移植.实验结果表明,文中所提的MF-Net网络模型在驾驶员状态识别任务上具有有效性与优越性.

猜你喜欢

梯度卷积神经网络
基于神经网络的船舶电力系统故障诊断方法
基于应变梯度的微尺度金属塑性行为研究
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
沈阳:在梯度材料的损伤容限研究中取得进展
从滤波器理解卷积
一个具梯度项的p-Laplace 方程弱解的存在性