基于双向特征金字塔和残差网络的危化品运输车辆检测①
2022-02-15谢耀华
谢耀华,代 玉,周 欣,李 刚
1(国家山区公路工程技术研究中心,重庆 400067)
2(招商局 重庆交通科研设计院有限公司,重庆 400067)
3(自动驾驶技术交通运输行业研发中心,重庆 400067)
4(长安大学 电子与控制工程学院,西安 710064)
1 引言
化学危险品简称为危化品,在工业生产、人民生活、科技发展等领域有着举足轻重的作用.随着危化品的生产、运输、使用越来越规范,各行各业对危化品的需求也是与日俱增的[1].不同其他常用的生产、生活材料,危化品本身具有很大的危险性.这些危险性包括燃烧、爆炸、有毒、具有放射性等,一旦出现危化品事故,对于国家和人民来说都将是一场可怕的灾难[2].国家对于危化品的生产、运输、使用也制定了严格的规定,这在很大程度上避免了很多事故的发生.但危化品引发的事故仍然时有发生,而且很多是发生在运输的途中的[3].在我国,道路运输是危化品运输的主要手段,每年有60%的危化品是通过道路进行运输的,随着我国道路交通网络不断的发展和完善,这个比例会逐步上升[3].为了提高道路运输的安全性,使用深度学习技术在重要路段对危化品车辆进行识别和跟踪,通过对危化品车辆的监测,在危险路段或事故高发路段提早对危化品车辆进行警示,避免因司机或路段的问题导致事故的发生,也可以在事故发生后及早进行救援行动,减少人员和财产的损失,避免二次事故的发生.
危化品车辆和普通货车在外形上很像,通过外形大小来对危化品车辆进行识别是不靠谱的.危化品车辆独有的标识是车顶的三角形危险标识和车牌旁的矩形危险品标识[4].如图1所示,图1(a)是车顶标识牌,图1(b)是车牌标识.一般的,通过对这两个标识进行检测和识别是比较有效的,但相比于整个车辆,这两个标志由于其位置和大小的特殊性,检测起来也更加困难.
相较于传统人工设计进行特征提取的方式,使用深度学习进行车辆检测的方法得到了越来越多研究者的认可,通过卷积神经网络进行特征提取有效的提高了目标检测的精度和速度.Watkins 等人[5]对ResNet50网络进行优化,使用空间加权池化结构,同时在分类过程之前添加了一个本地化步骤,在综合汽车数据集上进行训练,最终的结果准确度比传统神经网络方法提高了3.7%.费东炜等[6]针对网络对于未训练数据识别差的问题,以HashNet[7]为基础,使用双线性模块替换原网络中的AlexNet[8]部分,提高模型的细粒度特征提取能力,然后通过匹配特征生成的哈希码和数据库中的哈希码实现对车辆的细粒度特征提取能力检测.史凯静等[9]在Faster-RCNN[10]的基础上进行改进,融合多种网络模型,进一步提高了模型的准确性和鲁棒性.
张富凯和杨峰等[11]通过提出单阶段的深度神经网络:DF-YOLOv3 模型实现对车辆的实时检测,DF-YOLOv3通过融合6 个不同尺度的卷积特征图和残差网络中相应尺度的特征图,作为用来进行预测任务的特征金字塔,最终结果表明模型具有较高的检测性能.郑冬和李向群等[12]针对深度神经网络规模过大的问题,设计了一种轻量化的SSD[13]网络模型.该网络模型使用MobileNetv2[14]代替VGG[15]进行特征提取,然后使用SSDLite 代替SSD,从而达到减小模型规模,加快检测速度的目的.
目前比较常见的神经网络框架有单阶段和双阶段两种.双阶段神经网络如Faster-RCNN,这种模型的检测步骤分为两步,首先使用区域建议算法得到大致目标位置,然后进行分类,这种方法精度高,但速度慢.单阶段神经网络如SSD和YOLO,这种模型可以一次性进行目标分类,是一种端到端的方法,这种方法速度快,但精度没有双阶段网络高[16].
危化品车辆检测任务作为一个二分类任务,有其特殊性[17],为了能在保证检测精度的同时,尽可能的提高检测的速度,本文基于高速路危化品车辆数据集,提出了一种将残差网络和双向特征金字塔结合神经网络模型.该模型充分利用残差网络和双向特征金字塔的优势,可以极大的提高目标检测的精度,同时,为了减少网络中的参数量和计算量,改进了残差块的卷积层,使得整个模型可以实现高精度和高速度的目的.
2 基于双向特征金字塔和残差网络的危险品车辆检测算法
危险品车辆检测的目的是通过一系列的算法和手段在图像中对特定车辆进行识别[17],根据识别出的车辆位置信息对特定车辆的运行轨迹进行再现和跟踪[18].为实现这个目的,本文提出了一种基于双向特征金字塔(BFPN)[19]和残差网络[20]的危险品运输车辆检测算法,用于对公路上运行的危险品车辆进行识别和跟踪.
危化品车辆检测算法流程如图2所示.
图2 危化品车辆检测算法流程图
2.1 危化品车辆数据集的建立
对于深度学习模型来说,数据集至关重要.本文从重庆市高速路监控摄像视频中截取包含危险品车辆的图像用来制作危险品车辆检测数据集,同时还对非危险品车辆图像进行截取,最终采集到2 500 张原始车辆图像数据,其中危化品车辆1 500 张,非危化品车辆1 000张.采集到的原始图像像素大小为4096×2160.
得到这些图像数据后,通过数据平移、旋转和亮度调整等数据扩增方式,将整个数据集扩增至8 000 张.原始数据图像通过LabelImg 软件对危险品车辆图像进行标注,标注标准是除了尽可能包含整个车辆外,对于危险标识和车牌同样进行标注.图3为标注图片时软件界面截图.
如图3所示,标注车辆标签时分为危化品车辆和普通车辆进行标注,危化品车辆需要对整车、车牌、车顶和车牌旁危险标志分别使用不同标签进行标注,普通车辆对整车和车牌使用不同标签进行标注.标注完成的图片自动生成对应的xml 文件.图4展示了通过LabelImg 软件标注后生成的xml 文件和文件打开后显示的部分内容.
图3 数据集标注界面
如图4所示,图4(a)是生成的xml 文件,图4(b)是xml文件打开后显示的部分内容.Xml 文件内包含有图片标注的详细信息,包括文件名、文件地址、目标标签、目标坐标等信息.通过Python 代码对这些文件进行读取,得到模型训练所需的信息.
图4 标注完成后生成的xml 文件及文件内容展示
2.2 危化品车辆检测模型的搭建
本文提出的车辆检测神经网络模型(Res-BFPN)基于双向特征金字塔和残差网络.在模型设计上使用残差网络作为前期特征提取网络,每层输出分辨率不同的特征图输入到双向特征金字塔网络,通过双向特征金字塔融合不同分辨率的特征图,进行结果的识别,下面进行详细描述.
2.2.1 双向特征金字塔网络
特征金字塔[21]通过一个自顶向下的结构进行多尺度信息融合,很好的解决了在进行目标检测时多尺度特征难以处理的问题.很多网络融合特征金字塔后,性能都有了一定程度的提升.但由于单向信息流的限制,这种结构无法更好的对特征进行融合,对模型效果的提升有限[19].
本文采用的双向特征金字塔结构如图5所示.在结构上舍去了只有单个输入的节点,借鉴U-Net[22]的跳跃连接思想,额外增加了一个从输入直接到达输出的通道,同时,为了更好的进行特征融合,将这种网络结构设计成一个神经网络层,根据不同的目标需求,可以进行组合叠加[19].
图5 双向特征金字塔网络结构图
如图5所示,不同于传统的单向特征金字塔,本文使用的双向特征金字塔增加了一个自下而上的传输通道,同时,剔除了只有单个输入的上下两个节点,在中间的同级节点间增加了从输入直达输出的通道,这种网络结构的设计有以下3 个优势.
(1)相比于其他的双向特征金字塔,简化了结构,在不影响性能的前提下减少了参数数量;
(2)这种直接从输入到输出的通道丰富了特征信息,使得网络的特征融合更加准确;
(3)本文的双向特征金字塔网络可以看作是一个神经网络层,在使用时更加灵活,更具有针对性.
2.2.2 残差网络模型
残差网络一经提出就受到大量研究人员的关注,很快便成为特征提取网络的热门,各种改进网络也层出不穷.ResNet 之所以受到如此多的关注,主要原因在于它可以实现更深的网络,同时避免深层神经网络带来的梯度消失或爆炸的问题.本文使用ResNet50 作为特征提取网络,就是考虑到它以更少的参数,更深的网络,可以带来更好的效果[20].
同时考虑到危化品车辆检测时需要同时对多种尺度的目标进行检测,我们引入了循环残差网络模块(RRCNN)[23]替换原本的卷积层.循环残差网络模块基于循环神经网络和残差网络的思想进行设计,在保证模型深度的同时,大大简化了模型参数;通过内部的特征积累进行更好的特征表示,对于小像素特征有更好的提取能力.循环残差模块中有一个超参数t代表卷积层后跟的循环卷积单元数.在本模型中设置t的值为3.图6(a)是循环残差模块结构,图6(b)是展开的循环残差单元结构图.循环残差模块可以作为单个卷积层进行使用.
图6 循环残差网络模型结构图
基于循环残差模块,我们改进的残差块(R2 Res block)如图7所示.我们通过将原本残差块中间的卷积层替换为循环残差模块层,其他保持不变.
图7 残差块结构图.
2.2.3 Res-BFPN 网络模型的建立
基于残差网络和双向特征金字塔网络,本文提出了用于危险品运输车辆检测的Res-BFPN 网络模型,模型的整体架构如图8所示,左侧是残差网络用于特征提取,中间是3 个双向特征金字塔网络串行连接用于不同尺度的特征融合,右侧是进行分类和回归的网络.
如图8所示,整个模型以残差网络为骨架进行搭建,结合双向特征金字塔和循环残差网络模块进行设计.左侧的残差网络共5 个卷积块,每个卷积块由不同数量的残差块组成,因此总的卷积层数为50.图像从底部的第一层进入网络,每经过一次卷积特征图都会缩小,得到该层最终的特征图后,然后输入到对应的特征金字塔网络层.特征金字塔接收到ResNet 输出的特征图后进行特征融合.首先是自顶向下的一个通道.由于取消了顶层和底层的节点,因此顶层和底层相当于直接一个从输入到输出的通道,其余两层除了本层的节点外还通过一个跳跃连接进行传输,输出到对应的自底向上的节点,整个模型使用3 个双向特征金字塔进行连接,特征金字塔输出的信息最终输入到分类和回归网络中,通过分类和回归网络得到最终的结果.
图8 Res-BFPN 网络模型的整体架构
3 实验与分析
3.1 实验环境
本文进行实验的平台是高算云服务平台,通过Xshell 软件进行连接,搭建基于PyTorch的深度学习环境进行模型的训练和验证.该高算平台拥有16 个计算节点,2 个GPU 节点,具有大容量的并行文件系统,完全可以满足本文模型进行所需的实验条件.
3.2 模型训练
为了能更好的对模型进行训练,我们按照6:2:2的比例将数据集随机分为训练集、验证集和测试集.为了找到模型合适的参数,经过反复训练和测试,最终模型参数设置如下:学习率为0.025,迭代次数10 000 次,批次大小为10,权重衰减为0.000 2,使用Adam 优化器进行优化,图9所示为模型训练损失图.
从图9可以看到,损失从最开始的3.4 快速下降,最终在0.2 左右小幅波动,说明模型基本得到了充分训练,达到了良好的训练效果.
图9 模型训练损失曲线图
3.3 模型对比与指标
为了能验证本文模型的有效性,选取了目标检测领域非常有代表性、效果比较好的几种网络模型作为对比.这些模型包括有传统方法的结合:方向梯度直方图(histogram of oriented gradient,HOG)[24]结合支持向量机(support vector machine,SVM)[25],双阶段检测算法:以ResNet101为基础网络的Faster-RCNN 网络,以ResNet101为基础网络的基于区域的全卷积网络(R-FCN)[26],单阶段检测算法:YOLOv3 网络[27]和SSD 网络.
为了直观的对各个模型的性能进行比较,本文选用准确率(accuracy)、精确率(precision)、召回率(recall)、每秒处理的图像数量(FPS)和网络模型参数作为模型的评价指标.前3 个指标通过混淆矩阵可以直接进行计算,如表1所示为混淆矩阵表.
表1 混淆矩阵
表1中,TP又叫做真阳性,在这里表示正确识别危化品车辆的个数,TN叫做真阴性,表示正确识别的非危化品车辆的个数,FP叫做假阳性,表示错误识别为危化品车辆的个数,FN叫假阴性,表示错误识别为非危化品车辆的个数.通过混淆矩阵可以得到准确率、精确率和召回率的计算如式(1)–式(3)所示.模型每秒处理的图像数量则通过测试集中所有图像检测速度的平均值作为模型的检测速度.
3.4 实验结果与对比
如表2所示,共6 种模型在本文自行采集的危化品车辆数据集上进行了实验,实验结果表明,基于深度学习的神经网络在检测精度上要明显优于HOG+SVM的传统方法,Faster-RCNN 网络和R-FCN 网络在检测精度上要优于YOLOv3和SSD,但在速度上则不如YOLOv3,SSD 网络和HOG+SVM,YOLOv3和SSD网络在速度上则要优于HOG+SVM.这一结果是由各个模型结构上的差异导致的.双阶段网络模型将检测任务分成两步,在获得高精度的同时降低了模型检测速度,单阶段网络模型则通过牺牲部分精度换取更高的检测速度,传统的检测方法通过手工标记的方式得到目标特征,然后进行分类训练,没有神经网络结构,反而比复杂的神经网络结构在速度上更快.
表2 各种模型检测性能对比表
本文提出的模型通过融合残差网络和双向特征金字塔,同时使用循环残差模块改进残差块中的常规卷积块,可以有效的减少网络模型的参数,在提高检测精度的同时,在速度上也具有很大的优势,实验结果也表明我们的模型在精度上要优于Faster-RCNN 网络和RFPN 网络,在速度上和SSD 网络相差不大.这些结果有效的证明了我们模型的优越性.
图10是各个模型的准确率和FPS,从图中可以更加直观的看到传统的HOG+SVM 方法虽然精度是最低的,但FPS 却比Faster-RCNN和R-FPN 要高,同时可以看到,我们的模型在取得了最高的准确率的同时保证了很高的FPS.
图10 各个模型准确率和FPS 对比图
图11是本文模型对危险品车辆检测的部分结果图.两张图中红色卡车具有很大的相似性,其区别仅在于车顶和车牌下是否有危险品标志.
从图11中可以看到,危险品车辆被蓝色框线框出,并被准确分类为危险品车辆,非危险品车辆被绿色线框出,被识别为普通车辆.最终的识别结果是正确的.
图11 模型检测结果图示例
4 结论
本文针对高速公路危险品车辆检测问题提出了一种新的车辆检测模型.本文提出的模型以融合循环残差模块的残差网络作为特征提取网络,结合双向特征金字塔网络进行特征融合,最终通过分类和预测网络输出预测结果.为了能更好的对模型进行训练,我们通过对高速路监控摄像视频进行筛选,制作了专门的危化品车辆数据集.通过在我们的数据集上进行实验,我们对比了包括HOG+SVM、Faster-RCNN、R-FCN、YOLOv3和SSD 共5 种方法,实验结果表明,本文提出的模型在识别精度上要优于其他5 种方法,达到了0.961,检测速度上仅仅略低于YOLOv3,达到了43.2,基本实现了实时检测.