ECCV2018 CornerNet: Detecting Objects as Paired Keypoints

Abstract.

本文提出了一种新的目标检测方法CornerNet,即利用单卷积神经网络,将目标的bounding box检测为一对关键点,即左上角和右下角。通过将目标检测为成对的关键点,我们消除了设计一组常用于现有single-stage detectors的anchor boxes的需要。除了我们的新公式外,我们还引入了corner pooling,这是一种新型的池化层,有助于网络更好地定位corners。实验表明,CornerNet在CO CO上达到了42.1%的AP,优于现有的one-stage detectors。

Introduction

本文介绍了一种消除anchor boxes的新的one-stage目标检测方法CornerNet。我们将对象检测为bounding box的左上角和右下角的一对关键点。我们使用一个单一的卷积网络来预测同一对象类别的所有实例的左上角的热图,右下角的热图,以及每个检测到的corner的嵌入向量。嵌入服务于将属于同一对象的一对corner进行分组,网络被训练为预测它们的相似嵌入。我们的方法大大简化了网络的输出,消除了设计anchor boxes的需要。我们的方法受到了Newell提出的关联嵌入方法的启发,Newell在多人姿态估计的背景下对关键点进行检测和分组。图1说明了我们方法的总体流程。

one-stage/two-stage:

在这里插入图片描述1、什么是One-stage
直接回归物体的类别概率和位置坐标值(无region proposal),但准确度低,速度相较two-stage快。
2、One-stage的目标检测方法概述
在这里插入图片描述
直接通过主干网络给出类别和位置信息,没有使用RPN网路。这样的算法速度更快,但是精度相对Two-stage目标检测网络略低。
在这里插入图片描述
1、什么是Two-stage

先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。

2、Two-stage的目标检测方法概述

对于Two-stage的目标检测网络,主要通过一个卷积神经网络来完成目标检测过程,其提取的是CNN卷积特征,在训练网络时,其主要训练两个部分,第一步是训练RPN网络,第二步是训练目标区域检测的网络。网络的准确度高、速度相对One-stage慢。
Two-stage算法的代表: R.Girshick et al等人在2014年提出的R-CNN到Faster R-CNN网络。
在这里插入图片描述

Anchor Boxes

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
Fig. 1.我们检测一个对象作为一对bounding box的corners组合在一起。卷积网络输出所有左上角的热图、所有右下角的热图和每个检测到的corner的嵌入向量。训练的网络来预测属于同一对象的corners的相似嵌入。
在这里插入图片描述Fig. 2.通常没有根据来确定bounding box角点的位置。我们通过提出一种新型的池化层来解决这个问题。
在这里插入图片描述
Fig. 3.Corner pooling:对于每个通道,我们取最大值(红点)在两个方向(红线),每个从一个单独的特征图,并将两个最大值加在一起(蓝点)。

CornerNet

在CornerNet中,我们将对象检测为边界框的左上角和右下角的一对关键点。卷积网络预测两组热图来表示不同对象类别的角点位置,一组用于左上角,另一组用于右下角。该网络还为每个检测到的角点预测一个嵌入向量,使得两个角点嵌入到同一对象的距离很小。为了生成更紧密的bounding boxes,网络还预测偏移,以稍微调整角点的位置。通过预测的热图、嵌入和偏移量,我们采用一种简单的后处理算法来获得最终的边界框。
在这里插入图片描述Fig. 4.CornerNet概述。backbone network之后是两个预测模块,一个用于左上角,另一个用于右下角。使用两个模块的预测,我们定位和分组Corner。

Detecting Corners

我们预测了两组热图,一组用于左上角,一组用于右下角每组热图都有C个通道,其中C是类别数,大小为H×W。没有背景通道。每个通道都是一个二进制mask,代表一个类的角点位置。
在这里插入图片描述
Fig. 5. “Ground-truth”训练热图。角位于正位置(橙色圆圈)半径内的框(绿色虚线矩形)仍与ground-truth批注(红色实心矩形)有较大重叠。
p c p_c pc i _i i j _j j为预测的热图中c类位置(i,j)的得分,并让 y c y_c yc i _i i j _j j成为“ground-truth”热图,增加了非标准化高斯。我们设计了一种变型的focal损失:

在这里插入图片描述
许多网络都涉及到下采样层以收集全局信息并减少内存使用。当它们完全卷积地应用于图像时,输出的大小通常小于图像。因此,图像中的位置(x,y)被映射到热图中的位置 ⌊ x n ⌋ \lfloor x \over n \rfloor nx,其中n是下采样因子。当我们将热图中的位置重新映射到输入图像时,可能会丢失一些精度,这会极大地影响小bounding boxes的IoU和它们的ground truths。为了解决这个问题,我们预测位置偏移,以便在将角点位置重新映射到输入分辨率之前稍微调整它们。
在这里插入图片描述
其中, o k o_k ok是偏移量, x k x_k xk y k y_k yk是角k的x和y坐标。特别地,我们预测了一组由所有类别的左上角点共享的偏移量,以及另一组由右下角共享的偏移量。对于训练,我们在ground-truth角位置应用平滑L1损失函数:
在这里插入图片描述

Grouping Corners

我们遵循Newell并使用一维的嵌入。设etk为对象k左上角的嵌入,ebk为右下角的嵌入。我们使用“pull”损失来训练网络将corners分组,使用“push”损失来分离corners:
在这里插入图片描述
在这里插入图片描述

Corner Pooling

假设我们想确定一个像素位置(i,j)是否是左上角。设 f t f_t ft f l f_l fl为左上corner pooling layer输入的feature maps,设 f t f_t ft i _i i j _j j f l f_l fl i _i i j _j j分别为 f t f_t ft f l f_l fl中位置(i,j)处的向量。对于H×W feature maps,corner pooling layer 首先max-pools 所有特征向量ft中(i,j)和(i,H)之间为一个特征向量tij,并且max-pools所有特征向量fl中(i,j)和(W,j)之间为一个特征向量lij。最后,把tij和lij加在一起。这种计算可以用下列方程式表示:

在这里插入图片描述在这里我们应用元素最大运算。如图6所示,动态规划可以有效地计算tij和lij。
在这里插入图片描述
Fig. 6.左上角的corner pooling layer可以非常有效地实现。我们从左到右扫描水平max-pooling,从下到上扫描垂直max-pooling。然后我们添加两个最大max-pooled feature maps。
在这里插入图片描述Fig. 7.预测模块从一个修改后的残差块开始,用我们的corner pooling模块替换第一个卷积模块。修改后的残差块之后是卷积模块。我们有多个分支用于预测热图、嵌入和偏移。
在这里插入图片描述

Comparisons with state-of-the-art detectors

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值