Feature Selective Anchor-Free Module for Single-Shot Object Detection

——FSAF,CVPR 2019

效果对比

摘要

本文提出feature selective anchor-free (FSAF) module,单阶段检测器的组成block,可以插入具有特征金字塔结构的单阶段检测器。解决了基于anchor的检测方法的两个主要问题:1、启发式的特征选择(依赖于人为指定),2、基于IOU的特征采样。FSAF模块进行在线特征选择,并且应用于多级anchor-free分支的训练,每一分支来源于特征金字塔的每一层,允许检测框在任意层上进行anchor-free的编码和解码。在训练过程中,动态地将每个物体标注分配至最合适的层,在前向时,FSAF可以通过并行或者联合输出预测与anchor-based分支一起完成检测,通过简单实现anchor-free分支和在线特征选择策略来实现。在COCO上的实验结果表明,FSAF模块相比anchor-based的对应模型表现更好,同时更快。当与anchor-based分支一起用时,FSAF在不同设置下大幅度提升了RetinaNet的性能,而基本没引入前向负担。(最优模型44.6% mAP)

介绍

基于anchor的方法anchor-box的尺寸比例依赖于手工方法,但是特征与实例之间的匹配关系却取决于实例的尺寸,这样会带来物体大小与特征层次不匹配的问题。待检测目标通常存在尺度差异性,使用anchor boxes将所有的目标离散化成不同尺寸、长宽比的有限个boxes,因此将小的anchor boxes对应到浅层特征,大的anchor对应到深层特征,ground truth boxes基于IoU匹配到不同的anchor boxes。但是这样做的缺陷在于可能gt匹配到的不是最接近的anchor boxes。

基于anchor的方法的特征选取

FSAF令每个物体自行选择最合适的特征层次,因此就不应该采用anchor-based的方式来限制特征选取,以anchor-free的方式对实例进行编码,以学习分类和回归的参数。FSAF模块嵌入anchoer-based的网络示意图如下:

FSAF嵌入anchor-based方法

anchor-free分支与anchor-based分支并行,且同样包含分类和回归子网,一个物体可以被分配到任一层特征的anchor-free分支,训练时,为每个目标动态选择最合适的特征层次,被选择的特征层次则学习检测对应的物体。FASF是back-bone无关的,能嵌入到任何一种包含特征金字塔的单阶段检测器中,同时带来较小的计算负担。

与ResNeXt-101 based RetinaNet相比,精度提高1.8%,延迟只增加6ms。最好的模型44.6mAP。

以往的多层特征检测的模型都采用了人为定义的anchor,如SSD,DSSD,FPN,RetinaNet,DeNet等。

anchor-free的方法有:Dense-Box(全卷积直接预测检测框);UnitBox(IoU loss)

An anchor-free region proposal network for faster r-cnn based text detection approaches

基于关键点的检测:CornerNet,CenterNet,Object as Points

Feature Selective Anchor-Free Module

FSAF模块

RetinaNet中FPN包含5层特征:P_3,P_4,P_5,P_6,P_7P_l的stride为2^l,即相对原图分辨率降低2^l,每层上都接一个分类和回归子网,均为全卷积网络,预测anchor-box的类别和4个类别无关的位置偏移。

在RetinaNet的顶部,FSAF模块在每个分支引入两个额外的卷积层,负责anchor-free分支的分类和回归。具体而言,K(类别)个3*3卷积+Sigmoid激活添加到分类分支,4个3*3卷积+ReLU添加到回归分支。由此,anchor free和anchor-based方法就能并行工作,同时共享特征。

Ground-truth and Loss

ground truth box b=[x,y,w,h](中心坐标加宽高),class k,这个物体将被分配至第l层特征P_l

predicted box b_p^l=[x_p^l,y_p^l,w_p^l,h_p^l],有b_p^l = b/2^l

定义:

effective box b_e^l=[x_e^l,y_e^l,w_e^l,h_e^l],缩放比例系数为\epsilon _e = 0.2

ignoring box b_i^l=[x_i^l,y_i^l,w_i^l,h_i^l],缩放比例系数为\epsilon_i = 0.5

分别作为predicted box的一部分,使得:

x_e^l=x_p^l,y_e^l=y_p^l,w_e^l=\epsilon_ew_p^l,h_e^l=\epsilon_eh_p^l

x_i^l=x_p^l,y_i^l=y_p^l,w_i^l=\epsilon_iw_p^l,h_i^l=\epsilon_ih_p^l

一个目标的标注产生如下图:

focal loss forclassification and IoU loss for box regression

Classification Output:

分类输出的标注是K个图,每个图对应一个类。每个物体以三种方式影响第k个ground-truth map:

1、effective box b_e^l表示是在某类标注图中显示为白框的正样本,表示实例的存在。

2、ignoring box b_i^l减去effective box b_e^lb_i^l- b_e^l)表示上图中灰色的区域,表示这部分区域的梯度不回传;

3、相邻标注图中的ignoring boxes(b_i^{l-1},b_i^{l+1})同样表示ignoring boxes,如果其存在的话。

