一种基于质心跟踪和Yolov5的车辆逆行检测算法
未命名
07-22
阅读:259
评论:0
一种基于质心跟踪和yolov5的车辆逆行检测算法
技术领域
1.本发明以深度学习为基础提出一种基于质心跟踪和yolov5的车辆逆行检测算法,以质心跟踪和yolov5为基础,引入了shuffle attention注意力机制模块,添加组卷积降低计算量,同时使用空间和通道注意力机制,提升了算法检测的性能,并且考虑到期望回归之间的向量角度,采用了siou损失函数,有效降低了车辆逆行的漏检率、误判率。
背景技术:
2.司机出于各类原因的逆行,增加了一侧的交通流量,也增加了正面碰撞的可能性。计算机视觉技术在交通监控系统中应用极为广泛,它可以通过分析道路摄像头拍摄的视频片段,找出交通事故、交通堵塞和违反交通规则的原因,可以追踪车辆,计算车辆速度。在过去,由于昂贵的计算成本和数据的来源不明等问题,实现这种检测非常困难。然而,如今有了不同的对机器学习和深度学习算法的改进,先进的图像处理算法以及成本更低的摄像、监控设备,整个检测系统已更加高效。
3.到今天,我们已设计出许多用于车辆逆行检测的系统。现有的方法可以大致分为基于传感器的方法和基于光流估计的方法。其中基于传感器的方法主要是使用磁传感器来检测车辆的方向。车辆运行途中,地球磁场会受到一定干扰,而磁传感器就是根据这种磁场的变化来检测车辆的运行方向。但在磁传感器这样的系统中,存在着许多不可抗力因素,偶然性较大,在某些时候的检测结果并不乐观。另一种是用光流计算来检测行驶方向,并与建模后的车道方向进行比较,以此判断是否逆行。但是这种系统会面临光照的阻碍,不同光照情况下的检测结果可能差异较大。
技术实现要素:
4.本发明旨在不同的光照等外界因素影响下,可以更准确地检测出逆行车辆。因此提出一种基于质心跟踪和yolov5的车辆逆行检测算法,在yolov5的基础上,引入shuffle attention注意力机制模块,同时使用空间和通道注意力机制,提升检测的性能,并且考虑到期望回归之间的向量角度,采取siou损失函数。结合质心跟踪技术,有效降低了车辆逆行的漏检、误判率。
5.为了实现上述目的,本发明的技术方案如下:一种基于质心跟踪和yolov5的车辆逆行检测算法,包括以下步骤:步骤一:输入监控拍摄下的视频帧,通过引入shuffle attention注意力机制模块和siou损失函数的yolov5模型,进行特征的提取,分组和融合,输出生成预测框;步骤二:将车辆的边界框输入进以新旧对象质心为基础的质心跟踪算法;步骤三:通过连续帧质心高度的比较来检测方向错误的车辆。
6.所述步骤一中的具体情况如下:本实验利用监控,记录道路环境,将视频帧传入到改进的yolov5模型中进行车辆的识别。
7.在yolov5模型中改进的部分为:引入shuffle attention注意力机制模块,引入siou损失函数,目前注意力机制主要可以分为两类,空间注意力机制和通道注意力机制,同时使用这两种注意力机制可以有效提高模型的检测性能,但是也会增加模型的计算量,而shuffle attention注意力机制可以较为高效的结合这两种机制。其主要功能是特征分组,分别通过空间与通道注意力后进行聚合:给定特征图,c,h,w分别是通道数、空间高度和宽度。shuffle attention沿着通道维度把x划分成g个组:,其中为亚特征,训练过程中,每个亚特征依次获取一个响应,并通过注意力模块生成一个系数。而在每个注意力单元开始响应的时刻,会将沿着通道分成两个分支,即,这两个分支分别就是空间和通道注意力机制,其中在通道注意力机制中,通过全局平均池化来生成通道统计数据:
8.其中: ,此外,通道注意力会通过门机制实现特征的自适应选择,用sigmoid激活函数实现,最终通道注意力机制的输出是:
9.其中:,二者用于平移和缩放s。
10.在空间注意力机制中,对使用group norm获取空间统计数据,再利用来增强特征表示,最终输出为:
11.其中:。
12.这其中, 和group norm 的参数只是shuffle attention模块中的参数。在单个模块中,每个分支通道的个数是c/2g,所有参数个数是3c/g,g多为32或64,因此参数量很少,整个模块是轻量级的。
13.两个分支输出后的结果会做concat处理,以便通道数和输入的个数相同。concat处理后的结果采用channel shuffle,将特征图重组,使得信息在不同组中互通,实现跨组信息交流,这也使得shuffle attention很容易被集成到yolov5的网络中去。
14.对于车辆逆行的检测往往需要损失函数有较快的收敛速度和较高的效率,但在训练过程中预测框随意变换位置可能会产生效果较差的模型,所以siou添加了对期望回归之间的向量角度,重新定义了一个惩罚指标。
15.siou损失函数由4个cost函数组成,分别为:angle cost、distance cost、shape cost、iou cost:角度损失(angle cost)的提出是为了最大限度地减少与距离相关的变量数量,模型尝试首先将预测带到x或y轴,以最近的为准,再沿着相关轴继续接近,如果预测框和真实
框和x轴夹角α小于等于45
°
,那么收敛过程中先最小化α,否则最小化其与y轴夹角β:
16.为实现这个目标,引入了损失函数组件:
17.其中
[0018][0019][0020]
其中为真实框和预测框中心点的距离,为真实框和预测框中心点的高度差,可用勾股定理求得,、是真实框中心坐标,、是预测框中心坐标。
[0021]
考虑到角度损失,siou重新定义了距离损失(distance cost):
[0022]
其中
[0023]
、为真实框和预测框最小外接矩形的宽和高。
[0024]
形状损失(shape cost)如下:
[0025]
其中
[0026]
分别为预测框和真实框的宽和高,控制对形状损失的关注程度。
[0027]
交并比(iou cost)的定义为:
[0028]
其中b是预测框,是真实框。
[0029]
最后,回归损失函数定义为:
[0030]
实施过程中只需在yolov5网络结构中的head部分添加shuffle attention模块,并将siou添加进loss中,即可实现对yolov5的改进。
[0031]
所述步骤二中的具体情况如下:质心跟踪算法以改进的yolov5所输出的边界框作为输入,接收坐标后使用它们来计算质心,对每一个计算的质心分配唯一的id。
[0032]
获得id后,对于视频流中的每个后续帧,为避免破坏对象跟踪的目的,质心跟踪算法首先需要确定是否可以将新的对象质心与旧的对象质心相关联,即判断一个新的质心是由于旧质心移动形成的还是一个全新的质心进入算法,而不是直接为每个检测到的对象分配新的id。算法假设每个对象在后续帧之间的移动很小,如果新质心与旧质心距离最小,可以认定这个物体被识别过,而非新物体,那么这个物体的质心将被更新。为了完成此过程,算法会计算每对旧质心和新质心之间的欧氏距离。像素点的欧氏距离为:
[0033]
如果当前帧的对象比前一帧的对象少,这意味着一个或多个对象从检测区域内消失了。由于它们的质心不在检测区域内,这些车辆的id将被删除。但是,如果当前帧的对象数量超过前一帧,一定有一个新的对象,那么算法根据欧氏距离确定旧物体,更新旧物体的质心后,剩余的对象就是新物体,就要分配新的id,这样,算法可以独立跟踪每辆车。
[0034]
所述步骤三中的具体情况如下:算法通过连续帧的车辆质心高度来检测车辆是否逆行。每个被追踪的车辆都有自己质心的高度。当车辆被识别到并给定唯一id时,计算其质心的高度并存储在与id对应的文件中,在下一帧中,计算其移动后的新质心的高度,并连同其id存储在另一个文件中,将在每个连续帧中不断被更新,如果车辆移动,车辆的和将不相等,通过比较和的大小就可以预测车辆的方向。
[0035]
假设实际情况中的监控是面向右车道的监控,车辆若驶向监控则是正向,那么如果车辆远离监控,它将被检测为错误方向的车辆,所以,如果,那么,车辆正朝着监控,并以正确的方式行驶,否则车辆逆行,相反的情况也可以通过改变条件来定义。在检测到逆行车辆后,将自动捕获框架以进行进一步检查。
附图说明
[0036]
图1为本发明所使用的改进yolov5模型原理图;图2为本发明所使用的shuffle attention注意力机制模块结构图;图3为本发明所使用的siou中的angle cost部分的原理图;
图4为本发明所使用的siou中的distance cost部分的原理图;图5为本发明整体流程图。
实施方式
[0037]
对于本领域技术人员来说,附图中某些公知结构及其说明可以省略。下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0038]
本发明提供了一种基于质心跟踪和yolov5的车辆逆行检测算法,该方法在进行车辆逆行检测的过程中有较高的精度和较快的速度,在处理有外界因素影响时的检测上有优异的效果。
[0039]
首先,将交通监控拍摄到的视频帧输入到改进的yolov5目标检测算法中检测,然后,将由改进的yolov5算法生成的预测框输入到质心跟踪算法中,质心跟踪算法会跟踪改进的yolov5算法检测到的每辆车,然后,通过计算连续帧中每个车辆的质心高度,确定车辆是远离监控还是靠近监控。整个系统的精度依赖于改进yolov5的检测。如果检测正确,那么此算法的误判程度非常低。
[0040]
具体的实现步骤为:step1.1选择合适的交通摄像头所摄下的数据集,如芝加哥市交通摄像头的增强随机屏幕截图的公开集合:a novel camera network dataset for traffic flow;step1.2在yolov5模型中添加shuffle attention轻量级注意力机制模块,在yolov5网络结构的head部分添加第24层shuffle attention层。视频帧中提取出的特征图分别通过空间和通道注意力机制,并将结果concat处理,并采用channel shuffle重组特征;step1.3在yolov5模型中添加siou损失函数,从angle cost、distance cost、shape cost、iou cost 四个方面定义损失函数,并将alpha数值设置为1;step1.4将输入的视频帧尺寸调整为640
×
640,batch size设置为2;step1.5训练后将交通监控摄到的视频帧输入进网络检测,生成边界框。
[0041]
step2.1质心跟踪算法通过update方法接受边界框,通过边界框坐标计算质心,初始化numpy数组以存储质心,并利用register注册新对象,对每一个计算的质心分配唯一的id;step2.2 计算新边界框与现有对象之间的欧氏距离。通过计算旧质心和新质心之间的欧氏距离,距离最小的,就说明是已经存在的对象。除了已存在过对象之外,其他的对象都被认定是新出现的对象,分配新id;step2.3 更新旧对象的质心,利用deregister重置消失的质心。
[0042]
step3.1 在识别到质心后,计算出此对象在连续帧中质心的高度变化,最直接的做法即记录质心坐标的纵轴数值变化。计算对象在前一帧的质心高度,并和其唯一的id保存在文件1中,计算后一帧的质心高度,将和id保存在文件2中;step3.2 对象移动时,在每个连续帧中更新。比较和的大小,可以预测车辆是向着监控还是背离监控移动;step3.3根据监控的朝向来定义正常行驶和逆向行驶,假设监控是面向右车道的
监控,那么车辆若驶向监控则是正向。所以,若,说明后一帧的质心高于前一帧,是背离监控行驶的,则识别出车辆逆行。
技术特征:
1.一种基于质心跟踪和yolov5的车辆逆行检测算法,其特征在于,包括以下步骤:step1:输入监控摄下的视频帧,通过引入shuffle attention注意力机制模块和siou损失函数的yolov5模型,进行特征的提取,分组和融合,输生成预测框;step2:将车辆的边界框输入进以新旧对象质心为基础的质心跟踪算法;step3:通过连续帧质心高度的比较来检测方向错误的车辆。2.根据权利要求1所述的一种基于质心跟踪和yolov5的车辆逆行检测算法,其特征在于,所述step 1中的具体过程如下:step1.1选择合适的交通摄像头所摄下的数据集,如芝加哥市交通摄像头的增强随机屏幕截图的公开集合:a novel camera network dataset for traffic flow;step1.2在yolov5模型中添加shuffle attention轻量级注意力机制模块,在yolov5网络结构的head部分添加第24层shuffle attention层。视频帧中提取出的特征图分别通过空间和通道注意力机制,并将结果concat处理,并采用channel shuffle重组特征;step1.3在yolov5模型中添加siou损失函数,从angle cost、distance cost、shape cost、iou cost 四个方面定义损失函数,并将alpha数值设置为1;step1.4将输入的视频帧尺寸调整为640
×
640,batch size设置为2;step1.5训练后将交通监控摄到的视频帧输入进网络检测,生成边界框。3.根据权利要求1所述的一种基于质心跟踪和yolov5的车辆逆行检测算法,其特征在于,所述step 2中的具体过程如下:step2.1质心跟踪算法通过update方法接受边界框,通过边界框坐标计算质心,初始化numpy数组以存储质心,并利用register注册新对象,对每一个计算的质心分配唯一的id;step2.2 计算新边界框与现有对象之间的欧氏距离。通过计算旧质心和新质心之间的欧氏距离,距离最小的,就说明是已经存在的对象。除了已存在过对象之外,其他的对象都被认定是新出现的对象,分配新id;step2.3 更新旧对象的质心,利用deregister重置消失的质心。4.根据权利要求1所述的一种基于质心跟踪和yolov5的车辆逆行检测算法,其特征在于,所述step 3中的具体过程如下:step3.1 在识别到质心后,计算出此对象在连续帧中质心的高度变化,最直接的做法即记录质心坐标的纵轴数值变化。计算对象在前一帧的质心高度,并和其唯一的id保存在文件1中,计算后一帧的质心高度,将和id保存在文件2中;step3.2 对象移动时,在每个连续帧中更新。比较和的大小,可以预测车辆是向着监控还是背离监控移动;step3.3根据监控的朝向来定义正常行驶和逆向行驶,假设监控是右车道的抬头监控,那么车辆若驶向监控则是正向。所以,若,说明后一帧的质心高于前一帧,是背离监控行驶的,则识别出车辆逆行。
技术总结
本发明所解决的技术问题是车辆逆行检测中漏检、误判率高以及受外界影响大的问题,提出一种基于质心跟踪和Yolov5的车辆逆行检测算法。本发明在Yolov5的基础上,引入了Shuffle Attention注意力机制模块,同时使用空间和通道注意力机制,提升了检测的性能,并且考虑到期望回归之间的向量角度,采取了SIoU损失函数,有效降低了车辆的漏检、误判率。再结合质心跟踪算法实现对车辆逆行的检测。本发明在车辆逆行检测中可以有效解决受外界影响大以及漏检率高造成的影响。检率高造成的影响。
技术研发人员:侯阿临 徐民俊 孙佳宇 操文 张俊鹏 炎梦雪 任子航 刘丽伟 李秀华 梁超 杨冬
受保护的技术使用者:长春工业大学
技术研发日:2023.04.20
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
