多目标追踪笔记四:MOTDT:Real-Time Multiple People Tracking with Deeply Learned Candidate Selection and Person

Real-Time Multiple People Tracking with Deeply Learned Candidate Selection and Person Re-Identification  

源码地址:https://github.com/longcw/MOTDT

这是2018的一篇比较新的文章,说的是对于MOT问题,目前普遍的Tracking by Detection是将不可靠的目标检测结果与现有的跟踪器进行数据关联。而在本文中呢,作者提出:

(1)通过从检测和跟踪的输出中收集候选项来解决这个不可靠的检测问题.让检测和跟踪生成的信息能够在各类场景中达到互补的作用。

(2)为了实时应用大量候选项的最优选择。提出一种新的基于全卷积神经网络的score评分函数,利用这个函数能够共享整张图片的计算。

(2)和deepsort类似,本文也采用了利用大量人员重识别数据集进行训练,得到相应的人员重识别的外观表示,提高追踪器的识别能力

这篇文章应该是将检测(卡尔曼滤波)和分类(改进的RFCN)分别开来,将两者分开后再结合,来处理多目标跟踪问题中遮挡等问题。

 

一些细节问题(introduce):

(1)因为高置性度的检测结果能够防止因长期跟踪导致的跟踪漂移;同时轨迹预测能够处理因遮挡导致的噪声,所以作者才提出score分数函数。

(2)多目标跟踪的目的是估计特定类别中物体的轨迹。在这里, 作者利用人的重新识别来解决人的跟踪问题。(个人觉得和deepsort的方法大同小异)

(3)有些人引入未来帧的信息来解决检测噪声问题(可能由于遮挡引起),使用整个视频帧的检测结果,并链接到轨迹。但作者采用的是只使用当前和过去的帧数。

(4)为了在在线模式下处理不可靠的检测, 作者的跟踪框架从每个帧中的检测和轨道输出中最佳选择候选项。

(5)如何以统一的方式对检测和跟踪的输出进行评分, 仍是一个悬而未决的问题。

相关贡献:

(1)利用深部神经网络来解决不可靠的检测和类别内的遮挡问题

(2)将检测和跟踪结果结合起来, 并基于深层神经网络选择最佳候选项,来处理在线跟踪中的不可靠检测问题。

(3)提出了一种分层数据关联策略, 该策略利用空间信息和深入学习的人员重新识别 (reid) 特征。

 

作者说在比较标准的跟踪benchmark上取得了实时和最先进的性能效果;

一、提出的方法:

一个框架:我们通过从检测和跟踪的输出中收集候选项来扩展传统的逐检测跟踪。我们的框架由两个顺序任务组成, 即候选选择和数据关联。

大体流程:

首先使用统一的评分函数来衡量所有的候选项,融合了一个有鉴别力训练的对象分类器(Real-Time Object Classification)和一个设计良好的跟踪器置信度(Tracklet Confidence ), 以制定评分函数。

然后非最大抑制 (nms) 随后与估计的分数一起执行。在获得没有冗余的候选项后, 我们使用外观表示和空间信息, 将现有轨道与所选候选项分层关联。

二、Real-Time Object Classification

1.将检测和轨道的输出结合起来将导致过多的候选项。我们的分类器通过使用基于区域的全卷积神经网络 (r-fcn) 共享整个图像的大多数计算。效率较高。

2.作者提出的高效分类器为使用具有编码、解码器体系结构的全卷积神经网络来预测整张图片的score maps。其中:

(1)编码器为一种具有实时性的light-weight convolutional backbone。解码器则引入了上采样功能,来提高输出score maps的空间分辨率率。用来为以后分类打下基础。

(2)每个分类的候选项则被定义为一个感兴趣区域(ROI),它由(x,y,w,h)组成。为了提高效率,作者期待将每个 ROI 的分类概率由共享分数映射直接投票。

这种投票方法简单来讲就是为图像上的所有点构造前景概率, 然后计算 roi 内点的平均概率。但这种策略会丢失目标的空间信息。(如果ROI只覆盖到目标对象的一部分,但事实上你计算出来的ROI内点平均概率将没有覆盖的部分的概率计算给忽视掉了;这就导致得到的信息不全,结果就会产生误差)

------------------------------------------------------------------------------

RFCN网络的简单理解就是:

R-FCN不采用Faster-Rcnn那种常规的将每个ROI进行分类回归操作;而是将整张图片经过Resnet-101得到featuremaps,然后生成三个分支,分别对应为ROI区域、分类、定位。1.将所有ROI区域映射到featuremaps上,2.再通过生成(position-sensitive score map)用于分类,再生成一个position-sensitive regression score map用于回归位置;(2.3.两个score maps并列)

PS:其中2.是各个ROI区域分为3x3的位置块,再一个个的进行ROI池化,若maps各位置块区域与该类别相比对应位置较多(响应值较大),则判为该类别。

3.从regression maps 经过ROI池化,得到四个值,为x,y,w,h的偏移量。思路和分类完全相同

 

解析:https://blog.csdn.net/WZZ18191171661/article/details/79481135

-------------------------------------------------------------------------------

所以作者为了将空间信息完整的呈现在之后映射的分数上,采用了位置敏感的ROI池化(position-sensitive RoI pooling)。采用RFCN网络的位置切分,将一个ROI区域拆成K*K的网格形状。一个ROI拆分出来的这么多小网格对应类别的特定位置。(例如ROI分出的左下角为一个小孩的的脚部,则对应人这个类别的相应位置也应该为脚部,才算符合要求。这样对应小方块的响应值才最大)。作者从k*k的网格中提取出响应值,则对于X这个ROI区域,最终分类概率公式化就是:

 

