最近新出的霸榜的多目标跟踪BoT-SORT论文在MOTChallenge数据集上得出的结果排名第一(state-of-the-art),其中指标实现了 80.5% MOTA、80.2% IDF1 和 65.0% HOTA。
论文秉持一贯的风格使用 Tracking-by-detection 作为MOT任务,使用当前最先进的检测器YOLOX作为检测任务,在ByteTrack的基础上更新很多作者自己的想法。
起初SORT中KF状态向量为7元组组成:
,其中x,y为中心值,s为边界框比例(面积),a为边界框的纵横比(w/h)。
而DeepSort中KF状态向量改为8元组:
,a依然为边界框的纵横比,只是将第四维改成的边界框的高度h预测。
论文中修改KF状态向量为如下形式:
,将宽高比改成了预测宽度w,是因为作者发现在真实预测的过程中预测框总是不将行人完全包括进去,而正确的预测宽高能更好的匹配行人框,对跟踪匹配中的IOU也有很大的改善。
论文中截取的图

另外根据状态向量修改初始化的矩阵参数(过程噪声、测量噪声)以满足总体修改预测。
由于KF是匀速线性运动模型,对于跟踪非线性来说会产生不适配的问题,作者提出使用传统的方法Global motion compensation (GMC),使用OpenCV中的提取图像关键点技术对背景提取特征描述子(类似ORG、SIFT、SURF),并且通过特征点进行稀疏光流跟踪来使用RANSAC计算并获取背景运动的仿射变换矩阵,以此通过前后帧的运动信息生成仿射变换矩阵来预测行人边界框,称为运动补偿,仿射变换矩阵平移部分只会影响中心点位置,而其它的影响状态向量和噪声矩阵。由此作者给出了运动校正的等式方程:

对于在跟踪中加入运动补偿后的效果其实是可想而知的,作者实验也贴了图,实际过程中,KF在预测的时候,假如目标运动过快或者过慢的情况可能会出现预测的滞后与提前,而在运动匹配的过程中iou匹配其实会显得比较困难,因为不管预测框是滞后或提前总是会造成与检测框的重合度不高的情况,这就给MOT带来了极大的挑战,况且不说运动模糊的情况。

三、IOU+ReID的融合机制
使用FastReID库中ResNest50作为backbone,BoT(SBS)作为基线训练reid网络,网络训练使用默认的参数,从FastReID项目中可以找到,使用的分辨率为128x384的输入分辨率,损失函数使用了经典的TripletLoss,总共迭代60个epoch训练出强有力的ReID网络提取特征。并且采用指数移动平均(EMA)来更新第k帧中第i个预测框的轨迹状态,在拥挤以及遮挡的场景中检测得分低的表示特征不可靠,并不会用来做特征匹配。
并且有提出使用IOU+ReID融合机制的策略来进行匹配,使用下面公式作为匹配输出:

作者使用设置iou阈值为0.5,余弦相似度阈值为0.2作为匹配的限制。

