当前位置:首页 期刊杂志

面向社会运动车辆的识别技术分析及实现

时间:2024-05-04

于琪佳

(北方工业大学,北京 100144)

0 引言

随着我国经济和社会的高速发展,我国民用汽车拥有量连年增长。截至2021年6月,全国机动车达到2.92亿辆,容易引起道路交通堵塞,不利于交通指挥。为了便于分析道路交通情况,促进道路交通的发展,需要识别出车辆的类型等进行合理规划和判断。车辆检测可应用于车辆识别、车辆追踪等,可以在一定程度为道路交通规划提供数据支撑,且可以为车辆厂商提供车辆销售数据参考等。本文将基于回归的检测方法中的YOLOv5算法对多种场景下的社会车辆进行物体识别,以研究其可行性。

1 相关工作

目标检测是计算机视觉领域的基本且重要的问题之一,在人工智能和信息技术的许多领域都有广泛的应用,随着人工智能发展得越来越火热,越来越多的研究者开始关注基于深度学习的车辆检测算法。

2015年,Redmon J[1]提出了YOLO检测算法。YOLO简化了检测流程,提出了将物体分类和物体定位在一个步骤中完成的One-stage方法。2019年刘肯等人[2]对YOLO算法进行改进,提出一种YOLO⁃D算法,把目标检测算法问题变成二分类问题,在不影响检测速度的情况下提高了检测准确率,从而实现对目标车辆的检测。2020年林豪等人[3]提出了一种基于YOLOv3的裁剪检测算法,该算法通过裁剪删去汽车行驶过程中实时拍摄的图片的部分对行驶决策不重要的内容,从而达到节约计算资源和提高检测效率的目的。2021年周雄峰[4]提出一种基于深度学习的自动采集方法,利用YOLOv5检测器在连续帧中的感兴趣区域进行车辆检测,通过DeepSOR跟踪器进行稳健而快速的车辆跟踪,该追踪器可以有效减少目标ID的跳变,提升跟踪稳定性,通过透视变换得到车辆的真实世界坐标并使用局部加权回归算法进行轨迹平滑。

2 车辆识别技术分析

2.1 算法选择

基于深度学习的目标检测方法主要分为Twostage方法和One-stage方法。基于Region-proposal的 Two-stage 方 法 主 要 有 R-CNN[5], Fast RCNN[6],Faster R-CNN[7],这些算法普遍存在着检测速度慢的缺点。基于回归的One-stage方法主要有YOLO、SSD等。其中YOLO的特点是实现快速检测的同时还能达到较高的准确率,它凭借着优秀的性能引起了广大研究员的兴趣。

YOLO在一定程度上避免了CNN算法速度慢的问题,但它存在着召回率低,对小目标检测效果差,定位不够精确等问题。为了解决速度慢的问 题 , YOLOv2, YOLOv3, TinyYOLO, YO⁃LOv4,YOLOv5等模型陆续被提出,随着版本的迭代,模型性能也越来越好。本文主要选择YO⁃LOv5算法对多种场景下的社会车辆进行物体识别,其特点是速度快,有非常轻量级的模型大小,在准确度方面与YOLOv4基准相当。

2.2 YOLOv5算法分析

YOLOv5设计了4种目标检测网络结构,分别是Yolov5s、Yolov5m、Yolov5l和Yolov5x。四种网络结构原理基本一样,不同之处在于通过depth_mulitple、width_multipl两个参数分别控制的网络深度和网络宽度。YOLOv5s网络结构最小、速度最快、AP精度最低。其他三种网络通过不断加深加宽网络,AP精度不断提高,相应的速度在不断地降低。

以YOLOv5s的网络结构为例,如图1所示。

图1 YOLOv5s的网络结构

整个网络结构分为4个部分:输入端,Back⁃bone主干网络,Neck网络和Prediction输出端,分析如下:

