SORT论文阅读笔记

目前的想法: 若此时tracker为未更新状态,则直接使用前面匹配上的运动轨迹状态做平均预估下一帧轨迹状态,不使用KF预测。 然后使用ORU插值 为了之后的KF

最大的好处: 快

对于oc-sort的ocr , 虽然是丢失轨迹的检测值和重新出现的检测值IOU关联,但是 在遮挡期间,仍然使用KF对丢失轨迹预测,(预测后的结果你又不用来匹配 这无疑是一种浪费) ,我认为这里还是用KF的目的是通过T-remain 去找到(下图)

和当前Z-remain匹配。


OC-SORT

现有的方法对运动预测都是基于线性运动假设,对非线性运动、遮挡、低帧率视频就没有好的处理效果

SORT有三个缺点:

1.帧率很高的情况,目标位移的噪声可能就和位移大小本身差不多(因为位移会很小),这样Kalman的方差会很大。

2.由于遮挡等原因,如果没有新的轨迹和检测匹配,那目标的噪声可能会积累。证明了误差积累关于时间是平方关系。

3.Kalman主要依赖于状态估计、线性模型,把观测只作为辅助信息。作者认为现在的检测器足够强,应该已经可以把观测作为主要信息了(Observation-Centirc的来源)

一、OOS(Observation-centric Online Smoothing):减少KF带来的累积误差

bytetrack中的轨迹插值: 轨迹插值是一种有效的后处理方法来获得那些完全被遮挡的物体的框。

这个oos貌似和byte中的轨迹插值就是一回事

现在心里有个疑问 oos是按照匀速运动平滑 但是如果一个人被遮挡后 反方向走 会被追踪到吗

OCM(Observation-centric Momentum):在代价矩阵中加入轨迹的方向一致性,更好地实现匹配

三 OCR(Observation-centric Recovery):恢复由于遮挡造成的跟丢问题

其实单图像检测器其实性能还是蛮差的,他这完全抛弃估计,以检测为中心感觉误差会更差,特别是在自动驾驶等大数据集、复杂场景下,单图像的性能比激光、融合差一大截。

OCR和OOS都是为了解决被遮挡后 KF预测不可靠的问题

参考:(103条消息) [论文阅读笔记13]Observation-Centric SORT(OCSORT)论文中的公式推导-CSDN博客

(109条消息) 论文阅读:Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking——OC-SORT_大聪聪聪的博客-CSDN博客


Hard to Track Objects with Irregular Motions and Similar Appearances? Make It Easier by Buffering the Matching Space

WACV2023

(109条消息) 多目标跟踪论文调研_mumuxi_c的博客-CSDN博客

(109条消息) 【MOT】C-BIoU:Hard to Track Objects with Irregular Motions and Similar Appearances?_We!Y1的博客-CSDN博客

C-BIou tracker :主要改进点使用原始sort,在匹配阶段使用将iou替换成Biou,设置比例扩展匹配框大小,并使用级联匹配机制,通过参数b(Buffer Scale) 设置small buffer & large buffer 分别第一次匹配激活tracker以及第二次未匹配上的tracker;并在KF预测过程中,若此时tracker为未更新状态,则直接使用前面匹配上的运动轨迹状态做平均预估下一帧轨迹状态,不使用KF预测,因为作者认为此时KF已经不准确了,并且使用KF预测增加耗时!

这篇文章貌似在IOUTracker基础上而来


VariabilityTrack:Multi-Object Tracking with Variable Speed Object Movement

在bytetrack基础上改进的

(109条消息) VariabilityTrack:Multi-Object Tracking with Variable Speed Object Movement_bytetrack的改进_Fwenxuan的博客-CSDN博客

两个KF,当目标加速度较大时,使用加速卡尔曼滤波,当目标加速度较小时,使用均匀卡尔曼滤波。

而且还改进了匹配的过程


BoT-SORT代码是基于ByteTrack的基础上进行改进,而Strong-SORT代码是基于原生DeepSort修改(用到了许多现有的网络的tricks),两篇论文有其相似的更新点

(118条消息) BoT-SORT与Strong-SORT论文对比及思考总结_botsort改进_mumuxi_c的博客-CSDN博客

(118条消息) 【文献阅读笔记】BoT-SORT: Robust Associations Multi-Pedestrian Tracking_朝-的博客-CSDN博客

(118条消息) StrongSORT_顾北轻声寒的博客-CSDN博客

(118条消息) 近期关于Sort和DeepSort改进的工作_藏晖的博客-CSDN博客

(118条消息) StrongSORT:Make DeepSORT Great Again_scott198512的博客-CSDN博客

(118条消息) StrongSORT论文阅读笔记_Mobu59的博客-CSDN博客

(118条消息) StrongSORT: Make DeepSORT Great Again_Fwenxuan的博客-CSDN博客

(118条消息) GIAOTracker in VisDrone 2021_visdrone2021数据集_Fwenxuan的博客-CSDN博客

一、Strong-Sort

1.EMA貌似就是OCsort里面的OCM?

2.自适应噪声协方差

