Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译

文章目录

  • Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译
    • 一、Abstract
    • 二、Introduction
    • 三、Feature Selective Anchor-Free Module
      • 3.1 Network Architecture
      • 3.2 Ground-truth and Loss
        • 3.2.1 Classification Output
        • 3.2.2 Box Regression Output
      • 3.3 Online Feature Selection
    • 3.4 Joint Inference and Training
      • 3.4.1 Inference
      • 3.4.2 Initialization
    • 四、Experiments
    • 五、个人总结

论文下载地址:点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前2020ECCV持续更新中,欢迎下载…

一、Abstract

作者针对single-shot目标检测器提出了一个简单有效的FSAF模块,可插入带FPN的single-shot检测器中。FSAF模块解决了基于anchor的检测的两个限制:1) 启发式引导的特征选择; 2) 基于重叠的anchor采样。FSAF模块想要将在线特征选择应用于多层的anchor-free分支的训练。具体地说也就是在特征金字塔的每一层上添加anchor-feree分支,允许在任意层上以anchor-free的方式去进行框的编码解码。在训练过程中,作者动态地将每个实例分配到最合适的特征层级。在推理时,FSAF模块可以通过并行输出预测与基于anchor的分支联合工作。

二、Introduction

目标检测的一个挑战是目标的尺度变化,通常为实现尺度不变性会构建一个特征金字塔或多层特征塔,多尺度的特征图会同时产生预测。此外,anchors还可进一步解决尺度变化问题。anchors用于将所有可能的实例框的连续空间离散为预定义位置、尺度和长宽比的有限数量框。实例框与anchor的匹配是基于IoU进行的,在特征金字塔中,大anchor通常是与高层特征图相关联,小anchor与底层特征图相关联。这是因为上层特征图会有更多语义信息,适合检测大目标,而下层特征图会有更多细粒度细节,适合检测小目标。结合anchor的特征金字塔设计在目标检测中取得了良好的效果。

       但是这种设计会有两个局限性: 1) 启发式引导的特征选择; 2) 基于重叠的anchor采样。在训练时每个实例总是根据IoU大小来与anchor进行匹配。anchor通过定义好的规则(如框的大小)与特定层级的特征图相关联。因此为每个实例选择特征级别是基于特定启发式的,如上图所示,一个大小为5050像素的car和另一个大小为6060像素的car实例可以被分配到两个不同的特征层级,而另一个4040大小的car可能被分配到与5050大小的car相同的特征层级。也就是anchor的匹配机制本质上是启发式的,这就导致了训练时每个实例所选择的特征层级可能并不是最佳的。因此作者提出了一种简单有效的FSAF模块来解决这两个限制。其动机是让每个实例能够自由地选择最佳的特征层级来优化网络,因此不应该使用anchor来约束特征选择,作者以anchor-free的方式对实例进行编码以学习分类和回归的参数。大体如下图,每层特征金字塔都有一个anchor-free分支,独立于基于anchor的分支,并且与基于anchor的分支类似,它由一个分类子网和一个回归子网组成,一个实例可以被分配给anchor-free分支的任意层级。

       在训练过程中是根据实例的内容去动态地为每个实例选择最合适的实例框大小和特征级别。然后在所选特征层级上学习检测所分配的实例。在推理时,FSAF模块可以独立运行,也可与基于anchor的分支联合运行。FSAF模块不依赖于backbone,可应用于带特征金字塔结构的single-shot检测器。此外,anchor-free分支的实例化和在线特征选择可以是多种多样的。在这项工作中,作者使FSAF模块的实现简单且计算代价可忽略不计,可大幅度提升加入的骨干网的检测效果。它预测了K个目标类在每个空间位置的概率。

三、Feature Selective Anchor-Free Module

3.1 Network Architecture

下图是加了FSAF模块后的retinanet,作者在retinanet每层特征图的头部引入两个额外的卷积层,这两个卷积层分别负责anchor-free分支的分类和回归预测。也就是在分类子网的特征图上加一个K个滤波器的3×3卷积层,后接sigmoid函数,与基于anchor的分类分支并行,在回归子网的特征图上类似地加上带有四个滤波器的3×3卷积层,接ReLU函数,预测以anchor-free方式编码的框的偏移量。这样anchor-free分支与基于anchor的分支以多任务的方式共同工作,共享每个金字塔层级的特征。

3.2 Ground-truth and Loss

