论文链接:https://arxiv.org/abs/1904.08189

github:https://github.com/Duankaiwen/CenterNet

摘要

目标检测中,基于关键点的方法经常出现大量不正确的边界框,主要是由于缺乏对相关剪裁区域的额外监督造成的。本文提出一种有效的方法,以最小的资源探索剪裁区域的视觉模式。本文提出的CenterNet是一个单阶段的关键点检测模型。CenterNet通过检测每个目标物看作是一个三个关键点,而不是一对关键点,这样做同时提高了准确率及召回率。本文还设计了另外两个模型,cascade corner pooling及center pooling,容易获得从左上角及右下角的丰富信息,同时在中间区域获得更多的识别信息。

介绍

目标检测中需要大量的anchor,是为了满足与每个ground truth有足够高的IoU值。同时,anchor与ground truth是不匹配的,不利于边界框的分类任务。为了解决anchor的缺点,基于关键点的单阶段检测CornerNet被提出。通过检测一组关键点来检测目标,进而移除了anchor,但由于其缺乏对目标全局信息的参考,仍然具有局限性。同时,每个目标由一组关键点组成,算法对边界框比较敏感,同时,无法确定哪组关键点属于同一个目标物。因此,如下图,经常会产生一些不正确的边界框。其中大部分框可以通过一些像长宽比的信息将其过滤掉。

本文改进了CornerNet,增加了一个观察每个候选区域的视觉模式的功能,进而可以判断每个边界框的正确性。CenterNet通过增加一个关键点来探索proposal中间区域(近似几何中心)的信息,本文创新点在于,如果预测的边界框与ground truth有较高的IoU,则中心关键点预测出相同类别的概率要高,反之亦然。因此,在进行inference时,当通过一组关键点产生了一个边界框,我们继续观察是否具有同类别的一个关键点落入区域的中心,即使用三个点表示目标。

为了更好的检测中心的关键点即角点,提出了两个方法来丰富中心点及角点的信息。(1)center pooling:用于预测中心关键点的分支,有利于中心获得更多目标物的中心区域,进而更易感知proposal的中心区域。通过取中心位置横向与纵向响应值的和的最大值实现此方法。(2)cascade corner pooling:增加原始的corner pooling感知内部信息的功能。结合了feature map中目标物内部及边界方向的响应值和的最大值来预测角点。经试验证实,此方法在存在feature-level 噪声的情况下更加稳定,有助于准确率及召回率的提升。

本文方法

Object Detection as Keypoint Triplets:CenterNet整体结构如下图所示,用一组角点及中心点表示每个目标物,在CornerNet的基础上增加了一个用于预测center keypoint的heatmap,同时,预测cneter keypoint的偏移,然后基于CornerNet提出的方法选择前k个候选框。

为了剔除掉不正确的边界框,利用检测到的中心点的位置并对其按如下过程进行排序操作:(1)根据其分数选择前k个关键点。(2)根据对应的偏移量将center keypoint remap至输入图中。(3)为每一个边界框定义一个中心区域,并确保中心区域存在中心关键点,同时,保证该点的类别要与边界框的类别一致。如果中心区域检测到了中心关键点,则用左上角,右下角及中心点的分数的平均值更新边界框的分数,并保存该边界框。如果未检测到中心点,则移除该边界框。

中心区域的大小影响这边界框的检测结果。比如,小中心区域,对于小的边界框具有较低的召回率,而大区域相对于大的目标造成较低的精度。因此,本文提出了尺度敏感区域用于适应不同尺寸大小的目标物。其一般会生成相对小目标较大,相对大目标较小的中心区域,假设我们需要判断一个边界框I是否需要被保留,tlx,tly代表框左上角的点,brx,bry代表框右下角的点。定义一个中心区域j,定义左上角的点的坐标为(ctlx,ctly),右下角点(cbrx,cbry)。这些参数满足如下定义。

n为奇数代表中心区域j的大小。对于边界框小于150的设置n为3,大于150的设置n为5.如下所示。

角点及中心点信息的丰富:(1)center pooling:目标物的几何中心对传递可识别的视觉模式的贡献较少,比如(人的头部包含很强的视觉模式,但几何中心大部分在人躯体的中间)。未解决这个问题,提出了center pooling用于获得丰富的可识别视觉模式。下图a介绍了center pooling的操作,首先由backbone得到一个feature map,同时判断该feature map中是否存在一个中心点。需要找到该点水平方向及垂直方向上的最大值,并将其进行相加。center pooling更有利于中心关键点的检测。(2)cascade corner pooling:角点经常超出目标物的边界,缺少局部视觉外形特征。CornerNet使用corner pooling来解决这个问题。如下图b所示。Corner pooling主要是寻找边界上的最大值进而确定角点,但这样存在一个问题就是使角点对边界框很敏感。为了让角点能获得目标物的视觉模式,本文做了改进如下图c所示,首先,沿着边界寻找边界上的最大值,然后沿着最大值的位置向里看,找到内部的最大响应值,最后将两个最大值进行相加处理。这样,角点同时获得了目标物的边界信息及视觉信息。

center pooling及cascade corner pooling可以通过在不同方向上组合不同的corner pooling来实现。二者模型如下图所示。center pooling为了获得水平方向上的最大值,依次顺序连接left pooling 及right pooling。cascade corner pooling相比于CornerNet传统的corner pooling,在top pooling之前增加了一个left pooling。

