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。
问题的形成
一个被跟踪目标的轨迹可以用 X = { X t } X = \{X_t\} X={Xt} 表示,其中 X t = [ X t x , X t y , X t w , X t h ] X_t = [X_t^x, X_t^y, X_t^w, X_t^h] Xt=[Xtx,Xty,Xtw,Xth], t t t 是帧索引 , X t x , X t y X_t^x, X_t^y Xtx,Xty 是边界框的左上角坐标, X t w , X t h X_t^w, X_t^h Xtw,Xth 是边界框的宽度和高度。 q X q_X qX 是目标 X X X 的整体跟踪质量, I t X I_t^X ItX 是目标 X X X 在帧 t t t 处的外观。
该框架在线模式使用以下步骤:
基础跟踪器
我们在框架中使用 Siamese-RPN 跟踪器来提取短期线索。按照最初的模式,当前帧的模板 E X E_X EX 也被称为示例,调整为 127 × 127 127\times 127 127×127 大小。在下一帧中搜索目标,搜索区域 R R R 将根据 X X X 的位置从帧 I t + 1 I_{t+1} It+1 中裁剪,然后调整为 255 × 255 255\times 255 255×255。具体而言,搜索区域的图像比例与示例相同。如下图所示,搜索区域和示例通过共享权重的孪生 CNN 传递。然后,示例和搜索区域的 CNN 特征后接两个分支,每个分支由两个卷积层组成。一个分支用于获取分数图,另一个分支用于边界框回归。假定搜索区域中示例的正确位置对应于得分图上的分数最高。不同位置的边界框回归应指向此正确位置。
图3. SOT 的 Siamese-RPN 架构。
短期特征生成
SOT 子网络输出 SOT 分数和预测的边界框,称为 SOT 框。要匹配的检测边界框称为检测框。我们将 SOT 分数表示为 p p p,SOT 框表示为 D t r a c k D_{track} Dtrack,检测框表示为 D d e t D_{det} Ddet,然后短期特征 f s f_s fs 计算如下:
f s ( D t r a c k , D d e t ) = I o U ( D t r a c k , D d e t ) 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找到的匹配结果来细化跟踪器得分。对于目标 X X X,精确的整体跟踪质量 q X q_X qX 如下:
q X , t + 1 = { q X , t + I o U ( D t r a c k , D d e t ) ⋅ p 2 , i f m a t c h e d , q X , t ⋅ d e c a y ⋅ p k , o t h e r w i s e , 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,
其中 d e c a y decay decay 和 k k k 是用于处理不一致目标的超参数, D d e t D_{det} Ddet 是检测框。这样,如果跟踪质量 q X q_X qX 低于阈值 ζ t \zeta_{t} ζt,我们就会丢弃不可靠的目标。
我们使用 GoogLeNet Inception-v4的修改版本作为 ReID 子网的主干 CNN。ReID 特征从分类之前的最后一个FC层中提取。Table 1和 Table 2展示了主干 CNN 的详细信息。为从目标的 tracklet 历史记录中选择 K K K 张图像,我们设计了一种质量感知机制。
为了获得高质量的长期线索,我们使用质量过滤器在过去的 K K K 段时期内选择 K K K 张最佳图像,以确保质量和鲁棒性。所选 K K K 帧图像构成目标跟踪历史记录,其索引为 H = { t 1 … , t K } \mathcal{H}=\{t_1 \ldots, t_K\} H={t1…,tK}。我们选择的 K K K 帧定义如下:
t i = arg max t − i δ < t ^ ≤ t − ( i − 1 ) δ Q ( I t ^ X ) , i = 1 , 2 , . . . , K t_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
其中 Q Q Q 网络输出质量得分,使用 Resnet-18模型实现。 I t X I_{t}^X ItX 是帧 t t t 上目标 X X X 的图像区域。超参数 δ \delta δ 决定选择间隔。
例如,当 i = 1 i=1 i=1 时,从帧 t , t − 1 , . . . , t − δ + 1 t, t-1, ..., t-\delta+1 t,t−1,...,t−δ+1 中选择质量得分最高的作为 t 1 t_1 t1。当 i = 2 i=2 i=2 时, t 2 t_2 t2 从 t − δ , t − δ − 1 , . . . , t − 2 δ + 1 t-\delta, t-\delta-1, ..., t-2\delta+1 t−δ,t−δ−1,...,t−2δ+1 中选择。因此, t i t_i ti 中的 i i i 对应于不同的步幅和搜索范围。
长期特征生成
选择 K K K 张图像后,将所有这些图像和需匹配的检测结果馈送到 ReID 子网络并输出其 ReID 特征。然后我们可以获得目标 K K K 条长期特征,如下所示:
F l X = { f l ( A t i X , A d e t ) ∣ i = 1 , … , K } , where f l ( A t i X , A d e t ) = A t i X T ⋅ A d e t ∣ A t i X ∣ ∣ A d e t ∣ , \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,
A t i X A_{t_i}^X AtiX 是从目标 X X X 的跟踪记录中选择的第 i i i 张图像的 ReID 特征向量, A d e t A_{det} Adet 是检测结果的 ReID 特征。为了减少计算,对于 tracklet 中的每个图像,ReID 网络提取一次特征。 保存后以备后续使用。
切换者检索
我们通过观察大量的身份转换(IDS),发现大多数 IDS 发生在当两个目标彼此相遇并发生较大重叠时。它启发我们将与当前目标最大重叠的另一个目标标记为最可能的潜在切换者。数学上,对于帧 t t t 中的每个 tracklet X X X,其位置用 X t X_t Xt 表示,并且可能的切换者如下获得
Λ = arg max Y ∈ S s . t . Y ≠ X I o U ( X t , Y t ) . \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 ϕ,并将二者的输入——目标 X X X 和检测结果 D D D 表示为 Γ X , D \Gamma_{X,D} ΓX,D,切换者与之类似。分类器的输入特征由两部分组成:
ϕ \phi ϕ 定义如下:
ϕ ( Γ X , D ) = { f s ( D t r a c k , D d e t ) } ∪ F l X . \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 + 1 K+1 K+1,切换者与之类似。然后我们通过连接这两个部分来获得分类器的输入。
分类
我们利用带加权分位数草图的正则化牛顿提升决策树,由 XGBoost 在分类步骤中提出。
如果分类结果 y y y 大于阈值 ζ m \zeta_{m} ζm,那么将成本为 1 − y 1 - y 1−y 的相应边添加到图中。
SOT 子网络和 ReID 子网络是独立训练的。对于 SOT 子网络,我们根据视频的标注生成一些目标图像对,并根据 SiamRPN 的训练模式扩展图像对以包含一部分背景。为了更好的训练,我们只考虑与真实目标 IoU 大于0.65的框作为正样本且小于0.45的作为负样本。对于 ReID 子网络,将每个目标都视为一个类,我们训练网络来预测输入目标的类别。ReID 子网络的输入是目标图像区域,标签是其类号。
我们需要先得到两个子网络的输入,从而为切换者感知分类器生成训练样本和相应的被标注。
对于质量滤波器,我们将与真实目标 IoU 大于0.6的图像区域作为正样本,其余作为负样本。
检测得分过滤策略
有时检测器给出的检测结果噪声很多,带有奇怪的误报并且置信度不可靠。我们提出了两种解决方案来改进这些检测结果:
在这里,我们使用长期线索选择中的质量过滤器作为置信提炼器。
长期跟踪聚类
基于在线模式的输出结果,我们设计了一个简单的批量聚类后处理程序。
第一步是由轨迹构建子图。对于每个 tracklet,
第二步是将这些切片合并到不同的目标之间。