前言

本文介绍一个曾经在多目标跟踪上霸榜的追踪器 ,实用又简单的目标追踪Baseline,FairMOT!它属于一阶段多目标跟踪器(one-shot MOT),检测模型和Re-ID重识别模型同时进行,提升了运行速率。FairMOT采用 anchor-free 目标检测方法(CenterNet),估计高分辨率特征图上的目标中心和位置;同时添加并行分支来估计像素级 Re-ID 特征,这类特征用于预测目标的 id。

论文地址:https://arxiv.org/pdf/2004.01888v2.pdf

开源代码:https://github.com/ifzhang/FairMOT

目录

一、背景

1.1 两阶段多目标跟踪(two-shot MOT)

1.2 一阶段多目标跟踪(one-shot MOT)

二、跟踪器准确性的关键性因素

2.1 基于Anchor锚点的方法不适合Re-ID

2.2 多层特征聚合

2.3 ReID特征的维数

三、FairMOT框架

3.1 主干网络

3.2 物体检测分支

3.3 id嵌入分支 Identity Embedding Branch

四、损失函数

4.1 Heatmap loss

4.2 Offset and Size loss

4.3 Identity Embedding Loss

五、实验结果

六、FairMOT实践


一、背景

多目标跟踪 (MOT) 是计算机视觉领域中的重要任务,近年来,目标检测和 Re-ID 在各自的发展中都取得巨大进步,并提升了目标跟踪的性能。但是,现有方法无法实时速率执行推断,因为两个网络无法共享特征,例如:deepsort。

当前多目标跟踪最优的方法通常分为两大类:两阶段多目标跟踪、一阶段多目标跟踪。

1.1 两阶段多目标跟踪(two-shot MOT)

两阶段多目标跟踪——使用两个单独的模型,首先用检测模型定位图像中目标的边界框位置,然后用关联模型对每个边界框提取重识别 (Re-identification, Re-ID) 特征,并根据这些特征定义的特定度量将边界框与现有的一个跟踪结果联结起来。其中检测模型中的目标检测是为了发现当前画面所有的目标,ReID则是将当前所有目标与之前帧的目标建立关联,然后可以通过ReID特征向量的距离比较和目标区域交并比(IOU)来通过使用卡尔曼滤波器和匈牙利算法建立关联。代表算法:deepsort

两步方法的优点在于,它们可以针对每个任务分别使用最合适的模型,而不会做出折衷。此外,他们可以根据检测到的边界框裁剪图像补丁,并在预测Re-ID功能之前将其调整为相同大小,这有助于处理对象的比例变化。

1.2 一阶段多目标跟踪(one-shot MOT)

单步法MOT——在进行目标检测的同时也进行ReID特征提取,核心思想是在单个网络中同时完成对象检测和身份嵌入(Re-ID功能),以通过共享大部分计算来减少推理时间。现有的方法比如Track-RCNN、JDE(Towards real-time multi-object tracking)直接在Mask R-CNN、YOLOv3的检测端并行加入ReID特征向量输出。

很显然这能节约计算时间,但作者研究发现此类方法存在目标ID关联不正确的问题。具体来说,该类方法使用了anchor-based 的目标检测,目标的ReID特征是在anchor区域提取的,anchor 和目标区域会出现不对齐的问题,这会导致网络训练时存在严重的歧义。

图1:(a)黄色和红色的锚点造成了估计相同的ID(穿蓝色衬衫的人),尽管图像块非常不同。此外,基于锚的方法通常在粗网格上运行。因此,很有可能在锚点(红色或黄色星形)提取的特征未与对象中心对齐。(b)免锚的做法受歧义的影响较小。

二、跟踪器准确性的关键性因素

其实FairMOT属于JDE(Jointly learns the Detector and Embedding model )的一种。实验证明了现有的JDE方法存在一些不足,FairMOT根据这些不足进行了相关的改进。.作者对影响跟踪器准确性的关键性因素做了以下的分析:

2.1 基于Anchor锚点的方法不适合Re-ID

当前的单步法跟踪器都是基于anchor锚的,因为它们是从对象检测器修改而来的。但是,有两个原因造成了锚点不适合学习Re-ID功能。

  • 其一,对应于不同图像块的多个锚点可能负责估计同一个目标的 id,这导致严重的歧义(参见图 1)。即:基于anchor的检测器,多个bbox可能对应一个目标,这就导致了歧义。
  • 其二,需要将特征图的大小缩小 1/8,以平衡准确率和速度。对于检测任务而言这是可以接受的,但对于 Re-ID 来说就有些粗糙了,因为目标中心可能无法与在粗糙锚点位置提取的特征一致。

文章中提出解决该问题的方法,是通过将MOT问题看作为在高分辨率特征图上的像素级关键点(目标中心)估计和 id 分类问题。

2.2 多层特征聚合

这对于 MOT 问题尤其重要,因为 Re-ID 特征需要利用低级和高级特征来适应小型和大型目标。研究者通过实验发现,这对降低 one-shot 方法的 id 转换数量有所帮助,因为它提升了处理尺度变换的能力。

2.3 ReID特征的维数

以前的ReID方法通常学习高维特征,并在其基准上取得了可喜的结果。但是,本文发现低维特征实际上对MOT更好,因为它的训练图像比ReID少(由于 Re-ID 数据集仅提供剪裁后的人像,因此 MOT 任务不使用此类数据集)。学习低维特征有助于减少过拟合小数据的风险,并提高跟踪的稳健性。

针对于第三点实际存在疑问,一开始公布的Fairmot版本用的reid分支是128维度的,但是后来作者团队在MOT20上刷出了MOTA58.7的指标,也更新了github上的Fairmot模型,这时候用的reid维度已经改为512维度,与通用的reid模型接近。但是在实验中发现reid上效果仍然在人员交集处容易跑其他人身上,应该是没有充分训练。

三、FairMOT框架

如上图是FairMOT框架的框架图,它提出了 one-shot MOT跟踪。首先将输入图像送入编码器-解码器网络,以提取高分辨率特征图(步幅=4);然后添加两个简单的并行 head,分别预测边界框和 Re-ID 特征;最后提取预测目标中心处的特征进行边界框时序联结。

首先,采用 anchor-free 目标检测方法,估计高分辨率特征图上的目标中心。去掉锚点这一操作可以缓解歧义问题,使用高分辨率特征图可以帮助 Re-ID 特征与目标中心更好地对齐。

然后,添加并行分支来估计像素级 Re-ID 特征,这类特征用于预测目标的 id。具体而言,学习既能减少计算时间又能提升特征匹配稳健性的低维 Re-ID 特征。在这一步中,本文用深层聚合算子(Deep Layer Aggregation,DLA)来改进主干网络 ResNet-34 ,从而融合来自多个层的特征,处理不同尺度的目标。

3.1 主干网络

采用ResNet-34 作为主干网络,以便在准确性和速度之间取得良好的平衡。为了适应不同规模的对象,如图2所示,将深层聚合(DLA)的一种变体应用于主干网络

与原始DLA 不同,它在低层聚合和低层聚合之间具有更多的跳跃连接,类似于特征金字塔网络(FPN)。此外,上采样模块中的所有卷积层都由可变形的卷积层代替,以便它们可以根据对象的尺寸和姿势动态调整感受野。 这些修改也有助于减轻对齐问题

3.2 物体检测分支

本方法中将目标检测视为高分辨率特征图上基于中心的包围盒回归任务。特别是,将三个并行回归头(regression heads)附加到主干网络以分别估计热图,对象中心偏移和边界框大小。 通过对主干网络的输出特征图应用3×3卷积(具有256个通道)来实现每个回归头(head),然后通过1×1卷积层生成最终目标。

  • Heatmap Head

这个head负责估计对象中心的位置。这里采用基于热图的表示法,热图的尺寸为1×H×W。 随着热图中位置和对象中心之间的距离,响应呈指数衰减。

  • Center Offset Head

