Online Multi-Object Tracking with Dual Matching Attention Network(总结翻译)

Online Multi-Object Tracking with Dual Matching Attention Network

Abstract

  1. 针对检测中出现的噪声和频繁出现的目标身份交换问题,本文提出了将单目标跟踪(SOT)和数据关联的网络结合到一起的网络
  2. 为将SOT算法应用到MOT中,本文提出了cost-sensertive,并应用到了当前最好的单目标跟踪器(Visual Tracker)上,在线学习过程中就可以应对背景中的较为困难的负实例干扰(hard negative distractors)
  3. 在数据关联阶段,本文提出了双向匹配注意力网络(Dual Matching Attention Networks, DMAN),结合空间和时间机制。空间注意力模块(Spatial Attention Module)使网络将注意力放在输入图像对中相匹配的patterns上。时间(Temporal)注意力模块为了抑制检测噪声(noisy observation)(adaptively allocates different levels of attention to different samples in the tracklet)

1. Introduction

  1. MOT的主要问题:现在多数MOT算法都是基于检测的(tracking by detection),当检测不准时就会出现目标丢失,所以有很多算法尝试将SOT算法应用到MOT中
  2. 本文中使用SOT跟踪帧中的第一个目标,当score低于某一个阈值时,说明目标被遮挡或发生严重形变,此时就施加数据关联
  3. 将SOT应用到MOT中最大的挑战是解决频繁出现的目标身份交叉和类间干扰问题。一个跟踪器的搜寻区域中,只有离被跟踪目标中心很近的区域才可能出现正例,背景中的大多数位置都是负例,可能会导致训练的效率低,减弱跟踪器的辨别力。如果一个和目标相似的干扰出现在了搜寻区域,跟踪器就可能会漂移,所以这就需要跟踪器只关注少量的几个目标。
  4. 在数据关联阶段,我们需要比较当前帧中检测到的目标和一段轨迹中的目标,行人的数据关联也就是重识别,重识别问题的挑战因素有姿态变化、相似外观、频繁遮挡。在重识别的数据集中,MOT场景下的检测区域可能会受到misalignment errors和missing parts的影响。并且,轨迹中不准确的和被遮挡的检测可能会使外观模型的效率降低
  5. 本文的结构和安排:空间注意网络用来解决检测噪声和遮挡;时间注意网络用于自适应地分配不同程序的注意力给一条轨迹中不同的observations;提出cost-sensitive损失函数并应用于当前最优秀的跟踪器中

2. Related Work

  1. 注意力模型:视觉注意力机制可以让模型将注意力放在相关度最高的区域中,从而提取出更具区别力的特征(A visual attention mechanism enables the model to focus on the most relevant regions of the imput to extract more discriminative fetaures)
  2. 数据不平衡问题:Data imbalance的原因是某一类包含的例子比其他类少,这可能会在训练分类器过程中出现问题。本文中我们通过cost-sensitive tracking loss来减轻漂移问题

3. Proposed Online MOT Algorithm

  1. 我们提出的算法包含三个部分:检测、SOT、数据关联,在每一个给出检测结果的帧中,我们使用SOT跟踪器来跟踪每一个目标,目标的状态被设置为tracked,直到tracking score低于某一个阈值时就将目标状态设置为lost,此时就暂停跟踪器,施加数据关联算法,计算tracklet和未被任何被跟踪目标覆盖的detections之间的相似度(compute the similarity between the tracklet and the detections that are not covered by any tracked target),如果lost target能够和detection匹配上,就设置目标状态为tracked并恢复已暂停的跟踪

3.2 Data Association with Dual Matching Attention Network

