论文阅读——FoveaBox: Beyond Anchor-based Object Detector

概述

这是一篇ArXiv 2019的文章,作者提出了一种新的anchor-free的目标检测框架FoveaBox,直接学习目标存在的可能性(预测类别敏感的语义map)和bbox的坐标(为可能存在目标的每个位置生成无类别的bbox)。该算法的单模型(基于ResNeXt-101-FPN )在COCO数据集上的AP达到42.1%。代码尚未开源。

介绍

anchor弊端:额外的超参数设计很复杂;设计的anchor泛化能力差;密集的anchor采样使得正负样本严重失衡。

受人眼的启发,视觉区域(目标)的中心有着最高的视觉灵敏度。FoveaBox联合预测对象的中心区域可能存在的位置以及每个有效位置的边界框。

FoveaBox

FoveaBox的框架:

FoveaBox包括一个backbone和两个子网。第一个子网对主干网的输出执行每个像素的分类,第二个子网预测相应位置的bbox。

FPN的使用:

每层金字塔用于检测不同大小的目标,论文中作者设计的金字塔{Pl},其中l=3,4,5,6,7,Pl的分辨率是输入的1/2^l。金字塔所有层的通道数都是256。

每层特征金字塔的box的有效尺度范围:

S0取16,η取2.

Object Fovea

从gt box到特征金字塔Pl的映射:

正样本区域(fovea):

正样本区域相比于原始区域有一定程度的缩小。σ1是收缩因子(文中取0.3)。同样使用上面的公式,因子记为σ2(文中取0.4),产生负样本区域。训练时类别损失采用focal loss。

Box Prediction

位置回归则是学习一个变换:

其中z=sqrt(Sl)是归一化因子,将输出空间投影到以1为中心的空间,使学习过程更稳定。函数首先将feature map的坐标(x,y)映射到输入图像,然后计算归一化的偏移,最后正则化到log空间。回归损失采用Smooth L1损失。

优化

4GPUs,SGD,8 imgs/minibatch

训练细节:270k次迭代(180k前:lr=0.005,180k-240k:lr=0.0005,240k后:lr=5e-5)

使用权值衰减(0.0001),momentum(0.9)

ignore区域的location不参与类别训练,但参与回归训练(标注为对应的位置目标)。

推理

置信度阈值:0.05,NMS阈值:0.5,没有使用bbox voting、Soft-NMS、测试阶段图像扩增等策略。

RetinaNet与FoveaBox检测对比:

FoveaBox检测结果:

SOTA对比:

与FSAF的对比:

总的来说,这是一篇利用语义分割的思想来做目标检测的文章,通过定义fovea区域(也就是正样本区域)来限制类别学习和预测的大致范围,所以没有出现类似于FCOS算法中远离目标中心的位置会产生大量低置信度bbox的情况。

论文阅读 | FoveaBox: Beyond Anchor-based Object Detector的更多相关文章

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

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

  2. 论文阅读之 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 ...

  3. SSD: Single Shot MultiBox Detector论文阅读摘要

    论文链接: https://arxiv.org/pdf/1512.02325.pdf 代码下载: https://github.com/weiliu89/caffe/tree/ssd Abstract ...

  4. [论文理解] FoveaBox: Beyond Anchor-based Object Detector

    FoveaBox: Beyond Anchor-based Object Detector Intro 本文是一篇one-stage anchor free的目标检测文章,大体检测思路为,网络分两路, ...

  5. 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline

    论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline  如上图所示,本文旨在解决一个问题:给定一张图像, ...

  6. YOLO: You Only Look Once论文阅读摘要

    论文链接: https://arxiv.org/pdf/1506.02640.pdf 代码下载: https://github.com/gliese581gg/YOLO_tensorflow Abst ...

  7. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

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

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

  9. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

随机推荐

  1. char a[] = "hello world1"和char *p = "hello world2";的区别(转)

    转自:jianchi88 http://blog.csdn.net/jianchi88/article/details/6876405 #include<stdio.h> int main ...

  2. static 和final

    1.static       static关键字可以用来修饰类的变量,方法和内部类.static是静态的意思,也是全局的意思,它定义的东西属于全局,与类相关,不与具体实例相关.就是说它调用的时候,只是 ...

  3. Ubuntu下安装配置java及环境变量

    这里的办法不是在线安装,因为需要更新源(你懂的,费时费事~),so这里介绍在Ubuntu上手动下载安装配置Java环境变量 *系统:Ubuntu 16.4 1.下载jdk,直接用系统的Firefox浏 ...

  4. Altera SOPC FrameBuffer系统设计教程

    Altera SOPC FrameBuffer系统设计教程 小梅哥编写,未经授权,严禁转载或用于任何商业用途 在嵌入式系统中,LCD屏作为最友好的人机交互方式,被大量的应用到了各个系统中.在基于ARM ...

  5. Mysql主主复制+keepalived

    1>环境 Master1 10.0.0.201 Master2 10.0.0.202 2>Master1操作授权 mysql>grant replication slave on * ...

  6. SharpMap开发教程——图层标注

    在GIS开发中,根据图层属性字段对要素进行标注(图层标注)是一项常规的.必备的功能.在基于SharpMap开发GIS应用时,也可以方便的实现该功能. 1.加载Shapefile图层数据 SharpMa ...

  7. [转载].NET开发常用的10条实用代码

    1.读取操作系统和CLR的版本 OperatingSystem os = System.Environment.OSVersion; Console.WriteLine(“Platform: {0}” ...

  8. Spring MVC 基本配制

    WEB.XML 文件中的配制: <?xml version="1.0" encoding="UTF-8"?> <web-app id=&quo ...

  9. CentOS7 关闭防火墙[转]

    CentOS6关闭防火墙使用以下命令, /临时关闭 service iptables stop //禁止开机启动 chkconfig iptables off CentOS7中若使用同样的命令会报错, ...

  10. C# 等待框

    今天发现dev控件自带了等待框,调用方便,而且不会阻塞主线程. 拉一个窗体,界面上放两个按钮,显示等待框,隐藏. <Window x:Class="WaitDialogTest.Mai ...