该head负责更精确地定位对象ReID功能与对象中心的对齐精准度对于性能至关重要。

  • Box Size Head

该部分负责估计每个锚点位置的目标边界框的高度和宽度,与Re-ID功能没有直接关系,但是定位精度将影响对象检测性能的评估。

3.3 id嵌入分支 Identity Embedding Branch

id嵌入分支的目标是生成可以区分不同对象的特征。理想情况下,不同对象之间的距离应大于同一对象之间的距离。为了实现该目标,本方法在主干特征之上应用了具有128个内核的卷积层,以提取每个位置的身份嵌入特征。

四、损失函数

4.1 Heatmap loss

作者按照高斯分布将物体的中心映射到了heatmap上,然后使用变形的focal loss进行预测的heatmap和实际真实的heatmap损失函数的求解,公式如下:

\hat{M}_{x,y}是预测的heatmap特征图,M_{x,y}是heatmap的ground-truth。N为一个图中物体总数量。

详细解释:

4.2 Offset and Size loss

作者用了两个L1损失就实现了Offset和Size损失:

其中,N为一个图中物体总数量,s表示Size 框的大小,o表示Offset 中心点的偏差。

详细解释:

4.3 Identity Embedding Loss

FairMOT中的Embedding也是需要借助分类(按照物体ID为不同物体分配不同的类别)进行学习的。其中分类用到softmax损失。

其中,N为一个图中物体总数量,K是类别数量。即,这部分需要对图片中每个物体进行分类识别,这里分类识别是具体认识到是指那一个物体,具有相同身份的所有对象实例都被视为一个类。

详细参考:

五、实验结果

1. 基于锚点(anchor-based)和无锚点(anchor-free)比较

表 1:在 MOT15 数据集上,基于锚点和无锚点方法在验证视频上的评估结果。

2. 多层特征聚合

表 2:不同主干网络在 2DMOT15 数据集上的评估结果。

表 3:主干网络对不同尺度目标的影响。

3、Re-ID 特征维度

表 4:不同 Re-ID 特征维度在 2DMOT15 数据集上的评估结果

4、与当前最佳模型的比较

表 5:在两个数据集上与当前最佳 one-shot 跟踪器的对比结果。

参考1:https://cloud.tencent.com/developer/article/1634149

参考2:https://jishuin.proginn.com/p/763bfbd2e881

参考3:https://zhuanlan.zhihu.com/p/407851869

六、FairMOT实践

参考:https://github.com/ifzhang/FairMOT

截止2022.2,开源代码的性能,如下表所示。(MOT challenge 数据集)

Dataset MOTA IDF1 IDS MT ML FPS
2DMOT15 60.6 64.7 591 47.6% 11.0% 30.5
MOT16 74.9 72.8 1074 44.7% 15.9% 25.9
MOT17 73.7 72.3 3303 43.2% 17.3% 25.9
MOT20 61.8 67.3 5243 68.8% 7.6% 13.2

曾在2D MOT15、MOT16、MOT17 和 MOT20 的所有跟踪器中排名第一,不愧是在多目标跟踪上霸榜的追踪器。

测试效果:

但是发现其速度还是不够快,后面基于TensorRT进行加速,再看看效果。

本文直供大家参考和学习,谢谢!

