【Visual Object Tracking】Learning notes

在这里插入图片描述

Dense Optical Tracking: Connecting the Dots

参考学习来自:

1 单目标跟踪简介

跟踪的定义:在第一帧中给定目标框,在后续帧中不断对目标定位,实际上是一个 one-shot learning 过程。

在这里插入图片描述

目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法和判别(discriminative)模型方法

在此间基础上还有协同跟踪方法:将生成式跟踪方法与判别式跟踪方法相结合

目前比较流行的是判别类方法,也叫检测跟踪(tracking-by-detection)

tracking-by-detection 和检测算法非常相似,如经典行人检测用 HOG+SVM,Struck 用到了 haar+structured output SVM,跟踪中为了尺度自适应也需要多尺度遍历搜索,区别仅在于跟踪算法对特征和在线机器学习的速度要求更高,检测范围和尺度更小而已。这点其实并不意外,大多数情况检测识别算法复杂度比较高不可能每帧都做,这时候用复杂度更低的跟踪算法就很合适了,只需要在跟踪失败(drift)或一定间隔以后再次检测去初始化tracker就可以了

传统视觉跟踪

(1) 基于目标模型建模的方法: 通过对目标外观模型进行建模, 然 后在之后的帧中找到目标. 例如, 区域匹配、特征点 跟踪、基于主动轮廓的跟踪算法、光流法等. 最常用 的是特征匹配法, 首先提取目标特征, 然后在后续的 帧中找到最相似的特征进行目标定位, 常用的特征 有: SIFT 特征、SURF 特征、Harris 角点等.

在这里插入图片描述

(2)基于搜索的方法: 随着研究的深入, 人们发现基 于目标模型建模的方法对整张图片进行处理, 实 时性差. 人们将预测算法加入跟踪中, 在预测值附近 进行目标搜索, 减少了搜索的范围. 常见一类的预测 算法有 Kalman滤波、粒子滤波方法. 另一种减小搜索范围的方法是内核方法: 运用最速下降法的原理, 向梯度下降方向对目标模板逐步迭代, 直到迭代到最优位置。

相关滤波——correlation filter(KCF,SRDCF,CF2,CCOT,ECO…等等经典工作在我的脑海里飘荡)。如果给这个时代截取一篇最经典的工作,我想我会选择KCF(Kernelized Correlation Filters)——在线更新模型。他是真的将视觉跟踪推向流行,让整个领域真的沸腾起来的工作。

深度学习方法

(1)预测score,这类算法以相关滤波和 SiameFC 为代表。通过预测候选区域的score map来得到物体的位置,物体的尺度大小通常是通过图像金字塔得到。同时无法得到物体的长宽比变化。

(2)GOTURN 和 SiamRPN 为代表的做 boundingbox regression 的方法。这也是SiamRPN取得当前最好结果的核心所在,充分挖取精度方向的红利。实际上并不是 SiamRPN 预测的有多稳定,而是在预测正确的时候,会给出更为精确的box。利用网络预测长宽比可以调整box,这个方向一直以来被大家所忽视,所以SiamRPN很快杀出重围。

(3)mask 在物体发生旋转的时候,简单的box的表述通常会产生极大的损失,这实际上就是表述本身存在的缺陷。而为了进一步探索在精度上存在的问题。我们更进一步,直接预测物体的mask——SiamMask

在这里插入图片描述

2 难点

  • 目标出现遮挡(occlusion)
  • 目标消失等长时跟踪问题
  • 身份切换:对于比较像的目标是会误判,比如都是人
  • 运动模糊(motion blur)
  • 快速移动(fast motion)
  • 旋转(rotation)
  • 视点变化 / 形变(deformation)
  • 尺度变化:目标形状变化较大时容易发生漂移(scale variation)
  • 背景杂乱,背景相似干扰(background clutter)
  • 光照变化(illumination)
  • 低分辨率(low resolution)
  • 模板更新问题:模板不更新会导致模型鲁棒性不佳,出现遮挡模糊等无法识别;模板更新策略不佳又会引入模板污染、过拟合等问题

3 基于深度学习的单目标跟踪网络

在这里插入图片描述

单目标跟踪可以看成是 one-shot learning, one-shot learning 中孪生网络结构用的比较多,下面我们简单的介绍下孪生网络

可以参考

伪孪生网络(pseudo-siamese network,伪孪生神经网络),对于pseudo-siamese network,两边可以是不同的神经网络(如一个是lstm,一个是cnn),也可以是相同类型的神经网络。

Contrastive Loss(对比损失函数)

在这里插入图片描述

Siamese类方法的核心是学习到一个可靠的,通用的相似性度量

