当前位置: 首页 > article >正文

基于YOLOV5的车辆跟踪与目标检测

目录

摘要

第1章 绪论

1.1 课题背景及研究的目的和意义

1.2 国内外研究现状

1.2.1 测速领域

1.2.2 目标检测领域

1.2.3 目标跟踪领域 

第2章 理论基础

2.1深度学习

2.2 YOLOv5 目标检测理论

2.3 DeepSort目标跟踪理论

2.4视觉标定和测速算法

第3章 系统设计与实验

3.1 实验概述

3.3实验过程

3.3.1 流程概述

3.3.2车辆检测

3.3.3车辆跟踪

3.3.4车辆测速

3.3.5评价指标

第4章 实验结果与分析

4.1复杂度的分析

4.2目标检测性能的分析

4.3目标跟踪性能的分析

第5章 总结


摘要

随着国民经济水平保持着迅速地持续发展,这使得我国交通道路建设迅速扩展,车辆使用量呈爆炸式增长。2024 年 1 月 11 日,我国公安部公布2023 年全国机动车和驾驶人数据。2023 年,全国机动车量达 4.4 亿辆,机动车驾驶人达 5 亿人。

车辆使用量呈爆炸式增长,巨大的交通流量必然会带来交通秩序与交通安全等各种交通隐患,并大大提高交通监管的负担,为了解决该问题,需要引入可靠的交通车辆跟踪测速技术。

传统测速方法,原理上都是通过获取波在物体表面反射运动的时间差的方式测得 物体运动速度,如利用电磁波,声波等。虽然技术成熟,但存在安装成本高、维护困难等问题。而且,这些传统方法通常需要在道路上铺设设备,可能会破坏道路结构,影响道路美观。本研究提出并实现了一种基于 YOLOv5(You Only Look Once version 5)和 DeepSort(Simple Online and Realtime Tracking with a Deep Association Metric)算法的车辆测速系统,该系统通过先进的机器视觉技术,对道路车辆进行实时检测、跟踪和测速,能够准确、实时地检测、跟踪和测速道路上的车辆,具有较高的鲁棒性和可扩展性,不仅可以为智能交通系统提供有力的技术支持,还可以为城市交通管理和规划提供有效的决策支持,并提高了道路交通的安全性和有序性。为智能交通系统提供了强有力的技术支撑,极大地降低安装和维护成本并增强智能交通管理能力。

在车辆检测方面,我们采用了 YOLOv5 算法。YOLOv5 作为一种先进的实时目标检测算法,能够在保持高准确率的同时实现快速检测。通过优化网络并进行数据集的采集,打标和训练,我们进一步提高了 YOLOv5 在交通场景中的检测性能,尤其是针对交通车辆等特定目标的检测。

在车辆跟踪方面,我们引入了 DeepSort 算法。DeepSort 算法结合了深度学习特征表示和卡尔曼滤波器等传统跟踪算法的优点,能够在复杂场景中实现鲁棒性强的多目标跟踪。通过结合 YOLOv5 检测到的车辆目标信息,DeepSort 能够实现对车辆目标的连续跟踪,为后续的测速工作提供了可靠的数据支持。

在车辆测速方面,我们利用车辆跟踪结果,根据摄像机标定的原理,结合摄像头参数和时间戳信息,实现像素坐标与世界坐标的转换,利用位移时间关系计算出车辆的实时速度。

实验结果表明,基于 YOLOv5 和 DeepSort 的车辆测速系统能够准确、实时地检测、跟踪和测速道路上的车辆,具有较高的鲁棒性和可扩展性。该系统不仅可以为智能交通系统提供有力的技术支持,还可以为城市交通管理和规划提供有效的决策支持,并提高了道路交通的安全性和有序性。

第1章 绪论

1.1 课题背景及研究的目的和意义

在改革开放以后,我国国民经济水平保持着迅速地持续发展,这使得我国交通道路建设迅速扩展,车辆使用量呈爆炸式增长。2024 年 1 月 11 日,我国公安部公布2023 年全国机动车和驾驶人数据。2023 年,全国机动车量达 4.35 亿辆,机动车驾驶人达 5.23 亿人。随着系能源汽车技术在全国的推广,比亚迪、理想、蔚来等车企相继研发制造新能源汽车,全国新能源汽车量达 2041 万辆,其中纯电动车量 1552 辆,占比 76.04%。特别地,2024 年春运期间,公路交通流动量 78.3 亿人次,在全社会跨区域人员流动量中占比 80%左右,春运中超过 90%的流动量都是来自汽车,自驾出行占比大大提升。如此巨大的交通流量必然会带来交通秩序与交通安全等各种交通隐患,并大大提高交通监管的负担,为了解决该问题,需要引入可靠的交通车辆跟踪测速技术。

