一种基于改进ByteTrack的车辆行人在线检测与跟踪方法
未命名
09-07
阅读:164
评论:0
一种基于改进bytetrack的车辆行人在线检测与跟踪方法
技术领域
1.本发明涉及计算机视觉技术领域,尤其涉及一种基于改进bytetrack的车辆行人在线检测与跟踪方法。
背景技术:
2.目标检测是计算机视觉(cv,computer vision)领域四大基本任务(分类、定位、检测、分割)之一,其基本实现形式是将图像或者视频中人们感兴趣的物体用矩形方框框选出来(定位),并对框中的物体进行识别和分类,即解决“定位+分类”问题。
3.多目标跟踪(multiple object tracking or multiple target tracking,mot or mtt),是没有任何先验目标数量的前提下,检测识别视频每帧中出现的感兴趣的多个目标对象,并以唯一id标识,对不同帧的同一目标加以关联,进而获得所有目标在视频中的完整运动轨迹,甚至对其轨迹进行预测。
4.绝大多数基于检测的mot算法,即tbd(tracking-by-detection)范式的mot算法,包含检测和跟踪两个步骤。其中,跟踪步骤通常包含两个任务:1)运动模型和状态估计,预测并更新后续帧中轨迹的边界框。卡尔曼滤波器(kalman filter,kf)是此任务的主流选择;2)将新帧检测与当前轨迹集相关联。主要有以下两种方法用于处理关联任务:
①
利用目标的定位(空间相似性),主要是轨迹预测边界框和检测边界框之间的iou;
②
利用目标的外观模型(外观相似性),即借用reid提取外观特征。通常,这两种方法都被量化为距离,并利用匈牙利算法将关联任务作为全局分配问题来解决。
5.随着计算机运算性能的突飞猛进、高性能摄像终端的广泛普及、视频分析需求的与日俱增,以及深度模型如卷积神经网络(convolutional neural network,cnn)等的应用、gpu设备带来的计算效率的巨大跃升,目标跟踪技术受益于更鲁棒泛化的特征表达以及端到端的模型训练,目标跟踪算法应用范围愈发广泛,落地需求愈加强烈。智能交通监控系统是一个庞大的系统,其中基于计算机视觉的车辆、行人检测和跟踪是关键一环。而现实交通道路往往情况复杂,天气条件恶劣,车流量、人流量密集,对模型检测跟踪的精度和速度有很高的要求;其次,目标检测追踪系统通常需要对目标的动作变化迅速做出反应,要求满足实时性;另外,系统部署的环境(如移动端)存在计算量和存储的限制,系统的尺寸和功耗需要思量。由此,实时轻量快速且高精度是目标检测和跟踪永恒的主题。
6.bytetrack,一种简单高效的sort系列的mot算法。近期,sort系列的算法还有strongsort和oc-sort,strongsort是deep sort的强化版,其速度和精度稍逊于bytetrack;oc-sort基于bytetrack建立代码库,虽然oc-sort总体上效果比bytetrack好,但bytetrack在mot17、mot20数据集上的mota指标均高于oc-sort,且框架较为简单。bytetrack选择yolox检测器获取检测信息,其提出的byte检测关联方法,在没有reid分支(外观特征),仅用简单的运动线索,利用高分框和低分框之间的区别和再匹配,就能很好地处理遮挡与关联问题,对于解决城市公共交通道路场景中因拥堵导致遮挡的问题具有很大的潜力,但其也存在sort系列算法的一些局限性,如对检测器的性能依赖性强、对非线性运
动模式处理效果不佳等。
技术实现要素:
7.本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于改进bytetrack的车辆行人在线检测与跟踪方法,从检测和跟踪两方面入手,最大限度地将bytetrack算法模型改进优化,使其具备轻量、实时、高效的特点,提升其性能,使其更好地适配城市公共交通道路场景。
8.为解决上述技术问题,本发明所采取的技术方案是:
9.一种基于改进bytetrack的车辆行人在线检测与跟踪方法,具体步骤如下:
10.步骤1:从检测和跟踪两方面入手,优化改进bytetrack算法原模型;
11.步骤2:将reid外观特征提取模块加入原模型,以适应场景的复杂多变;
12.步骤3:利用模型压缩加速工具缓解sde模型的弊端,满足在线实时性;
13.步骤4:设计开发系统前端ui界面并实现bytetrack改进模型在系统上的搭载;
14.步骤5:结合搭载的bytetrack改进模型,实现并完善系统后端功能。
15.进一步地,所述步骤1中的检测部分,实现对bytetrack算法原模型所使用的yolox算法的升级改进,具体包括:在模型backbone和neck部分,用transformer编码块teb替换末端的csp2_1模块,每个teb包括两个子层,第一层为多头注意力层(multi-head attention layer),第二层(mlp)为全连接层,子层之间使用残差连接;同时,在neck部分,加入注意力机制acmix模块;在模型的head部分,针对底层、高分辨率的特征图,新增一个用于预测小目标的分支,对新增分支使用coupled head结构,原来的3个分支仍用decoupled head结构,每个decoupled head结构在concat前又有三个分支cls_output、obj_output和reg_output,分别用于预测目标框的类别、前景还是背景以及位置坐标(x,y,w,h),并将其中预测前景背景分支的loss函数由bceloss改为focalloss。
16.进一步地,所述步骤1中的跟踪部分,包括运动模型(状态估计)和数据关联两个子任务中的改进优化;
17.运动模型(状态估计)任务的改进为:采用无迹卡尔曼滤波器ukf进行状态估计,将ukf状态向量中的纵横比(即宽度/高度)改为宽度,由8维向量表示为ukf状态向量中的纵横比(即宽度/高度)改为宽度,由8维向量表示为即跟踪目标的状态向量;
18.数据关联任务的优化改进为:选用volgenant-jonker的改进算法vj-imp代替匈牙利算法;设定匹配代价矩阵时,放弃外观度量和运动度量简单加权和的计算方式,通过融合空间相似度和外观相似度,将余弦距离融合其中,剔除错误匹配的同时,创建结合运动和外观信息的损失矩阵,具体如下:
[0019][0020]
其中,是匹配代价矩阵的第i行第j列元素;是轨迹段第i个预测边界框和
第j个检测边界框之间的iou距离,代表运动损失;是轨迹段外观描述i和新检测描述j之间的余弦距离,代表外观损失;是接近阈值,设为0.5,用于丢弃不太可能匹配的轨迹段和检测对;是外观阈值,设为0.5,用于将轨迹段外观状态和检测嵌入向量的正关联与负关联分离;
[0021]
对于外观和iou都相似的目标,给予更小的损失;外观相似度超过阈值,iou相似度未超过,以外观损失作为损失的决定因素,相反亦然;其他情况损失设为1;按此规则更新匹配代价矩阵中的元素。
[0022]
进一步地,所述步骤1中在bytetrack模型后处理部分,采用一种轻量级插值算法,即高斯平滑插值gsi,用于填补由于缺失检测而导致的轨迹空白,该gsi算法采用高斯过程回归来模拟非线性运动。
[0023]
进一步地,所述步骤2中,bytetrack的byte检测关联方法中加入reid,提取行人和车辆的外观特征并对其进行距离度量,将外观模型与运动模型ukf结合;提取reid特征选择无监督方法cluster contrast reid;综合各大公开数据集中与车辆行人相关的数据,并采用mosaic和mixup两种数据增强方式。
[0024]
进一步地,所述步骤3中,加入reid特征后,mot算法采用sde类型的算法;bytetrack原始模型基于pytorch架构,利用onnx实现不同框架之间的相互转换,进而使用模型压缩加速工具pocketflow、tvm和tensorrt满足交通道路场景的在线和实时性。
[0025]
进一步地,所述步骤4中,利用pyqt5设计开发系统前端gui界面;在ui界面,针对性地选择bytetrack改进优化模型以及其他对比模型参数对目标进行检测追踪,如未选择具体的模型,则使用默认模型。
[0026]
进一步地,所述步骤5系统后端功能包括:单镜头跟踪、多类别跟踪、轨迹绘制、人/车流量统计;轨迹绘制,即根据移动对象窗口轮廓的中心位置,绘制跟踪目标的运行轨迹曲线,并使用不同颜色的曲线对目标进行区分;人/车流量统计,即实现动态人流/车流的实时去重计数,实时监控交通道路、卡口的人/车流量;检测跟踪计数的目标来源选择视频或图片文件,或者实时对设备所链接摄像头拍摄的画面进行在线处理;具体如下:
[0027]
选择视频文件进行检测跟踪时:点击左侧视频按钮弹出选取视频文件窗口,如果并未选择视频文件而直接退出选取视频文件窗口,左侧视频按钮后面的文本框会提示“实时视频未选中”;如果选取一个mp4或avi视频文件即能显示视频画面,左侧视频按钮后面的文本框会显示所选取视频文件的名称,目标标注在中间画面框中,右侧显示用时、目标数、置信度、位置坐标信息;如果想指定某个目标进行跟踪,则通过右侧的目标下拉选框选择,选择时画面暂停等待选择完成,画面中标注框定位到选中的目标;此外,还能够进行目标检测、跟踪、计数功能的切换,选择左下方的选项,切换检测、跟踪、计数功能,选择“目标检测”则能够在目标上标记类别以及置信度,选择选择“目标跟踪”则能够在目标上标记类别并计数,选择“跟踪计数”则能够在目标上标记运动轨迹并计数;目标的检测框和跟踪目标的运行轨迹曲线,均使用不同颜色的曲线和矩形框对目标进行加以区分;
[0028]
选择图片进行目标检测时:点击左侧图片选择按钮,与选择视频进行目标跟踪相似,弹出选取图片文件界面,选中一张图片进行检测,左侧图片按钮后面的文本框会显示所选文件的名称,能选中其中某个对象着重检测,“目标跟踪”、“目标检测”和“跟踪计数”功能
也与视频一样,由于图片的静态原因,切换“跟踪计数”和“目标跟踪”效果类似,“跟踪计数”会显示目标检测框中间代表轨迹的起始点;
[0029]
利用摄像头进行检测跟踪时:点击左侧摄像头按钮,则自动打开目前所链接的摄像头设备,检测跟踪的标记信息同样显示在界面中,其他功能和使用方法与选择视频进行目标检测一致。
[0030]
采用上述技术方案所产生的有益效果在于:本发明提供的基于改进bytetrack的车辆行人在线检测与跟踪方法,在bytetrack模型的基础上提出一个新的跟踪检测模型,根据tbd范式的特点,全方位多层次对bytetrack进行优化改进,整体提升其在城市公共交通道路场景的性能。首先,本发明将行人和车辆的检测跟踪相结合,提升模型对车辆跟踪的适配性,同时将跟踪的车辆分为自行车、小轿车、卡车、公交车、三轮车等多种类别,并针对不同类别实现行人和车辆的流量统计,扩展bytetrack的应用范围。其次,本发明针对coco、mot17、mot20、visdrone、veri等几大公开数据集中与车辆行人相关的数据进行筛选,选择更加契合交通道路场景的数据对算法模型进行训练、验证和测试,并采用mosaic和mixup两种数据增强方式,防止算法模型的过拟合,增强算法模型的鲁棒泛化性。最后,通过对yolox的改进,获取更高的mota指标;通过无监督方法cluster contrast reid提取外观特征,实现更高的idf1指标;通过ukf预测更新后续帧中轨迹的边界框以及通过vj-imp算法并改进其代价矩阵,收获更高的hota指标;通过模型压缩加速工具pocketflow、tvm和tensorrt,使算法计算量在不影响精度的前提下,得到更高的fps指标,综合这些改进策略,整体提升算法模型的性能。
附图说明
[0031]
图1为本发明实施例提供的bytetrack模型在线跟踪部分的改进示意图;
[0032]
图2为本发明实施例提供的yolox-s改进模型总体结构图;
[0033]
图3为本发明实施例提供的yolox-s改进模型backbone部分模块展开结构图;
[0034]
图4为本发明实施例提供的yolox-s改进模型neck部分模块展开结构图;
[0035]
图5为本发明实施例提供的yolox-s改进模型head部分模块展开结构图;
[0036]
图6为本发明实施例提供的用于mot领域的ukf算法流程图;
[0037]
图7为本发明实施例提供的bytetrack模型后处理部分的改进示意图;
[0038]
图8为本发明实施例提供的系统整体前端ui界面示意图;
[0039]
图9为本发明实施例提供的选取视频文件界面示意图;
[0040]
图10为本发明实施例提供的选取视频文件跟踪计数效果图;
[0041]
图11为本发明实施例提供的选取视频文件进行检测跟踪时跟踪指定某个目标效果图;
[0042]
图12为本发明实施例提供的选取视频文件进行检测跟踪时切换“目标检测”效果图;
[0043]
图13为本发明实施例提供的选取视频文件进行检测跟踪时切换“目标跟踪”效果图;
[0044]
图14为本发明实施例提供的选取图片文件进行检测跟踪时切换“目标检测”效果图;
[0045]
图15为本发明实施例提供的选取图片文件进行检测跟踪时切换“目标跟踪”效果图;
[0046]
图16为本发明实施例提供的选取图片文件进行检测跟踪时切换“跟踪计数”效果图;
[0047]
图17为本发明实施例提供的选取图片文件进行检测跟踪时检测指定某个目标效果图;
[0048]
图18为本发明实施例提供的打开摄像头进行检测跟踪示意图。
具体实施方式
[0049]
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0050]
本发明的应用场景包括但不限于城市交通道路,相关监管部门的智能交通监控系统,调用本发明的功能模块,对所拍摄的监控视频或图片进行处理。
[0051]
本实施例的基本假设如下:本发明的方法已与相关监管部门的智能交通监控系统成功对接,相关硬件设备可正常使用,系统的环境配置也已完备。
[0052]
跟踪目标运动系统的状态方程和检测方程如下所示:
[0053][0054]
假设,过程噪声qk对系统状态转移过程的影响是线性的,检测噪声rk对系统检测过程的影响也是线性的,因此,在状态方程和检测方程中,过程噪声qk和检测噪声rk是以线性可加项的形式存在的,进而,qk与xk是同维的,rk与yk是同维的。
[0055]
假设有如下已知条件:
[0056]
高斯的状态量随机向量x,n
x
维,记n
x
=n;
[0057]
k-1时刻x的后验均值与后验协方差:
[0058]
高斯的过程噪声随机向量:
[0059]
状态转移函数:f(x
k-1
);
[0060]
高斯的检测量随机向量z,nz维;
[0061]
k时刻z的检测取值zk;
[0062]
高斯的检测噪声随机向量:r~n(0,∑r);
[0063]
检测函数:h(xk)。
[0064]
本实施例提供的基于改进bytetrack的车辆行人在线检测与跟踪方法,具体如下所述。
[0065]
步骤1:从检测和跟踪两方面入手,优化改进bytetrack算法原模型。
[0066]
在线跟踪整体优化改进策略如图1所示,具体说明如下。
[0067]
检测部分,实现对bytetrack算法原模型所使用的yolox算法的升级改进。
[0068]
目标检测器优良的性能是利用基于tbd范式的mot模型实现跟踪任务的关键因素,本发明基于yolox-s
模型,整体改进模型结构如图2所示,对cbs、focus、csp1_x、simcspsppf模块的进一步展开,如图3所示。在模型backbone和neck部分,用transformer编码块(teb)
替换末端的csp2_1模块,如图4所示,每个teb包含两个子层:第一层为多头注意力层(multi-head attention layer),第二层(mlp)为全连接层,子层之间使用残差连接。同时,在neck部分,加入注意力机制acmix模块,其结构如图4所示。在模型的head部分,针对底层、高分辨率的特征图,新增一个用于预测小目标的分支,可以更加适应目标尺度的剧烈变化。为了减小计算和存储成本,对新增分支使用coupled head结构,如图5所示,原来的3个分支仍用decoupled head结构,每个decoupled head结构在concat前又有三个分支cls_output、obj_output和reg_output,分别用于预测目标框的类别、前景还是背景以及位置坐标(x,y,w,h),将其中预测前景背景分支的loss函数由bceloss改为focalloss,可加速收敛。
[0069]
跟踪部分,包括运动模型(状态估计)和数据关联两个子任务中的改进优化。
[0070]
运动模型(状态估计)任务的改进如下:
[0071]
当卡尔曼滤波器(kf)用于多目标跟踪任务时,需要估计轨迹的均值(mean)和协方差(covariance)两个信息:(1)均值,表示目标的位置信息,即kf状态表征。bytetrack试图估计框的纵横比,但若预测框大小的拟合能做到与检测框类似相差不大的情况下,iou匹配可以很鲁棒,所以将ukf状态向量中的纵横比(宽度/高度)改为宽度,由8维向量表示为即跟踪目标的状态向量。(2)协方差:即目标轨迹的协方差矩阵,是一个8
×
8的对角矩阵,矩阵中数字的大小与不确定性成正比。
[0072]
本实施例采用无迹卡尔曼滤波器(ukf),其主要思想是近似非线性函数的概率分布要比近似非线性函数本身要容易,ukf和ekf计算复杂度相当,但是ukf具有更高的估计精度,在实现上也比ekf更为简单。如图6所示,具体步骤如下。
[0073]
步骤1.1:初始化。
[0074]
步骤1.1.1:选定滤波初值;
[0075]
根据目标检测结果z0及测量矩阵h计算对应的状态量初始均值设定状态量协方差初值
[0076]
步骤1.1.2:选定无迹变换参数;
[0077]
设定比例无迹变换参数α、β、κ和λ的参数值,参数λ满足:
[0078]
λ=α2(n+κ)-n
ꢀꢀꢀ
(2)
[0079]
其中,参数α和κ为确定2n+1个sigma点分布在均值多远的范围内的比例参数;α满足10-4
≤α≤1,为避免强非线性系统中的非局部效应问题,α通常取一个较小值;κ满足κ≥0,通常取κ=3-n或κ=0。参数β用于引入随机变量概率分布的高阶矩信息,当分布是精确的高斯分布时,则β=2是最优选择。
[0080]
步骤1.1.3:sigma点权重计算;
[0081]
根据无迹变换参数取值及权重计算公式计算各sigma点(2n+1个)的权重:
[0082]
[0083][0084]
其中,表示计算近似均值时sigma点的权重,w
c(i)
表示计算近似协方差时sigma点的权重。
[0085]
对k=1,2,3,
…
,循环执行步骤1.2-步骤1.5:
[0086]
步骤1.2:对k-1时刻状态量x
k-1
的后验概率分布进行sigma采样,即按照公式(5)采样得到2n+1个sigma点,构成n
×
(2n+1)的点集矩阵
[0087][0088]
其中,代表轨迹在k-1时刻的状态均值;是的均值;的均值;表示矩阵作柯列斯基分解后下三角矩阵的第i-1列,同理;
[0089]
步骤1.3:预测阶段,即基于轨迹在k-1时刻的状态来预测其在k时刻的状态。
[0090]
步骤1.3.1:状态转移非线性变换
[0091][0092]
式中,为轨迹在k-1时刻的状态均值,f称为状态转移矩阵;公式(6)预测k时刻的即非线性变换之后的点集矩阵,其矩阵形式如下所示:
[0093][0094]
其中,中表示目标位置信息的8维向量由目标框的中心坐标(xc,yc),宽高比a,高h,以及其各自的速度变化值组成,矩阵f中的dt是当前帧和前一帧之间的差,将等号右边的矩阵乘法展开,可以得到前帧和前一帧之间的差,将等号右边的矩阵乘法展开,可以得到即这里的卡尔曼滤波是一个匀速模型。
[0095]
步骤1.3.2:加权计算k时刻状态量xk的先验概率分布,即近似均值与近似协方差∑y:
[0096][0097][0098]
式中,∑q是噪声矩阵,象征整个运动系统的可靠程度,初始化为很小的值。
[0099]
步骤1.4:对k时刻状态量xk的先验概率分布进行sigma采样:
[0100][0101]
为降低运算量,可以省略步骤1.4,而在下一步中直接使用步骤1.3中的sigma点集但在一定程度上会降低精度。
[0102]
步骤1.5:更新阶段,即基于k时刻检测器获得的检测框,调整与其关联的轨迹框的位置、尺寸信息。
[0103]
步骤1.5.1:检测非线性变换;
[0104][0105]
式中,为检测的均值向量,即z=[xc,yc,w,h],h为测量矩阵,是轨迹框的均值向量到检测均值向量的转换矩阵。
[0106]
步骤1.5.2:加权计算k时刻检测量zk的概率分布,即近似均值与近似协方差与近似协方差
[0107][0108]
式中,∑r为检测器的噪声矩阵,由一个4
×
4的对角矩阵表示,中心点坐标以及检测框宽高(x,y,w,h)的噪声依次由对角线上的值表示,初始化时,中心点的噪声要小于宽高的噪声。
[0109]
步骤1.5.3:计算状态量与检测量的互协方差
[0110][0111]
步骤1.5.4:计算卡尔曼增益kk:
[0112][0113]
步骤1.5.5:计算k时刻状态量xk的后验概率分布,即更新后的近似均值与近似协方差
[0114]
[0115][0116]
数据关联任务的优化改进如下:
[0117]
数据关联是mot任务中的关键步骤,完成帧与帧之间多个目标(id)的匹配。本实施例选用volgenant-jonker的改进算法vj-imp代替匈牙利算法,提高匹配速度,并减小内存占用。设定匹配代价矩阵时,放弃外观度量和运动度量简单加权和的计算方式,通过融合空间相似度和外观相似度,将余弦距离融合其中,剔除错误匹配的同时,创建结合运动和外观信息的损失矩阵,具体如下:
[0118][0119]
其中,是匹配代价矩阵的第i行第j列元素;是轨迹段第i个预测边界框和第j个检测边界框之间的iou距离,代表运动损失;是轨迹段外观描述i和新检测描述j之间的余弦距离,代表外观损失;是接近阈值,设为0.5,用于丢弃不太可能匹配的轨迹段和检测对;是外观阈值,设为0.5,用于将轨迹段外观状态和检测嵌入向量的正关联与负关联分离。对于外观和iou都相似的目标,给予更小的损失;外观相似度超过阈值,iou相似度未超过,以外观损失作为损失的决定因素,相反亦然,外观相似度未超过阈值,iou相似度超过,以运动损失作为损失的决定因素;其他情况损失设为1。按此规则更新匹配代价矩阵中的元素。
[0120]
在后处理阶段,将在线跟踪得到的视频所有序列轨迹,通过轨迹插值,填补由于缺失检测而导致的轨迹空白,得到视频中所有目标的轨迹。插值被广泛用于填补由于缺失检测而导致的轨迹空白。线性插值因其简单性而广受欢迎,然而,因其不使用运动信息,准确性受到局限。本实施例采用一种轻量级插值算法,即高斯平滑插值gsi,如图7所示,该gsi算法采用高斯过程回归来模拟非线性运动,定位更精确,在准确性和效率之间实现良好的权衡。
[0121]
步骤2:将reid外观特征提取模块加入原模型,以适应场景的复杂多变。
[0122]
bytetrack的byte检测关联方法利用高分框和低分框之间的区别和再匹配,有效减缓遮挡导致目标丢失,简单高效,对于解决城市公共交通道路场景中因拥堵导致遮挡问题具有很大的潜力,在运动模式比较单一的mot17、mot20数据集上取得了高性能,但现实交通道路场景车辆和行人的运动模式一般都比较复杂,因此,本实施例加入reid,提取行人和车辆的外观特征并对其进行距离度量,将外观模型与运动模型(ukf)结合,提高跟踪的准确度。其中,提取reid特征选择无监督方法cluster contrast reid,其精度可以超过很多有监督算法和无监督域自适应行人重识别方法,且框架非常简单,在车辆重识别数据集上也具有有效性。本实施例综合coco、mot17、mot20、visdrone、veri等各大公开数据集中与车辆行人相关的数据,并采用mosaic和mixup两种数据增强方式,防止算法模型的过拟合,增强算法模型的鲁棒泛化性,契合交通道路这一真实场景。
[0123]
步骤3:利用模型压缩加速工具缓解sde模型的弊端,满足在线实时性。
[0124]
加入reid特征后,mot算法有sde(separate detection and embedding)和jde(joint detection and embedding)两种选型。结合现实城市公共交通道路复杂多变的情况,加之,跟踪视频标注数据较少,而检测和reid方向数据量大,各自的标注成本也更低,本实施例采用sde类型的算法。针对sde算法计算量大、推理速度慢的问题,虽然sde类型的mot算法模型计算量大,但现有的模型压缩和加速技术可以提高推理效率,而不会降低性能。bytetrack原始模型基于pytorch架构,为了实现对改进后的yolox-s模型以及cluster contrast reid模型的压缩加速,利用onnx实现不同框架之间的相互转换,进而使用模型压缩加速工具pocketflow、tvm和tensorrt满足交通道路场景的在线和实时性,完成在计算资源有限的移动设备上的部署。
[0125]
步骤4:设计开发系统前端ui界面并实现bytetrack改进模型在系统上的搭载。
[0126]
步骤5:结合搭载的bytetrack改进模型,实现并完善系统后端功能。
[0127]
本实施例利用pyqt5设计开发系统前端gui界面,整体界面如图8所示。覆盖单镜头跟踪、多类别跟踪、轨迹绘制、人/车流量统计等功能,在ui界面,针对性地选择bytetrack改进优化模型以及其他对比模型参数对目标进行检测追踪,如未选择具体的模型,则使用默认模型。轨迹绘制,即根据移动对象窗口轮廓的中心位置,绘制跟踪目标的运行轨迹曲线,并使用不同颜色的曲线对目标进行区分。人/车流量统计,即实现动态人流/车流的实时去重计数,实时监控交通道路、卡口的人/车流量。检测跟踪计数的目标来源可选视频和图片文件,也可实时对设备所链接摄像头拍摄的画面进行在线处理,具体如下:
[0128]
(1)选择视频文件进行检测跟踪:点击左侧视频按钮可弹出选取视频文件窗口,如图9所示,如果并未选择视频文件而直接退出选取视频文件窗口,左侧视频按钮后面的文本框会提示“实时视频未选中”;如果选取一个mp4或avi视频文件即可显示视频画面,左侧视频按钮后面的文本框会显示所选取视频文件的名称,如图10所示,目标标注在中间画面框中,右侧显示用时、目标数、置信度、位置坐标信息,如图11所示,如果想指定某个目标进行跟踪,可通过右侧的目标下拉选框选择,选择时画面暂停等待选择完成,画面中标注框定位到选中的目标。此外,还可以进行目标检测、跟踪、计数功能的切换,选择左下方的选项,可切换检测、跟踪、计数功能,选择“目标检测”可在目标上标记类别以及置信度,如图12所示;选择选择“目标跟踪”可在目标上标记类别并计数,如图13所示;选择“跟踪计数”可在目标上标记运动轨迹并计数,如图10所示。目标的检测框和跟踪目标的运行轨迹曲线,均使用不同颜色的曲线和矩形框对目标进行加以区分。
[0129]
(2)选择图片进行目标检测:点击左侧图片选择按钮,与选择视频进行目标跟踪类似,弹出选取图片文件界面,选中一张图片进行检测,左侧图片按钮后面的文本框会显示所选文件的名称,可选中其中某个对象着重检测,“目标跟踪”、“目标检测”和“跟踪计数”功能也与视频一样,由于图片的静态原因,切换“跟踪计数”和“目标跟踪”效果类似,“跟踪计数”会显示目标检测框中间代表轨迹的起始点。如图14、图15、图16和图17所示。
[0130]
(3)利用摄像头进行检测跟踪:点击左侧摄像头按钮,则自动打开目前所链接的摄像头设备,检测跟踪的标记信息同样显示在界面中,如图18所示,其他功能和使用方法与选择视频进行目标检测一致。
[0131]
本发明在bytetrack模型的基础上提出一个新的跟踪检测模型,根据tbd范式的特点,全方位多层次对bytetrack进行优化改进,整体提升其在城市公共交通道路场景的性
能,总体分为检测和跟踪两个方面:1)检测部分,实现对bytetrack所使用的yolox-s模型的升级改进;2)跟踪部分,分为运动状态估计和关联匹配两个子任务中的改进优化:
①
运动状态估计任务中用来预测和更新目标下一帧位置的经典卡尔曼滤波算法的升级改进;
②
数据关联任务中用来匹配前一帧与当前帧的目标id的匈牙利算法的升级改进以及其对应匹配代价矩阵cost matrix(涉及iou距离和reid相似度)计算方法的修改优化。
[0132]
首先,国内外有关检测跟踪技术的研究很广泛,但对于城市公共交通道路这一场景来说,较为片面,且存在一定的局限性。目前,mot领域的算法模型大多以行人作为主要的跟踪目标,车辆跟踪的研究大多在自动驾驶领域,与交通监控场景适配度不高。bytetrack主要是对行人跟踪进行研究,将其用于车辆跟踪时,其跟踪效果显著降低。本发明将行人和车辆的检测跟踪相结合,提升模型对车辆跟踪的适配性,同时将跟踪的车辆分为自行车、小轿车、卡车、公交车、三轮车等多种类别,并针对不同类别实现行人和车辆的流量统计,扩展bytetrack的应用范围。
[0133]
其次,在mot及其相关研究领域,学术界为对比展现所提出算法模型性能的优越,一般会使用相同单一的数据集,运动模式较为简单,且一般只针对行人或车辆,针对车辆跟踪的数据集主要来自自动驾驶领域,是从车辆驾驶员角度所拍摄的视频数据,与交通监控系统的拍摄角度存在差异。本发明针对coco、mot17、mot20、visdrone、veri等几大公开数据集中与车辆行人相关的数据进行筛选,选择更加契合交通道路场景的数据对算法模型进行训练、验证和测试,并采用mosaic和mixup两种数据增强方式,防止算法模型的过拟合,增强算法模型的鲁棒泛化性。
[0134]
最后,通过对bytetrack模型的改进优化,实现更高的评测指标:通过对yolox的改进,获取更高的mota指标;通过无监督方法cluster contrast reid提取外观特征,实现更高的idf1指标;通过ukf预测更新后续帧中轨迹的边界框以及通过vj-imp算法并改进其代价矩阵,收获更高的hota指标;通过模型压缩加速工具pocketflow、tvm和tensorrt,使算法计算量在不影响精度的前提下,得到更高的fps指标,综合这些改进策略,整体提升算法模型的性能。
[0135]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
技术特征:
1.一种基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:包括如下步骤:步骤1:从检测和跟踪两方面入手,优化改进bytetrack算法原模型;步骤2:将reid外观特征提取模块加入原模型,以适应场景的复杂多变;步骤3:利用模型压缩加速工具缓解sde模型的弊端,满足在线实时性;步骤4:设计开发系统前端ui界面并实现bytetrack改进模型在系统上的搭载;步骤5:结合搭载的bytetrack改进模型,实现并完善系统后端功能。2.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤1中的检测部分,实现对bytetrack算法原模型所使用的yolox算法的升级改进,具体包括:在模型backbone和neck部分,用transformer编码块teb替换末端的csp2_1模块,每个teb包括两个子层,第一层为多头注意力层(multi-head attention layer),第二层(mlp)为全连接层,子层之间使用残差连接;同时,在neck部分,加入注意力机制acmix模块;在模型的head部分,针对底层、高分辨率的特征图,新增一个用于预测小目标的分支,对新增分支使用coupled head结构,原来的3个分支仍用decoupled head结构,每个decoupled head结构在concat前又有三个分支cls_output、obj_output和reg_output,分别用于预测目标框的类别、前景还是背景以及位置坐标(x,y,w,h),并将其中预测前景背景分支的loss函数由bceloss改为focalloss。3.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤1中的跟踪部分,包括运动模型即状态估计和数据关联两个子任务中的改进优化;运动模型即状态估计任务的改进为:采用无迹卡尔曼滤波器ukf进行状态估计,将ukf状态向量中的纵横比(即宽度/高度)改为宽度,由8维向量表示为状态向量中的纵横比(即宽度/高度)改为宽度,由8维向量表示为即跟踪目标的状态向量;数据关联任务的优化改进为:选用volgenant
–
jonker的改进算法vj-imp代替匈牙利算法;设定匹配代价矩阵时,放弃外观度量和运动度量简单加权和的计算方式,通过融合空间相似度和外观相似度,将余弦距离融合其中,剔除错误匹配的同时,创建结合运动和外观信息的损失矩阵,具体如下:其中,是匹配代价矩阵的第i行第j列元素;是轨迹段第i个预测边界框和第j个检测边界框之间的iou距离,代表运动损失;是轨迹段外观描述i和新检测描述j之间的余弦距离,代表外观损失;是接近阈值,设为0.5,用于丢弃不太可能匹配的轨迹段和检测对;是外观阈值,设为0.5,用于将轨迹段外观状态和检测嵌入向量的正关联与负关联分离;对于外观和iou都相似的目标,给予更小的损失;外观相似度超过阈值,iou相似度未超
过,以外观损失作为损失的决定因素,相反亦然;其他情况损失设为1;按此规则更新匹配代价矩阵中的元素。4.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤1中在bytetrack模型后处理部分,采用一种轻量级插值算法,即高斯平滑插值gsi,用于填补由于缺失检测而导致的轨迹空白,该gsi算法采用高斯过程回归来模拟非线性运动。5.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤2中,bytetrack的byte检测关联方法中加入reid,提取行人和车辆的外观特征并对其进行距离度量,将外观模型与运动模型ukf结合;提取reid特征选择无监督方法cluster contrast reid;综合各大公开数据集中与车辆行人相关的数据,并采用mosaic和mixup两种数据增强方式。6.根据权利要求5所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤3中,加入reid特征后,mot算法采用sde类型的算法;bytetrack原始模型基于pytorch架构,利用onnx实现不同框架之间的相互转换,进而使用模型压缩加速工具pocketflow、tvm和tensorrt满足交通道路场景的在线和实时性。7.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤4中,利用pyqt5设计开发系统前端gui界面;在ui界面,针对性地选择bytetrack改进优化模型以及其他对比模型参数对目标进行检测追踪,如未选择具体的模型,则使用默认模型。8.根据权利要求1所述的基于改进bytetrack的车辆行人在线检测与跟踪方法,其特征在于:所述步骤5系统后端功能包括:单镜头跟踪、多类别跟踪、轨迹绘制、人/车流量统计;轨迹绘制,即根据移动对象窗口轮廓的中心位置,绘制跟踪目标的运行轨迹曲线,并使用不同颜色的曲线对目标进行区分;人/车流量统计,即实现动态人流/车流的实时去重计数,实时监控交通道路、卡口的人/车流量;检测跟踪计数的目标来源选择视频或图片文件,或者实时对设备所链接摄像头拍摄的画面进行在线处理;具体如下:选择视频文件进行检测跟踪时:点击左侧视频按钮弹出选取视频文件窗口,如果并未选择视频文件而直接退出选取视频文件窗口,左侧视频按钮后面的文本框会提示“实时视频未选中”;如果选取一个mp4或avi视频文件即能显示视频画面,左侧视频按钮后面的文本框会显示所选取视频文件的名称,目标标注在中间画面框中,右侧显示用时、目标数、置信度、位置坐标信息;如果想指定某个目标进行跟踪,则通过右侧的目标下拉选框选择,选择时画面暂停等待选择完成,画面中标注框定位到选中的目标;此外,还能够进行目标检测、跟踪、计数功能的切换,选择左下方的选项,切换检测、跟踪、计数功能,选择“目标检测”则能够在目标上标记类别以及置信度,选择选择“目标跟踪”则能够在目标上标记类别并计数,选择“跟踪计数”则能够在目标上标记运动轨迹并计数;目标的检测框和跟踪目标的运行轨迹曲线,均使用不同颜色的曲线和矩形框对目标进行加以区分;选择图片进行目标检测时:点击左侧图片选择按钮,与选择视频进行目标跟踪相似,弹出选取图片文件界面,选中一张图片进行检测,左侧图片按钮后面的文本框会显示所选文件的名称,能选中其中某个对象着重检测,“目标跟踪”、“目标检测”和“跟踪计数”功能也与视频一样,由于图片的静态原因,切换“跟踪计数”和“目标跟踪”效果类似,“跟踪计数”会显
示目标检测框中间代表轨迹的起始点;利用摄像头进行检测跟踪时:点击左侧摄像头按钮,则自动打开目前所链接的摄像头设备,检测跟踪的标记信息同样显示在界面中,其他功能和使用方法与选择视频进行目标检测一致。
技术总结
本发明提供一种基于改进ByteTrack的车辆行人在线检测与跟踪方法,涉及计算机视觉技术领域。本发明整合目标检测、运动状态估计、外观特征提取、数据关联算法以及后处理轨迹插值方法对MOT算法模型ByteTrack进行优化改进,并利用模型压缩加速工具PocketFlow、TVM和TensorRT实现其轻量、实时、高效。系统覆盖单镜头跟踪、多类别跟踪、轨迹绘制、人/车流量统计等功能,在UI界面,针对性地选择ByteTrack改进优化模型以及其他对比模型参数对目标进行检测追踪,检测跟踪计数的目标来源可选视频和图片文件,也可实时对设备所链接摄像头拍摄的画面进行在线处理,在诸如车辆行为分析、交通违章判别、嫌疑犯追踪等场景,有着巨大的实用空间和发展潜力。间和发展潜力。间和发展潜力。
技术研发人员:汪力行 杨鑫雨 魏卓其
受保护的技术使用者:东北大学
技术研发日:2023.06.30
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