普通的卡尔曼滤波容易受到低质量检测的影响,并且忽略了检测噪声尺度上的影响。为了解决这个问题,作者借用了[12](Giaotracker)中提出的NSA卡尔曼滤波算法,这是一个自适应计算噪声协方差Rk~的公式:

其中,Rk是预置的恒定测量噪声协方差,Ck是状态k下的检测置信度得分。

3.AFLink

4.GSI

线性插值被广泛用于填补缺失检测的恢复轨迹空白。尽管线性插值简单有效,但它忽略了运动信息,这限制了恢复的边界框的准确性。为了解决这个问题,人们提出了几种有效利用时空信息的策略。V-IOUTracker通过在出现漏检时退回到单目标跟踪来扩展IOUTracker。MAT采用循环伪观测轨迹填充策略,对线性插值轨迹进行非线性平滑。需要额外的摄像机运动补偿(CMC)模型和卡尔曼滤波器来预测缺失位置。MAATrack通过仅应用CMC模型简化了它。所有这些方法都使用额外的模型,即单目标跟踪器、CMC、卡尔曼滤波器,以换取性能提升。相反,我们建议基于高斯过程回归(GPR)算法对非线性运动建模。在没有额外耗时组件的情况下,我们提出的GSI算法在准确性和效率之间实现了良好的权衡。

先去学一下GPR是什么东西

(120条消息) 快速入门高斯过程(Gaussian process)回归预测_高斯过程回归_摸鱼大王二百五的博客-CSDN博客

  • 一个高斯过程可以由一个均值函数和一个协方差函数来确定

  • 把无限维的高斯分布,每一维按时间线或者其他量展开,就得到一个高斯分布的曲线啦,这个曲线中的每一个点都对应了一个一维的高斯分布,而每个高斯分布都有一个均值和方差,故高斯过程中每个点对应一个均值和方差,如下图所示

小组会 (118条消息) StrongSORT: Make DeepSORT Great Again_Fwenxuan的博客-CSDN博客

(118条消息) GIAOTracker in VisDrone 2021_visdrone2021数据集_Fwenxuan的博客-CSDN博客

(120条消息) 快速入门高斯过程(Gaussian process)回归预测_高斯过程回归_摸鱼大王二百五的博客-CSDN博客

二、Bot-Sort

没啥可以用的


2023/5/24

NCT:noise-control multi-object tracking

https://github.com/Autoyou/Noise-control-multi-object-tracking

  1. 针对NSA kalman

思考: 1.对于高、低质量的检测结果使用相同的噪声不合理

  1. 自适应噪声会导致KF的预测不稳定 (希望R是变化的 但是又不期望它变得太剧烈)

GIAOTracker[10]提出了NSA卡尔曼滤波器,该滤波器引入置信偏差作为观测噪声尺度变量。然而,自适应观测噪声突变导致卡尔曼增益的突变,这降低了GIAOTracker中卡尔曼滤波器预测的稳定性,并导致卡尔曼滤波器的预测不稳定,从而减少了运动信息的获取。如图1的部分(b)所示,自适应观测噪声(Rk)的引入导致原本稳定的卡尔曼增益(K)的大波动,这阻碍了运动信息的获取。

因此,有必要开发一种在引入自适应观测噪声的同时稳定卡尔曼增益的解决方案,以提高卡尔曼滤波器的预测性能。

检测置信度得分受到检测结果的影响,当遇到物体遮挡和复杂的照明条件时,置信度得分会突然变化。

然后,检测置信度得分将发生变化。置信度得分和等式中先前的常数矩阵的简单乘积。(2)导致~Rk中的突变,这将导致严重的连锁反应。

方案: 将 SG Kalman平滑增益卡尔曼滤波器应用于检测结果,并将高斯函数与检测置信度相结合,得到平滑自适应观测噪声矩阵。同时,导出平滑增益以获得对象运动信息

2.针对GSI

StrongSORT[11]提出了一种通过高斯过程回归(GPR)算法对非线性运动建模来缓解这一问题的方法。上述插值方法没有考虑地面实况的实际轨迹。与视频帧相关联的对象不会在平滑曲线中移动轨迹重新连接不适合地面实况。运动轨迹的基本事实是具有运动方向的渐进折线

如图1的(c)部分所示,(the ground truth of the motion trajectory is a progressive fold with the

motion direction )GT的运动轨迹是随着运动方向的逐渐折叠,目前的插值方法不符合地面实况轨迹趋势

方案: (GBRC)the gradient boosting reconnection context mechanism is designed to reconnect the fragment tracks with trajectory drifting noise to obtain accurate track-ing results


2023/6/5

5.26的大组会整合了之前的mot 又补充了nsa kalman

来自:NCT:noise-control multi-object tracking

