多目标研究入门:从SORT到FairMOT

作者 |  高毅鹏  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/260292966

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

目标跟踪分为单目标跟踪(SOT)和多目标跟踪(MOT)。SOT一般在首帧给出目标,跟踪器(tracker)需要在后续帧定位出目标位置,可以看成目标重定位问题。MOT一般需要检测器(detector)先检测出目标,跟踪器对属于同一目标的框进行关联,可以看作目标匹配问题。下文重点介绍MOT算法。

MOT算法的通常工作流程:(1)给定视频的原始帧;(2)运行对象检测器以获得对象的边界框;(3)对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;(4)之后,相似度计算步骤计算两个对象属于同一目标的概率;(5)最后,关联步骤为每个对象分配数字ID。

多目标跟踪的核心步骤:

多目标研究入门:从SORT到FairMOT_第1张图片

由此可见多目标跟踪的核心在于检测,检测不到目标就无法进行跟踪,技术难点在于检测到目标后如何区分不同的目标,也就是目标跟特征提取和相似度计算。

多目标跟踪的评价指标:

  • 对于多目标跟踪,最主要的评价指标就是MOTA。这个指标综合了三点因素:FP、FN、IDsw.。FP即False Postive,为误检测的目标数量;FN即False Negetive,为未检出的真实目标数量;IDsw.即同一目标发生ID切换的次数。

  • 多目标跟踪还有很多的评价指标,比如MOTP、IDF1、MT、ML、Frag等。作为入门,读者最需要关注的就是MOTA,其他指标可以等对MOT有了进一步了解后再关注。

  • IDF1:识别F值(Identification F-Score)是指每个行人框中行人ID识别的F 值。公式为:

一般来说IDF1是用来评价跟踪器好坏的第一默认指标,如果要给跟踪器性能排个序,一般会选择IDF1这个指标作为默认的初始排序指标。这三个指标可以根据任意其中两个推断出第三个的值,因此也可以只展示其中两个,当然最好这两个包含IDF1。

当然还有其余的评价指标,在这儿不再过多描述。

多目标跟踪的数据集:

多目标研究入门:从SORT到FairMOT_第2张图片

多目标跟踪框架

现有多目标跟踪框架都是基于SORT和DEEP SORT演变而来。

多目标研究入门:从SORT到FairMOT_第3张图片

从这两个工业界关注度最高的算法说起。

SORT作为一个粗略的框架,核心就是两个算法:卡尔曼滤波和匈牙利匹配。

卡尔曼滤波可以基于目标前一时刻的位置,来预测当前时刻的位置,并且可以比传感器(在目标跟踪中即目标检测器,比如Yolo等)更准确的估计目标的位置。卡尔曼滤波分为两个过程:预测和更新。

卡尔曼滤波:https://zhuanlan.zhihu.com/p/39912633

匈牙利算法解决的是一个分配问题。SK-learn库的linear_assignment_和scipy库的linear_sum_assignment都实现了这一算法,只需要输入cost_matrix即代价矩阵就能得到最优匹配。不过要注意的是这两个库函数虽然算法一样,但给的输出格式不同。具体算法步骤也很简单,是一个复杂度的算法。

匈牙利匹配:https://zhuanlan.zhihu.com/p/62981901

DeepSORT的优化主要就是基于匈牙利算法里的这个代价矩阵。它在IOU Match之前做了一次额外的级联匹配,利用了外观特征和马氏距离。

外观特征就是通过一个Re-ID的网络提取的,类似于人脸识别网络中的特征值。然后是因为欧氏距离忽略空间域分布的计算结果,所以增加里马氏距离作为运动信息的约束。

目前主流算法:

多目标研究入门:从SORT到FairMOT_第4张图片

SDE系列算法

