基于深度学习的服务区危化品车辆识别算法研究
2019-07-01曹鑫胜
曹鑫胜
(山西交通实业发展集团有限公司,山西 太原 030006)
1 研究背景
危化品是易燃、易爆、有强烈腐蚀性化学物品的总称,是容易造成可怕的危险结果的物品。服务区作为高速公路的“中转站”、“加油站”,是长途旅客休息的重要场所,是重要的人员、车辆的集散地和密集区,危化品车辆进入服务区,就等于是一个移动的危险源放到了服务区内,由于它的动态性大,发生事故的时间和地点难以预知,一旦发生事故,极易造成群死群伤的群体性事件,对人民生命财产和公共安全构成极大威胁。
国家和交通运输部特别重视服务区危化品车辆管理工作,2018年交通运输部印发全国公路服务区19项工作重点,其中在第4条加强公共场区管理中,重点提出了要加强危化品运输车的有序停放和安全管理工作。
因此,本研究目的在于,通过深度学习技术,实现服务区危化品运输车辆的实时准确识别,使危化品车辆一旦进入服务区,管理人员能够在第一时间获得信息,帮助管理人员做好车辆在服务区行驶轨迹的跟进管理工作,从而为服务区提高危化品车辆的监测水平,降低危化品车辆监测的人力物力成本,做好责任划分起到良好的辅助作用。
2 研究现状
Faster RCNN是目前比较流行的目标检测算法。Faster RCNN是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。Faster RCNN算法主要由以下几个部分构成:
1) 基于RPN的车辆候选框提取。
通过前向卷积神经网络得到图像候选区域的feature map,然后对该feature map进行分离处理,一者进行物体背景判断,如果该feature map的某个候选区域对应是物体,那么该候选框保留,如果是背景则剔除,二者是输出该区域的bbox的相关四个参数,包括bbox的中心坐标x和y,以及bbox的长和宽。由于常用卷积核的大小都是定长,视野有限,RPN基于此提出anchor的机制对视野进行变换处理,按照长宽比1∶1、1∶2、2∶1进行变换得到不同尺寸的候选框。由于本次任务是对车辆、车牌候选框进行提取,我们可以基于车辆本身一些尺寸约束对上述比例进行修改,更加符合本次任务需求;由于神经网络的初始化是极其重要的一环,能否有好的初始化关乎问题解决的质量,在具体的实验设计中,我们实验在ImageNet数据集上训练好的ResNet-101模型参数对网络模型进行初始化。
2) 物体识别Fast-RCNN。
通过RPN输出的候选框对原始图像进行截取,将截取后的图像经过若干次卷积+pooling操作,然后再通过ROI-pooling和全连接神经网络后输出到两条支路,一是目标分类softmax,一是bbox回归。由于RPN提取的候选框毕竟是一定尺寸下的候选框,难免不能覆盖所有物体的真实框,基于此Fast-RCNN对候选框进行一定程度的修正。
3) 损失函数设计。
涉及到分类问题,定义损失函数是极其重要的,我们初步想法是借鉴Faster-RCNN做法,对于RPN左支路,anchor是否有目标,用0/1来表示,论文中采用的是人为制定的规则来进行判断,根据IoU来进行判断,人为设计了两个阈值0.7和0.3,本次任务我们需要根据自身的任务进行调整阈值。
整个Faster RCNN算法的流程如下:
1) 上面提取得到的CNN特征输入到RPN网络中,得到候选框的类别信息和位置信息;
2) 将RPN网络得到的候选框的特征信息作为输入,输入到后面的Fast R-CNN网络中;
3) 基于前面提取得到的特征映射,进一步使用分类器判别是否属于某个特定的类以及利用回归器精修候选框的位置。
通过以上步骤可以得到车辆特征信息。但是,Faster RCNN算法中的anchor的尺度是固定的,分别为128,256,512,对应于1*2,1*1,2*等三个不同长宽比,也就是说每个特征点上会得到9个anchors,而每个anchor检测的目标box的位置是没有任何限制,可以在图片上的任何位置;Faster RCNN算法中没有结合上层的粗粒度卷积特征,直接在最后一层feature map上进行坐标预测;而这并不适合应用在服务区场合下危化品车辆特征识别,因为在服务区卡口监测到的车辆图片信息,相对于传统的多类别检测任务而言,较为简单,选用这么大型的模型容易产生过拟合现象,因此,为了提高模型在实际场景的泛化率,宜选用简单而准确率较高的模型进行训练。
为此,本研究选用YOLO算法,其通过提出全新的Darknet-19网络模型,结合了粗细粒度的卷积特征,算法中每个特征点上的5个anchors是通过维度聚类,kmeans方法得到的,算法中每一个anchor只负责检测当前grid cell周围正负一个单位以内的目标box,准确度较高;且处理一张图片的时间在0.1 s~0.2 s之间,能够较好地满足真实背景下检测任务的速度要求。
3 研究过程
车辆危化品研究完成从卡口车辆图片中选取有危化品标志牌的车辆,整个车辆检测中包括图片处理流程、模型选型、结果检验等一系列过程。图片在处理过程中主要分为三个步骤,包括图片源获取、图片筛选以及图片标定工作。
3.1 图片源获取
本次研究的图片主要来源于某服务区的卡口车道监控图片,车辆样例图片如图1。
图1 某服务区卡口车辆图片样例
目前共获取到12个月的卡口视频截图,每天图片约为1 500张左右,总计图片数量54万张左右。
3.2 图片筛选
本次主要研究对象为危化品车辆,而卡口监控拍摄得到的是所有类型的车辆图片。由于危化品车辆本身较少,这种情况下如果使用全部图片进行检测会造成巨大的数据倾斜问题,为了完成危化品车辆检测工作,需要大量筛选出危化品车辆作为可用样本,才能完成模型训练的相关需求。通过筛选共得到危化品车辆图片10 000张左右。
3.3 图片标定
在标定工具中打开需要标定的图片,框选中需要标定的区域再选中分类为危化品。完成标定的图片会在原有图片基础上生成xml文件,记录标定框的位置以及分类结果。
4 算法实现过程
4.1 YOLO算法介绍
YOLO算法同样是目前目标检测领域的经典算法。YOLO算法包括两个版本,即YOLOv1和YOLOv2。
4.1.1 YOLOv1的流程
1) 给一个输入图像,首先将图像划分成7×7的网格。
2) 对于每个网格,每个网格预测2个bouding box(每个box包含5个预测量)以及20个类别概率,总共输出7×7×(2×5+20)=1 470个tensor。
3) 根据上一步可以预测出7×7×2=98个目标窗口,然后根据阈值去除可能性比较低的目标窗口,再由NMS去除冗余窗口即可。
4.1.2 YOLOv2算法
YOLOv2作为YOLOv1版本的改进,相比于YOLOv1版本,做了许多的改进。几个主要的改进如下:
1) Batch Normalization:CNN在训练过程中网络每层输入的分布一直在改变,会使训练过程难度加大,但可以通过normalize每层的输入解决这个问题。新的YOLO网络在每一个卷积层后添加batch normalization,通过这一方法,mAP获得了2%的提升。batch normalization也有助于规范化模型,可以在舍弃dropout优化后依然不会过拟合。
2) High Resolution Classifier:目前的目标检测方法中,基本上都会使用ImageNet预训练过的模型(classifier)来提取特征,如果用的是AlexNet网络,那么输入图片会被resize到不足256×256,导致分辨率不够高,给检测带来困难。为此,新的YOLO网络把分辨率直接提升到了448×448,这也意味着原有的网络模型必须进行某种调整以适应新的分辨率输入。
对于YOLOv2,作者首先对分类网络(自定义的darknet)进行了fine tune,分辨率改成448×448,在ImageNet数据集上训练10轮(10 epochs),训练后的网络就可以适应高分辨率的输入了。然后,作者对检测网络部分(也就是后半部分)也进行fine tune。这样通过提升输入的分辨率,mAP获得了4%的提升。
4.2 算法过程
本研究我们采用了YOLOv2算法,YOLOv2算法是基于卷积神经网络技术,其算法流程大致分为下面几步:
1) 采用YOLOv2模型进行车辆检测,训练时利用人工标注的危化品车辆图像进行训练。
2) 采用基于动量的随机梯度下降方法,一共训练50个epoch。初始学习率为0.001,训练到30和40个epoch后分别乘以0.1。
3) 训练图片尺寸统一变换为448×448。采用随机裁剪、随机翻转、颜色变换的样本扩充方法。
4) 将图片resize成448×448的分辨率,图片进行等间距分割得到7×7的网络cell
5) 得到2分类的车辆图片特征。
4.3 算法结果
YOLOv2算法可以完成卡口车辆是否为危化品车辆的检测识别,检测识别的结果,同时该算法在当外界环境发生一定变化的情况下也具有检测作用,车辆位置和光照条件发生变化后依然可以完成相关检测和卡口车辆在夜间的检测情况。
5 算法结果分析
检测完成后,模型会提供当次检测结果的可靠性指标,可靠性指标越高,说明当次检测结果正确的可能性越高。我们可以通过设置阈值对可靠性指标进行判断,阈值设置的越高,则越不容易发生误检的情况,但对于某些光线模糊、位置倾斜等不易检测的图片,会发生漏检的情况。同样当阈值设置的越低,对于某些光线模糊、位置倾斜等不易检测的图片更容易正确的检测出危化品车辆,但同时也容易发生误检的情况。
6 总结
本文从真实高速公路服务区视频出发,以高速公路监控视频为基础,利用YOLO深度学习模型完成危化品车辆识别工作,使危化品车辆一旦进入服务区,管理人员能够在第一时间获得信息,帮助管理人员做好车辆在服务区行驶轨迹的跟进管理工作,从而为服务区提高危化品车辆的监测水平,降低危化品车辆监测的人力物力成本,做好责任划分起到良好的辅助作用。