基于深度学习的车辆和行人的目标检测研究与实现
2021-09-10魏博硕马自强
魏博硕 马自强
摘要:车辆和行人检测技术是目标识别领域的研究热点。本论文研究了一种基于深度学习的交通目标检测算法,该算法基于 YOLO v3 框架,经过Darknet-53网络进行特征提取和分类,获得边界框,从而完成车辆和行人多类交通目标的检测。实验显示,本算法能有效检测不同交通场景下不同类别车辆和行人,性能较好。
关键词:深度学习;YOLO v3;车辆检测;行人检测;
1绪论
目标识别是自动驾驶最为重要的一个环节。经过对交通事故发生的原因进行分析,发现大多数是由于驾驶人员不清楚前方路况信息导致。因此,迫切需要一种可以对道路目标区分车辆和行人的算法,将检测到的分类信息传递给相关人员和部门,以确保交通安全。因此,车辆识别和行人识别技术已成为了各大互联网科技公司和汽车公司的研究热点[1]。
近年来计算机视觉领域发展迅猛,基于深度学习的目标检测技术层出不穷。主要分为两大类,一是以Fast R-CNN和Faster R-CNN为代表的基于区域生成的两阶段检测算法;二是以YOLO系列和SSD为代表的基于回归的单阶段检测算法。两阶段的检测算法通常具有较高的检测精度,但检测速度较慢,而单阶段检测算法则是提高了检测速度,同时检测的精确度也不断地提升[2]。本文选择YOLO v3模型作为交通智能识别的主要技术。
YOLO v3模型是由1*1卷积再进行3*3卷积组合而成的骨干特征提取网络[3],由于总计有五十三个卷积层,又称为Darknet-53。YOLO v3中,只有卷积层,通过调整卷积核的步长stride来控制输出特征图的大小尺寸。因此输入图片大小尺寸几乎没有限制。该模型借鉴了特征金字塔结构图整体设计概念的想法,大尺寸的特征图检测小尺寸的物体,而小尺寸的特征图用于检测大尺寸的物体。YOLO v3输出三个特征图,大目标特征图降采样三十二倍,中目标特征图降采样十六倍,小目标降采样八倍。输入图像先经过没有全连接层的Darknet-53网络,再将YOLOblock生成的长度和宽度没有变化的特征图经1*1卷积、3*3卷积层之后生成的特征图再经过1*1卷积加上采样,拼接Darnet-53网络的中间层输出结果,产生特征图二。同样的循环之后产生特征图三。YOLO v3采用多个独立的逻辑回归函数输出類别得到分类,用交叉熵计算类别损失,这就实现了多标签分类。
2 基于YOLO v3模型的多目标检测
2.1 系统整体框架
本文以YOLO v3算法为框架,输入图像的大小为416*416,经过Darknet-53网络进行特征提取和分类,产生候选框,接着在图片或者视频中画出边界框,最后统计检测的总车辆数和总人数。整体框架如图1所示。
2.2网络特征提取
YOLO v3提取多特征层进行目标检测,一共提取三个特征层,先通过1*1的卷积层进行降维,再通过3*3的卷积核来进行三种不同尺寸的提取特征,三种特征层的shape分别为(52,52,256)、(26,26,512)、(13,13,1024),每个特征层都要预测出坐标、高宽、类别置信度,这三个特征层后面用于与上采样后的其他特征层堆叠拼接来进行特征融合。提取的车辆特征包括车头、车的侧身、轮胎等,行人的特征包括头部、手部、腿部等特征。
2.3目标分类和边界框绘制
特征融合后的数据作为输入数据,对边界框进行多标签预测使用sigmoid分类器进行分类来得到各个类别的概率,训练时使用交叉熵损失同时结合Adam来进行优化。
边界框确认算法借鉴了Faster R-CNN中的锚框思想并对其进行了改进,改进后的锚框宽和高是将训练数据集中的锚框进行kmeans聚类来得到的,不需要经过手工来获得[5]。如图2中所示,展示了YOLO v3目标边界框预测过程。图中虚线的矩形框是预先设定边界框,实线矩形框是通过Darknet-53网络预测的偏移量计算得到的预测边界框。其中预先设定的边界框在特征图上的中心坐标是(cx,cy),预先设定的边界框在特征图上的宽和高是(pw,ph),网络预测的边界框中心偏移量是(tx,ty),宽高缩放比是(tw,th),最终预测的目标边界框是(bx,by,bw,bh),sigmoid函数目的是将预测偏移量缩放在0至1之间,使得预设锚框的中心坐标固定在一个格子之中,能够加快网络收敛。
将Darknet-53网络预测到的x、y和置信度使用sigmoid函数激活分别偏移量和类别概率,接着讲偏移量加到中心坐标中,将(x,y,w,h)转换成图像中左上角坐标和右下角坐标,过滤类别概率低于0.5的边界框,利用NMS算法得到最终的定位框,最终得到每个方框(ind,x1,y1,x2,y2,s,s_cls,index_cls)并画出。定位框算法如下:
1、将(x,y)和置信度使用sigmoid函数激活
2、将偏移量添加到中心坐标中
3、将类别分数使用sigmoid函数激活
4、将(中心x,中心y,高度,宽度)转换成(左上角x,左上角y,右下角x,右下角y)
5、过滤掉置信度低于0.5的框
6、提取得分最高的分类以及该类的索引
7、非极大抑制
8、画出定位框
3 YOLO v3模型的实现
3.1 实验数据及参数设置
本文选用已经标注好的VOC2012数据集,包括训练集5717 张图像、验证集5823张图像、训练验证集11540张图像。图像尺寸大小为416*416。参数设置包括学习率初始值设为0.001,权重衰减值0设为.001,动量参数设定为0.9。
3.2实验结果
交通场景下的数据测试主要考虑到不同的光照强度、不同车辆之间的遮挡、人与人之间的遮挡等问题。本文采用的测试交通场景具有广泛性,涵盖了单向道路、双向道路不同的路段,来确保多目标进行检测的准确率。
实验结果如图3所示,在图片或视频中框出行人和车辆,车辆检测的类型包括car、bus、motorbike三种类型,并显示出该场景下总车辆数和总人数。经多次试验表明,场景中包含摩托车时,无法识别出摩托车上的人,但是可以很好的识别出其他两种类型的车辆和行人。
本实验精确度达到了84.25%,精确度变化曲线如图4所示。精确度计算如公式(1),其中:是被正确预测为正样本的数量,也就将图片中的图像识别成车的数量;是负样本被预测为正样本的样本数量,也就是误判的数量。
4 结束语
本文通过改进YOLO v3的损失函数和优化训练过程中的参数, 使用K-means算法聚类初始目标边界框以及开源数据集进行训练, 实验结果表明,改进后的算法在检测准确率以及检测速度各方面上有了提升。
参考文献:
[1]杨恩泽. 基于深度学习的交通车辆检测与识别算法研究[D].北京交通大学,2019.
[2]卞山峰. 基于YOLO模型的车辆实时检测算法研究[D].河南工业大学,2020.
[3]洪松,高定国.基于YOLO v3的车辆和行人检测方法[J].电脑知识与技术,2020,16(08):192-193.
中南林业科技大学涉外学院 湖南 长沙