Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 论文笔记
Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 似乎是商汤投 CVPR2019的论文。文中提出了一个统一的多目标跟踪(MOT)框架,学习充分利用长期和短期线索来处理 MOT 场景中的复杂情况。在现实系统中,可以认为每个组件都是不可靠的,所以作者联合多个模块交叠使用。现行方案中,检测器用于发现,ReID 进行识别。ReID 抠图依赖于检测,但尚未由模块能有效纠正检测器的疏漏,使得系统在入口处存在瓶颈。为此,框架中引入了商汤之前独步天下的单目标跟踪器 SiamRPN,具备部分发现和识别功能,弥合其他组件产生的纰漏。此外,为了更好地关联,论文提出了切换器感知分类(switcher-aware classification,SAC),它考虑了潜在的身份切换引起者(切换器)。比较诡异的是 SOT 和 ReID 均为方形输入,与行人抠图比例相去甚远。
系统组成:
Detector、SOT、IQA(Image Quality Assessment)、ReID、SAC、MCF、Kalman Filter。
- Detector:MOT16中使用与 POI 相同的检测器,MOT17中使用更严格的 NMS 和质量过滤器调整结果。
- SOT:SiamRPN,修改了 anchor,使用私有行人数据(100min)调整网络,根据匹配情况计算跟踪质量。方形输入导致图像拉伸?
- IQA:Resnet-18,使用 MOT16中的7段视频训练。输入尺寸未提及。
- ReID:修改版 Inception-v4,使用私有行人数据(100min),输入为224x224。
- SAC:基于 XGBoost,使用 MOT16中的7段视频训练。
- MCF:最小费用流算法。
- Kalman Filter:平滑轨迹。
3. 所提框架
问题的形成
一个被跟踪目标的轨迹可以用 X={Xt}X = \{X_t\}X={Xt} 表示,其中 Xt=[Xtx,Xty,Xtw,Xth]X_t = [X_t^x, X_t^y, X_t^w, X_t^h]Xt=[Xtx,Xty,Xtw,Xth],ttt 是帧索引 ,Xtx,XtyX_t^x, X_t^yXtx,Xty 是边界框的左上角坐标,Xtw,XthX_t^w, X_t^hXtw,Xth 是边界框的宽度和高度。qXq_XqX 是目标 XXX 的整体跟踪质量,ItXI_t^XItX 是目标 XXX 在帧 ttt 处的外观。
3.1 整体设计
该框架在线模式使用以下步骤:
- 步骤1. 最初,跟踪目标集 S\mathcal{S}S 设置为空,t=1t = 1t=1。
- 步骤2. 在第 ttt 帧,对于目标 XXX,使用 SOT 子网络在下一帧 It+1I_{t + 1}It+1 中搜索目标模板 EXE_XEX。SOT 子网络在 It+1I_{t+1}It+1 中为模板输出最可能的位置 DtrackD_{track}Dtrack。
- 步骤3. 对于 It+1I_{t+1}It+1 中的检测结果 DdetD_{det}Ddet,ReID 子网络使用其对应的检测图像区域 It+1,DdetI_{t + 1,D_{det}}It+1,Ddet 以及目标历史外观 {ItiX},i=1,2,...,K\{I_{t_{i}}^X\}, i=1,2,...,K{ItiX},i=1,2,...,K 来提取长期 ReID 特征。
- 步骤4. SOT 在步骤2中找到的目标 DtrackD_{track}Dtrack 的位置、检测器找到的位置 DdetD_{det}Ddet 以及步骤3中获得的 ReID 特征组合为目标的匹配特征。
- 步骤5. 找到目标 Λ\LambdaΛ 的潜在切换器,即最可能的身份切换引起者,并提取其 SOT 和 ReID 特征。
- 步骤6. 借助切换器的匹配特征,切换器感知分类器(SAC)使用目标的匹配特征来生成关于检测结果是否与目标匹配的匹配分数。对于帧 It+1I_{t+1}It+1 中的每个检测结果重复该步骤,以便获得它们与被跟踪目标的匹配分数。%SAC 由 Ω\OmegaΩ 表示。
- 步骤7. 利用跟踪到的目标与步骤6中找到的检测结果之间的匹配分数,构建已跟踪目标和检测结果的二分图。使用最小费用网络流查找图的匹配结果。
- 步骤8.
- 对于匹配的目标,使用匹配到的检测信息更新位置和模板。
- 对于不匹配的目标,使用 SOT 结果更新跟踪器位置,并丢弃认为不可靠或丢失的目标。
- 对于孤立的检测结果,如果它们的置信度分数满足新目标的条件,则将它们添加到跟踪目标集合中。
- 步骤9.通过设置 t=t+1t = t + 1t=t+1,重复下一帧的步骤2到8,直到不再有帧到达。
3.2 用于 SOT 的 Siamese-RPN 架构
基础跟踪器
我们在框架中使用 Siamese-RPN 跟踪器来提取短期线索。按照最初的模式,当前帧的模板 EXE_XEX 也被称为示例,调整为 127×127127\times 127127×127 大小。在下一帧中搜索目标,搜索区域 RRR 将根据 XXX 的位置从帧 It+1I_{t+1}It+1 中裁剪,然后调整为 255×255255\times 255255×255。具体而言,搜索区域的图像比例与示例相同。如下图所示,搜索区域和示例通过共享权重的孪生 CNN 传递。然后,示例和搜索区域的 CNN 特征后接两个分支,每个分支由两个卷积层组成。一个分支用于获取分数图,另一个分支用于边界框回归。假定搜索区域中示例的正确位置对应于得分图上的分数最高。不同位置的边界框回归应指向此正确位置。
图3. SOT 的 Siamese-RPN 架构。
短期特征生成
SOT 子网络输出 SOT 分数和预测的边界框,称为 SOT 框。要匹配的检测边界框称为检测框。我们将 SOT 分数表示为 ppp,SOT 框表示为 DtrackD_{track}Dtrack,检测框表示为 DdetD_{det}Ddet,然后短期特征 fsf_sfs 计算如下:
fs(Dtrack,Ddet)=IoU(Dtrack,Ddet)f_s(D_{track}, D_{det}) = IoU(D_{track}, D_{det}) fs(Dtrack,Ddet)=IoU(Dtrack,Ddet)
用于 MOT 跟踪的干扰者感知 SOT 跟踪器
为了最大化 Siamese-RPN 的效果。我们修改锚点以适应行人的目标尺度。此外,我们使用行人数据改进网络。SOT 跟踪器的另一个问题是,如果目标丢失,很难判断何时停止跟踪。 当跟踪器漂移到背景干扰者时,跟踪器可能无法停止跟踪干扰者。为了使跟踪器得分能够感知干扰者,我们设计了跟踪得分优化策略。 我们使用在3.1节中步骤7找到的匹配结果来细化跟踪器得分。对于目标 XXX,精确的整体跟踪质量 qXq_XqX 如下:
qX,t+1={qX,t+IoU(Dtrack,Ddet)⋅p2,ifmatched,qX,t⋅decay⋅pk,otherwise,q_{X, t+1} = \left\{ \begin{array}{rcl} \frac{q_{X, t} + IoU(D_{track}, D_{det})\cdot p}{2}, \mathrm{if\ matched,}\\ q_{X, t} \cdot decay \cdot p^k, \mathrm{otherwise,} \end{array} \right. qX,t+1={2qX,t+IoU(Dtrack,Ddet)⋅p,if matched,qX,t⋅decay⋅pk,otherwise,
其中 decaydecaydecay 和 kkk 是用于处理不一致目标的超参数,DdetD_{det}Ddet 是检测框。这样,如果跟踪质量 qXq_XqX 低于阈值 ζt\zeta_{t}ζt,我们就会丢弃不可靠的目标。
3.3 使用 ReID 网络获得长期线索
我们使用 GoogLeNet Inception-v4的修改版本作为 ReID 子网的主干 CNN。ReID 特征从分类之前的最后一个FC层中提取。Table 1和 Table 2展示了主干 CNN 的详细信息。为从目标的 tracklet 历史记录中选择 KKK 张图像,我们设计了一种质量感知机制。
为了获得高质量的长期线索,我们使用质量过滤器在过去的 KKK 段时期内选择 KKK 张最佳图像,以确保质量和鲁棒性。所选 KKK 帧图像构成目标跟踪历史记录,其索引为 H={t1…,tK}\mathcal{H}=\{t_1 \ldots, t_K\}H={t1…,tK}。我们选择的 KKK 帧定义如下:
ti=argmaxt−iδ<t^≤t−(i−1)δQ(It^X),i=1,2,...,Kt_i = \mathop{\arg\max}_{t - i\delta < \hat{t} \leq t - (i-1)\delta} \mathop{Q}(I_{\hat{t}}^X) , i = 1, 2, ..., K ti=argmaxt−iδ<t^≤t−(i−1)δQ(It^X),i=1,2,...,K
其中 QQQ 网络输出质量得分,使用 Resnet-18模型实现。ItXI_{t}^XItX 是帧 ttt 上目标 XXX 的图像区域。超参数 δ\deltaδ 决定选择间隔。
例如,当 i=1i=1i=1 时,从帧 t,t−1,...,t−δ+1t, t-1, ..., t-\delta+1t,t−1,...,t−δ+1 中选择质量得分最高的作为 t1t_1t1。当 i=2i=2i=2 时,t2t_2t2 从 t−δ,t−δ−1,...,t−2δ+1t-\delta, t-\delta-1, ..., t-2\delta+1t−δ,t−δ−1,...,t−2δ+1 中选择。因此,tit_iti 中的 iii 对应于不同的步幅和搜索范围。
长期特征生成
选择 KKK 张图像后,将所有这些图像和需匹配的检测结果馈送到 ReID 子网络并输出其 ReID 特征。然后我们可以获得目标 KKK 条长期特征,如下所示:
FlX={fl(AtiX,Adet)∣i=1,…,K},where fl(AtiX,Adet)=AtiXT⋅Adet∣AtiX∣∣Adet∣,\mathcal{F}^X_l = \{f_l(A_{t_i}^X, A_{det})| i=1, \ldots, K\}, \\ \textrm{where } f_l(A_{t_i}^X, A_{det}) = \frac{{A_{t_i}^X} ^\textrm{T} \cdot A_{det}}{\left | A_{t_i}^X \right | \left | A_{det} \right |}, FlX={fl(AtiX,Adet)∣i=1,…,K},where fl(AtiX,Adet)=∣∣AtiX∣∣∣Adet∣AtiXT⋅Adet,
AtiXA_{t_i}^XAtiX 是从目标 XXX 的跟踪记录中选择的第 iii 张图像的 ReID 特征向量,AdetA_{det}Adet 是检测结果的 ReID 特征。为了减少计算,对于 tracklet 中的每个图像,ReID 网络提取一次特征。 保存后以备后续使用。
3.4 切换器感知分类器
切换者检索
我们通过观察大量的身份转换(IDS),发现大多数 IDS 发生在当两个目标彼此相遇并发生较大重叠时。它启发我们将与当前目标最大重叠的另一个目标标记为最可能的潜在切换者。数学上,对于帧 ttt 中的每个 tracklet XXX,其位置用 XtX_tXt 表示,并且可能的切换者如下获得
Λ=argmaxY∈Ss.t.Y≠XIoU(Xt,Yt).\Lambda = \mathop{\arg\max}_{Y \in \mathcal{S} \mathop{s.t.} Y \neq X} \mathop{IoU}(X_t, Y_t). Λ=argmaxY∈Ss.t.Y̸=XIoU(Xt,Yt).
其中 S\mathcal{S}S 是跟踪目标的集合。
输入特征
这里我们将两个子网络视为特征提取运算符 ϕ\phiϕ,并将二者的输入——目标 XXX 和检测结果 DDD 表示为 ΓX,D\Gamma_{X,D}ΓX,D,切换者与之类似。分类器的输入特征由两部分组成:
- 首要考虑目标的特征,由 ϕ(ΓX,D)\phi(\Gamma_{X,D})ϕ(ΓX,D) 表示,
- 以及切换者的特征 ϕ(ΓΛ,D))\phi(\Gamma_{\Lambda,D}))ϕ(ΓΛ,D))。
ϕ\phiϕ 定义如下:
ϕ(ΓX,D)={fs(Dtrack,Ddet)}∪FlX.\phi(\Gamma_{X,D})= \{f_s(D_{track}, D_{det})\} \cup \mathcal{F}^X_l. ϕ(ΓX,D)={fs(Dtrack,Ddet)}∪FlX.
ϕ(X,t)\phi(X, t)ϕ(X,t) 的维度是 K+1K+1K+1,切换者与之类似。然后我们通过连接这两个部分来获得分类器的输入。
分类
我们利用带加权分位数草图的正则化牛顿提升决策树,由 XGBoost 在分类步骤中提出。
如果分类结果 yyy 大于阈值 ζm\zeta_{m}ζm,那么将成本为 1−y1 - y1−y 的相应边添加到图中。
3.5 训练
3.5.1 训练数据生成
SOT 子网络和 ReID 子网络是独立训练的。对于 SOT 子网络,我们根据视频的标注生成一些目标图像对,并根据 SiamRPN 的训练模式扩展图像对以包含一部分背景。为了更好的训练,我们只考虑与真实目标 IoU 大于0.65的框作为正样本且小于0.45的作为负样本。对于 ReID 子网络,将每个目标都视为一个类,我们训练网络来预测输入目标的类别。ReID 子网络的输入是目标图像区域,标签是其类号。
我们需要先得到两个子网络的输入,从而为切换者感知分类器生成训练样本和相应的被标注。
- 首先,我们运行基线 MOT 算法并生成所有假设的训练视频轨迹。
- 然后,我们使用 IoU 阈值 0.60.60.6 将它们与真实目标联系起来,即只考虑 IoU 大于 0.60.60.6 的对。用匈牙利算法最大化 IoU 值的总和。对于帧 ttt 的目标 XXX,如果 Xt,Xt−δ,...,Xt−(K−1)δX_{t}, X_{t-\delta}, ..., X_{t-(K-1)\delta}Xt,Xt−δ,...,Xt−(K−1)δ 的标注为同一目标或至多其中一个与标注无关,那么我们将其视为有效的跟踪。
- 对于每个有效的 tracklet,我们在帧 t+1t+1t+1 中随机采样检测结果,辅以公式5定义的潜在切换者,组成 MOT 框架的输入。根据公式1、4、6生成分类器的输入。根据检测的标注信息获得切换者感知分类器的标签。
- 此外,对于正样本,我们可以交换切换者和主要考虑的目标,以生成用于切换者感知分类器的另一个训练负样本。
对于质量滤波器,我们将与真实目标 IoU 大于0.6的图像区域作为正样本,其余作为负样本。
3.6 预处理和离线聚类
检测得分过滤策略
有时检测器给出的检测结果噪声很多,带有奇怪的误报并且置信度不可靠。我们提出了两种解决方案来改进这些检测结果:
- 第一个是更严格的 NMS 方法。
- 第二个是训练一个置信度得分提炼器。
在这里,我们使用长期线索选择中的质量过滤器作为置信提炼器。
长期跟踪聚类
基于在线模式的输出结果,我们设计了一个简单的批量聚类后处理程序。
第一步是由轨迹构建子图。对于每个 tracklet,
- 首先,我们将每个帧视为一个孤立节点;
- 然后如果有两个节点具有相似 ReID 特征,即它们之间的余弦距离小于阈值,我们将在两个节点之间添加一条边;
- 最后我们可以获得一些切片,每个切片是一个连接的子图。
第二步是将这些切片合并到不同的目标之间。
- 如果两个切片的帧索引重叠小、空间距离小且 ReID 特征类似(我们计算两个切片的平均特征距离),就合并二者;
- 如果合并了两个切片,则原始位置中的切片将成为新的标识;
- 此外,在拆分和合并操作之后,我们在每个 tracklet 中进行插值,以便修复更多的漏报。
参考资料:
- 统一多目标追踪框架:Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification
- 商汤等提出:统一多目标跟踪框架
Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 论文笔记相关推荐
- 《SiamMask:Fast Online Object Tracking and Segmentation:A Unifying Approach》论文笔记
参考代码:SiamMask 1. 概述 导读:这篇文章在基于孪生网络的目标跟踪算法离线训练的过程中嵌入一个mask分割分支,从而可到一个既可以做VOT也可以做VOS(分割性能这块可以还有很大空间)的网 ...
- Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification多目标跟踪论文
论文:Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 论文下载地址:https://arxiv.o ...
- Visual Tracking with Online Multiple Instance Learning (MIL)目标跟踪论文笔记
1. 论文信息 论文标题 :Visual Tracking with Online Multiple Instance Learning 论文作者: Boris Babenko,University ...
- CVPR 2017 《Object Detection in Videos with Tubelet Proposal Networks》论文笔记
本学弱喜欢在本子上记笔记,但字迹又丑. 望看不懂我的字的大佬不要喷我,看得懂的大佬批评指正.
- 多目标跟踪综述、论文、数据集大汇总 Awesome Multiple object Tracking
Awesome Multiple object Tracking(持续更新) 综述 论文 2022 2021 2020 2019 2018 2017 2016 数据集 综述 Multiple Obje ...
- 跟踪算法基准--Tracking the Trackers: An Analysis of the State of the Art in Multiple Object Tracking
Tracking the Trackers: An Analysis of the State of the Art in Multiple Object Tracking https://arxiv ...
- Multiple Object Tracking:多目标跟踪综述
Multiple Object Tracking:多目标跟踪综述 多目标跟踪综述 多目标跟踪综述 摘要 1. 介绍 2. 算法知识 3. 总结 4. 可学习的资源及代码 摘要 本篇博客是多目标跟踪最综 ...
- FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking 效果展示
FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking 效果展示 公开数据集指标 ...
- Quasi-Dense Similarity Learning for Multiple Object Tracking
QDTrack 论文标题:Quasi-Dense Similarity Learning for Multiple Object Tracking 论文地址:https://arxiv.org/pdf ...
最新文章
- 图解Elasticsearch中的_source、_all、store和index属性
- 写一个ajax框架,自己写的一个ajax框架,希望大家多提意见
- 使用C#创建SQLite控制台应用程序
- 客户端界面实现及登录功能实现
- FFmpeg学习5:多线程播放视音频
- 响应文件是不是标书_标书的编制
- java利用穿透_Java本地的項目,怎么可以讓別人通過外網訪問-內網穿透
- 转:Java中的异常处理
- tomcat知识点总结
- java 数据类型 面试题_Java数据类型面试题目
- SVN汉化失败的原因及解决方案(通过SVN官网下载SVN和相应的汉化包)
- servlet的九大内置对象和四大作用域
- 【IT项目管理】第1章 走进IT项目管理
- A1、A2、A3、A4纸都是多大尺寸
- origin画图---学习时遇到的画图记录
- WORD转PDF时候出现空白页的解决办法
- git 禁止分支提交
- 测量小助手——典型用户及使用场景
- OBS/Python、Lua
- 每日java笔试五小题 2020-9-23
热门文章
- uni开发的H5接入QQ登录
- C++ 模板 全特化与偏特化
- 有什么软件可以截图翻译呢?这三款截图翻译软件简单实用
- 解析彼岸图网图片—xpath简单应用
- asynchttpclient java_Java-Post方法在Android的AsyncHttpClient中不起作...
- css做出圆角矩形边框
- 计算机图形学应用调研论文,计算机图形学的应用论文(2)
- linux下管道命令,linux之管道命令
- spring mvc 常用注解详解
- 淘宝开发平台店铺商品上传接口,店铺订单交易接口,店铺订单解密接口,店铺上下架接口,店铺订单推送接口(整理好的完整店铺上货订单操作接口)