SiamMOT:Siamese Multi-Object Tracking论文详读

论文地址:https://assets.amazon.science/ee/91/c7a6a6c942aa9c4aca99d71191ea/slimmot-siamese-multi-object-training.pdf

一、摘要

1.本文工作主要是针对SiamNet-base object tracking的优化改进
但我觉得对其他类型的object tracking工作也是很有借鉴意义的

2.SiamMOT在SiamNet-base object tracking的基础上加入了一个运动模型,并证明了加入运动模型的必要性

3.该运动模型分为隐式建模(IMM)运行和显式建模(EMM)两种
该运动模型用于估计两帧之间实例的运行情况,以便检测到的实例相关联

4.在MOT17、TAO-person以及Caltech Roadside Pedestrians三个数据集上证明了运行建模对于MOT任务的必要性,并表明SiamMOT取得了SOTA
并在ACM MM'20 HiEve Grand Challenge的HiEve数据集上性能优于winners

5.SiamMOT同时也是efficient的,在单GPU输入720P的视频能达到17FPS

二、Introduction中提出的一些观点

1.把早期的跟踪工作描绘为一个在tracking-by-detection”范式(paradigm)基础下的基于图的优化问题(graph-based optimization problem)
每个节点(node)表示一个检测(detection);每条边对两个节点链接的可能性进行编码,一般使用视觉和运动的组合来表示每个节点

2.之前的工作通常需要构建一个很大的离线图,所以很不适用于实时系统

3.近期也出现了一些实施跟踪的工作,专注于改进连续帧上的本地链接,而不是构建离线图来重新识别跨越大的时间间隔的实例

4.作者认为在SORT中一个较好的运行模型是提高其局部连接精度的关键
SORT中使用的传统算法KF运动建模,而Trackor++和CenterTrack是使用CNN基于视觉和几何特征对运动建模

三、方法论和试验结果先知

方法

1.使用基于区域的暹罗网络(region-based Siamese Network),其中“基于区域”的说法来自region-
based detection network即使用了Faster-RCNN,称为SiamMOT
基于区域的说法同时也是为了区分于CenterTrack工作中基于点特征隐式推断实例运动

2.此外在基于暹罗网络的单目标跟踪任务的启发下,提出了IMM和EMM两种运动建模方法

试验结果

1.证明:在三个不同的多人跟踪数据集进行了广泛的消融分析后的结果表明,实例级运动建模对于健壮的在线MOT非常重要,特别是在更具挑战性的跟踪场景中。
此外证明SiamMOT的运动模型可以显著提高跟踪性能,特别是在摄像机快速移动和人体姿势显著变形的情况下。

2.在MOT17数据集上以DLA-34为backbone的、带有EMM的、使用公共检测(public detection)的SiamMOT实现了65.9的MOTA和63.3的IDF1

3.最近的TAO-person数据集的TrackAP指标从Trackor++的36.7提升至了41.1

4.Human In Events(HiEve)数据集上取得了最好的结果 

四、变量声明

先对整体框架有个大致的了解,便于了解“运动建模”这部分的位置

参数解读一下吧,对这个过程基本就能了解了

图1:SiamMOT是一个基于区域的多目标跟踪网络,可同时检测和关联对象实例。暹罗跟踪器对跨帧的实例运动进行建模,用于在线多目标跟踪中的临时链接检测。帧I^{t}的主干特征图以其实际大小的1/2可视化。 

输入变量

I^{t}I^{t+\delta }分别表示两个时刻的帧

R^{t}=\left\{R_{1}^{t}, \ldots R_{i}^{t}, \ldots\right\}表示t时刻一系列的检测实例(instances)(即是box)

输出变量

输出的R^{t+\delta }是由\tilde{R}^{t+\delta }{R}^{t+\delta }经空间匹配后经求解器求解出的

过程量

\tilde{R}^{t+\delta }是跟踪器将R^{t}传播到t+\delta时刻产生的

过程量的R^{t+\delta }表示对t+\delta时刻输入帧预测的一系列实例(instances)(即是box)(注意这里的R^{t+\delta }有两个,一个是输出量,一个是过程量)

