前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Intensive Reading]MOT:Towards Real-Time Multi-Object Tracking

[Intensive Reading]MOT:Towards Real-Time Multi-Object Tracking

作者头像
chaibubble
发布2021-11-17 11:27:59
6260
发布2021-11-17 11:27:59
举报

简介

Towards Real-Time Multi-Object Tracking是一个online的多目标跟踪(MOT)算法,基于TBD(Traking-by-Detection)的策略,在之前的MOT算法中惯用的策略就是先检测,得到视频中目标bbox,然后再考虑前后帧的匹配策略,为了更好的匹配效果,一般匹配中都会加入Re-ID,文章中把Re-ID等同于embedding,即一般方法中,detection model和embedding model是分开,独立的。而《Towards Real-Time Multi-Object Tracking》中将detection model和embedding model整合为一个模型,即Joint Detection and Embedding (JDE) model,所以我们用JDE作为《Towards Real-Time Multi-Object Tracking》的简称。

《Towards Real-Time Multi-Object Tracking》原理

contributions

JDE核心思想是一种联合检测和嵌入向量的模型,即Joint Detection and Embedding model,既然是tracking by detection的策略,那么检测模型是必不可少的,剩下的embedding在前后帧的ID匹配过程中起到关键的作用,而JDE提出了这两部分共享一个模型,与之对应的就是Separate Detection and Embedding (SDE) model,即检测和后续的Embedding是分开的,独立的两个部分,后续ID匹配的过程只需要检测模型提供bbox就可以,和检测模型本身并没有任何关系,SDE model的典型代表就是DeepSort。

除此之外,JDE的contributions有:

  • Joint Detection and Embedding model,与之对应的训练策略;
  • 实验对比JDE相比于SDE方法的优势,尤其在速度上;
  • 在MOT-16 上,JDE接近state-of-the-art。

Forwaord

Joint Detection and Embedding

JDE的基础检测模型,用了FPN结构,一共有三层,分别做1/32、1/16和1/8的下采样,每一层都会接出预测头(Predicion Head),而预测头除了常规的分类和定位分支外,会加上一个Embedding分支,这个分支后续用来做Re-ID。三个分支的Shape分别是:

  • classification results : 2 A × H × W
  • regression coefficients:4 A × H × W
  • dense embedding map:D × H × W 其中A是anchor的数量,embedding特征图的厚度是D。这种分支的形式就联合了检测模型和Re-ID模型,将两者合并为一个。Embedding分支的思路非常像 CornerNet,CornerNet中需要用Embedding判断哪两个点应该属于一个object,而JDE中则是判断哪两个object是一个ID,只不过,这两个相同的ID一定在前后帧上。

Post-processing

既然是前后帧的匹配,前一帧的输出信息需要被保留下来,当前帧同样输出三个分支信息后,根据Embedding结果进行匹配,Embedding layer输出为D×H×W,特征图宽高的维度和检测输出的特征图是一致的,特征图中每一个位置都是一个潜在的object,这也就意味着,每一个object的embedding vector的维度都是D,在源码中这个 D=512,而具体是不是目标,以及目标的位置就由另外两个分支决定了。

得到了前一帧后当前帧的所有目标,以及embedding vector后,依照下面的过程进行匹配,假设前一帧的目标数量为m ,当前帧的目标数量为n :

  • 根据检测的信息,拿到Embedding feature map上对应的embedding vector,当前帧fc​有n个目标,维度为 D ;
  • 前一帧fc−1​有m个目标,需要注意的是,处理短暂的object lost已经是现在MOT方法的标配,也就是说如果检测器不准,或者目标出现遮挡,在某一帧中目标没有被检测出来,但是之后几帧又回再次出现,此时跟踪算法不应该出现ID switch,所以fc−1​帧的 m个目标中,要加上 fc−1​帧之前ID losted的情况,假设有k个,所以总的ID数量就是m+k;
  • fc−1​帧得到m+k个目标,当前帧n个目标的embedding vector两两计算余弦距离,并与0比较较大值,生成一个(m+k)×n 的距离矩阵:cost_matrix;
  • 根据卡尔曼估计更新cost_matrix,具体做法为:估计前一帧的object在下一帧的位置,这个位置由和当前帧检测到的实际位置计算距离,显然这个距离矩阵又是 (m+k)×n的,而这个距离大于一个设定阈值的话,cost_matrix中对应位置将被置为正无穷,即绝对不可能是同一个ID。这一点和DeepSort很相似;
  • 在cost_matrix中卡阈值,选择小于阈值的距离,这就是为什么上一步中会选择置为无穷大;
  • 二次关联,使用的是IOU距离,不过计算IOU的bbox是由两次检测得到的,而不是卡尔曼滤波器估计得到的,然后再次卡阈值;
  • new ID and lost ID,如果 fc​帧 n个目标有一个bbox没有和之前的任何ID匹配上,那只能创建一个新的ID,相对应的,如果fc−1​帧中有ID没有匹配到fc​帧,那么就继续作为ID lost,留作下次更新;
  • 更新状态,卡尔曼估计是非常不准的,所以卡尔曼滤波器的状态要一直根据检测结果做更新,让它每次都只预测下一帧;
  • 更新ID losted,保留先前丢失ID的做法可以有效改善ID switch,但是如果跟踪一直做,那么ID losted就越来越多,时间越久就越不可能被找回来,并且加重了计算的负担,所以ID losted需要根据已经丢失的帧数做清理,清理之后,就没有任何再找回来的可能了。

实验结果

定量结果

Method

Det

Emb

#box

#id

MOTA

IDF1

MT

ML

IDs

FPSD

FPSA

FPS

DeepSORT 2

FRCNN

WRN

429K

1.2k

61.4

62.2

32.8

18.2

781

<15∗

17.4

<8.1

RAR16wVGG

FRCNN

Inception

429K

-

63.0

63.8

39.9

22.1

482

<15∗

1.6

<1.5

TAP

FRCNN

MRCNN

429K

-

64.8

73.5

40.6

22.0

794

<15∗

18.2

<8.2

CNNMTT

FRCNN

5-Layer

429K

0.2K

65.2

62.2

32.4

21.3

946

<15∗

11.2

<6.4

POI

FRCNN

QAN

429K

16K

66.1

65.1

34.0

21.3

805

<15∗

9.9

<6

JDE-864(ours)

JDE

-

270K

8.7K

62.1

56.9

34.4

16.7

1,608

34.3

81.0

24.1

JDE-1088(ours)

JDE

-

270K

8.7K

64.4

55.8

35.4

20.0

1,544

24.5

81.5

18.8

从上表中可以看出:

  • JDE的速度要比SDE快很多,就是网络结果决定的,SDE的方法在做Re-ID时,受限于目标数量的;
  • JDE的IDs控制的并不好,可能由于联合的Re-ID效果不如单独的Re-ID。

总结

JDE合并检测和Re-ID模块可以有效的提高效率,避免受限于目标数量的Re-ID的特征提取耗时,但是带来的是检测模型和Re-ID模型的高度耦合,检测和匹配不再是独立的两个部分,如果想要改变其中一个,另一个也必须要变。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 《Towards Real-Time Multi-Object Tracking》原理
    • contributions
      • Forwaord
        • Joint Detection and Embedding
        • Post-processing
    • 实验结果
      • 定量结果
        • 总结
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档