传统测速方法,原理上都是通过获取波在物体表面反射运动的时间差的方式测得物体运动速度,如利用电磁波,声波等。虽然技术成熟,但存在安装成本高、维护困难等问题。而且,这些传统方法通常需要在道路上铺设设备,可能会破坏道路结构,影响道路美观。目前,深度学习技术兴起,在智能交通系统领域有着巨大的发挥潜力,基于 YOLOv5 和 DeepSort 的车辆测速系统能够准确、快速地检测出车辆,并对其进行跟踪和测速,极大地降低安装和维护成本并增强智能交通管理能力。因此,本文基于 YOLOv5 和 DeepSort 算法,设计机器视觉车辆测速系统,对视频中的车辆进行目标检测、目标跟踪、车辆测速,对城市智能交通监管以及交通安全性、有序性的保障有着重要意义。

1.2 国内外研究现状

1.2.1 测速领域

传统的测速方式,传统车速检测方法主要为地感线圈检测法、雷达检测法、激光检测法等等[1],技术较为成熟,准确度高,但设备价格昂贵,安装维护不便,且多为固定位置。通常需要在道路上铺设设备,可能会破坏道路结构,影响道路美观。

地感线圈检测法利用电磁感应原理,电感线圈能生成交变的磁场,当金属经过该交变磁场时,电感线圈中磁通量会有所变化,随之有涡流产生,电感量也会变化[2]。因此,车体的金属部分经过铺设好的前后地感线圈,获取前后线圈的时间差,结合固有的前后线圈的距离就能测出距离,在交通管理超速管理中应用更为广泛。由主机和触发器组成的地感线圈检测设备在如今应用较广,适用于 2 个及以上地感线圈的车辆超速测定。

雷达检测法则利用多普勒雷达原理进行测量[3]。雷达系统发射无线电信号,利用发射原理,信号到达车辆后由车辆发射至雷达系统,雷达系统接收信号。此过程无线电信号频率会发生改变,利用频率的差异获得车辆的车速。雷达检测法可以采用单点测速、双点测速和多点测速,但容易收到天气条件以及其他雷达信号的干扰。

随着机器视觉技术的快速发展,图像识别、目标跟踪等算法的性能得到了显著提升,YOLOv5 和 DeepSort 算法的不断改进与优化,基于机器视觉的车辆测速开始兴起,广泛运用于智能交通系统中。一些研究通过引入新的特征匹配方法和深度学习方法,提高了模型对不同场景下车辆的识别能力。同时,还有一些研究将基于 YOLOv5和 Deepsort 的车辆测速算法应用于自动驾驶系统中,为自动驾驶系统提供了重要的感知能力。国外还通过引入注意力机制和 SENet 等网络结构,提高了模型对车辆深度特征的提取能力,进而提高了测速精度。这种方式脱离了路况的局限性,通过对视频进行图像分析处理来测量车辆的速度,是一种更先进的测速方式。

1.2.2 目标检测领域

传统目标检测法如帧差法、光流法、背景差分法[4]等计算量较大且具有一定延时性,外界背景对其有极大干扰能力。基于卷积神经网络(CNN)的目标检测方法如 Faster R-CNN、YOLO、SSD 等凭借极强的图形特征学习能力,能以更快地检测速度和更准确的检测精度实现对目标的检测[4]。

在目标检测领域的发展历程中,早期的技术主要依赖于事先定义的特征来识别图像中的目标,例如 VJ 检测器和 HOG 检测器。然而,这一领域在 2014 年迎来了突破性的进展,当时基于区域的卷积神经网络(Region-based Convolutional Neural Networks, R-CNN)被引入,显著提升了目标检测的准确率,相比传统方法提高了至少 30%。R-CNN 的成功在于其利用卷积神网络进行特征提取,从而能够自动学习并适应复杂多变的图像数据。

R-CNN 的出现不仅为深度学习在目标检测领域的应用奠定了基础,还为后续更高效的检测算法的发展指明了方向。Fast R-CNN 和 Faster R-CNN 等算法在 R-CNN的基础上进行了优化,进一步提高了检测速度和准确率,使得深度学习在目标检测中的应用更加广泛和深入。

与此同时,另一种目标检测算法——YOLO(You Only Look Once)也在不断发展壮大。YOLOv1 在 2016 年由 Redmon 等人提出,它通过单次前向传播即可完成目标检测,实现了较高的处理速度和较好的检测精度[5]。随后,YOLO 系列算法不断迭代更新,如 YOLOv2、YOLOv3、YOLOv5 等,通过引入先验框分类和边界框调整等机制,进一步提高了检测性能。最新的 YOLOv8 版本更是在精度和速度之间实现了最佳平衡,成为目标跟踪系统中集成目标检测算法的优选方案。

总之,从 R-CNN 到 YOLO 系列算法的发展,不仅推动了目标检测技术的不断进步,也为目标跟踪等相关领域的研究提供了有力的支持。这些算法的成功应用不仅提高了目标检测的准确率和速度,还为深度学习在更多领域的应用提供了有益的启示。