如果两个目标的effective box在某一层特征图上重叠,则较小的目标具有较高的优先级。剩下的区域为负样本(黑色的,以0填充),表明没有物体。Focal loss用于分类网络,一张图片的总分类损失来源于anchor-free分支的所有非ignoring box,并由所有effective boxes中的像素个数进行正则化。

Box Regression Output:

回归输出的标注是4个偏移图(offset maps,与类别无关),物体仅仅影响偏移图中的effective box区域,对于effective box中的每个像素位置(i,j),将predicted box b_p^l表示为四维向量d_{i,j}^l=[d_{t_{i,j}}^l,d_{l_{i,j}}^l,d_{b_{i,j}}^l,d_{r_{i,j}}^l],其中,d_t^l,d_l^l,d_b^l,d_r^l表示当前像素位置与predicted box b_p^l的左、上、底、右边的距离。然后,将4个偏移图上的(i,j)位置处的4维向量设置为d_{i,j}^l/S,其中每个图对应于一个维度,S是归一化常数,设为4.0。IoU loss应用于回归分支,总的回归损失是所有effective box b_e^l的IoU loss的平均值。

在前向时,直接由分类和回归输出编码得到预测框,在每个像素位置(i,j),假设预测的偏移为

预测偏移

预测的距离为

预测距离

预测框的左上角和右下角为:

左上角
右下角

最后以2^l缩放预测框来得到原图上的检测框。可以通过分类输出图上的位置(i,j)处的最大分数和K维向量的对应类来确定框的置信度得分和类别。

Online Feature Selection:

anchor free分支允许使用任意层的特征P_l进行学习,FSAF根据目标的语义来选择最合适的特征P_l,而不仅仅是根据目标的尺寸(anchor-based)。

给定一个目标I,定义在某层特征图P_l上的分类损失和回归损失为L_{FL}^I(l),L_{IoU}^L(l),计算方法为:


损失的计算

N(b_e^l)表示effective boxb_e^l中的像素个数。FL(l,i,j),IoU(l,i,j)表示在特征图P_l上位置(i,j)处的focal loss和IoU loss。

在线特征选择如图:

在线特征选择

一个目标将经过所有层上的anchor free分支,计算每层上的分类损失和回归损失,并得到他们的和,然后,选择使得损失和最小的特征层作为特征选取层

根据每层分类回归损失和在线选择特征

训练中,对于一个batch,将更新其相应分配的目标的的特征,因此所选特征目前是建模实例的最佳特征,它的损失形成了特征空间的下界,训练过程中,将不断降低这个下界。

在infer时,我们不需要选择特征,因为最合适的特征金字塔层级将自然地输出高置信度分数。

为了验证这个在线特征选择的重要性,同样构建一个启发式的选择方式(FPN,仅仅根据尺度来选择),一个目标I被分配的层级为:

特征层级选取

l_0是w×h = 224^2的目标应该映射到的特征层级。

此处,l_0=5,表示ResNet使用第五组卷积特征进行分类。

Joint Inference and Training

将FSAF嵌入到RetinaNet,能与anchor based的分支并行,保持anchor based分支的参数不变(训练和前向都不变)

Inference:

FSAF仅仅增加了几个卷积层,前向依然很简单。对于anchor free分支,在对置信度得分(confidence score)进行阈值处理(阈值0.05)后,只解码每个金字塔特征层级中最多1k个得分位置的边框预测。来自所有层级的这些较好的预测与来自anchor based的分支的边框预测合并,随后是具有阈值0.5的非极大值抑制,从而产生最终检测。

Initialization:

ResNet在ImageNet 1k上预训练,遵循RetinaNet对其进行初始化,对于FSAF的几个卷积,以高斯分布进行权重初始化(方差0.01),偏移为-1og((1-\pi )/\pi )\pi = 0.01表明在训练的初始阶段,每个位置产生objectness score在0.01周围。回归分支的权重初始化为方差为0.01的高斯分布,偏移为0.1,保证网络初始训练阶段稳定,损失不会太大。

Optimization:

网络的整体损失为anchor free损失和anchor based损失,令L^{ab}表示RetinaNet的anchor based的总损失,L_{cls}^{af},L_{reg}^{af}分别为anchor free分支的总分类和总回归损失,网络的总损失为:\lambda  = 0.5

网络总损失

网络训练细节:

stochastic gradientdescent (SGD) on 8 GPUs with 2 images per GPU.

 如非说明,all models are trained for 90k iterationswith an initial learning rate of 0.01, which is divided by 10 at 60k and again at 80k iterations. 

Horizontal image flipping is the only applied data augmentation unless otherwise specified. 

Weight decay is 0.0001 and momentum is 0.9.

Experiments

为了验证anchor free 分支的作用,消融实验如下:

ResNet-50 on COCO minival
对比实验

AB:Anchor-based branches. R: ResNet. X: ResNeXt.

可视化:

结果对比
Visualization of online feature selection from anchor-free branches

数字表示选取的特征层级。

与其他方法对比:

与其他方法对比
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335