多目标跟踪算法 | FairMOT相关推荐

  1. 多目标跟踪算法FairMOT深度解析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨周威@知乎 来源丨https://zhuanlan.zhihu.com/p/259356109 ...

  2. 基于深度学习的多目标跟踪算法——ReID与MOT的联系

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士 研究方向|多目标跟踪 最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的.如果 ...

  3. 转载:一线算法工程师整理!超实用的3大多目标跟踪算法

    转载文章,主要自己做技术储备收藏 本文已获公众号滴普科技2048实验室授权发布,如需转载请与原作者联系. 继上一篇对多目标跟踪的核心步骤.评价指标.数据集.核心算法.改进策略.未来的方向等展开详细介绍 ...

  4. Cuda环境搭建并部署多目标跟踪模型FairMOT推理验证

    FairMOT(Fairness of Detection and Re-Identification in Multiple Object Tracking)是一种基于深度学习的多目标跟踪算法,采用 ...

  5. 基于深度学习的多目标跟踪算法(上):端到端的数据关联

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的.如 ...

  6. DeepSORT多目标跟踪算法

    DeepSORT 多目标跟踪算法 整体思路 SORT 算法的思路是将目标检测算法得到的检测框与预测的跟踪框的 iou(交并比)输入到匈牙利算法中进行线性分配来关联帧间 Id.而 DeepSORT 算法 ...

  7. DeepSORT 多目标跟踪算法笔记

    SORT 是一种实用的多目标跟踪算法,然而由于现实中目标运动多变且遮挡频繁,该算法的身份转换(Identity Switches)次数较高.DeepSORT 整合外观信息使得身份转换的数量减少了45% ...

  8. 多目标跟踪算法简述——量测-航机关联

    多目标跟踪算法简述--量测-航机关联 原创不易,路过的各位大佬请点个赞 针对机动目标跟踪的探讨.技术支持欢迎联系,也可以站内私信 WX: ZB823618313 多目标跟踪算法简述--量测-航机关联 ...

  9. SORT 多目标跟踪算法笔记

    SORT 是一种简单的在线实时多目标跟踪算法.文章要点为: 以 IoU 作为前后帧间目标关系度量指标: 利用卡尔曼滤波器预测当前位置: 通过匈牙利算法关联检测框到目标: 应用试探期甄别虚检: 使用 F ...

  10. 深度多目标跟踪算法综述

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 导言 基 ...

最新文章

  1. 程序员的十种级别 看看自己属于哪个级别?
  2. matlab向量与x正方向的夹角_MIT—线性代数笔记25 对称矩阵和正定性
  3. POJ3080方法很多(暴力,KMP,后缀数组,DP)
  4. Spring Cloud Alibaba:Sentinel实现熔断与限流
  5. 史上最清楚的BP算法详解
  6. js中组装拼接json对象,通过java后端接收并解析
  7. yii2 刷新缓存(刷新模型缓存)
  8. Mycat监控_监控平台Mycat-web配置指标_作为配置中心注册发现用---MyCat分布式数据库集群架构工作笔记0038
  9. vue切换路由的时候,如何让右侧滚动条滚动到顶部呢?
  10. 势逼 React Native,跨平台开发框架 Flutter 很凶猛
  11. 《逆袭进大厂》第二弹之C++进阶篇59问59答(超硬核干货)
  12. DataGridView 动态绑定列
  13. 【渝粤教育】国家开放大学2018年秋季 1323T内科护理学(本) 参考试题
  14. java继承序列化_Java中具有继承的对象序列化
  15. 公众号网站——微信登录
  16. load_weights` requires h5py when loading weights from HDF5
  17. Androi实现三个页面跳转
  18. Dolphinscheduler/海豚调度器的安装
  19. http://blog.sina.com.cn/s/blog_ad1c3bdf0102uz99.html
  20. Kaggle数据竞赛记录 - Steel Defect Detection

热门文章

  1. Firefox扩展IE Tab Plus内置功能导致浏览所有网页加载superfish.com脚本
  2. 树莓派 Ubuntu 18.04 启动2.4Ghz或5Ghz热点及部分5G信道启动失败解决方法
  3. 1 微信如何搜索附近的人?
  4. NOI题库答案(1.1 编程基础之输入输出)
  5. 算法 | golang 实现 key有序map
  6. Vue-Devtools 安装教程
  7. 新手小白学JAVA IO流 File 字节流 字符流
  8. 永磁同步电机矢量控制学习--MTPA控制策略
  9. 神经网络算法的基本原理,神经网络算法都有哪些
  10. 安装informatic过程中的错误