1.2.3 目标跟踪领域 

传统的目标跟踪方法,如扩展卡尔曼滤波、无迹卡尔曼滤波和粒子滤波等,虽然在过去发挥了重要作用,但在面对复杂多变的交通场景时,其局限性逐渐显现,极其容易受到天气、光线以及遮挡等问题的影响。近年来,深度学习以其卓越的特征提取能力和强大的模型学习能力,在图像处理领域取得了显著的突破。因此,在交通监测领域,特别是在车辆多目标跟踪方面,基于深度学习的技术逐渐成为研究和实践的热点。

马尔科夫链蒙特卡洛(Markov Chain Monte Carlo, MCMC)算法是一种统计模拟方法[6],常用于从复杂的概率分布中采样。虽然 MCMC 在某些问题中可以被应用于多目标跟踪的建模,但它本身并不是一种直接的多目标跟踪算法。然而,Yu 等人基于 MCMC 的原理,提出了数据驱动的马尔科夫链蒙特卡洛算法(Data Driven MCMC,DDMCMC),尝试通过数据驱动的方式改善 MCMC 的性能,可能用于某些与多目标跟踪相关的统计建模问题。到了 2016 年,Bewley 等人提出了 Simple Online and Realtime Tracking (SORT) 算法[7],这是一个为实时多目标跟踪设计的简单且高效的框架。SORT 算法使用卡尔曼滤波器来预测目标在下一帧中的位置,并通过匈牙利算法(也称为 KM 算法或Munkres 算法)来实现预测位置和实际检测位置的关联匹配。这种方法能够在高帧率和高分辨率的视频中提供优异的跟踪性能,因为它避免了复杂的特征提取和匹配过程。

然而,SORT 算法的一个主要缺点是它忽略了目标物体的外观特征(如大小、形状等),这导致在目标不确定性较高(如遮挡、快速移动等)的情况下,跟踪的准确性可能会受到影响。为了解决这个问题,Wojke 等人提出了 DeepSORT 算法,该算法

在 SORT 的基础上引入了深度学习技术。DeepSort 使用卷积神经网络(CNN)来提取目标的外观特征,并将这些特征用于关联度量中[8]。具体来说,DeepSort 利用 CNN 提取的特征来计算目标之间的相似度,并结合运动信息和匈牙利算法进行关联匹配。这种方法使得 DeepSort 能够在目标遮挡或外观变化的情况下,依然能够保持较高的跟踪准确性。此外,DeepSort 还引入了级联匹配的策略,进一步提高了算法的性能。

总的来说,从 MCMC 到 DDMCMC,再到 SORT 和 DeepSort,这些算法的发展体现了多目标跟踪领域的研究趋势:从复杂的统计模拟方法到简单高效的实时跟踪框架,再到利用深度学习技术提取目标外观特征,以提高跟踪的准确性和鲁棒性。

第2章 理论基础

2.1深度学习

深度学习是一类基于人工神经网络的机器学习技术,它通过构建具有多个层次的神经网络模型,让计算机自动从大量的数据中学习特征和模式,以实现对数据的分类、预测、生成等各种复杂任务。

深度学习模型主要是由神经元组成的神经网络。一个简单的神经元接收多个输入,对这些输入进行加权求和,然后通过一个激活函数产生输出。例如,一个神经元可能接收输入x_{1},x_{2},x_{3},其权重分别为w_{1},w_{2},w_{3},,那么加权求和的结果为z=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3},再经过激活函数得到输出。多个神经元相互连接形成神经网络的层,常见的神经网络包括多层感知机(MLP)、卷积神经网络(CNN)和循环神经网络(RNN)等。多层感知机具有输入层、多个隐藏层和输出层。输入层接收数据,隐藏层对数据进行特征提取和转换,输出层产生最终的结果。例如,在图像分类任务中,输入层接收图像的像素值,隐藏层逐步提取图像中的特征,如边缘、纹理等,输出层输出图像所属的类别。卷积神经网络主要用于处理具有网格结构的数据,如图像和音频。它通过卷积层中的卷积核来提取数据中的局部特征。例如,在图像中,卷积核可以检测水平边缘、垂直边缘等特征。池化层则用于减少数据的维度,同时保留重要的特征信息。循环神经网络用于处理序列数据,如文本和时间序列。它的特点是神经元之间存在循环连接,能够处理序列中的长时依赖关系。

深度学习模型的训练是通过最小化损失函数来实现的。损失函数衡量了模型预测结果与真实结果之间的差异。例如,在回归任务中,常用的损失函数是均方误差(MSE),对于预测值\hat{y}和真实值y,有MSE=\frac{1}{n}\sum_{i=1}^{n}(\hat{y}_{i}-y_{i})^{2}。训练用反向传播算法来更新模型的参数。反向传播根据损失函数对模型参数的梯度,从输出层向输入层逐层调整参数。