这意味着系统至少需要两个计算密集型组件:一个检测器和一个嵌入模型(ReID)。为了方便起见,我们将这些方法称为分离检测和嵌入方法(SDE)。因此,总的推断时间大致是两个部分的总和,并将随着目标数量的增加而增加。SDE方法的特点给实时MOT系统的构建带来了严峻的挑战,这是实践的必然要求。deepsort就是SDE系列算法的代表,很显然这样的操作方式整个系统算法耗时较长,因此,通过“特征共享”降低算法耗时,进行项目落地成为一个比较好的思路。

特征共享的系列算法

  • 两阶段特征共享算法

联合检测器和嵌入学习的一种选择是采用FasterR-CNN框架(Ren et al.2015),这是一种两级检测器:

  • 第一个阶段,区域优先网络(RPN),与FasterR-CNN保持相同,并输出检测到的边界框。

  • 第二阶段,FastR-CNN(Girshick 2015)通过用度量学习监督取代分类监督来转化为嵌入学习模型(Xiao et al.2017;Voigtlaender et al.2019)。

  • 两阶段共享算法Track R-CNN 就是对 Mask R-CNN 进行扩展,使用 roi-pool 从共享的特征图中获取候选框所对应的图像特征,并通过一个轻量的网络针对每一个候选框同时进行:1)检测框回归与分类;2)前景 mask回归;3)Re-ID 特征回归。

  • 一阶段特征共享算法 JDE

多目标研究入门:从SORT到FairMOT_第5张图片

算法流程图:

多目标研究入门:从SORT到FairMOT_第6张图片

JDE 算法存在的问题

  • 它效仿 "one-stage" 物体检测器的思路,去掉了 roi-pool 层,但它依然保留了 anchor 的概念,因此也就依然存在多个(不完美匹配的)anchor 对应一个物体的情况。

  • 一个更严重的问题是同一个 anchor(相似的图像区域)可能会对应不同的人,假如一张图像中有两个相邻的人,并且存在一个 anchor 和这两个物体的交集都很大,在前后两个不同的时刻,因为人或相机微小的运动,可能导致该 anchor 需要输出截然不同的身份标识,从而在很大程度上增加了网络学习的难度。

  • 在MOT中ReID特征的维数不宜过高,因为MOT的数据集一般来说都比较小。结合这三点看上去很直接的改进,作者便在各个数据集中取得了很大的效果提升。

FairMOT

论文改进思路:

  • 我们以 CenterNet 为基础,加入 Re-ID 分支,提出了 FairMOT 方法,使其能够同时进行物体检测和跟踪,下图展示了方法的框图。

  • 简单来讲,FairMOT 会对每一个像素进行预测,预测其是否是物体的中心、物体的大小和以其为中心的图像区域的 Re-ID 特征。

  • 检测和跟踪两个任务都是以“当前像素”为中心,所以不存在对齐的问题,也不存在严重的顾此失彼的不公平问题,这也是称这个方法为 FairMOT 的原因。

多目标研究入门:从SORT到FairMOT_第7张图片

1.主干网络

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

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

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.id嵌入分支 Identity Embedding Branch

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

损失函数

多目标研究入门:从SORT到FairMOT_第8张图片

实验

anchor free 和 anchor based 对于多目标跟踪算法的影响,从下面的实验可以看出在不同大小的采样下anchor free的效果要比anchor based好很多。

多目标研究入门:从SORT到FairMOT_第9张图片

Reid特征的选择:可以看出特征维度为128时效果最佳。

多目标研究入门:从SORT到FairMOT_第10张图片

与JDE多目标跟踪算法对比:

多目标研究入门:从SORT到FairMOT_第11张图片

与其他两阶段的算法相比:

多目标研究入门:从SORT到FairMOT_第12张图片

往期回顾

2022最新综述!一文详解多目标跟踪方法最新进展(单帧/多帧/特征/相关性)

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

多目标研究入门:从SORT到FairMOT_第13张图片

你可能感兴趣的:(算法,大数据,python,计算机视觉,机器学习)