One-Stage目标检测算法之——CornerNet

CornerNet是一种创新的目标检测算法,通过预测对象的左上角和右下角来定位目标,避免了预设锚点的问题。它采用Corner Pooling改进定位,通过Heatmaps、Embeddings和Offsets预测来确定角点,再进行角点配对。Hourglass Network作为基础网络,提高了特征提取能力。实验显示,CornerNet在目标定位上表现出色,但误检和配对错误仍有优化空间。
摘要由CSDN通过智能技术生成

 论文地址:https://arxiv.org/abs/1808.01244

 代码地址:https://github.com/princeton-vl/CornerNet


 

创新点:

  1. 提出了一种通过预测一对关键点(左上角和右下角)来预测目标 bounding box 的方法。
  2. 提出了一种新的池化方法 corner pooling,该池化方法用来更好的定位 bounding box 的关键点位置。

1. 提出背景

目前很多 one-stage 目标检测算法都通过使用预设锚点(anchor box)的方法来实现对图像中目标框的预测,如SSD、RetinaNet等,但是这种同预设锚点的方法有很多弊端:1)由于大量的预设锚点中,只有极小一部分锚点会与标注框(ground truth)相交叠,而大部分预设锚点都与标注框无关,这就导致了正负样本(此处指锚点)极大不平衡,从而拖慢了训练过程。2)预设锚点引入了许多额外的超参数,如锚点的个数、尺寸和纵横比等。尤其是在多尺度预测时,在每个尺度的特征图上进行预测时都要使用其尺度相对应的锚点集合,这就大大增加了模型的复杂度。

由此,作者提出了一种通过预测每个目标的一对关键点(左上角和右下角)坐标来预测目标位置的方法。

为什么通过预测角点来预测目标框的方式要比通过预测中心点和预选框的方式好呢?

作者认为有两方面的理由:

1)预测中心点时依赖目标四个边的信息,而预测每个角点则只需要两个边的信息。再加上通过作者提出的 corner pooling,使得预测两个角点要比预测中心点容易的多。

2)角点提供了一种更有效率的密集离散化 box 空间的方式,我们只需要复杂度为 O\left ( wh \right ) 的角点就可以表示复杂度为 O\left ( w^{2}h^{2} \right )  的anchor boxes。关于这一点,我个人理解是这样的:角点只可能存在于宽度为w高度为h的图中,所以最多有w*h种可能,复杂度为 O\left ( wh \right )。而box则不一样,box的中心点有w*h种可能,另外,box在每个中心点上的宽高组合又有w*h种,所以综合起来,box便最多有\left ( w\ast h \right )^{2} 种可能,复杂度为 O\left ( w^{2}h^{2} \right )

2. CornerNet 综述

CornerNet 的总体结构如上图所示,它通过预测 bounding box 的一对关键点(左上角和右下角)来达到目标检测的目的。CornerNet 选择 Hourglass Network 作为其基础网络,在该基础网络之后为两个 Prediction 模块来作为左上角点和右下角点的预测模块,每个模块都有其 Corner Pooling 模块来对 Hourglass Network 的输出特征进行池化操作,然后再分别进行三部分的预测:Heatmaps、Embeddings 和 Offsets。

1)Heatmaps:卷积神经网络预测两个 heatmap 来表示来自不同类别目标的角点坐标,一个用来表示左上角,另一个用来表示右下角。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值