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

时间:2019

会议:cvpr

作者:Chenchen Zhu; Yihui He ;Marios Savvides Carnegie;

机构: 美国卡耐基梅隆大学(Carnegie Mellon University);

Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记_第1张图片
image.png

Abstract

作者建立了一个模型组件,该组件是一个可以自动选择不同层次特征的组件,属于anchor-free,简称FSAF。它可以集成到SSD上。这个模型主要处理了两个基于anchor模型的限制:(1)启发式特征层次的选择(2)基于重叠的anchor抽样。模型组件加在特征金字塔的每一个分支,组件作为一个检测的分支。anchor-free分支在训练的时候是动态的将从特征金字塔选择最适合的特征传入到组件中相应的层去。测试的时候就和anchor分支并行的处理得到最后最好的结果。最后在coco数据集上的结果是44.6%。

1.Introduction

目标检测是计算机视觉任务中最基本的任务之一,该任务的成功可以对其他的任务有很大的帮助。目标检测中一个很大的问题就是目标的大小不同。为了能够达到能够检测不同大小的性能,最新的检测器都是使用了特征金字塔等。在金字塔之上基于anchor的模型根本上是用有限的anchor来离散化了一张图,并使用IOU来确定最好的anchor。作者文中提到一般来说大的anchor boxes是对应上层特征图(upper feature maps),小的anchor对应着底层的特征图。我认为大体上是这样的,但是有一个论文注意到这个问题,并且解决或者说是缓解了这个问题,思路是:特定大小的anchor是可能涉及到多个层次的特征的,并借此建立一个大的金子塔。参考:M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network。下图就是论文提到的基于anchor的分支。

Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记_第2张图片
image.png

由于传统的集成anchor的特征金字塔会遇到两个问题:(1)特征层的选择的启发性 (2) anchor的缺点:根本上是离散化,实际还需要回归,如若不然就很难得到质量高的结果。所以根据这个出发点,作者建立了一个模型(FSAF)来处理这个问题。(1)选择最好的特征层来进行检测(2)使用anchor-free来取消了anchor的限制。这个组件分布在特征金字塔的每一层后面,独立于anchor的分支。在其后也加有分类和回归的组件。训练时,根据语义信息将特征分配到相应的层。这时候FSAF就会学习如何检测。模型中的backbone、anchor-free分支,特征选择都可以更换。作者为了能够减少计算的代价简单的实现了这个模型以此方便和其他的模型作比较。anchor free的实现个人觉得有点类似与yolov1.

在实验上,backbone使用retinanet,提高了1.8%,但是速度上增加了6ms,这个效果上还是非常可观的。最后的精确度是44.6%。

Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记_第3张图片
image.png

2.Related Work

。。。

3.Feature Selective Anchor-Free Module In

这里介绍了作者是如何建立的anchor-free分支,将从以下四部分组成:

(1)如何建立anchor-free分支。

(2)怎样产生对anchor-free分支的监督信息。

(3)怎样动态的对每个图片实例选择特征的层次。

(4)怎样将anchor和anchor-free的两个分支结合起来。

3.1 Network Architecture

Backbone和特征金字塔结合在一起组成模型前一部分。特征金字塔的第三层到第七层作为检测目标的特征向后传播。图为了简单只是简单画了三层。在每一层都跟了两个小的子模型,子模型是简单full卷积网络,分别做box回归和分类。分类预测每个anchor的每个类别分数。回归预测box的偏移。

在模型的特征金字塔处,每一层加了模型FSAF,FSAF引入了两个传统的卷积层。如下图。这两层网络负责预测分类和回归。具体的是,分类每一层是一个33K的卷积网络并在其后接sigmoid函数。每个地方预测类别的分数。相对应的box回归是334的卷积层并在其后接relu函数,每一个位置预测一个box的偏移量。这一点类似于yolov1。

Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记_第4张图片
image.png

3.2 Ground-truth and Loss

Backbone和特 征金字塔结合在一起组成模型前一部分。特征金字塔的第三层到第七层作为检测目标需要的特征向后传播。图为了简单只是简单画了三层。在每一层都跟了两个小的子模型,子模型是简单full卷积网络,分别做box回归和分类。分类预测每个anchor的每个类别分数。回归预测box。作者在ground-truth box的基础上设置了两个部分,靠近中心的部分叫做effective box,其余的是ignoring box。按照作者的意思,effective box里面的点才是用来预测box有效部分。剩下的不是用来预测的区域,这一部分的梯度不是用来预测的。并且ignore box的相邻特征层也是ignore box。分类用的是focal loss。box回归用的是IOUloss,回归预测的作者还凭经验的除以了一个常量值s,设置为4。

3.3 Online Feature Selection The

这一部分算作这篇论文的一个核心,就是特征层的选择,特征层的选择用的是anchor-free分支。作者的主要思想是,之前的特征层的选择是随机启发性的, 这里特征选择是根据损失函数来选择。具体来讲,训练阶段每个特征层都会向后传播,但是具体是哪一层对该特征能够更好的检测出结果就根据loss来选择,loss选用的将分类和回归的loss加起来。如下,第一个分类的损失函数,第二个是IOUloss,也就是回归损失。这一点无疑是很新颖的,而且这一点的改进也很细微,之前还没有涉及到。

Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记_第5张图片
image.png

3.4 Joint Inference and Training*

将两部分结合起来:将anchor和anchor free的两部分结合起来很简单,就是提取两部分得到的anchor最后通过nms(非极大抑制)来选取最后的结果。论文最后的实验也证实了有效性,作用主要是带box的分支有一部分比较难以检测出来的框,anchor free能更好检测出来。

你可能感兴趣的:(Feature Selective Anchor-Free Module for Single-Shot Object Detection 笔记)