(1)输入端。该网络的输入图像大小为608×608,在图像预处理阶段将输入图像缩放到网络的输入大小,进行归一化等操作;在网络训练阶段,YOLOv5采用Mosaic数据增强操作提升模型的训练速度和网络的精度,并提出自适应锚框计算和自适应图片缩放的方法。

(2)Backbone主干网络。该模块通常是一些性能优异的分类器的网络,用来提取通用的特征表示。YOLOv5采用具有切片操作的Focus结构和CSP结构。

(3)Neck网络。该模块用来进一步提升特征的多样性与鲁棒性。YOLOv5采用FPN+PAN结构和可以加强网络特征融合能力的CSP2结构。

(4)Prediction输出端。该模块用来完成目标检测结果的输出。YOLOv5采用损失函数GIOU_Loss以及预测框筛选的DIOU_nms。

2.3 算法实现流程

Yolov5s、Yolov5m、Yolov5l和Yolov5x四种网络结构依次加深加宽网络,AP精度不断提高,相应的速度在不断地降低,对硬件配置要求也越来越高。根据硬件配置条件,本文使用YOLOv5系列中最轻量化、深度最小和特征图宽度最小的YOLOv5s网络结构,对多种场景下的社会车辆进行物体识别,通过对处理过后的数据集进行训练得到检测模型,对检测结果进行分析。本文主要是使用YoLOv5s来进行实验分析,其对应的流程如图2所示。

图2 实现流程

3 实验结果及分析

3.1 数据集分析

本文采用的车辆检测数据集为MS COCO数据集,该数据集有80个对象类别、12个大类、123287张图片。该数据集平均每张图片的物体数量多且满足多种场景的需求,因此可用于车辆检测的神经网络模型。MS COCO 2017数据集预处理主要流程如下:

(1)通过COCO-PythonAPI从COCO数据集的Instances_valtrain2017.json标签中提取出包含car,motorcycle,bus,truck 4个类别的相应数据,并将其转化为VOC(.xml)的标签,其中16977张图作为训练集,707张为验证集;

(2)分别得到训练集和训练过程中的测试集的xml后,我们进一步使用脚本将xml转化为txt;

(3)将提取的图片和拟生成的txt标签放到相应文件位置。

3.2 结果及分析

实验平台配置为Windows 10操作系统,Inter Core i7-10875H处理器和16 GB内存,搭载NVIDIA GeForce RTX 2060显卡,配置英伟达CUDA11.0和GPU加速库CUDNN 8.0.5,配置OpenCV2扩展库,深度学习框架为Pytorch。

搭建好YOLOv5的运行环境后,根据硬件配置设置训练参数,我们设置batch-size为2,numworker为0,epoch次数为100,然后对处理过后的COCO2017数据集进行训练。

图3 实验结果

图4 实验结果

训练过程中随着迭代次数的增加,各种数值的变化如图5所示,图中各个数值的含义如表1所示。

图5 训练参数变化图

表1 results参数变化

从图5可以看出,随着训练迭代次数的增加,各项越来越准确,次数到达100次后,各项数值变化趋于平稳。

我们使用56张图片进行推断测试,这些图片均没有在训练集和验证集中出现过,以此来测试识别的准确性。使用使用训练后自动生成的best.pt权重文件进行推断测试,部分测试结果如图6所示。

图6 测试结果

4 结语

本文通过YOLOv5目标检测算法对多种场景下的车辆进行批量检测,结果表明其优势有识别车辆的精度和速度较高且适应性强。但YOLOv5车辆检测依然存在对于距离较远的车辆可能会出现检测不到或者检测准确度较低,车辆类型识别错误的问题。现有模型的局限性可以通过增大调整数据集和使用性能更好的计算机得到解决。因此YOLOv5目标检测算法基本满足多种场景下的车辆检测需求,可应用于车辆识别、车辆追踪以及借助大数据可以为车辆厂商提供车辆销售数据参考。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!