CornerNet 学习笔记

CornerNet是一种新颖的一阶段目标检测算法,它摒弃了传统的anchor-box,转而通过检测图像的左上角和右下角关键点来定位对象。这种方法减少了正负样本不平衡的问题,简化了算法设计。CornerNet使用Hourglass Network作为主干网络,结合corner pooling层来捕捉关键点信息,并通过heatmap、embedding和offsets来预测、组合和校准角点。训练过程中,CornerNet从头开始训练,不依赖预训练模型,允许更多的网络设计自由度。在测试阶段,通过简单的后处理步骤生成边界框。尽管CornerNet的速度较慢,但其创新的角点检测策略为目标检测领域带来了新的思考。

《CornerNet: Detecting Objects as Paired Keypoints》ECCV 2018

将对象检测为成对的关键点

论文链接:https://arxiv.org/abs/1808.01244
代码链接: https://github.com/umich-vl/CornerNet

摘要

  1. 将目标检测问题当作关键点检测问题来解决,也就是通过检测目标框的左上角和右下角两个关键点得到预测框,因此CornerNet算法中没有anchor的概念,这种做法在目标检测领域是比较创新的而且能够取得不错效果是很难的。
  2. 整个检测网络的训练是从头开始的,并不基于预训练的分类模型,这使得用户能够自由设计特征提取网络,不用受预训练模型的限制。

目标检测算法概述

从RCNN、SPPNet到fast RCNN,再到Faster RCNN,目标检测的三个步骤(区域选择,特征提取,分类回归)被统一到一个深度网络框架之内,大大提高了运行速度。FCN,FPN, RoI Align, Mask Branch等技术把Faster R-CNN往前极大的推进。之后又出现了FCN, IoU, NMS,ION,FPN, RoI Align和Mask Branch等技术渊源和YOLO, SSD, AttratioNet, G-CNN, R-FCN, Mask R-CNN, Mask ^X R-CNN等的进化关系!

one-stage检测算法,其不需要region proposal阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此有着更快的检测速度,比较典型的算法如YOLO,SSD,Retina-Net。YOLO 使用了分治思想,将输入图片分为 SxS 的网格,不同网格用性能优良的分类器去分类。SSD 将 YOLO 和 Anchor 思想融合起来,并创新使用 Feature Pyramid 结构。YOLO, YOLO-v2, YOLO-v3, SSD、DSSD等实时模型的推出, 让目标检测变得更快。

1 Motivation

在state-of-the-art的目标检测算法中,都用到了设置anchor-box的方法。anchor-box的使用使得one-stage的算法性能能够挑战two-stage。但是使用anchor-box会有两个缺点:

  1. anchor-box的数量需要设置很多 (DSSD: more than40k, RetinaNet: more than 100k) 。其中只有一小部分和ground truth重合,生成了大量的负例,造成正负样本不平衡,降低了训练效率。

  2. anchor-box的使用引入了很多超参数,如anchor的数量,大小,长宽比。增加了算法的设计难度。

本文提出一种新的检测方法,使用一对关键点:框的左上角和右下角来代替bounding box。

2 Contribution

  1. 用一对corner代替了anchor box,并提出了一种新的one-stage检测方法。

  2. 提出了一种新的池化方法:corner pooling。

3 Framework

3.1 overview

在这里插入图片描述
图1 overview of CornerNet

CornerNet是一种one-stage检测方法,其框架如图1所示。主干网采用了Hourglass Network。主干网后紧跟两个prediction modules,其中一个检测top-left corners ,另一个检测bottom-right corners,最后对两组corner进行筛选,组合,修正得到object的一对corners,从而定位object的box。

经过特征提取网络(backbone network)提取特征,该网络采用hourglass network。输出特征图大小是128×128,整个hourglass network的深度是104层。hourglass module后会有两个输出分支模块,分别表示左上角点预测分支和右下角点预测分支,每个分支模块包含一个corner pooling层和3个输出:heatmaps、embeddings和offsets

  • heatmaps输出预测角点信息,可以用维度为CHW的特征图表示,其中C表示目标的类别(注意:没有背景类),这个特征图的每个通道都是一个mask,mask的每个值(范围为0到1,论文中写的该mask是binary mask,也就是0或1,个人感觉是笔误,预测值应该是0到1,否则后面公式1计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值