给定一个目标实例,类标签k和边框坐标b=[x,y,w,h]已知,实例可能会被分配给任一特征层级Pl,b在Pl上的映射框记作bplb^l_pbpl​=[xplx^l_pxpl​,yply^l_pypl​,wplw^l_pwpl​.hplh^l_phpl​],bplb^l_pbpl​=b/2l,以及有效框belb^l_ebel​和忽略框bilb^l_ibil​。

3.2.1 Classification Output

分类输出的GT是K个映射,每个映射对应一个类。实例以三种方式影响第k个GT。首先有效框belb^l_ebel​区域是’car’类的图中显示的白色正区域,表示该实例的存在。忽略框排除掉有效框区域的灰色部分,表示这块区域的梯度不参与反向传播,相邻特征图的忽略框区域也要被忽略,如果两个实例的有效框在某一层级重叠,较小的实例应当有更高的优先级。GT的其余区域是由0填充的负(黑色)区域,表示没有目标存在。对一幅图像来说,anchor-free分支的分类损失总和是所有非忽略区域的focal loss的总和,并用所有有效框区域内的像素点总数做归一化。

3.2.2 Box Regression Output

回归分支输出的GT是4个与类无关的偏移图。实例只影响偏移映射上的ble区域。对ble区域中的每一个像素位(i, j),作者将映射框bplb^l_pbpl​表示为一个4维向量di,jld^l_{i,j}di,jl​,表示该点位置到边界框四条边的距离,并且四维向量还会以一个归一化常数S来相除,S=4.0。有效框之外的灰色区域会被忽略,anchor-free分支总的回归loss是所有有效区域的IOU loss的平均值。

3.3 Online Feature Selection

anchor-free分支的设计允许我们使用任意金字塔层级的特征来学习每个实例,为找到最佳特征层级,FSAF模块会根据实例的内容去选择最佳Pl,而不是像基于anchor的方法那样根据实例框的大小来选择。对实例I计算在Pl上的分类损失和回归损失如下所示,其中N(belb^l_ebel​)是belb^l_ebel​区域内的像素个数。

       下图展示了在线特征选择过程。首先将实例I传递至特征金字塔各层级,然后根据上两式来计算实例I的Focal loss和GIOU loss的和,最后选择损失总和最小的最佳金字塔级Pl*来学习该实例:

       对于一个训练批次,特征会针对其分配的相应实例来进行更新,这样做是作者直觉上认为这样选择的特征是当前最适用于对当前实例建模的。它的损失在特征空间中形成一个下界,通过训练来进一步降低这个下界。在推理时,我们不需要去选择特征,因为最合适的特征金字塔层级会自然地输出较高的置信度分数。

       为验证在线特征选择的重要性,作者在消融实验中与一种启发式特征选择做了比较。启发式特征选择完全依赖于框的大小,根据下式将一个实例I分配到特征金字塔的Pl’级:

       这里224是规范的ImageNet预训练大小,l0是宽高为224的实例应该映射到的目标层级,选l0=5因为ResNet使用第五个卷积组的输出的特征图来做最终的分类。

3.4 Joint Inference and Training

当插入到RetinaNet中时,FSAF模块会与基于anchor的分支一起工作,如图4。基于anchor的分支在训练和推理中所有超参都不变。

3.4.1 Inference

FSAF模块只是在全卷积的RetinaNet中添加了几个卷积层,所以推理仍然和通过网络传递一幅图像一样简单。对于anchor-free分支,设置置信度分数阈值为0.05,对每个金字塔层级中最多top-1k个得分位置的预测进行解码。这些来自所有层级的预测会与来自基于anchor的分支的预测框合并,然后进阈值为0.5的NMS,得到最终检测结果。

3.4.2 Initialization

backbone网络在ImageNet1k上进行预训练,对FSAF的卷积层,作者以偏置bias=-log((1-π)/π)和高斯权重σ=0.01初始化分类层,其中π指定在训练刚开始时每个像素位输出的目标得分在π附近。并以偏置b=0.1和σ=0.01初始化回归层。初始化有助于在早期迭代中稳定网络的学习,避免较大的损失。

四、Experiments



五、个人总结

