论文阅读 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points
相关链接
论文地址:https://arxiv.org/abs/1901.08043
论文代码:https://github.com/xingyizhou/ExtremeNet
概述
ExtremeNet是今年(2019)1月23号挂在arxiv上的目标检测论文,是至今为止检测效果最好的单阶段目标检测算法。思想借鉴CornerNet,使用标准的关键点估计网络检测目标关键点进而构造目标的预测框。ExtremeNet预测四个extreme point(顶、左、底、右)以及目标的中心点,如果这五个点满足几何对齐关系,就将其组合成一个目标框。ExtremeNet在COCO test-dev上的AP达到43.2%。此外,根据extreme point还可以得到更加精细的八边形分割估计结果,在COCO Mask上的AP达到34.6%。
ExtremeNet介绍
ExtremeNet是一个自底向上的目标检测框架,检测目标的四个极值点(顶端、左端、底端、右端),使用state-of-the-art的关键点估计框架产生每个类别的五个Heatmaps(四个极值点和一个中心点)。使用纯几何方法组合同一目标的极值点:四个极值点的几何中心与预测的中心点heatmap匹配且高于阈值(暴力枚举,时间复杂度O(n^4),不过n一般非常小)。
图2 展示了算法的大致流程。首先产生四个预测极值点的heatmap(图2顶部)和一个预测中心点的heatmap(图2左下),提取极值点heatmap的峰值(图2中左),暴力枚举所有组合,计算几何中心(图2中右),如果几何中心与中心heatmap高度匹配,则接受该组合,否则拒绝(图2右下)。
该算法与CornerNet的区别在于关键点定义和组合。(1)CornerNet采用左上和右下角点,角点往往不在目标上,没有较强的外观特征;而ExtremeNet采用极值点,极值点在目标上,容易区分且具有一致的局部外观特征。(2)CornerNet点对组合是根据embedding vector的距离,而ExtremeNet则是根据几何中心点。ExtremeNet完全基于外观,没有任何的隐特征学习。
网络结构
网络结构如下图所示:
ExtremeNet使用Hourglass网络作为backbone,产生4个C通道、大小为H*W的heatmaps,一个C通道、大小为H*W的heatmap,以及4个2通道、大小为H*W的偏移map。Heatmaps通过加权逐像素逻辑回归进行训练,其中权重用于减少在ground-truth位置附近的假阳性惩罚(详见CornerNet)。四个极值点的估计使用了CornerNet的结构和损失函数,不过没有使用embedding部分。
focal loss的变体来处理heatmap损失:
其中,pcij是类别c在位置(i, j)的score,ycij是非标准化高斯增强的ground-truth,N是图像中目标数,α和β是超参数(实验中α设为2,β 设为4)。
Offsets则是位置偏移。下采样的使用使得输出尺寸小于原始图像尺寸,假设下采样因子为n,则图像中(x, y)映射到Heatmaps的([x/n], [y/n])。取整计算会导致精度丢失,使用offsets来更准确地进行Heatmaps到输入图像的映射。
训练过程中使用smooth L1损失,即:
训练设置、损失函数以及offset预测与CornerNet相同。
Center grouping算法如下:
ExtractPeak就是给定一个heatmap,检测其中所有的峰值来提取相应的关键点。峰值就是3*3窗口中的局部最大值。预设阈值进行筛选。暴力枚举所有组合,计算几何中心,如果其在中心点的heatmap上有高响应则接受结果,得分为五个heatmap的平均值。阈值设置τp=0.1,τc=0.1。
Center grouping算法可能会出现这样的情况:处理三个共线且尺度相同的目标时,是产生三个正确的小框还是一个错误的大框呢?这种假阳性的检测结果称为“ghost box”。文中使用一种soft NMS来抑制ghost box:如果某个边框中包含的所有框的分数之和超过其本身得分的3倍,则将其得分除以2。
此外,极值点并非总是唯一的,比如一个汽车的极值点可能是水平或竖直的线段,文中极值点的响应是对边缘多个点的弱响应而不是一个点的强响应。这有可能产生几个问题:弱响应可能会被忽略;目标如果发生轻微旋转即便检测到关键点,得分也有很大差异。作者采用边缘聚集的方法来解决:对于每个极值点(局部最大值点),分别沿水平和垂直两个方向进行聚集,也就是在每个方向上找极值点最近的左右两个局部最小值,在区间内做加权和作为极值点的得分。公式如下所示:
其中,m为极值点位置,i0、i1分别为距离m最近的两个局部最小值。
如下图所示,使用边缘聚集策略后,边缘中心的像素点的置信度明显提升:
实例分割
文中提出了一个简单的八边形逼近目标的方法(基于四个极值点形成的矩形边界框):将一个极值点左右各延长1/8形成线段,如果遇到矩形框的角时则截断。将这四个线段的端点连接起来,形成八边形。
实验
在COCO数据集上进行实验,如果一条边与坐标轴平行或者夹角小于3度,就将其中心作为极值点。从头训练太耗时,使用了CornerNet的预训练模型进行finetune。
细节:最多只取ExtractPeak 中top40的点进行枚举;测试阶段使用flip argumentation策略;对增强的检测结果使用soft NMS。检测速度3.1fps。
在COCO数据集上的检测结果:
由上表可见,ExtremeNet多尺度模型的效果达到目前单阶段算法的最佳AP(43.2%),比CornerNet提升1.1%;而单尺度模型的AP比CornerNet低了0.4%,在中、小目标的检测上AP都高于CornerNet,而大目标检测略差,可能原因是中心点的response map不够准确造成的。
在实例分割方面,ExtremeNet与DeepExtremeCut结合,在COCO val2017上达到34.6%的AP,而当前最先进的Mask RCNN的AP为34.0%(基于ResNet-50+FPN)、37.5%(基于ResNeXt-101+FPN)。在实例分割方面也与最先进的方法相当。
论文阅读 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points的更多相关文章
- 论文阅读笔记五十六:(ExtremeNet)Bottom-up Object Detection by Grouping Extreme and Center Points(CVPR2019)
论文原址:https://arxiv.org/abs/1901.08043 github: https://github.com/xingyizhou/ExtremeNet 摘要 本文利用一个关键点检 ...
- 论文阅读 | FoveaBox: Beyond Anchor-based Object Detector
论文阅读——FoveaBox: Beyond Anchor-based Object Detector 概述 这是一篇ArXiv 2019的文章,作者提出了一种新的anchor-free的目标检测框架 ...
- 论文阅读: End-to-end Learning of Action Detection from Frame Glimpses in Videos
End-to-End Learning of Action Detection from Frame Glimpses in Videos CVPR 2016 Motivation: 本 ...
- 论文阅读 | Polygon-RNN:Annotating Object Instances with a Polygon-RNN
论文地址:https://arxiv.org/abs/1704.05548 项目地址:http://www.cs.toronto.edu/polyrnn 概述 Polygon-RNN是一篇收录于CVP ...
- [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)
原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...
- object detection 总结
1.基础 自己对于YOLOV1,2,3都比较熟悉. RCNN也比较熟悉.这个是自己目前掌握的基础2.第一步 看一下2019年的井喷的anchor free的网络3.第二步 看一下以往,引用多的网路4. ...
- 目标检测 | RetinaNet:Focal Loss for Dense Object Detection
论文分析了one-stage网络训练存在的类别不平衡问题,提出能根据loss大小自动调节权重的focal loss,使得模型的训练更专注于困难样本.同时,基于FPN设计了RetinaNet,在精度和速 ...
- 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection
论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...
- 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline
论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline 如上图所示,本文旨在解决一个问题:给定一张图像, ...
随机推荐
- 常用工具类——DatetimeUtil
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- javascript和jquery比较
<h1>我的第一段 JavaScript</h1> <p>请输入数字.如果输入值不是数字,浏览器会弹出提示框.</p> <input id=&qu ...
- springMVC框架集成tiles模板
将tiles模板集成到springMVC框架下,大概流程如下: 1.在配置文件中加入tiles支持 我的servlet配置文件名为spring-mvc.xml.具体配置如下: <?xml ver ...
- [GO]百度贴吧的爬虫
package main import ( "fmt" "strconv" "net/http" "os" " ...
- mybatis 插入实体与数据库中的字段不一致的解决方案
1.建立一个实体类 public class Student { private Integer id; private String name; private Double salary; pub ...
- js教程系列32 :javascript-DOM节点操作
1 DOM节点操作 1.1 创建节点 createElement() var createDiv = document.createElement("div"); 1.2 插入子节 ...
- Android studio Maven仓库使用
原文:How to distribute your own Android library through jCenter and Maven Central from Android Studio ...
- Selenium2+python自动化之数据驱动(ddt)
环境准备 1.安装ddt模块,打开cmd输入pip install ddt在线安装 数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt ...
- NIOS II 软件程序固化的相关知识
片上RAM和ROM的SOPC系统1.生成hex文件2.将hex文件添加到quartus工程中(添加qip文件)3.对工程进行全编译4.下载sof就可以看到程序运行5.将sof转换为jic文件,烧写到E ...
- Solr: a custom Search RequestHandler
As you know, I've been playing with Solr lately, trying to see how feasible it would be to customize ...