One-Shot learning 可以无需重新训练即可应用于新的类别的数据


在这里插入图片描述

(1)SiamFC

《Fully-Convolutional Siamese Networks for Object Tracking》(ECCV-2016 workshops)

开山之作,来自牛津 Luca Bertinetto 大神
在这里插入图片描述

在这里插入图片描述

如果不靠高斯框,基本上无法跟上目标

跟踪的目标不适合背景嘈杂以及剧烈的抖动

SiamFC 对缺乏对背景的利用,也导致模型的判别性不足

SiamFC 预测时,不在线更新模板图像。这使得其计算速度很快,但同时也要求 SiamFC 中使用的特征具有足够鲁棒性,以便在后续帧中能够应对各种变化。另一方面,不在线更新模板图像的策略,可以确保跟踪漂移,在 long-term 跟踪算法上具有天然的优势

(2)SiamRPN

商汤《High Performance Visual Tracking with Siamese Region Proposal Network》(CVPR-2018)

Short-term real-time sub-challenge 冠军,Short-term tracking challenge 不是

引入 RPN 预测位置

解决了尺度问题

(3)DaSiamRPN

商汤《Distractor-aware Siamese Networks for Visual Object Tracking》(ECCV-2018)

考虑了样本不平衡的问题

(4)SiamRPN++

《SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks》(CVPR-2019)

引入深层网络

(5)SiamMask

《Fast Online Object Tracking and Segmentation: A Unifying Approach》(CVPR-2019)

加入了图像分割的内容

4 数据集

在这里插入图片描述
包括短时序列数据集 OTB,VOT,ALOV300++ 和 got-1k 等,以及长时序列数据集 LaSOT,OxUAV 和 TLP 等

OTB50:Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.

OTB100:Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015.

LightTrack 的训练集配置是 Youtube-BB, ImageNet VID, ImageNet DET, COCO and GOT-10K,是pysot里面的常用设置。

TransT 的训练集配置是 COCO, TrackingNet, LaSOT, and GOT-10k,是pytracking里面的常用设置。

在这里插入图片描述

在 VOT2015 时即提出使用旋转矩形框来作为标记。在 VOT2016 的时候提出自动的通过mask来生成旋转框的方法。

5 评价指标

请添加图片描述
精确度(Precision / Accuracy):跟踪方法估计目标位置的能力
鲁棒性(Robust):跟踪方法在每个序列上的平均失败次数
成功率(Success):跟踪方法估计目标尺度大小的准确度
跟踪长度(Tracking length)
最长子序列指标 (LSM metric):模型的长期跟踪性能
F-score 曲线:精确度和召回率相结合来评价跟踪模型的长期跟踪性能
跟踪速度
期望平均重合度(EAO):将鲁棒性与平均重合度(average overlap)相结合来评估跟踪方法


来自 VOT2018:SiamNet大崛起

在这里插入图片描述

  • EAO:两个baseline,VOT2016和VOT2017的神话CCOT,和2017年最好算法ECO都只能排在20左右,已经被大幅超越,甚至前几名都与ECO拉开了0.1以上的差距。
  • R鲁棒性前四名:MFT, LADCF, RCO, UPDT,都是DCF(Dual Correlation Filter)类方法,CNN特征提取的backbone都是ResNet-50。
  • A准确性前两名:SiamRPN, SA-Siam-R, 都是SiamNet类方法,这两个算法都表现出准确性奇高,而鲁棒性前十最差的特点。

UPDP 属于 DCF(discriminative correlation filter) + CNN 的方法,目标跟踪新高度UPDT:解除深度特征被封印的力量,Martin大神

上面是公测榜单,内测榜单鲁棒性第一是北邮的 MFT,也是 DFP + CNN 的方法,准确性最高的是 Siam-RPN

下面看看 The VOT2018 long-term challenge

在这里插入图片描述

DaSiam_LT是 DaSiamRPN 的 long-term 版本,用 SiamRPN 产生 proposal,同时建模Distractor抑制干扰目标的响应,与MBMD优化SiamRPN的思路不同,但速度更快。目标丢失检测的思路非常直接:一旦判断到目标丢失,就扩大检测区域,进行一次全图检测。论文版本DaSiamRPN有110FPS,性能仅比MBMD低了0.003,性价比高很多。

SiamNet 速度快性能也不差,real-time 榜和 long-term 榜都是 SiamNet 登顶,尤其 SiamRPN 潜力巨大,打通了目标跟踪和目标检测,性价比很高,接下来会快速发展壮大,希望速度优势能保得住。

6 未来方向

Long-term tracking

  • 我们希望算法可以了解到目标什么时候被遮挡了,什么时候丢失了。丢失之后可以找回,这才是我们想要的跟踪
    Long-term tracking in the wild: a benchmark,缩写叫LTW

