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. 怎么处理系统蓝屏后提示代码0x000000d1的错误?

    电脑开机有时会出现蓝屏,导致蓝屏的原因有很多,每种错误都有不同的代码.下面就来和大家分享一下电脑开机蓝屏出现0x000000d1错误代码是什么原因?我们又该怎么去解决这个问题. 电脑开机蓝屏出现0x0 ...

  2. selenium:能够模拟人类打开浏览器的爬虫利器

    介绍 selenium相当于是一个机器人,可以模拟人类登陆浏览器的行为,比如点击.填充数据.删除cookie等等.Chromedriver是一个驱动Chrome的程序,使用它才可以驱动浏览器,其实Ch ...

  3. Host服务

    这也是看网上的例子自己跟着配置做的一个小demo,这里记录一下. 一.创建一个空的控制台应用程序 二.安装所需dll 1.Quartz  Install-Package Quartz -Version ...

  4. 转PostgreSQL 用游标优化的一个例子

    一位PG社区的朋友提到的一个应用场景,目前遇到性能问题. 数据结构大概是这样的,包含一个主键,一个数组,一个时间,其他字段. 请求分析: 有检索需求,比较频繁.查找数组中包含某些元素的记录,并按时间排 ...

  5. BZOJ1601 [Usaco2008 Oct]灌水[最小生成树]

    显然分析可知这个图最后连起来是一个森林,每棵树有一个根再算一个代价.那么这些跟需要连向某一点一个建立水库的代价,且根可以有多个但不能没有,则考虑用超级源点0向所有点连虚边,Prim跑MST即可保证有至 ...

  6. 一步一步带你安装史上最难安装的 vim 插件

    YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考: https://github ...

  7. jquery实现在光标位置(input、textarea)插入内容的方法

    通过扫码枪扫码.按钮点击事件在光标处插入文本,这是前台js常用的功能.但是在input输入框和textarea文本框定位光标,插入数据是有点不同的 首先最简单的,适用于input输入框的方法 HTML ...

  8. vue项目,百度地图api高亮选取区域,高亮某个地区,行政区域等

    效果如下: var blist = [] ,maxZoom: });// 创建地图实例 var point = new window.BMap.Point(89.48,31.57); map.cent ...

  9. 创建基本的webpack4.x项目

    1.步骤 1)运行npm init -y 快速初始化项目 2)在项目根目录创建src源代码目录和dist产品目录,目录结构 webpack4.x-base |dist |src |index.html ...

  10. 1、Socket通信

    [TCP] 服务器端:无目标插座升级为有目标插座后,就可以通过有目标的插座收发数据 客户端: 实战:此案例有利于理解Socket的工作流程. 缺点:服务器只能接收1个客户端的连接,因为只写了一个Acc ...