<think>嗯,用户想了解OC-SORT算法,特别是它的介绍和实现。首先,我需要整理一下OC-SORT的核心要点。根据提供的引用资料,OC-SORT主要是为了解决SORT算法在遮挡和非线性运动下的不足。用户可能对传统SORT的局限性不太清楚,所以我得先解释一下SORT的问题,比如对状态估计噪声敏感、误差累积和以估计为中心的设计。 然后,OC-SORT的三个主要创新点:ORU、OCM和基于轨迹速度的方向一致性。需要分别解释每个模块的作用。ORU是为了在轨迹重新激活时减少累积误差,使用虚拟观测值来修正。OCM在关联阶段加入动量项,提高鲁棒性。而方向一致性则帮助处理非线性运动。 接下来是算法流程,可能需要分步骤说明,比如检测、预测、关联、更新和重更新。用户可能想知道具体的实现步骤,所以这部分要详细一些,但不需要涉及代码细节,除非用户特别要求。 实现方面,用户可能希望知道如何结合现有的检测模型(比如YOLOX)和Re-ID模块。引用中提到的Deep-OC-SORT结合了YOLOX、Deep Person Re-ID等技术,可以建议用户参考这些工具。同时,给出一个伪代码或Python示例会有帮助,但要注意代码的正确性,可能得参考附录中的算法1。 用户可能还会关心如何应用OC-SORT到实际项目中,所以需要提到依赖安装、数据准备和参数调整这些步骤。此外,相关的改进方向或现有工具库(比如BoxMOT)也是有用的信息。 最后,生成相关问题时要覆盖算法原理、实现细节、应用场景和对比分析,这样用户如果有进一步的问题也能找到方向。比如性能优化、实际应用中的挑战、与其他算法的对比等。 需要注意的是,用户可能对算法中的术语不太熟悉,比如“虚拟观测值”或“动量项”,需要用更通俗的语言解释。同时,确保引用标记正确,每个创新点对应正确的引用来源。比如ORU和OCM来自引用3,而整体框架可能涉及引用1和2。 可能还需要检查是否有遗漏的关键点,比如OC-SORT的实时性优势,或者它在多个数据集上的表现,这些都可以在回答中提及,以增强说服力。总之,结构要清晰,先介绍问题,再讲解解决方案,最后说明实现步骤和应用建议,这样用户能逐步理解OC-SORT的价值和操作方法。</think>### OC-SORT算法介绍及实现 #### 一、算法背景与核心思想 OC-SORT(Observation-Centric SORT)是一种改进的多目标跟踪算法,针对传统SORT算法在遮挡、非线性运动场景下的局限性提出。其核心思想是**以观测为中心**,而非以状态估计为中心,从而减少噪声敏感性和误差累积[^3]。 #### 二、关键创新点 1. **观测中心重更新(ORU)** 当轨迹从丢失状态恢复时,利用历史观测值生成虚拟观测,修正未跟踪期间的累积误差。例如: $$ \text{虚拟观测} = \alpha \cdot \text{最后一次观测} + (1-\alpha) \cdot \text{最新关联观测} $$ 其中$\alpha$为权重系数,用于平衡历史与当前信息[^3]。 2. **观测中心动量(OCM)** 在关联阶段引入动量项,衡量轨迹运动方向与观测方向的一致性: $$ C_{ij} = \lambda \cdot C_{\text{IoU}} + (1-\lambda) \cdot \cos(\theta_{\text{traj}}, \theta_{\text{obs}}) $$ 其中$\lambda$为权重,$\theta$为运动方向角度[^3]。 3. **轨迹速度方向一致性** 通过分析实际速度方向的噪声分布,增强对非线性运动的适应性。 #### 三、算法流程 1. **输入**:目标检测框(来自YOLOX等检测器) 2. **预测阶段**:使用卡尔曼滤波预测轨迹状态 3. **关联阶段**:结合IoU和OCM计算代价矩阵 4. **更新阶段**:根据观测值更新轨迹状态 5. **重更新阶段(ORU)**:对重新激活的轨迹进行误差修正 伪代码示例(简化版): ```python class OCSORT: def update(self, detections): # 预测所有轨迹 for track in self.tracks: track.predict() # 计算关联代价矩阵(IoU + OCM) cost_matrix = self.calculate_cost(detections) # 匈牙利算法匹配 matched_indices = hungarian_algorithm(cost_matrix) # 更新匹配轨迹 for det_idx, trk_idx in matched_indices: self.tracks[trk_idx].update(detections[det_idx]) # 触发ORU(对重新激活的轨迹) for track in self.reactivated_tracks: track.re_update(historical_observations) ``` #### 四、实现建议 1. **依赖库**: ```bash pip install numpy, filterpy, scipy # 基础依赖 git clone https://github.com/noahcao/OC_SORT # 官方实现 ``` 2. **与检测器集成**: - 使用YOLOX或Faster R-CNN作为检测前端 - 结合DeepReID进行特征提取(参考Deep-OC-SORT[^2]) 3. **参数调优**: - OCM权重$\lambda$:通常设置为0.8-0.9 - ORU历史帧数:建议3-5帧(遮挡持续时间) #### 五、应用场景 - 密集行人跟踪(如商场监控) - 遮挡频繁的体育赛事分析 - 自动驾驶中的车辆轨迹预测 #### 六、改进方向 1. 结合注意力机制增强关联鲁棒性 2. 引入时序Transformer建模长程依赖 3. 使用轻量化检测器提升实时性(参考YOLO-Nano)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值