当跟踪的过程开始变得不可靠时,我们就暂停跟踪器,并把目标的状态设置为lost,再使用数据关联算法来决定下一步是将目标的状态保持lost还是还原为tracked. 直觉上我们使用tracking score ***s***来衡量跟踪的可靠性,但要是仅仅领先tracking score, 背景中的误检目标(false alarm)也会有很高的socre而被持续地跟踪。一个被跟踪目标在连续的几帧中如果没有get到任何一个detection就有可能是false alarm, 所以我们使用跟踪器和检测器中提供的bboxes来过滤掉它们,如果在连续 l l l 帧中 t l ∈ τ l t_l\in\tau_l tlτl D l D_l Dl 的overlap小于0.5, 就将 ο ( t l , D l ) \omicron(t_l, D_l) ο(tl,Dl)设置为1,否则设置为0, ο m e a n \omicron_{mean} οmean表示先前 L L L { ο ( t l , D l ) } 1 L \lbrace\omicron(t_l, D_l)\rbrace_1^{L} {ο(tl,Dl)}1L 的平均值
s t a t e = { t r a c k e d , if  s > τ s  and  ο m e a n > τ ο l o s t , otherwise state=\begin{cases} tracked, & \text {if $s>\tau_s$ and $\omicron_{mean}>\tau_{\omicron}$} \\ lost, & \text{otherwise} \end{cases} state={tracked,lost,if s>τs and οmean>τοotherwise
计算相似度之前先要中气运动线索选择detections. 假设当前位于第 k − 1 k-1 k1 帧,首先使用线性运动模型来预测某一目标在第 k k k 帧中的位置, c k − 1 = [ x k − 1 , y k − 1 ] c_{k-1} = \left[x_{k-1},y_{k-1}\right] ck1=[xk1,yk1]为该目标中心点的坐标,目标的速度可以用以下公式计算
v k − 1 = 1 K ( c k − 1 − c k − K ) v_{k-1}=\frac1{K}(c_{k-1}-c_{k-K}) vk1=K1(ck1ckK)
k k k 帧中位置的预测值 c ~ k = c k − 1 + v k − 1 \tilde c_k=c_{k-1}+v_{k-1} c~k=ck1+vk1 之后我们选择在预测位置周围距离且没有被任何一个tracked target覆盖的detections作为候选detections,计算这些detections和轨迹中的目标之间的相似度,选择相似度最高的一个链接到lost target
现在的挑战是detections和轨迹中的observations都容易被遮挡和misalignment, 针对这一原因我们提出了DMAN

  • Spatial Attention Network

  • Temporal Attention Network
    前一步我们用SAN得到了detection和tracklet(长度为T)中各个例子的特征 { x 1 c , x 2 c , . . . , x T c } \lbrace x_1^c, x_2^c, ..., x_T^c\rbrace {x1c,x2c,...,xTc} ,为了确定tracklet中的含有噪声的例子(noisy samples)模型不能仅依靠上述的特征,还要考虑tracklet中例子的连续性(consistency), 此处我们使用双向长短期记忆网络(Bi-LSTM)来预测注意力的值(attention value) a t a_t at

代码运行问题

  • python代码运行的问题
  1. ImportError: Could not import PIL.Image.
pip install pillow
  1. calculate_similarity.py文件中的问题

参见博客DMAN

  • matlab代码运行问题
  1. 找不到gradientMex函数,因为编译过程中gradientMex函数编译失败,该工程通过ECO/install.m文件编译C++函数,当某一个函数编译出错时,整个过程并不会停止,而是报出该错误继续编译下一个函数,所以最后编译通过不代表所有函数都编译成功. gradientMex.cpp文件中有如下不兼容的错误
  2. 在使用mex编译C++函数时出现cannot convert ‘const int\*’ to ‘const mwSize* {aka const long unsigned int*}’

该问题的解决方法是将const int* 替换为const mwSize*, mwSize是为了保证跨平台的可移植性而出现的一种数据类型,该工程的代码原作者在Windows平台运行,而现在要在Linux平台下运行,上面的问题就是平台的不兼容性引起的

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Baguenaudier

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

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

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

打赏作者

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

抵扣说明:

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

余额充值