这篇文章主要是在Retinanet的基础上在分类和回归子网上各添加了一条anchor-free分支,由于基于anchor的检测器的anchor的匹配机制本质上是启发式的,一般是根据框的大小来分配特征层级,这会导致训练时每个实例所选择的特征层级可能并不是最佳的,为解决这个问题,作者提出了一种Online Feature Selection,根据每个实例在各特征层级的分类和回归损失和来决定其在哪个特征层级做检测。最后anchor-free分支和anchor-based分支的检测结果会进行结合,在ResNeXt-101上ap能达到44.6。其实这篇与标签分配的联系好像也没那么大,主要还是各实例在特征层级的自动分配的方法,还是可以学习一下。

Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR相关推荐

  1. Single shot object detection SSD using MobileNet and OpenCV

    微信公众号:小白图像与视觉 关于技术.关注yysilence00.有问题或建议,请公众号留言. 主题:Single shot object detection SSD using MobileNet ...

  2. Single Shot Multibox Detection (SSD)实战(下)

    Single Shot Multibox Detection (SSD)实战(下) Training 将逐步解释如何训练SSD模型进行目标检测. 2.1. Data Reading and Initi ...

  3. Single Shot Multibox Detection (SSD)实战(上)

    Single Shot Multibox Detection (SSD)实战(上) 介绍了边界框.锚框.多尺度对象检测和数据集.现在,我们将利用这些背景知识构建一个目标检测模型:单次多盒检测(SSD) ...

  4. Feature Pyramid Networks for Object Detection论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  5. Feature Pyramid Networks for Object Detection论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  6. Feature Pyramid Networks for Object Detection 论文笔记

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Jesse_Mx/article/details/54588085 论文地址:Feature Pyra ...

  7. 【论文阅读】A2S-Det: Efficiency Anchor Matching in Aerial Image Oriented Object Detection

    A 2 S-Det:航空图像定向目标检测中的高效锚点匹配 论文地址:https://www.mdpi.com/2072-4292/13/1/73/htm 二次阅读笔记也可以看看,下面这篇博客翻译会更准 ...

  8. 《Enhanced Deep Residual Networks for Single Image Super-Resolution》论文阅读之EDSR

    导读 韩国首尔大学的研究团队提出用于图像超分辨率任务的新方法,分别是增强深度超分辨率网络 EDSR 和一种新的多尺度深度超分辨率 MDSR,在减小模型大小的同时实现了比当前其他方法更好的性能,分别赢得 ...

  9. SSD: Single Shot MultiBox Detector 论文翻译

    SSD:单镜头多盒检测器 目录 SSD:单镜头多盒检测器 摘要 一.介绍 二.单触发探测器(SSD) 2.1模型 2.2培训 三.实验结果 3.1 PASCAL VOC2007 3.2 模型分析 3. ...

最新文章

  1. 不使用第三个变量,实现交换两个变量的值
  2. 如何合理的学习Netty?(学习目录)
  3. Nacos(十一)之NacosSync 介绍
  4. python表白代码-520使用Python实现quot;我爱你”表白
  5. Winsw将jar包部署为windows服务
  6. 一个简单的用于预测的BP神经网络模型
  7. 在线API 工具之SosoApi
  8. 两个实用型教学网站:菜鸟教程与W3School,估计是国内做得做好的了
  9. (附源码)ssm小米购物网站 毕业设计 261624
  10. Python:50行代码实现下载小说,图片章节可自动识别转文字保存...
  11. 炼数成金--支持向量机 笔记
  12. Linux I/O重定向 dup dup2 系统调用
  13. 自定义动画渲染器 Interceptor
  14. SAP HANA Temporal Table (历史表)
  15. 联想ThinkBook 16+ 2023款 评测
  16. 设备模型一(基本概念)
  17. 全新仿DS网首页模板个人自动发卡,自动发货安装教程及其源码下载
  18. ZZULIoj-1088: 手机短号 (多实例)
  19. 【MySQL】练习二 关系数据库
  20. mysql cascade 查询_Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)

热门文章

  1. win10系统停止更新服务器,Win10系统关闭自动更新功能的三种最佳方法
  2. Go语言类库-reflect(反射)
  3. 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(约瑟夫环问题)
  4. ping www.baidu.com时出现正在ping www.a.shifen.com
  5. uniapp 自定义showToast样式
  6. 不要说珍重,不要说再见,就这样,默默地离开。在炎炎的夏季,也正是因为有了思念,才有了久别重逢的欢畅
  7. Windows 环境搭建 git 服务
  8. CSS3 仿古墓丽影9菜单界面
  9. Java小技巧输出26个英文字母,不用一个一个手打
  10. [奥塔在线]IIS Express如何开启HTPPS访问