论文阅读 | 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 如上图所示,本文旨在解决一个问题:给定一张图像, ...
随机推荐
- RAW编程接口
LWIP移植好之后,就要使用它提供的API接口来编写程序.
- CSS3 圆环状进度条
HTML: <div class="wrap"> <div class="progress-radial progress-25"> & ...
- 树状数组 - 2352 Stars
题目地址: http://poj.org/problem?id=2352 分析: - 题意分析: 有n个星星, 它的左下方(x和y不超过它)的星星的数目就是它的level, 分别计算level 为 ...
- SIGPIPE信号解析
当服务器close一个连接时,若client端接着发数据.根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经 ...
- UVa 10766 Organising the Organisation (生成树计数)
题意:给定一个公司的人数,然后还有一个boss,然后再给定一些人,他们不能成为直属上下级关系,问你有多少种安排方式(树). 析:就是一个生成树计数,由于有些人不能成为上下级关系,也就是说他们之间没有边 ...
- 读取txt文件,并用其他格式显示
这篇博客参照http://www.cnblogs.com/insus/archive/2013/08/08/3247078.html 题目是这样的: 一个txt文件,内容格式: 39.4% 2013- ...
- vCenter Server Heartbeat
1.简介 vCenter Server Heartbeat为VMware vCenter Server提供关键任务高可用性,保护虚拟基础架构免受硬件.网络.配置等的影响,基于Windows的服务,可为 ...
- 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句
建议104:用多态代替条件语句 假设要开发一个自动驾驶系统.在设计之初,此自动驾驶系统拥有一个驾驶系统命令的枚举类型: enum DriveCommand { Start, Stop } 当前该枚举存 ...
- UT源码 065
NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...
- Ubuntu下使用UFW,以及CentOS7的默认防火墙firewalld
UFW是一个简化版的iptables,基于iptables,配置比iptables简单 默认UFW是关闭状态,即Ubuntu默认打开所有端口,比较危险. 检测状态 ufw status 设置默认状态, ...