S为区域提议

f为过程特征图

Siamese Track \mathcal{T}\在整个框架中表示的是一个跟踪过程,其实它就是我们接下来要重点提到的运动建模部分,如下原文

五、对主要创新点-两种运动建模的解读统一形式

建立一个统一的形式:

\left(v_{i}^{t+\delta}, \tilde{R}_{i}^{t+\delta}\right)=\mathcal{T}\left(\mathbf{f}_{R_{i}}^{t}, \mathbf{f}_{S_{i}}^{t+\delta} ; \Theta\right)

这段就不翻译了,我觉得原汁原味的英语更容易理解

1. Implicit motion model

隐式运动模型使用MLP隐式估计两帧之间的实例级运动,如图

IMM通过将特征\mathbf{f}_{R_{i}}^{t}\mathbf{f}_{S_{i}}^{t+\delta}按通道连接在一起后送入MLP中预测可见置信度v_{i}以及相关位置及范围变化m_{i}m_{i}定义为下式,其中的\left(x_{i}^{t}, y_{i}^{t}, w_{i}^{t}, h_{i}^{t}\right)为目标boxR_{i}^{t}的4个参数:

m_{i}=\left[\frac{x_{i}^{t+\delta}-x_{i}^{t}}{w_{i}^{t}}, \frac{y_{i}^{t+\delta}-y_{i}^{t}}{h_{i}^{t}}, \log \frac{w_{i}^{t+\delta}}{w_{i}^{t}} \log \frac{h_{i}^{t+\delta}}{h_{i}^{t}}\right]

利用这些便可从方程的逆变换中很容易地推导出\tilde{R}^{t+\delta}

使用的loss形式为\mathbf{L}=\ell_{\text {focal }}\left(v_{i}, v_{i}^{*}\right)+\mathbb{1}\left[v_{i}^{*}\right] \ell_{\text {reg }}\left(m_{i}, m_{i}^{*}\right),其中的\mathbb{1}为指示函数(indicator function)

2. Explicit motion mode

显式运动建模的流程如图

可以看到主要利用的是逐通道互相关操作(*表示),具体来说是通过逐通道互相关操作来生成像素级别的特征响应图r_{i}
之后通过使用CNN \psi以两个分支分别进行卷积操作。其中一个分支负责预测密集的可见性置信度图v_{i},用以指示每个像素包含目标对象的可能性。另一个分支负责预测密集的位置特征图p_{i},用以对从该位置到左上角和右下角的偏移量进行编码。

因此,我们可以通过以下变换导出(x, y)处的实例区域:\mathcal{R}(\mathbf{p}(x, y))=[x-l, y-t, x+r, y+b],其中\mathbf{p}(x, y)=[l, t, r, b],也就是左上角和右下角的偏移量。

最后的运动估计就可表示为:

\begin{array}{r} \tilde{R}_{i}^{t+\delta}=\mathcal{R}\left(\mathbf{p}_{i}\left(x^{*}, y^{*}\right)\right) ; \quad v_{i}^{t+\delta}=\mathbf{v}_{i}\left(x^{*}, y^{*}\right) \\ \text { s.t. }\left(x^{*}, y^{*}\right)=\underset{x, y}{\operatorname{argmax}}\left(\mathbf{v}_{i} \odot \boldsymbol{\eta}_{i}\right) \end{array}

其中⊙是逐个元素的乘法,\eta_{i}是指定相应候选区域的非负惩罚分数的惩罚映射,由\boldsymbol{\eta}_{i}(x, y)=\lambda \mathcal{C}+(1-\lambda) \mathcal{S}\left(\mathcal{R}(\mathbf{p}(x, y)), R_{i}^{t}\right)计算得到。其中\mathcal{S}为高斯函数,负责评价\mathcal{R}(\mathbf{p}(x, y))R_{i}^{t}的相关性。\mathcal{C}是关于之前目标区域R_{i}^{t}的几何中心一个余弦窗函数。

损失函数形式为:

\begin{aligned} \mathbf{L} &=\sum_{x, y} \ell_{f o c a l}\left(\mathbf{v}_{i}(x, y), \mathbf{v}_{i}^{*}(x, y)\right) \\ &+\sum_{r} \mathbb{1}\left[\mathbf{v}_{i}^{*}(x, y)=1\right]\left(w(x, y) \cdot \ell_{r e g}\left(\mathbf{p}_{i}(x, y), \mathbf{p}_{i}^{*}(x, y)\right)\right) \end{aligned}

3. 小结

说实话我觉得显式和隐式的运动建模方法之间的差异并没有想象中的那么大,只能说是在这两种方法之间相比能体现出显式和隐式之分。

私以为SiamMOT中的显示建模仍然属于一种“隐式”建模,而卡尔曼滤波和匈牙利算法这种属于显式建模。当然,这只是个人观点。

就本文来说EMM相对IMM确实更加“显式”一点,它使用与通道无关的相关操作来允许网络显式地学习连续帧中相同实例之间的匹配函数,并实现了一种更细粒度的像素级监督机制,这对于减少与干扰项错误匹配的情况很重要。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: SiamMOT是一种基于Siamese网络的多目标跟踪算法,它可以同时跟踪多个目标,并且在速度和准确度方面都有很好的表现。该算法使用了深度学习技术,通过学习目标的特征来进行跟踪,具有很强的鲁棒性和适应性。在实际应用中,SiamMOT已经被广泛应用于视频监控、自动驾驶等领域。 ### 回答2: SiamMOT是指SiamMOT算法,是一种基于SiamRPN++和深度学习的多目标追踪算法。它主要通过在目标检测的基础上,根据目标的视觉特征进行跟踪,实现对多个目标同时进行跟踪的功能。 SiamMOT算法采用Siamese网络结构,该网络结构以两个相同的子网络组成,用于学习目标的特征。子网络通过共享权重,实现对同一个目标的不同视角的特征提取。通过特征提取,SiamMOT能够把同一目标的特征映射到相同的空间中,从而实现目标跟踪。 SiamMOT算法主要包含三个主要的步骤:第一步是目标检测,利用目标检测算法进行目标的初步识别,获取目标的位置和尺寸信息;第二步是特征提取,通过Siamese网络提取目标的特征,将不同视角下的特征映射到相同的空间中;第三步是目标跟踪,根据目标的特征匹配策略,利用目标的运动信息和外观特征进行目标的连续跟踪。 SiamMOT算法具有高效、准确的特点,能够在复杂背景下跟踪多个目标,并且能够实现实时运行。它在视频监控、自动驾驶、行人跟踪等领域有着广泛的应用前景,为目标跟踪研究提供了有效的方法和思路。 ### 回答3: SiamMot是一种基于SiamNet的多目标跟踪算法。SiamNet是一种基于孪生网络的方式,用于目标跟踪任务。在SiamMot中,孪生网络首先用于提取目标的特征向量。这些特征向量能够捕捉到目标的关键信息,例如目标的外观和运动。然后,通过计算特征向量之间的相似度,可以将目标在连续帧中进行匹配。 SiamMot采用了一种离线训练和在线跟踪的方式。在训练阶段,使用大量的视频序列进行训练,以学习目标的特征和运动模式。在跟踪阶段,根据目标在第一帧中的位置,使用SiamNet提取目标的特征向量,并与后续帧中的特征进行匹配。通过计算特征之间的相似度,可以确定目标在连续帧中的位置。 相比传统的多目标跟踪算法,SiamMot具有许多优势。首先,它能够在复杂的场景中实现准确的目标跟踪。其次,SiamMot在目标外观变化和运动模式变化的情况下都具有较好的适应性。此外,SiamMot具有较高的实时性能,能够处理高帧率的视频流。 总之,SiamMot是一种基于SiamNet的多目标跟踪算法,通过提取目标的特征向量,并计算特征之间的相似度,实现准确且稳定的目标跟踪。这种算法在目标追踪领域具有广泛的应用前景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白 AI 日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值