2.2 YOLOv5 目标检测理论

相比传统目标检测算法,它们通常依赖于滑动窗口的方法遍历图像中的每一个可能位置,并基于这些位置生成大量的候选区域(如 R-CNN 系列算法),这种做法不仅计算量大,而且效率低下,往往会产生大量的冗余候选框。YOLO算法的提出,则彻底改变了这一局面,为目标检测领域带来了新的革命。

YOLO 摒弃了滑动窗口和候选区域生成的步骤,而是将目标检测任务转化为一个单一的回归问题。它将输入图像划分为一个网格,每个网格负责预测多个边界框(bounding boxes)的坐标、置信度以及类别概率。YOLO算法将整个图像直接输入到卷积神经网络中,通过一系列的卷积和池化操作提取图像特征。然后,在网络的最后几层,YOLO 直接预测出边界框的坐标、大小、置信度以及对应的类别概率。这种端到端(end-to-end)的方式不仅简化了检测流程,还大大提高了检测速度。并且YOLO算法在保持高速的同时,也保持了较高的准确性。通过优化网络结构和训练策略,YOLO 能够在实时处理图像的同时,准确地检测出图像中的目标。

YOLOv5算法则继承了 YOLO系列算法的核心思想,同时采用了更先进的网络结构和优化策略,使得检测速度和准确性都得到了显著提升。将输入图像划分为一个S×S 的网格,每个网格负责预测固定数量的边界框以及这些边界框中是否存在目标的置信度。同时,每个边界框还会预测出该目标属于各个类别的概率。在训练过程中,YOLOv5 算法通过优化一个多任务损失函数来同时学习边界框的坐标、大小、置信度以及类别概率。这个损失函数包括定位误差(Bounding Box Regression Loss)、分类误差(Classification Loss)和置信度误差(Confidence Loss)等部分。通过反向传播算法和梯度下降优化器,模型可以逐渐学习到如何从输入图像中提取特征并预测出目标的位置和类别。

从 YOLOv5 的网络结构来看,它主要由输入端(Input)、主干网络(Backbone)、颈部网络(Neck)、头部网络(Head)四个部分。

输入端:YOLOv5 支持多种输入分辨率,通常使用 416×416、512×512 或 640×640 等分辨率的图像作为输入。输入图像会经过一系列的数据增强和预处理操作,如缩放、裁剪、 翻转等,以提高模型的泛化能力。

主干网络:YOLOv5 的主干网络采用了 CSPDarknet53 结构,该结构基于 Darknet 网络进行改进,通过引入跨阶段部分连接(Cross Stage Partial connections, CSP)机制来增强网络的学习能力。CSPDarknet53 能够提取出输入图像的多层次、多尺度特征,为后续的检测任务提供丰富的信息。

颈部网络:颈部网络主要负责将主干网络提取的特征进行融合和增强。YOLOv5 采用了PANet(Path Aggregation Network)结构作为颈部网络,通过上采样和下采样操作将不同尺度的特征图进行融合,以提高模型对不同大小和形状目标的检测能力。此外,颈部网络还引入了 SPP(Spatial Pyramid Pooling)模块来进一步增强特征图的表达能力。

头部网络:头部网络是 YOLOv5 算法的核心部分,它负责在每个特征图上应用多个预测头(Prediction Heads)来预测目标的位置和类别。每个预测头都会输出一个与输入图像尺寸成一定比例的网格(Grid),网格中的每个格子都会预测出多个边界框(Bounding Boxes)以及对应的置信度和类别概率。这些预测结果会经过非极大值抑制(NMS)等后 处理操作来消除冗余的边界框,并得到最终的检测结果。

2.3 DeepSort目标跟踪理论