单目标多目标跟踪统一

  • 《Unified Transformer Tracker for Object Tracking》(CVPR-2022)
    在这里插入图片描述

7 Others

  • 跟踪问题因为需要时序信息(上一帧的输出作为下一帧跟踪的起始),所以一些微小的影响会被放大。不同内核的GPU运行的结果都有所不同,所以最好写个baseline的参数确认一下环境是否一致。

  • 你简单的增大训练集并不能得到更好的结果(要么是模型容量有问题,要么就是训练过程有问题)

  • 所以高层的特征并没有能学习到fine-grained的特征,甚至因为你给了各种光照,它干脆连颜色也丢了吧(疯狂的data argumentation反而会带来坏处)

  • 残差之所以称为残差,是希望残差学习的部分的均值近似为0

  • 反卷积网络,还原原始图像,这样就强迫网络特征层包含底层信息

  • train from scratch 的概念已经在检测领域非常普遍了。跟踪的网络目前我们的经验在跟踪方面并不work。

  • 补充:数据集 OTB 在2013年公开了,对之前的算法是不可见的,所以 OTB 论文的结果非常可靠,但对于 2013 以后的算法是透明的,有调参的可能性,尤其是那些只跑OTB,而且论文中有关键参数直接给出还精确到小数点后两位的算法,建议您先实测再评价(人心不古啊~被坑的多了),但 VOT 竞赛的数据库是每年更新,还动不动就重新标注,动不动就改变评价指标,对当年算法是不可见且难度很大的,所以结果更可靠。

  • Cross-Correlation 的本质就是标准卷积 Conv:用 example feature 作为卷积核,对 instance feature 进行卷积,卷积输出就是每个位置的相似度分数。

多目标跟踪

目标跟踪:visual object tracking(VOT),也叫 single object tracking(SOT)

多目标跟踪:multiple object tracking(MOT),相比于VOT,除了要找到跟踪的目标外,还要能够区分跟踪目标属于初始目标中的哪一个(相当于VOT的检测之后,做进一步识别)。

在这里插入图片描述

  • 目标初始化
  • 外观建模
  • 运动估计
  • 目标定位

跟踪算法类型

  • 基于检测与不需要检测的跟踪器
  • 单目标和多目标跟踪器
  • 在线和离线跟踪器
    离线:过去现在未来的信息都可以利用,比如录像分析
    在线:只可能利用过去和现在,不可能用未来的信息
  • 基于学习和基于训练的策略
    在线学习跟踪器,eg:MDNet / ROLO ( 循环YOLO )
    离线学习跟踪器,eg:GOTURN

再谈多目标追踪 | 实际落地如何快速应用部署(2019)

以卡尔曼滤波和匈牙利、KM匹配的后端追踪优化算法(代表性的应用有SORT、DEEP-SORT)

  • 实时性,但依赖于检测算法效果要好,特征区分要好(有点互相甩锅的味道)

基于多线程的单目标跟踪器的多目标追踪算法(代表性的算法有KCF、LEDS)

  • 这类算法特点是跟踪效果会很好,因为其为每一类物体都单独分配了一个跟踪器。但该算法对目标尺度变化要求较大,参数调试需要合理,同时该算法极耗cpu资源,实时性不高。

基于深度学习端到端的多目标跟踪算法。(代表性的算法有SST)

  • 大多处于实验室刷榜阶段,有进一步落地应用的及时更新。

在这里插入图片描述

SORT 是一种实用的多目标跟踪算法,引入了线性速度模型与卡尔曼滤波来进行位置预测,在无合适匹配检测框的情况下,使用运动模型来预测物体的位置。匈牙利算法是一种寻找二分图的最大匹配的算法,在多目标跟踪问题中可以简单理解为寻找前后两帧的若干目标的匹配最优解的一种算法。而卡尔曼滤波可以看作是一种运动模型,用来对目标的轨迹进行预测,并且使用确信度较高的跟踪结果进行预测结果的修正。


参考学习来自:多目标跟踪(MOT)入门

相关方向

在这里插入图片描述

核心步骤

在这里插入图片描述

在这里插入图片描述
①检测 ②特征提取、运动预测 ③相似度计算 ④数据关联。

SORT和DeepSORT

在这里插入图片描述

【附录】

SeqTrack

《Unified Sequence-to-Sequence Learning for Single- and Multi-Modal Visual Object Tracking》CVPR2023
在这里插入图片描述
在这里插入图片描述

PP-Tracking

车辆、行人跟踪一网打尽,超轻量、多类别、小目标跟踪系统开源了!

在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值