1/3
2/3
3/3
[Note3] Anchor Free的目标跟踪
NTRのSAO年
2020年03月06日 19:00
收录于文集
共62篇

跟踪任务可以看成是分类任务与状态估计任务的结合。分类任务的目的是精确定位目标的位置,而状态估计获得目标的姿态(即bbox)。SiamFC++一文将当前的跟踪器按照不同状态估计的方法分为三类:

  1. 以DCF和SiamFC为主的跟踪器,构建多尺度金字塔,将搜索区域缩放到多个比例,选择最高得分对应的尺度,这种方式是最不精确的同时先验的固定长宽比不适合现实任务;

  2. 以ATOM为主的跟踪器,借鉴IOUNet,通过IOU的梯度迭代来细化box,提升精度的同时带来了较多的超参数以及时间上的消耗;

  3. 以SiamRPN为主的追踪器,通过RPN预设anchor来回归框,这类方法虽然很高效,但是anchor的设定不但会引入模糊的相似性得分,而且anchor的设置需要有大量的数据分布先验信息,与通用跟踪的目的不符合。

本文主要记录用Anchor Free的思想来解决上述目标跟踪状态估计中存在的问题。

1. SiamFC++

论文 https://arxiv.org/abs/1911.06188      源码 https://github.com/MegviiDetection/video_analyst

针对siam网络分析了之前的工作不合理的地方,提出了4条guidelines:

G1:decomposition of classification and state estimation:跟踪任务可以分解为分类与状态估计。分类影响鲁棒性,状态估计影响精确性。多尺度金字塔的方式忽略了状态估计所以精确性很低;

G2:non-ambiguous Scoring:分类得分应该直接表示为目标在视野中存在的置信度分数,而不是像预定义的anchor那样匹配anchor和目标,这样容易产False positive;

G3:prior knowledge-free:跟踪器不应该依赖过多的先验知识(如尺度/长宽比)。现有的方法普遍存在对数据分布先验知识的依赖,阻碍了其泛化能力;

G4:estimation quality assessment:不能直接使用分类置信度来评价状态估计,需要使用独立于分类的质量评估方式。(如RPN系列直接就是选择分类置信度最高的位置进行边框预测,而ATOM,DIMP则另外加入了IOU信息来指导边框调整)

作者依据这4条guidelines设计了SiamFC++,将目标检测中的Anchor Free的FCOS应用到siamese框架中,整体结构如下:

SiamFC++整体框架

可以看到整体结构就是一个标准的Siamese结构,分类和回归分支采取了类似FCOS的设计,其与Anchor Based的区别如下:

  • Anchor Based算法将输入图像上的位置作为锚框的中心点,并且对这些锚框进行回归。

  • FCOS直接对feature map中每个位置对应原图的GT边框都进行回归,换句话说FCOS直接把每个位置都作为训练样本。

  • 在训练过程中,Anchor Based算法对样本的标记方法是,如果anchor对应的边框与GT的IOU大于一定阈值,就设为正样本。

  • 在FCOS中,如果feature map上的点在原图上的位置落入任何GT中,就认为它是一个正样本(跟踪中只有一个GT)。

继续回到图2,上半部绿色分支表示分类分支,在经过cross-correlation后得到分类的feature map Ψ_cls,其中若点(x, y)在原图中的映射(⌊s/2⌋+xs, ⌊s/2⌋+ys)落在GT的边框中,则该点是正样本(s为stride,实验中设为8)。而回归分支Ψ_reg则计算每个正样本映射(⌊s/2⌋+xs, ⌊s/2⌋+ys)距离GT四条边的距离。

正样本点映射到原图后距离GT边框的距离l, r, t, b

其中(x0, y0), (x1, y1)对应GT的左上角和右下角。

Anchor机制在一个位置输出多个Anchor和分类得分,导致Anchor与物体的模糊匹配;而本文采取的逐像素预测方式,最终特征图上的每个像素仅进行一次预测。因此,每个分类得分都直接表明目标位于相应像素的子窗口的置信度,不会产生歧义(G2)。同时因为没有预定义的anchor,因此也没有关于目标数据分布(例如尺度/长宽比)的先验知识(G3)。

研究表明分类置信度与定位精度并没有特别好的相关性,因此直接使用分类得分来选择最终预测框,可能会导致定位精度降低(G4)。因此作者提出了Prior Spatial Score(PSS)作为质量评估分支。认为对象中心的像素点具有高评分,远离中心点像素的评分会降低,做了一个像素的级的加权。

这里使用FCOS中描述center-ness的图来直观说明其作用:

除了PSS,作者也考虑IOU同样可以work

train阶段,损失函数设置为:

分类采用BCE loss,回归采用IOU loss,回归和质量评估仅在正样本处计算loss

inference阶段,按照图2的描述,把绿色部分的分类响应图和红色部分的质量评估图相乘,用这种加权后的响应图去选择回归框位置。

实验

首先设计消融实验从SiamFC逐渐进化到SiamFC++。

分别采取增加训练数据集,增加头部结构,更换backbone,增加回归分支,采用质量回归分支的操作。

然后在多个数据集上进行对比


2. SiamCAR

论文  https://arxiv.org/abs/1911.07241v2

这篇文章出发点同样是SiamRPN的anchor机制对数据先验(anchor数量,尺寸,长宽比)敏感,同时需要调整大量超参数而设计了anchor free的方法。大体方案跟SiamFC++有些撞车。

SiamCAR整体框架

SiamFC++是在SiamFC上引入回归分支以及逐像素点的预测方式,而本文更像是在SiamRPN++的基础上替换了RPN,不过最终都是采用了类似FCOS的anchor free设计。所以这里只是简单记录一些差异。

  1. 与SiamRPN++一样采用了多个stage的特征利用Depth-wise Cross Correlation获得响应图,不同的是SiamRPN++是对分类和回归分别做相关,对分类和预测的响应图加权相加;本文是分类和回归共用一个相关,并且首先对相关图concatenate,通过1*1卷积进行降维/融合,再分别做分类和回归预测;

  2. 整体的跟踪过程和SiamFC++类似,都是输出了分类响应图,质量评估(center ness)响应图以及边框l, t, r, b。

SiamCAR跟踪流程

跟踪过程中加入了几个trick。一是加入尺度变化惩罚以及余弦窗来优化得分响应图,这个借鉴了SiamRPN;二是因为是以像素预测的方式确定位置,在实际跟踪中若仅使用这个位置的边框会导致跟踪框抖动,所以作者选取了中心位置周围的n个点中得分最高的k个结果做加权得到最终结果。

实验部分图太小就不放上来了,不过截取SiamFC++和SiamCAR同样在GOT-10K和LASOT上的结果对比。但二者选用backbone不同,代码实现细节也有许多差异,也不能简单对比。


3. SATIN

论文 https://arxiv.org/abs/1904.10128

这篇文章将keypoint的思想结合到跟踪的孪生网络中。

在本文中,作者研究视觉跟踪的三个主要方面的影响:

  • the backbone network:分类检测任务的backbone不适合直接用于跟踪,因为高层特征分辨率低对定位精度有影响,浅层特征语义判别性弱;

  • the attentional mechanism:卷积层的中间关系没有被利用,可以用attention机制强化;

  • the detection component:RPN的anchor需要很多额外超参数及数据先验。

针对上面的问题提出Siamese Attentional Keypoint Network(SATIN),主要贡献有:

  1. 设计了一个Siamese lightweight hourglass network;

  2. 提出一个新的 novel cross-attentional module;

  3. A keypoints detection approach,通过预测目标左上角、中心、右下角坐标获得目标的box信息。

整体框架如下:

SATIN整体框架

结合图1和图2不难发现整体框架就是将cornernet,centernet和attention机制结合到孪生网络中。backbone部分是两个lightweight hourglass network。

为了轻量级,将卷积换成depthwise卷积,同时用stride=2的卷积替换pooling。

attention部分包括spatial attention和channel attention:

Spatial attention将第一个hourglass 输出的特征在通道维度做max pool和average pool,concatenate经过一个single-layer perceptron(SLP);Channel attention将第二个hourglass输出的特征在空间维度做max pool和average pool,分别经过multi-layer perceptron(MLP)然后相加;最后将Spatial attention和Channel attention作为权重得到attention-refined feature map。

Keypoint detection部分参照cornernet和centernet分别对角点和中心点进行预测。虽然作者说中心点预测采用的是Siamese的方法,不过在打标签的时候还是按照Keypoint 思想的高斯标签去设置的,并不是像Siamese中简单的设置0和1。

实验

实验主要是在OTB2013, OTB2015, VOT2016, VOT2017上进行测试,不过结果并不是特别惊艳

OTB2013

OTB2015

VOT2016

VOT2017

VOT2017


总结

在siamese目标跟踪中,anchor机制使得跟踪器过多依赖先验知识(如尺度/长宽比)以及引入大量超参数进行调整。本文介绍的三种方式分别将anchor free的FCOS以及keypoint的检测思想加入目标跟踪。这些想法其实很简单,但难在怎么把这个故事讲好以及把实验做的漂亮。这一点SiamFC++无疑是做的最好的。另外SiamFC++提出的设计跟踪器的四条guidelines也是非常有指导意义的。