其中zi表示第i个bin(方块)的score map;例如k=3.则有9个bin;

在训练的时候,随机采取来自Groundtruth周围的ROI作为正样本,并同时采用来自背景的相同数量的ROI作为负样本。通过End to End 的训练网络,即为解码器最终的输出(k*k分数映射);就学习对象特定空间位置的响应。需要注意的是这个神经网络训练是针对候选项分类问题的而不是边界框回归(位置)。!!!也就是说,这个网络设计的目的只是为了将检测出来的目标进行分类的。。。

三、跟踪置信度和评分函数

在给定一个新框架的情况下, 我们使用卡尔曼滤波器估计每个现有轨道的新位置。这些预测用于处理由于对象的不同视觉特性和拥挤场景中的遮挡而导致的检测故障。但卡尔曼滤波一般只适用于短期跟踪问题,如果长时间不通过检测对卡尔曼滤波器进行更新, 其精度可能会降低。跟踪置信度是用来测量滤波器的准确性的时间信息。(!!!也就是说,使用卡尔曼滤波是用来对目标进行预测/检测的)

所以作者提出通过连续帧中的候选对象的时间关联生成跟踪。因为如果一段丢失,卡尔曼滤波器都将会被重新初始化,所以最后一个轨道信息才能被用作指定轨道的置性度(我这里理解为,在最后,不稳定的轨道都已经断了,撑到最后的轨道肯定是比较好的,可靠的。)则得到跟踪置性度的定义:

其中 Ldet 定义为与跟踪相关的检测结果数, 将 Ltrk 定义为与最后一次检测关联后的跟踪预测数。我们要求 ldet≥2去使用观测检测构建一个合理的运动模型。在轨道作为候选轨道之前

得到跟踪置性度,结合之前得到的ROI分类概率,最终融合得到了候选区域X的统一评分函数:

其中Cdet表示从检测得到的候选项,Ctrk表示从轨迹中得到的候选项。Strk范围[0,1]表示从不确定的轨道中去惩罚候选项。最后根据非最大抑制的统一分数选择数据关联的候选项。

四、具有 Reid 功能的外观表示

个人觉得这里借鉴或者直接使用了deepsort关于采用深度神经网络去训练行人重识别的数据集,来解决当目标重新出现时的检测问题。它也是使用神经网络学习得到对象外观信息,提取相应的特征向量。再利用获得的特征之间的距离来制定相似性。

五、分层数据关联

说了那么多,那么这篇论文是怎么实现数据关联的呢?作者给他取了一个名字叫分层数据关联。

作者为了解决拥挤场景中的类别遮挡问题,避免将其他不需要的对象和背景带入外观表现中,使用不同的功能将轨道与不同的候选对象分层关联。

首先将从检测中得到的候选项中进行数据关联,对最大距离的检测使用含有阈值的外观表示。

然后,我们将剩下的候选项和未被关联的追踪目标(我认为是下帧的检测出来的目标,因为都是基于track by detection的)进行数据关联。这是基于候选项(检测出来的)与追踪目标的IOU值得出的关联。同时加入阈值。

(我的理解是分层的意思是,你先将检测出来的候选目标,基于最大距离和相应阈值(或者作者说的基于空间信息和外观信息)进行优先与现有轨迹进行数据关联,然后再把剩下的没有这些“属性”的候选目标和未被关联的轨迹经过IOU进行关联;就是说把好的先挑出来基于某种属性先匹配好,剩下那些的就用iou来做)

只有当轨道与检测相关联时, 我们才会更新它们的外观表示形式。从关联的检测中保存 reid 功能来达到更新。最后根据剩余的检测结果初始化新的轨道。

六、算法流程

整个算法流程:

初始化原始数据

开始遍历所有视频的所有帧,使用R-FCN网络从每帧中得到预测估计的score maps Z;

#开始收集候选项

将一帧当中检测到的所有目标Dk赋值给Cdet(表示从检测得到的候选项),此时轨迹中还没有信息,所以Ctrk(Ctrk表示从轨迹中得到的候选项)为空。

遍历现有的轨迹,使用卡尔曼滤波预测下帧轨迹的新位置X*,然后将Ctrk与X*联合起来赋值给新的Ctrk。(对该帧所有轨迹进行操作;其中生成的Z在公式一用到,用于生成分类概率

#选择候选项

联合跟踪和检测两者中的候选项(更新过的Ctrk和Cdet)得到C,利用公式3的统一分数函数公式计算得出S。再把S分数值结合阈值、候选项C,采用非极大抑制得到更新过的C、S。

#利用行人重识别样本得到外观特征,根据神经网络学习到的特征,能够分辨出一帧中两个目标的相似性。

#分层数据关联

将对应的轨迹和Cdet(使用特征信息Ftrk和Fdet  :上一步得到)关联起来。再将剩余的轨道和候选项基于IOU关联起来。(“使用外观表示和空间信息来分层地关联”)

更新Ftrk。

#创建新的轨道

使用剩下的候选项抽取特征得到Fremain,然后基于T和Cremain并集更新得到T;Ftrk和Fremain并集更新得到Ftrk。

 

循环此过程。。。

七、总结:

本文提出了一个充分利用深度神经网络的在线多人跟踪框架。我们通过从检测和轨道的输出中选择候选项来解决不可靠的检测问题。候选选择的评分函数是由一个有效的 r-fcns 制定的, 它共享对整个图像的计算。 此外, 我们还通过引入数据关联的 reid 特征, 提高了处理类别内遮挡的识别能力。通过数据驱动方法训练的 reid 功能比传统手工制作的功能高出很大的优势。所提出的跟踪器可在 mot16 基准上实现实时和最先进的性能。

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值