本研究采用的目标跟踪算法为DeepSort算法。DeepSort是SORT(算法的一个进阶版本,它通过整合深度学习技术来增强目标跟踪的性能。SORT 算法在处理紧密相邻或部分遮挡的多个目标时会遇到困难,而DeepSort通过引入深度学习来提取目标的深层特征,从而提高了跟踪的精确度和稳健性。在DeepSort中,对于每一帧的检测结果,算法会利用深度学习模型提取出目标的特征表示,然后基于这些特征来计算不同检测之间的相似度。这种方法允许DeepSort在目标之间进行有效的跨帧关联,即使它们在视觉上受到遮挡也能够维持准确的跟踪。

与SORT算法相同的是,DeepSort的匈牙利算法采用两级匹配级联使轨迹上得到被分配的边界框。在第一阶段,通过运动外观指标进行有效轨迹的匹配;在第二阶段, 未配对的检测目标和未配对的状态轨迹将进行匹配联结。

在多目标跟踪场景中,目标框的匹配过程可以分为成功和失败两种情况。当卡尔曼滤波器预测的轨迹框与当前帧的检测框成功匹配时,卡尔曼滤波器会利用这一匹配来更新轨迹的状态,并预测下一帧目标的位置,生成新的预测轨迹框。这个预测框随后将用于与下一帧的检测框进行对比。如果在匹配过程中,预测的轨迹框和检测框未能成功匹配,DeepSort 算法会采用一种二次匹配的策略来处理这一问题。首先,算法会计算检测框与轨迹框的交并比(IOU)。如果IOU值低于设定的阈值,表明匹配失败,此时算法会基于检测框的信息创建一个新的轨迹。对于未能与任何检测框匹配的轨迹框,它们会被标记为未匹配状态,并且相应的轨迹会被从轨迹集合中移除。另一方面,如果一个新的轨迹能够连续三次成功匹配检测框,它会被升级为确认态轨迹,并加入到轨迹集合中。对于已确认的轨迹框,算法会为其设定一个生命周期。如果在生命周期内连续出现匹配失败的情况,算法会假设目标已经离开了监控区域,并删除该轨迹框。这样的机制有助于维持轨迹的清洁,避免跟踪已经不存在于场景中的目标。

2.4视觉标定和测速算法

在三维机器视觉系统中,摄像机捕捉到的图像包含了关于三维空间中物体的重要信息。图像上每一个像素点的亮度值代表了空间物体表面某一点反射光线的强度。这种强度的变化反映了物体表面的材质、光照条件以及观察角度等多种因素。图像上这些像素点的位置与它们在三维空间中对应点的几何位置之间有着密切的关系。这种关系由摄像机的成像几何模型所决定。成像几何模型描述了光线从物体表面出发,经过透镜系统,最终成像在摄像机感光元件上的过程。这个过程涉及到多个参数,如焦距、主点位置、镜头畸变等,这些参数统称为摄像机参数[13]。摄像机参数对于准确计算三维物体的位置、形状等几何信息至关重要。通过标定摄像机,即确定这些参数的具体值,可以大大提高三维重建或识别的精度。一旦摄像机被标定,就可以利用图像上的像素点位置信息,结合成像几何模型,反推出物体在三维空间中的具体位置和方向。

世界坐标系(world coordinate system): 用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入。一般坐标描述为\mathrm{P_w=(X_w,Y_w,Z_w)} 

相机坐标系(camera coordinate system): 在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。\mathrm{P_c=(X_c,Y_c,Z_c)}

图像坐标系(image coordinate system): 为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标\mathrm{p=(x,y,1)}

像素坐标系(pixel coordinate system): 为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是我们真正从相机内读取到的信息所在的坐标u,v),单位为个(像素数目)。

第3章 系统设计与实验

3.1 实验概述

本研究利用 Pycharm 集成开发工具(IDE),以Pytorch为深度学习框架。收集数据集并打标后用YOLOv5训练模型,输入视频流或图像序列。然后,使用YOLOv5检测器对每一帧进行车辆检测,获得车辆的边界框和类别信息。将检测到的车辆边界框和类别信息输入给DeepSort多目标跟踪器。DeepSort在当前帧中与之前跟踪的对象进行匹配,更新车辆的位置和速度信息。最后,根据车辆的位置信息,结合摄像机标定技术,计算速度,并根据需要进行速度统计和记录。该系统用先进的目标检测和多目标跟踪算法,能够实现高精度和实时性的车辆测速。其次,该系统可以处理复杂场景下的车辆跟踪问题,如车辆的消失和重新出现等。此外,该系统还可以根据需要进行定制和优化,以适应不同的应用场景和需求。

3.2实验准备

3.3实验过程

3.3.1 流程概述

在车辆测速任务中,YOLOv5负责目标检测,而DeepSORT负责车辆的跟踪与关联。

目标检测(YOLOv5):YOLOv5提供车辆的边界框及其类别信息。这一步是整个系统的输入层,通过YOLOv5检测到的车辆位置,提供给DeepSORT算法进行跟踪。

跟踪关联(DeepSORT):DeepSORT使用YOLOv5提供的检测结果,将车辆在相邻帧之间关联起来,形成连续的轨迹。通过利用深度特征嵌入,DeepSORT能够区分外观相似的车辆,确保正确的车辆跟踪。

轨迹预测与更新:借助卡尔曼滤波,DeepSORT能够对车辆的下一位置进行预测,即使车辆发生短暂的遮挡,仍然能够保持连续的轨迹。这样,在测速过程中可以准确地跟踪车辆的位置变化。

速度计算:通过计算车辆在连续帧之间的位置变化和时间间隔,可以得到车辆的速度。由于DeepSORT提供了准确的车辆轨迹,即每一帧的车辆位置,测速系统可以利用这些位置数据计算出车辆的速度

3.3.2车辆检测

