FoveaBox: Beyond Anchor-based Object Detector

Intro

本文是一篇one-stage anchor free的目标检测文章,大体检测思路为,网络分两路,一路预测k个channel的map,每个channel代表一个类别的概率,即输出为w×h×k,另一路预测位置,输出即为w×h×4。想法其实很容易想到,但是本文之所以work我认为很重要的一个trick是gt label的分配,positive area和negative area,回归是预测log偏移,。

我本来看了abstract之后以为是预测whk的label map,然后根据这个map上某个类别的分布去确定框,然后利用这里的信息去修正框的位置。然后看了图发现是两路预测,我直观感觉他可以合并成一路,其中cls map作为中间层输出,或者是回归支路利用上cls map的信息。

Method

Backbone是FPN,FPN的每层后面接一个subnet,subnet分为两路分别去预测cls map和回归位置。

如图所示就是大体结构:

这就是本文的想法,那么有了这个想法,下一个问题就是怎么训练,哪些位置我要分配为参与训练的样本,如何分配?

作者的想法就是,首先gt在特征图上映射了一个区域,这个区域向内缩放得到一个小box认为是正样本,对应一个类别,这个区域向外放大得到一个大box,大box和小box之内认为是困难样本不参与训练,大box之外认为就是负样本,所以正样本的数量往往是比较小的,可能就那么几个点被分为正样本,取决于缩放的系数。

公式为:

l是fpn的层index。公式3就是将gt映射到对应fpn层的feature map,然后求出映射后的box的中心c,公式4就是进行缩放和扩增的操作,以确定正负样本。

上面分类说完了,然后就是回归,

回归转换为根据feature map上一点对应层和对应的xy方向index映射到原图上,与gt做差之后变换,网络学习到的是一种变换。由公式5可见x、y其实是在特征图上的位置,然后除以尺度z取log使网路更容易学习到目标。

网络学习到的就是t。

加0.5可以防止出现log0.

思考

  1. FoveaBox是两路预测的,如我上面说的,能否一路完成,假设我们先训练cls map,那么当cls map确定了,其实理论上可以帮助loc框定位的学习的。所以思考是否可以将cls map和feature同时作为loc层的输入,两个信息结合来帮助回归框的学习。
  2. 关于标签的分配作者是采用了一个系数进行缩放和放大划分,能否使用正态分布对label进行分配,靠近中间概率接近1,靠近旁边概率减小,一定阈值以外认为是负样本。
  3. 可否换一种回归方式,比如年龄识别中用的coarse-to-fine的stage-wise-regression方式来回归框,比如一个框的坐标值121 可以由三个不同粒度的值相加得到,121 = 100 + 20 + 1。

[论文理解] FoveaBox: Beyond Anchor-based Object Detector的更多相关文章

  1. [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...

  2. [论文理解]Focal Loss for Dense Object Detection(Retina Net)

    Focal Loss for Dense Object Detection Intro 这又是一篇与何凯明大神有关的作品,文章主要解决了one-stage网络识别率普遍低于two-stage网络的问题 ...

  3. 论文阅读 | FoveaBox: Beyond Anchor-based Object Detector

    论文阅读——FoveaBox: Beyond Anchor-based Object Detector 概述 这是一篇ArXiv 2019的文章,作者提出了一种新的anchor-free的目标检测框架 ...

  4. 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection

    论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...

  5. 新文预览 | IoU-aware Single-stage Object Detector for Accurate Localization

    论文基于RetinaNet提出了IoU-aware sinage-stage目标检测算法,该算法在regression branch接入IoU predictor head并通过加权分类置信度和IoU ...

  6. [论文理解] CornerNet: Detecting Objects as Paired Keypoints

    [论文理解] CornerNet: Detecting Objects as Paired Keypoints 简介 首先这是一篇anchor free的文章,看了之后觉得方法挺好的,预测左上角和右下 ...

  7. 论文阅读之 DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation

    DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation Xia ...

  8. 论文笔记之:Natural Language Object Retrieval

    论文笔记之:Natural Language Object Retrieval 2017-07-10  16:50:43   本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...

  9. [论文理解]关于ResNet的进一步理解

    [论文理解]关于ResNet的理解 这两天回忆起resnet,感觉残差结构还是不怎么理解(可能当时理解了,时间长了忘了吧),重新梳理一下两点,关于resnet结构的思考. 要解决什么问题 论文的一大贡 ...

随机推荐

  1. 当在terminal中输入一行命令的时候,查找的顺序如何看

    大多数时候,尤其是安装了anaconda的时候,我们常常会知道,实际上因为conda的环境变量写到了该用户下的.bashrc下面,所以在terminial敲如python的时候,会显示conda的py ...

  2. python之字典一

    字典的定义: 前面我们说过列表,它适合于将值组织到一个结构中并且通过编号对其进行引用.字典则是通过名字来引用值的数据结构,并且把这种数据结构称为映射,字典中的值没有特殊的顺序,都存储在一个特定的键(k ...

  3. 110G离线维基百科数据免费拿

    110G离线维基百科数据免费拿.. 资料获取方式,关注公总号RaoRao1994,查看往期精彩-所有文章,即可获取资源下载链接 更多资源获取,请关注公总号RaoRao1994

  4. pycharm的快捷键以及快捷意义

    ctrl+a 全选 ctrl+c 复制(默认复制整行) ctrl+v 粘贴 ctrl+x 剪切(默认复制整行) ctrl+f 搜索 ctrl+z 撤销 ctrl+shift+z 反撤销 ctrl+d ...

  5. linux命令详解——crontab

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  6. apache启动错误 AH00072: make_sock: could not bind to address [::]:443 windows系统端口/进程查看

    1. netstat -ano|findstr " 2. tasklist|findstr "

  7. VM12及CentOS-6.10的安装

    VM12的安装破解步骤 1:打开VMware 12安装界面后,点击[下一步]2:勾选[我接受许可协议中的条款]安装VMware Workstation 12 ,然后点击[下一步]3:修改默认安装路径, ...

  8. 第十五届四川省省赛 SCU - 4439 Vertex Cover

    给你一个一般图 保证每条边的一端下标不大于30 问最小覆盖集的大小为多少 爆搜:枚举前30个点是否在覆盖集内 剪枝1:如果不在的话 那么他所连的下标大于30的点都必须选 剪纸2:最优解剪枝 #incl ...

  9. 安装theano遇到的问题

    嗯,听说keras虽然说有TensorFlow有backend就够了,在TensorFlow和theano之间来回切换还是会有用的,然后又补安装了theano 之前解了权限了,所以不需要sudo 直接 ...

  10. 异步IO框架:asyncio 中篇

    上一节我们首先介绍了,如何创建一个协程对象.主要有两种方法 通过async关键字, 通过@asyncio.coroutine 装饰函数. 然后有了协程对象,就需要一个事件循环容器来运行我们的协程.其主 ...