Training 

输入图片尺寸为511x511,heatmap大小为128x128,训练损失如下,参数定义按照CornerNet中的。

实验

Reference

[1] S. Bell, C. Lawrence Zitnick, K. Bala, and R. Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2874–2883, 2016.

[2] N. Bodla, B. Singh, R. Chellappa, and L. S. Davis. Softnms–improving object detection with one line of code. In Proceedings of the IEEE international conference on computer vision, pages 5561–5569, 2017.

[3] Z. Cai, Q. Fan, R. S. Feris, and N. Vasconcelos. A unified multi-scale deep convolutional neural network for fast object detection. In European conference on computer vision, pages 354–370. Springer, 2016.

[4] Z. Cai and N. Vasconcelos. Cascade r-cnn: Delving into high quality object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 6154–6162, 2018

论文阅读笔记五十一:CenterNet: Keypoint Triplets for Object Detection(CVPR2019)的更多相关文章

  1. 论文阅读笔记五十七:FCOS: Fully Convolutional One-Stage Object Detection(CVPR2019)

    论文原址:https://arxiv.org/abs/1904.01355 github: tinyurl.com/FCOSv1 摘要 本文提出了一个基于全卷积的单阶段检测网络,类似于语义分割,针对每 ...

  2. 论文阅读笔记五十八:FoveaBox: Beyond Anchor-based Object Detector(CVPR2019)

    论文原址:https://arxiv.org/abs/1904.03797 摘要 FoveaBox属于anchor-free的目标检测网络,FoveaBox直接学习可能存在的图片种可能存在的目标,这期 ...

  3. 论文阅读笔记六十三:DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling(CVPR2017)

    论文原址:https://arxiv.org/abs/1703.10295 github:https://github.com/lachlants/denet 摘要 本文重新定义了目标检测,将其定义为 ...

  4. 论文阅读笔记五十二:CornerNet-Lite: Efficient Keypoint Based Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基 ...

  5. 论文阅读笔记五十六:(ExtremeNet)Bottom-up Object Detection by Grouping Extreme and Center Points(CVPR2019)

    论文原址:https://arxiv.org/abs/1901.08043 github: https://github.com/xingyizhou/ExtremeNet 摘要 本文利用一个关键点检 ...

  6. 论文阅读笔记五十五:DenseBox: Unifying Landmark Localization with End to End Object Detection(CVPR2015)

    论文原址:https://arxiv.org/abs/1509.04874 github:https://github.com/CaptainEven/DenseBox 摘要 本文先提出了一个问题:如 ...

  7. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)

    论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测 ...

  8. 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...

  9. 论文阅读笔记五十:CornerNet: Detecting Objects as Paired Keypoints(ECCV2018)

    论文原址:https://arxiv.org/pdf/1808.01244.pdf github:https://github.com/princeton-vl/CornerNet 摘要 本文提出了目 ...

随机推荐

  1. Go语言中Loop的注意点

    Go语言和其他语言不一样,它只有一种循环方式,就是for语句 可以参考如下公式: for initialisation; condition; post{ //Do Something } 执行顺序 ...

  2. django rest framework renderer

    渲染器 REST framework 包含许多内置的渲染器类,允许您使用各种 media type 返回响应.同时也支持自定义渲染器. 视图的渲染器集合始终被定义为类列表.当调用视图时,REST fr ...

  3. (十一)QPainter绘图, QPixmap,QImage,QPicture,QBitmap

    #include "widget.h" #include "ui_widget.h" #include <QPainter> #include &l ...

  4. bzoj1814 Ural 1519 Formula 1(插头DP)

    对插头DP的理解还不是很透彻. 先说一下肤浅的理解吧. 插头DP使用范围:指数级复杂度,且适用于解决网格图连通性问题,如哈密顿回路等问题.插头一般指每相邻2个网格的接口. 题目难度:一般不可做. 使用 ...

  5. 解决php -v查看到版本与phpinfo()版本不一致问题

    安装p7后发现phpinfo的版本是7.2.12,而php -v查看的却是5.4.16 应该是php.ini的配置文件有问题. 查看文件,有两个 查看cli执行的文件是哪一个? 再查看phpinfo用 ...

  6. Money King【题解】

    我又傻了……竟然忘了区别大根堆和小根堆的性质,以至于一个符号打错,debug了半天……(我真是太菜了……) 题目描述 Once in a forest, there lived N aggressiv ...

  7. 2018-2019 20165232 Exp5 MSF基础应用

    2018-2019 20165232 Exp5 MSF基础应用 一.原理与实践说明 1.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个 ...

  8. APACHE 安装

    APACHE  安装 到官网下载apache软件 解压apache软件 安装APR相关优化模块 创建APACHE安装目录 安装apche,开始预编译(检测安装环境) 编译和安装 启动时报错及排错 修改 ...

  9. Technocup 2019 - Elimination Round 1

    http://codeforces.com/contest/1030 B. Vasya and Cornfield 判断点是否在矩形内(包括边界) 把每条边转化为一个不等式 public static ...

  10. docker使用方式

    docker使用方式安装:1.安装依赖 yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 2添加yum源 yum-conf ...