YOLOv5 是一个基于 YOLO(You Only Look Once)系列的目标检测模型,广泛用于实时检测任务。以下是 YOLOv5 实现车辆检测的主要模块、核心流程和损失函数设计:

(1)YOLOv5 采用端到端的方式完成目标检测任务,分为以下三大模块。

Backbone(特征提取):使用CSP(Cross Stage Partial)网络,以减少计算量的同时提取高质量特征。并通过多层卷积操作从输入图像中提取不同尺度的特征图。

Neck(特征融合):采用FPN(Feature Pyramid Network)和 PAN(Path Aggregation Network),将不同层次的特征进行融合,增强对小目标和大目标的检测能力。

Head(预测):使用三个不同尺度的检测头,分别检测不同大小的目标。 每个检测头输出候选框的边界框(Bounding Box)、置信度(Objectness Score)和类别概率(Class Probability)。

(2)YOLOv5 的核心实现如下。

输入处理:对输入图像经过预处理(如缩放、归一化、数据增强)后,调整为固定大小(如 640×640 或 1280×1280),使用不同分辨率的输入图像进行训练,增强模型的鲁棒性。

特征提取与融合:在主干网络中,YOLOv5 采用 CSPNet,分离特征流并融合,降低计算量的同时保留模型的精度。 FPN 提供自上而下的特征融合。PAN 提供自下而上的特征融合,进一步提升目标检测能力。

锚框(Anchor Box)机制:通过 K-Means 聚类在训练集上生成先验锚框(Anchors),用于预测目标的边界框。每个锚框输出置信度和类别概率。

(3)目标跟踪的损失函数由三部分构成,分别是边界框回归损失、分类损失和置信度损失,具体设计如下。

边界框回归损失(Localization Loss)使用 CIoU(Complete IoU)损失来优化预测框和真实框的位置。其公式为:

\mathrm{GIoU}=\mathrm{IoU}-\frac{|C\setminus(A\cup B)|}{|C|}

最终的边界框损失为:

\mathcal{L}_{\mathrm{box}}=1-\mathrm{GIoU}

分类损失(Classification Loss)用于优化检测框内目标的类别预测。YOLOv5 使用 BCE(Binary Cross Entropy)损失,公式为:

\mathcal{L}_{\mathrm{ds}}=-\sum_{i=1}^{C}y_{i}\log(\hat{y}_{i})+(1-y_{i})\log(1-\hat{y}_{i})

  置信度损失(Objectness Loss)

用于优化每个锚框的置信度预测(即是否存在目标)。YOLOv5 也使用 BCE 损失来计算目标存在的置信度:

\mathcal{L}_{\mathrm{obj}}=-\sum_{i=1}^N\left[y_i\log(\hat{p}_i)+(1-y_i)\log(1-\hat{p}_i)\right]

总损失函数

YOLOv5 的总损失是上述三部分的加权和,公式为:

\mathcal{L}_{\mathrm{total}}=\lambda_{\mathrm{box}}\mathcal{L}_{\mathrm{box}}+\lambda_{\mathrm{ds}}\mathcal{L}_{\mathrm{ds}}+\lambda_{\mathrm{obj}}\mathcal{L}_{\mathrm{obj}}

3.3.3车辆跟踪

在以YOLOv5为目标检测器的基础上,本研究集成DeepSort实现对车辆的跟踪。克隆 DeepSORT 的官方实现以访问其代码和功能。导入 DeepSORT 库,并创建一个跟踪器实例。使用 OpenCV 等库读取视频文件或图像序列。对于每一帧图像,将当前帧图像传递给目标检测模型,获取边界框和类别信息。将检测到的边界框和类别信息传递给 DeepSORT 跟踪器。跟踪器会根据这些信息更新目标的轨迹,并输出当前帧中每个目标的跟踪信息,使用 OpenCV 在图像上绘制跟踪结果,包括边界框、ID和类别信息,然后显示或保存处理后的图像。

需要注意的是,Deepsort 使用目标的特征向量来改进跟踪性能。我们可能需要训练一个特征提取器(如 ReID 模型)来提取目标的特征。这些特征可以是目标的颜色、纹理或深度特征。Deepsort 有一些参数可以调整,如匹配阈值、最大丢失帧数等。根我们的具体需求和数据集的特点,我们可能需要调整这些参数以获得更好的跟踪性能。

3.3.4车辆测速

本研究进行了视觉标定和测速计算的理论说明。基于理论说明,本研究设计了一个车辆测速的算法。目标车辆所在边界框的中心坐标转化为世界坐标,再将一定时间内的世界坐标轴间的位移量算出,求出平均速度,该平均速度便是要测量的车辆速度。依据上文,跟踪器的输出中,有 x1,y1,x2,y2 代表目标边界框左上角和右下角的坐标。中心坐标(x,y)的计算公式如下:

\begin{cases} x=\frac{x_1+x_2}{2} \\ y=\frac{y_1+y_2}{2} & \end{cases}

得到中心坐标后,在已知相近的焦距 f、主点坐标(Px,Py)、相机距离地面的高度H以及相机的角度H的条件下,得到对应的世界坐标(X,Y,Z)。坐标转换公式如下,其中的H和\theta都是真实的测量值,本研究通过搜寻查阅网上资料得到。而焦距则是相机本来已知的参数,主点坐标则通过视觉标定的原理所得到。

\begin{cases} Z=H\times\tan{(\theta+\tan^{-1}{(\frac{p_y-y}{f})})} \\ X=\frac{(x-p_x)\times\frac{z}{\cos\theta}}{f} \\ Y=0 & \end{cases}

在已知视频的帧率F1的条件下(手机拍摄的视频帧数为 30FPS),设置一个检测的间隔帧数F2。获取到上一次检测的中心坐标以及下一次检测的中心坐标后,根据上式即可得到对应的世界坐标L1和L2。

那么所需要求的被检测车辆的速度 V 即可被求出。

\mathrm{V}=\alpha\times\frac{\sqrt{(X_2-X_1)^2+(Y_2-Y_1)^2+(Z_2-Z_1)^2}}{F_2/_{F_1}}\times3.6

由于帧率代表每秒的帧数,那么两次检测的间隔时间便是F2/F1秒。其中α是缩放因子,用于调节速度计算的敏感度。这里假设了物体在视频帧之间的移动是线性的,并使用距离公式来计算两点之间的欧氏距离。

3.3.5评价指标

True Positives (TP):正确预测为正的正样本的数量。即实际为正例,且模型预测也为正例的样本数量。False Positives (FP):错误预测为正的负样本的数量。即实际为负例,但模型错误预测为正例的样本数量。False Negatives (FN):错误预测为负的正样本的数量。即实际为正例,但模型错误预测为负例的样本数量。根据这些定义,我们可以计算出常用的两个评价指标:Precision(P):表示在模型预测为正的样本中,实际为正的比例。计算公式为:(Precision 衡量的是模型的准确性,尤其适用于关注误判率的任务);Recall(R):表示在所有实际为正的样本中,被正确预测为正的比例。计算公式为:(Recall 衡量的是模型的覆盖率)

\begin{cases} & P=\frac{TP}{TP+FP} \\ & R=\frac{TP}{TP+FN} \\ & AP=\int_0^1P(R)dR & \end{cases}

第4章 实验结果与分析

在固定机位录制好视频后,将视频上传电脑指定目录,运行程序即可实现测速。

从系统的性能上分析结果。主要从时间复杂度、空间复杂度、目标检测性能、目标跟踪性能三个角度分析。

4.1复杂度的分析

YOLO 目标检测和目标跟踪部分的时间和空间复杂度时,确实与神经网络结构、算法优化以及硬件加速等因素密切相关。

在时间复杂度上。目标检测的执行时间和视频图像的帧率十分重要。执行时间以 毫秒为单位,衡量算法处理每一帧图像所需的时间。这个时间取决于多个因素,如神经网络的深度、复杂度、输入图像的大小,以及是否使用 GPU 进行加速。GPU 加速可以显著减少执行时间,使得算法能够在实时应用中运行。而高帧率意味着更快的处理速度和更好的实时性能。目标跟踪上,匹配和更新时间则是衡量算法在每一帧中对检测到的目标进行匹配和状态更新所需的时间。这个时间取决于目标匹配算法的复杂度和跟踪算法的实现方式。

空间复杂度上。目标检测方面则是以千字节(KB)、兆字节(MB)或更大单位来衡量的储存空间数据,包括神经网络的参数、中间计算结果以及必要的辅助数据。对于深度学习模型,这部分空间通常是固定的,取决于模型的架构和大小。目标跟踪上模型参数和存储目标特征、历史轨迹等缓存数据在后续的帧中进行匹配和更新中显得十分重要。为了提高目标检测和目标跟踪的性能,本研究可以过改进算法结构、减少冗余计算和使用更高效的数据结构来降低时间复杂度;合理设计数据结构,减少内存占用和访问时间,提高空间利用率;利用GPU等高性能计算设备来加速算法的执行,提高处理速度和帧率;对深度学习模型进行压缩和量化,减少模型参数和存储空间需求,同时尽量保持性能。

4.2目标检测性能的分析

本研究在 YOLOv5 训练模型环节,所训练的模型结果如图 4.4 所示。

