ATOM: Accurate Tracking by Overlap Maximization

https://blog.csdn.net/sinat_27318881/article/details/84668861
https://zhuanlan.zhihu.com/p/79355209
https://blog.csdn.net/hey_youngman/article/details/90638808

结合IoUNet和深度回归网络,前者用于精细定位和尺度估计,后者用于粗略定位提供候选框。
整个网络包含两个模块:(1)离线学习的目标估计模块;(2)在线学习的分类模块。

  1. 主要贡献

1、将目标跟踪分为目标分类和目标评价两个网络部分,前者分类用于粗定位,后者用于精细定位,即两阶段跟踪;
2、目标估计网络使用了ECCV18的IoUNet结构,基于大数据集离线训练,训练时最大化与groundtruth的IoU;
3、目标分类网络使用了深度回归网络结构,由2层卷积层构成,在线训练,根据输出的map选择候选框交给目标估计网络,并且提出了新的快速在线训练方法;
4、性能超过了DaSiamRPN,GPU下达到30fps。

  1. 方法动机

首先说为什么跟踪要把分类和估计分开,因为分类主要用来判断某个位置目标是否存在,而对目标的状态并不敏感,目标状态在跟踪中简化为2D位置和目标框的长宽,这个是目标评价做的事,所以将跟踪框架分成两个任务模块有助于提高整体的性能。
基于CF的跟踪器可以说是一个不错的分类器,它会输出一个响应图,根据最大响应判断目标最可能存在的位置,但是这种方法不能完全估计目标的状态,比如尺度,所以尺度估计一般会使用额外的分类器进行估计。而目标的精确估计需要大量的先验信息,因为如形变这类目标变化是难以单靠跟踪图像的信息进行估计的。所以作者认为SiameseRPN的成功主要依赖于大量的离线训练,但是Siamese方法大部分受限于分类的性能,因为这类方法没有在线训练的过程,而CF方法是有的,所以没有在线训练导致它不能很好的应对跟踪中的干扰,或者说相似的目标,模型更新也只能部分解决这个问题。所以作者提出了一个在线训练的分类器和一个离线训练的评价网络,联合起来解决目标跟踪问题,其实和检测很像了,就是一个两阶段的跟踪框架。

  1. 方法

3.1 Target Estimation

1、reference branch通过resnet-18作为backbone提取特征,然后对目标区域进行PrPool (iou-net里的),最后通过全连接层编码成两个modulation vector。这里只需要进行一次,也就是初始化的时候需要,后面推断的时候就只需要用到保存下来的modulation vector了。
2、test brach也是先用resnet-18对当前帧提取特征,而后对bounding box进行PrPool得到固定尺寸的特征图。这里的bounding box是classifier那边得来的一个大概的框,后面讲那个部分的时候会讲是怎么生成的。
3、使用reference branch生成的两个vector分别对两个特征图进行channel-wise multiplication,也就相当于channel维度上的attention。
4、通过几个全连接层得到预测的iou。
5、对iou求bounding box的梯度,经过几次迭代,调整bounding box最大化iou,得到精细的预测框。

3.2 Target Classification

前面讲的模块的作用是输入一个粗糙的bounding box,通过iou分支优化,得到精细的预测框。但是这个粗糙的bounding box怎么来的呢,也就是文章的另一个主要部分,目标分类(粗定位)。
这里的classifier是一个两层的全卷积网络,通过这个分类头,输出一个置信度图,即可确定目标的大致位置。这里的classifier是在线训练的,也就是在做tracking的时候才临时训练的。为什么不离线训练好一个分类头,在tracking的时候直接用呢?
原因很简单,因为tracking是一个target-specific的任务而不是class-specific的任务,他没有预定义的类别,而只有实体的概念,跟踪的类别是可以任意的。就算你使用了大量的类别来离线训练这个头部,也是不可用的,因为图像中可能包含多个有语义信息的实体,这样的分类器是没有办法区分开这些实体的。所以我们需要使用在线训练的方法,在tracking的时候来临时训练一个分类头部,用于输出目标物体的响应。
由于需要在线训练,也就意味着模型需要快速的训练收敛。
快速收敛:高斯牛顿法、共轭梯度下降法CG

3.3 Online Tracking Approach

1、对于第一帧,模板分支产生调制向量,快速训练classifier。
2、对于当前帧,提取特征,经过classifier确定位置,再结合前一帧的bounding box形状,生成当前帧的初始bounding box。
3、将bounding box传入iou predictor产生预测的iou。
4、通过最大化iou,来优化bounding box,经过几次迭代产生当前帧的预测框。
5、预测下一帧,至步骤2
需要说明的是,步骤2中,作者发现根据位置信息,结合随机的形状生成的多个初始化bounding box能够更好的避免局部最优。这样,也就是通过优化多个bbox,并取出iou最高的三个bbox,取平均得到最后的预测。

posted @ 2020-12-26 23:20  keep&learning  阅读(168)  评论(0编辑  收藏  举报