【目标跟踪】Real-Time MDNet

发在ECCV2018上的一片文章,链接:Real-Time MDNet

与前作MDNet来自同一个实验室,主要工作是改进MDNet,作者说速度可以提高25倍(FPS~40)。


Motivation

  1. MDNet太慢了,FPS~1, 作者想加速它

  2. 作者认为前作在instance-level 的分类能力还是不够,想造一个分辨能力更强的模型。
    这里我想解释一下什么是instance-level的分类能力,这篇文章的前身MDNet是受了R-CNN的启发,做了一个带有很强detection气息的跟踪网络。但是detection和tracking任务有一个重要的区别在于,detection是定义在category-level的,也就是说网络只要知道检测出的东西属于哪一类,而tracking是定义在instance-level的,在第一帧gt框什么就得跟什么,比如一段视频里有好几个人,只需要跟踪特定的一个人,那么网络得学会区分目标实例和其他的人。这种场景在跟踪里跟常见,但是detection是不用处理这个问题的。


Contribution

针对上面两个问题,作者提出了两个主要的contibution:

  1. 受Mask R-CNN的启发,提出了一种 Improved RoIAlign

  2. 对损失函数进行了改进,加入了一个 instance embedding loss

下面我们分别看看文章中是怎么做的:


Improved RoIAlign

Improved RoIAlign又分成三个小部分:

  • 原始的RoIAlign
  • adaptive RoIAlign
  • dense feature map

我依次的讲讲这三块的作用:

- RoIAlign

如果把MDNet比作tracking版的R-CNN,那么RT-MDNet就可以近似的认为是tracking版的Mask R-CNN。
原始的MDNet像R-CNN一样,是先产生proposal,然后用proposal在原图上扣图提特征,这就会像R-CNN一样在提特征时产生很多冗余的部分,很自然的,可以像Faster那样,先提原图的特征,然后在feature map上去找RoI,这样可以大大加快速度。但是普通的RoI Pooling会在两次量化的过程中积累很多误差,这些误差再积累到tracking的时序上,最后很可能会让模型漂掉。所以自然的又想到了用RoI Pooling的改进版,RoIAlign。

- adaptive RoIAlign

这个部分讲的有点抽象。主要的意思是在说,当RoIAlign中的采样点间隔太大,会损失掉feature map上一些有用的信息。比如过,一个feature map grid上是 5×5 5 × 5 的点 ,但是RoIAlign在每个grid上只采 2×2 2 × 2 共4个点,这必然会导致feature map上的信息被丢失。所以作者根据feature map grid的size自适应的调整网格里sample points的数量,来减少信息的损失。

比如, 7×7 7 × 7 的feature map downsample到 3×3 3 × 3 ,7/3=2.33,在每个 2.33×2.33 2.33 × 2.33 的grid上采 2×2 2 × 2 共4个点;当feature map变成了 14×14 14 × 14 , 同样downsample 到 3×3 3 × 3 ,14/3=4.66, 那么相应的在每个 4.66×4.66 4.66 × 4.66 的grid上采 4×4 4 × 4 共16个点,会比仍采4个点损失的有用信息的概率更小。

- dense feature map

【目标跟踪】Real-Time MDNet_第1张图片
如上图,作者删掉了conv2后的max pooling,在conv3用空洞卷积增大feature map上每个点的感受野,同时由于downsample的倍数降低了一半,feature map的表达能力更好。

作者说这些对于RoIAlign的改动虽然微小,但是显著的提高了跟踪的性能,这个我是信的,因为相比互相独立的检测样本,跟踪是一个在时序上有密切关联的任务,很小的误差积累可能会影响到最后的结果。


Instance Embedding Loss

【目标跟踪】Real-Time MDNet_第2张图片
第二个contribution就有点诡异了。作者的出发点是说,想训练一个模型,不仅能让前背景分类,也能拉开不同实例在特征上的距离,这个我觉得ok。但是具体的操作过程是,作者在尝试拉开不同视频中目标间的距离,对这个操作我就一脸懵逼了……第一,instance-level应该是区别同一段视频中目标与背景中类似物体,但是作者操作是拉开不同视频中目标的特征距离。 第二, 前面几层conv我认为主要的任务就是提取一个general object的信息,但是这么去强行拉开不同目标的特征,怎么说……感觉有点不妥,又要general又要specific?

说归说,还是看看作者的具体操作,主要是以下两个公式
这里写图片描述

这里写图片描述
看起来很唬人对不对,其实f就是一个 2×D 2 × D 的矩阵,D表示multi-domain的分支,也就是目标的数量,2表示二分类,分为前景或背景的概率。
下面一个式子就是softmax,意思就是说对于 2×D 2 × D 的预测分数,我每个branch对应的分类目标分数 f+j f + j 应该要在行和列上都显著大于其他值。嗯……


Experiments

OTB100:
【目标跟踪】Real-Time MDNet_第3张图片
这个结果有几个槽点:

  1. 在MDNet原文里,他的success 分数是0.678, 然后这篇文章给的是0.652,然后这两篇文章出自同一个实验室。嗯……到底是谁在说谎?
  2. 加了improved RoIAlign的MDNet主要的motivation是加速不假,但是为什么会掉点,想不通。
  3. 可以看到RT-MDNet在阈值大于0.8时点明显下滑了,作者给出的原因是“基于CNN的跟踪器的固有缺点以及我们的RoIAlign在高精度区域的目标定位的局限性” 。CNN的固有缺点,还有RoIAlign局限性的具体原因,如果能讲的更本质可能会更好。我在做基于detection的tracking方法的时候也遇到了这样的问题,也有一些思考,希望感兴趣的可以和我交流~

两个ablation study
【目标跟踪】Real-Time MDNet_第4张图片

【目标跟踪】Real-Time MDNet_第5张图片
确实两个contribution都涨点了,我很想在Table. 3中看到它给Our-IEL的结果,可惜没有。

你可能感兴趣的:(【目标跟踪】Real-Time MDNet)