作者最后提到可能对于使用场景的不同,对于GMC来说大图会产生耗时较大的问题,可以采用多线程的方式来抵消平衡这一部分耗时,不过博主觉得在嵌入式端的话使用的分辨率一般不会太大,毕竟板端的耗时太大会影响整个跟踪的性能。
另外作者也使用到了一些匹配小技巧,在跟踪中经常发生,由于目标的遮挡以及未匹配会导致预测的梯度弥散效应,导致预测框的形变发生,而这里可以做一些基础的策略来保持,作者未提出只是给了相关文献,大概能知道为了保持此预测框在目标出现是尽可能的匹配上连接之前的轨迹,类似ByteTrack策略,在低得分的检测框出现的时候依然使用IOU去做匹配,以保持轨迹的连续性。
而且作者说自己其实也不清楚是为什么使得MOT的一些指标有提升的,猜想可能是因为KF的状态向量W参数的预测修改使得预测框与检测框拟合,匹配更好导致的。这一点我觉得还是很有用的,对于预测框大小的拟合能做到与检测框类似相差不大的情况下,iou匹配是可以起到很鲁棒的作用。
实用性:
个人认为这篇论文还是有很多实用参考价值的,因为其中的运动过程中丢失目标是跟踪过程中时常发生的,对于KF中的状态修改可以直接影响预测的匹配,对于运动补偿对于实践可能会稍微困难点,但值得一试!!!
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
我已经搜索过这个问题的答案,但没有成功,有一个类似的问题,但答案在这种情况下不起作用,它按数字项目排序。SimilarQuestion-Thatdidnotwork我正在尝试使用ruby的sort_by对一个项目进行降序排序和另一个升序排序。我只能找到一个。代码如下:#PrimarysortLastNameDescending,withtiesbrokenbysortingAreaofinterest.people=people.sort_by{|a|[a.last_name,a.area_interest]}任何指导肯定会有所帮助。示例数据:输入罗素,逻辑欧拉,图论伽罗瓦,抽象代
写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c
TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是
文章目录概述背景为何要存算分离优势**应用场景**存算分离产品技术流派华为JuiceFSHashDataXSKY概述背景Hadoop一出生就是奔存算一体设计,当时设计思想就是存储不动而计算(code也即是代码程序)动,负责调度Yarn会把计算任务尽量发到要处理数据所在的实例上,这也是与传统集中式存储最大的不同。为何当时Hadoop设计存算一体的耦合?要知道2006年服务器带宽只有100Mb/s~1Gb/s,但是HDD也即是磁盘吞吐量有50MB/s,这样带宽远远不够传输数据,网络瓶颈尤为明显,无奈之举只好把计算任务发到数据所在的位置。众观历史常言道天下分久必合合久必分,随着云计算技术的发展,数据
TCP是面向连接的协议,连接的建立和释放是每一次面向连接的通信中必不可少的过程。TCP连接的管理就是使连接的建立和释放都能正常地进行。三次握手TCP连接的建立—三次握手建立TCP连接①若主机A中运行了一个客户进程,当它需要主机B的服务时,就发起TCP连接请求,并在所发送的分段中用SYN=1表示连接请求,并产生一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x。主机B收到A的连接请求报文,就完成了第一次握手。客户端发送SYN=1表示连接请求客户端发送一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x②主机B如果同意建立连接,则向主机A发送确认报
我想按数据库表列“plays”对其进行排序/排序(按我想要的方式降序或升序)我完全糊涂了。刚刚找到了select而不是collection_select的解决方案?我的一些代码不知道如何排序/排序数据库表中还有一些列,如“plays”、“goals”... 最佳答案 只需将实际排序的集合传递给collection_select助手:collection_select(:post,:author_id,Author.order('created_atDESC'),:id,:name_with_initial,:prompt=>true
CSDN优秀解读:https://blog.csdn.net/jiaoyangwm/article/details/1266387752021https://arxiv.org/pdf/2103.14259.pdf关键解读在目标检测中标签分配的最新进展主要寻求为每个GT对象独立定义正/负训练样本。在本文中,我们创新性地从全局的角度重新审视标签分配,并提出将分配程序制定为一个最优传输(OT)问题——优化理论中一个被充分研究的课题。具体来说,我们将每个需求方(锚框)和供应商(GT标签)的单位传输成本定义为他们的分类和回归损失加权之和。在公式化后,找到最好的分配方案即为最小传播成本解决最优传输方案,
VXLAN简介定义RFC定义了VLAN扩展方案VXLAN(VirtualeXtensibleLocalAreaNetwork,虚拟扩展局域网)。VXLAN采用MACinUDP(UserDatagramProtocol)封装方式,是NVO3(NetworkVirtualizationoverLayer3)中的一种网络虚拟化技术。目的随着网络技术的发展,云计算凭借其在系统利用率高、人力/管理成本低、灵活性/可扩展性强等方面表现出的优势,已经成为目前企业IT建设的新趋势。而服务器虚拟化作为云计算的核心技术之一,得到了越来越多的应用。服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为
目录一、原理部分1、什么是串行通信(1)并行通信与串行通信(2)串行通信的制式(3)串行通信的主要方式 2、配置串口(1)SCON和PCON:串行口1的控制寄存器(2)SBUF:串行口数据缓冲寄存器 (3)AUXR:辅助寄存器编辑(4)ES、PS:与串行口1中断相关的寄存器(5)波特率设置 3、串口框架编写二、程序案例一、原理部分1、什么是串行通信(1)并行通信与串行通信微控制器与外部设备的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信和串行通信。并行通信:数据的各位同时发送与接收,每个数据位使用一条导线,这种方式传输快,但是需要多条导线进行信号传输。串行通信:数据一位一