anchor选择:ATSS
文章来源:https://arxiv.org/pdf/1912.02424.pdf
本文做的三个工作:
1,证明anchor based和 anchor free的本质区别是如何定义正负训练样本
2,提出了ATSS模块用于自动选择正负训练样本
3,证明每点只需一个anchor即可
Essential Difference
以achor based的代表RetinaNet和anchor free的代表FCOS为例,去掉各自的一些tricks之后,二者的主要区别如下:
1, 回归对象不同。RetinaNet是对anchor回归,FCOS是对点回归
2,正负样本定义方式不同。RetinaNet将与ground truth box IOU大于阈值的定义为正样本。FCOS将包含在ground truth box 的点定义为正样本。
下图显示了二者如何定义正负样本。
实验证明二者表现差异来源于第二点。如果采用同一种正负样本划分方式,对anchor回归和对点回归准确率基本相等。
Adaptive Training Sample Selection
有了前述的结论后,重点自然是如何合适地划分正负样本了。本文提出的ATSS流程是:
1,同anchor based方法一样设定一系列anchor
2, 分别从L个特征图的anchor中找k个中心与ground truth box距离最近的anchor, 这
k
×
L
k\times L
k×L个anchor组成初始正样本集
3, 在初始正样本集中筛选出IOU大于阈值的anchor组成最终正样本集。阈值设为初始正样本集IOU的均值加上标准差,根据统计学,这能保证有一定比例的样本高于IOU。
算法如下
my opinion
这篇文章看看Essential Difference部分就好了,ATSS这部分存在诸多争议,比如有太多人工痕迹,参看这里
小样本
文章来源:https://arxiv.org/pdf/1908.01998.pdf
小样本检测的任务:给定几张新目标类别的图片,在测试集中找出所有与之对应的前景。
本文的贡献有二:
1,构造了一个小样本检测专属的数据集FSOD。 FSOD训练集含800个类别,每类包含的图片较少。测试集包含与训练集不同且差别很大的200个类别。
2,提出了Attention RPN和multi-relation模块(Attention+relation ,熟悉的排列组合模式(¬ω¬))
Dataset Construction
构造过程:
- 统一标签,比如在两个数据集中,分别有ice bear和polar bear,但这两个类别完全就是同一种类,因此在这里将类似的同语意标签进行合并。
- 移除面积小于图片尺寸0.05%的框。因为这些框的质量通常较差。
- 划分训练集测试集,并且保证不会出现标签泄露的情况。具体做法如下:首先选取MS COCO数据集中的标签作为训练标签,因为很多情况下需要预训练网络,而这些预训练网络往往是在MS COCO中训练的;之后选取与现有训练数据集差距最大的200个种类作为测试集;最后将剩下的所有种类加入到训练集中。
Problem Definition
给定一个目标图片(suppport image)
s
c
s_c
sc, 和一个测试图片(query image)
q
c
q_c
qc,任务是判断
q
c
q_c
qc中是否含有和
s
c
s_c
sc类别相同的目标,若有则标出它们的bounding box. 如何目标集(support set)包含
N
N
N类且每类对应
K
K
K张图片则称为N -way K-shot 问题。
Attention-Based Region Proposal Network
RPN就是Faster-RCNN用的那个。RPN 能够生成所有可能的前景区域。若有没有
s
c
s_c
sc引导,大量的前景区域送入后续的处理流程将极其低效。因此加入一个由
s
c
s_c
sc开头的支路指引RPN将注意力放在与
s
c
s_c
sc类别相同的前景区域,此之谓Attention RPN.做法如下
图中X为
s
c
s_c
sc的特征图,Y为
q
c
q_c
qc的特征图,维度是
H
×
W
×
C
H\times W\times C
H×W×C。将X全局平均池化成
1
×
1
×
C
1\times 1\times C
1×1×C的代表X的权重向量,与Y进行depthwise卷积,生成维度与Y一样的attention map。卷积公式如下
式中S=1.根据卷积的原理,与卷积核越相似的区域激活值越大。同理和X的越相似的区域attention map上的激活值越大,这就起到了引导注意力的作用。attention map后续再经过
3
×
3
3\times 3
3×3d的卷积处理,然后才进入下一阶段。
Multi-Relation Detector
这部分是个多Relation网络,负责对PRN生成的proposals重打分并分类。Relation网络本质上是全连接层,输入的视野决定了它能挖掘多大范围内的相互关系。
本文设计了三个并行的Relation网络,一起做决策。网络结构看图,很清晰:
Two-way Contrastive Training Strategy
构建一个三元组(
q
c
,
s
c
,
s
n
q_c,s_c,s_n
qc,sc,sn)作为训练用的输入,其中
n
≠
c
n\ne c
n=c,即2-way 1shot。这样能使训练时兼顾召回false negative和排除false positive。
my opinion
还行吧。算法是否work感觉主要取决于网络的泛化能力,否则很难判断
s
c
s_c
sc和
q
c
q_c
qc的相似性。所以前面提出的FCOS数据集更为重要。
改进FPN
文章来源:https://arxiv.org/pdf/1912.05384.pdf
Motivation
先复习一下FPN。经过backbone得到四个尺度不同的输出,先用1x1卷积减少通道数,再用3x3进一步提取信息,接着从高到低地将高层特征图加到相邻低层特征图。融合后分别对每层特征图作预测。
原来的FPN有三个缺陷:
- 不同尺度的语义差异。FPN将不同尺度的特征图生硬地融合,不太合适。
- 高层特征图的信息损失。FPN采用从上到下(top down)的方式将高层信息引入低层特征图,但高层特征图由于下采样仍然有信息损失。
- 启发式的ROI分配策略。FPN对每一个特征图的每个格子(grid)分配固定大小的anchor。这些anchor相互独立,不能充分利用所有特征图的信息。
Method
针对上述三个问题,本文提出了对应的解决方案。
Consistent Supervision
在进行融合之前,直接在每个特征图
{
M
2
,
M
3
,
M
4
,
M
5
}
\{M_2,M_3,M_4,M_5\}
{M2,M3,M4,M5}接head预测类别和回归,得到的损失和融合后的
{
P
2
,
P
3
,
P
4
,
P
5
}
\{P_2,P_3,P_4,P_5\}
{P2,P3,P4,P5}的损失加权平均后回传。所有特征图使用同一个head。这样能迫使
{
M
2
,
M
3
,
M
4
,
M
5
}
\{M_2,M_3,M_4,M_5\}
{M2,M3,M4,M5}学习相似的语义。预测时拿掉这一分支。
Residual Feature Augmentation
FPN的
{
M
2
,
M
3
,
M
4
}
\{M_2,M_3,M_4\}
{M2,M3,M4}都接收了上一层的信息,增强了语义,只有
M
5
M_5
M5是孤零零的。为了增强
M
5
M_5
M5的语义,利用前面的
C
5
C_5
C5(因为
C
5
C_5
C5通道数更多,语义更丰富)演化出的多尺度特征来作为
M
5
M_5
M5的残差分支。残差分支的具体做法如下:
- 对 C 5 C_5 C5用全局平均池化分别生成尺寸不同( ( α 1 S , α 2 S , ⋯ , α n S ) (\alpha_1 S,\alpha_2 S,\cdots,\alpha_n S) (α1S,α2S,⋯,αnS),S为 C 5 C_5 C5的面积, α i < 1 \alpha_i<1 αi<1)的n个特征图。
- 用1x1卷积将通道数减少为256
- 上采样恢复S的大小
- 一般来说这时候可以将n个特征图相加作为输出了,但考虑到混叠效应,还是用Adaptive spatial fusion处理,下面是ACF的步骤
- n个特征图concat作为ACF的输入,维度为 N C × h × w NC\times h \times w NC×h×w
- 分别经过1x1卷积, 3x3卷积,sigmoid处理得到 N × h × W N\times h\times W N×h×W的权重,乘以输入得到ACF维度为 N × C × h × w N\times C\times h\times w N×C×h×w的输出,记为 M 6 M_6 M6。
- M 6 M_6 M6与 M 5 M_5 M5 3x3卷积后的结果相加,生成 P 5 P_5 P5(这里应该会有一步操作使 M 6 M_6 M6维度变为 C × h × w C\times h\times w C×h×w,否则加不了)
Soft ROI Selection
以往分配ROI的做法是,高层特征图负责预测大目标,而低层特征图负责预测小目标。但存在一些模棱两可的情况,比如一个中等目标,让
P
2
P_2
P2预测可以,让
P
3
P_3
P3也行,但训练划分时只能其中一个是正样本,而另一个就是负样本。
本文提出的办法还是应用Residual Feature Augmentation模块。思想还是融合多尺度的信息。不赘述。
my opinion
还行吧。