论文链接: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. WD与地图 解题报告

    WD与地图 哎,我好傻啊,看了题解还弄错了一遍,靠着lbw指点才董 题意:给一个带点权有向图,要求支持删边,查询一个scc前\(k\)大权值,修改点权,不强制在线. 显然倒序处理变成加边 考虑求出每条 ...

  2. MySQL数据库、表常用操作

    1.按条件查询表中数据: mysql> select user,host,password from user; 2.按组合条件查询表中数据: mysql> select id, pass ...

  3. laravel 读写分离源码解析

    前言:上一篇我们说了<laravel 配置MySQL读写分离>,这次我们说下,laravel的底层代码是怎样实现读写分离的.   一.实现原理 说明: 1.根据 database.php ...

  4. 关于 redis 的 数据类型 和 内存模型

    该文章 是在读了 公众号 : java 后端技术 之后 做的一个小记录 原文网址  : https://mp.weixin.qq.com/s/mI3nDtQdlVlLv2uUTxJegA 作者文章写的 ...

  5. python模拟页面调度LRU算法

    所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面. 问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输 ...

  6. JAVA中循环删除list中元素的方法总结【转】

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...

  7. ArcGis dbf读写——挂接Excel到属性表 C#

    ArcMap提供了挂接Excel表格信息到属性表的功能,但是当数据量较大到以万计甚至十万计的时候这个功能就歇菜了,当然,你可以考虑分段挂接.这个挂接功能只是做了一个表关联,属性记录每个字段的信息需要通 ...

  8. Redux thunk中间件

    redux-thunk https://github.com/reduxjs/redux-thunk Why Do I Need This? Thunks are the recommended mi ...

  9. ReactJS虚拟DOM效应带来的一则副作用探索

    疑问 https://github.com/ruanyf/react-demos/blob/master/demo08/index.html 在如下代码中的 18 行, 需要将本类中的 方法,进行绑定 ...

  10. JetBrain server certificate is not trusted 弹出框

    To get rid of the pop up message go to below location and click on Accept non-trusted certificates a ...