随着训练epoch数的不断增加,可以观察到一系列关键性能指标在模型学习过程中的变化趋势。 训练损失与验证损失的减少。这反映出模型正在逐渐学习并优化其内部参数,以更好地拟合训练数据和泛化到未见过的数据上。损失的减少是模型性能提升的直接体现,表明模型在减少预测误差方面取得了进步。 精确率、召回率、mAP0.5、mAP0.5:0.9 均有所上升。精确率的提高表明模型在识别正样本(即目标物体)时越来越准确,减少了将负样本(即背景或非目标物体)误判为正样本的情况。召回率的增加意味着模型能够识别出更多的正样本,减少了漏检 的情况。这是模型检测能力增强的另一个重要标志。mAP 是衡量目标检测算法性能的重要指标,其中 mAP0.5 表示在 IoU(阈值为 0.5 时的平均精度。随着 mAP0.5 的上升,说明模型在多个类别上的检测性能都在提高,特别是在 IoU 阈值较为宽松(0.5)的条件下。而 mAP0.5:0.95 考虑了从 0.5 到 0.95 的更广泛的 IoU 阈值范围。这一指标的上升表明模型在更严格的检测要求下仍然能够保持良好的性能,体现了模型在精确匹配目标边界框方面的能力增强。

4.3目标跟踪性能的分析

对于目标跟踪的评价指标本研究采用 Multiple Object Tracking Accuracy,MOTA[16] 指标。MOTA 指标能评估跟踪质量水平但没有针对多目标的 ID 特征。

第5章 总结

在本次研究中,我们基于YOLOv5和DeepSort算法的车辆测速系统展开全面测试。我们采用手机进行视频拍摄,依托Pycharm集成开发工具以及深度学习框架 Pytorch,通过一系列实验操作与数据分析,我们得到了如下成果:

从实验结果来看,该测速系统展现出了卓越的性能。其在检测追踪车辆时,敏感度和准确度均达到了相当可靠的水平,所测得的速度结果合理且稳定,速度跳变范围极小。在系统性能分析方面,时间复杂度上,目标检测的执行时间与视频图像的帧率紧密相关,使用GPU加速能够显著缩短执行时间,从而提升系统的实时处理能力;目标跟踪的匹配和更新时间则受算法复杂度影响较大。空间复杂度在目标检测和跟踪中各有不同的衡量维度和侧重点。基于这些分析,我们明确了后续改进的方向,例如通过改进算法结构、合理运用高性能计算设备等手段来进一步优化系统性能。

然而实验仍存在一些不足之处,样本采集范围有限,YOLOv5 训练模型所使用的样本仅由研究者在学校立交桥上自行采集,数据来源较为单一,无法全面涵盖各种道路类型、交通状况和车辆特征等实际情况,这可能导致模型在面对不同场景时的泛化能力受限。实验环境相对单一:实验主要在良好天气条件下且道路干扰物较少的环境中进行,缺乏对复杂多变环境的测试,如阴雨、雾霾、夜晚等恶劣天气以及道路施工、交通拥堵等复杂路况。

在未来,希望能在更多样化的场景中开展实验,持续完善系统性能。提高模型的训练效率,以加快系统的运行速度;搭建可视化界面,使车辆测速过程及结果更加直观地呈现给用户。针对测速准确性,值得深入研究,尤其是针对物体非线性运动的情况进行优化。此外,测试方法也有待进一步改进,解决当前测试流程繁琐、数据传输缓慢等问题,以更好地推动车辆测速系统在智能交通领域发挥更大的作用,为交通管理和安全保障提供更有力的支持。


http://www.kler.cn/a/470967.html

相关文章:

  • 设计模式 行为型 命令模式(Command Pattern)与 常见技术框架应用 解析
  • 如何从串 ‘ 中国 +86‘ 中,获取到‘中国’:strip()、split()及正则表达式的使用
  • 现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)
  • springboot 集成 etcd
  • Flink概念知识讲解之:Restart重启策略配置
  • uni-app 资源引用(绝对路径和相对路径)方法汇总
  • 【C++数据结构——内排序】希尔排序(头歌实践教学平台习题)【合集】
  • 【FlutterDart】 listView例子一(13 /100)
  • 高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
  • 抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版
  • 可缩放大屏布局方式
  • K8S中的Pod生命周期之容器探测
  • 理解 maven-jar-plugin:如何使用 Add-Opens 配置解决 Java 模块访问问题
  • 亚远景-ASPICE评估:提升汽车软件开发过程的质量与效率
  • QT中如何通过QFile正确读写、覆盖、追加写入内容?
  • docker的基本操作示例
  • sqli-labs靶场环境搭建
  • package.json解决依赖冲突
  • WebSocket 客户端开发:浏览器实战
  • vue3中el-table实现多表头并表格合并行或列
  • 【数据挖掘】深度高斯过程
  • 小米智能哑铃上市,代理 IP 视角下的智能健身新篇
  • 【EI会议征稿】2025图像处理和深度学习国际学术会议(IPDL 2025)
  • ubuntu安装colmap
  • Ubuntu:Cannot mix incompatible Qt library (5.14.2) with this library (5.15.3)
  • matlab绘图常见函数及代码