多目标跟踪算法FairMOT深度解析
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者丨周威@知乎
来源丨https://zhuanlan.zhihu.com/p/259356109
编辑丨3D视觉工坊
1 前言
本文我们将介绍一个在多个追踪benchmarks上霸榜的追踪器 ,一个实用又简单的目标追踪Baseline,FairMOT!
其实FairMOT属于JDE(Jointly learns the Detector and Embedding model )的一种。实验证明了现有的JDE方法存在一些不足,FairMOT根据这些不足进行了相关的改进。
作者就以下目前JDE方法在目标追踪领域存在的三点不足进行了说明。我们这里一一解析。
1.1 Anchor-Based 的检测器不适用JDE追踪模式
作者提到目前JDE的检测方式同时提取检测框和检测框内物体的Re-ID信息(低维的向量信息)。而基于Anchor-Based 检测器产生出来的anchor并不适合去学习合适的Re-ID信息,原因有二,其一是一个物体可能被多个anchor负责并进行检测,这会导致严重的网络模糊性(ambiguities for the network)。第二个原因是实际物体的中心可能与负责对该物体进行检测的anchor中心有偏差。这里不妨引用原文中的图进行说明。
上图中的黄色anchor与红色anchor都负责蓝色小伙的检测,但是很明显,其中心与蓝色小伙的中心并不重合,而且这些anchor并不能很好包含这个蓝色精神小伙。所以这是很多基于Anchor-Based 的检测器的JDE方法的不足。
1.2 多层特征融合
这个考虑到Re-ID信息不能仅仅包含高层网络中的语义信息,也要适度包含低层网络中的的颜色,纹理的信息,所以多层特征融合是非常有必要的。这点不必多说,相信大家应该都懂。
1.3 到底选择多大的Re-ID维度来存储Re-ID信息呢?
之前的一些Re-ID方法中都会选择一些高维度的特征来存储Re-ID信息,但是作者在FairMOT实验中发现使用低维度的特征更适用于JDE这种MOT方法。因为在MOT的一些benchmarks中并没有那么像Re-ID那么多的数据,维度设置大了容易过拟合。
所以作者考虑到之前方法在上述三点中的不足,提出了一种多目标追踪的baseline,也就是FairMOT,就是这么简单。
那么下面给出相关论文和代码:
论文:FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking(https://arxiv.org/abs/2004.01888)
代码:github.com/ifzhang/Fair(https://github.com/ifzhang/FairMOT)
2 FairMOT网络结构详解
我觉得论文中已经对FairMOT的网络结构说的足够清楚了哈。考虑到目前的Anchor-Based方法不能用了,便使用了Anchor-Free目标检测范式来代替,最常见的Anchor-Free目标检测范式由CornerNet、CenterNet等等,这块的解析我给出以下链接帮助大家入门。
1)【Anchor free】CornerNet 网络结构深度解析(全网最详细!)
网址:https://zhuanlan.zhihu.com/p/188587434
2)【Anchor free】CornerNet损失函数深度解析(全网最详细!)
网址:https://zhuanlan.zhihu.com/p/195517472
3)【Anchor Free】CenterNet的详细解析
网址:https://zhuanlan.zhihu.com/p/212305649
其实anchor-free的方法就是一种基于关键点检测的方法。目前最常见的就是检测物体的中心点。本文中正是采用了基于中心点检测的anchor-free方法,该方法可以有效解决上述讨论的问题1.1。借用原图中的说明(anchor-free方法基本上没有什么网络模糊性,中心点没什么大的偏移问题)
那么在FairMOT中,这个基本的特征提取网络长什么样呢?
作者选择了一个叫做DLA( Deep Layer Aggregation)的网络进行特征提取,这个网络的最大特点就是多层融合(恰好符合Re-ID信息需要多层信息融合的特点)。
当然了,和分类任务或者基于anchor的检测任务不同(这些任务往往不需要多高的输出分辨率),基于关键点的检测(anchor-free)往往需要分辨率更高(一般为stride=4)的输出特征图,这样不会产生较大的中心点偏移了。所以作者采用了一种形似encoder-decoder的DLA网络作为特征提取,如下图所示。
Encoder-decoder网络提取的(stride=4)高分辨率特征图将被作为四个分支的特征图。其中三个被用来检测物体(Detection),一个被用来输出物体的Re-ID信息(Re-ID)。如下图所示。
以上的每个分支都被称为一个head分支。每个head除了最后输出通道维度的不同,其组成都类似,论文中提到
Each head is implemented by applying a 3x3 convolution (with 256 channels) to the output feature maps of the backbone network, followed by a 1x1 convolutional layer which generates the nal targets.
也就是每个head由一个3x3卷积层后面接一个1x1卷积层实现的。
网络的最后输出为:
(1)heatmap,形状为(1,H,W),这里好像和其他anchor-free方法输出的featmap不同,这里只有一个通道,而其他方法有类别数个通达(80居多)。
(2)center offset,形状为(2,H,W),和centerNet中的offset一样,弥补由于下采样产生的轻微的offset
(3)bbox size,形状为(2,H,W),仅仅知道中心点位置还不行,还需要用这个特征图来计算中心点对应检测框的宽高
(4)Re-ID Embedding,形状为(128,H,W),也就是每个物体用一个128维向量表示。
我们发现,其实FairMOT的结构非常简单哈,没有什么多花哨的东西。
3 FairMOT损失函数
3.1 heatmap损失函数
还有一些细节包括如何将物体的中心映射到heatmap上,这在之前对CenterNet,CenterTrack的解析中也提到过。作者按照高斯分布将物体的中心映射到了heatmap上,然后使用变形的focal loss进行预测的heatmap和实际真实的heatmap损失函数的求解,公式如下:
这里的 是预测的heatmap特征图, 是heatmap的ground-truth。
有关检测大小和偏移的损失函数,设置的更为简单。
3.2 Offset和Size 损失
作者仅仅用了两个L1损失就实现了。
上述中N为一个图中物体总数量。带hat的符号,如 和 分别为偏移的预测特征图与大小的预测特征图。其ground-truth特征图分别设置如下:
这里的 为物体的左上角坐标, 为物体右下角的坐标, 为物体的中心坐标。
3.3 Re-ID的Embedding损失
和JDE一样,FairMOT中的Embedding也是需要借助分类(按照物体ID为不同物体分配不同的类别)进行学习的。那么分类的话自然需要softmax损失啦!
这里的 为第k个物体的预测的类别(ID编号)可能性分布, 为第k个物体真实的one-hot编码。
至此 ,有关FairMOT的网络结构和损失函数就讲解结束了。获得物体的位置和Re-ID信息后,配合卡尔曼滤波求解其代价矩阵(cost matrix),然后利用匈牙利算法进行匹配,FairMOT就结束了。
4 总结
总体来说,FairMOT正如他的论文名说的那样,是一个很简单好用的多目标追踪Baseline。非常推荐大家去读一下原文,原文的结构也是我非常喜欢的叙述结构。
这篇文章中如果存在错误解读,欢迎批评指正!我们共同学习!
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2
在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3
在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~