[ICCV 2019] CenterNet: Object Detection with Keypoint Triplets论文笔记

1. Introduction

  目前主流的物体检测模型都会引入锚框,这些方法通常会存在以下问题:(1)算法通常需要大量的锚框,这样才能确保GT与某些锚框之间有较大的IoU;(2)锚框的尺寸和宽长比通常需要手动设定;(3)锚框和GT之间没有对齐,对于候选框分类的帮助不大。

  为了解决上述问题,学术界提出了一些基于关键点的物体检测算法,如CornerNet等。CornerNet的优势是一种不依赖于锚框的一阶算法,可以达到SOTA,该算法对于边界比较敏感,但是对于物体的全局信息表现较弱。这样会造成产生很多不正确的框(可以参见CornerNet的算法,CornerNet是通过网络学习左上和右下的热度图和embedding,然后找出top-k的corner点,组合 k 2 k^2 k2 pairs corners,当一个pair的embedding距离小于某个阈值,则认为它们足够接近,可以构成一个bbox,这样的约束相对较弱)。本篇论文就是基于CornerNet的改进版本,叫做CenterNet。

  CenterNet又引入了一个关键点(Center Point),通过三个关键点可以兼顾bbox边缘和内部信息,同时减小特征级别的干扰,提升算法的鲁棒性。这样做的出发点是当一个预测框与GT的IoU较大时,作者认为中心区域的中心关键点也有较大的概率与GT属于同一类别。CenterNet的网络结构如下图所示,具体来说,文章的主要工作可以分成三个部分:
在这里插入图片描述
(1)中心区域的生成:根据预测框左上和右下的坐标值,每个框按照下述公式可以生成中心区域的坐标。根据预测框的面积,式中的n取值为3或5,这样可以达到根据不同物体大小产生自适应中心区域的目的。自适应中心区域可以提升模型对于不同尺寸物体的识别率,因为较小的物体中心区域如果较小,漏检率(1-recall)就会比较大;而较大的物体中心区域还较大的话,误检率(1-precision)也会较大。中心区域的示意图如下图所示。
在这里插入图片描述
在这里插入图片描述
(2)Center Pooling: 几何学上的中心不一定是真正语义上的中心点,Center Pooling累加水平方向和垂直方向的最大值,让中心关键点信息更加丰富。
(3)Cascade Corner Pooling: CornerNet中提出的Corner Pooling只池化了边界的两个方向,没有考虑图像内部信息,而Cascade Corner Pooling先考虑边界的两个方向,然后从最大值方向往图像内部去找最大值,最后累加这两个最大值。

  Center Pooling和Cascade Corner Pooling的实现方式如下图所示(个人觉得原文中图4比图5更好理解):
在这里插入图片描述
   Loss函数如下所示:
在这里插入图片描述
Loss形式实际上就是把Metric Learning引入了进来,类比ReID的Loss函数,前两项就是ID Loss,第3和4项就是Metric Learning Loss,最后两项是对于Offsets的L1 Loss。

   CenterNet可以得到47.0% AP指标,接近二阶算法PANet。推理速度为340 ms/image,推理速度还可以,但是跟YoloV4比起来还差了挺多的(实测V4真的快)。与目前几个主流算法的对比如下:

MS-COCO(test-dev)
ModelBackboneAPAP_50AP_75
YOLOv4(416)CSPDarknet-5341.2%62.8%44.3%
YOLOv4(512)CSPDarknet-5343.0%64.9%46.5%
YOLOv4(608)CSPDarknet-5343.5%65.7%47.3%
EfficientDet-D0(512)EfficientNet-B033.8%52.2%35.8%
EfficientDet-D1(640)EfficientNet-B139.6%58.6%42.3%
EfficientDet-D2(768)EfficientNet-B243.0%62.3%46.2%
EfficientDet-D3(896)EfficientNet-B345.8%65.0%49.3%
EfficientDet-D4(1024)EfficientNet-B449.4%69.0%53.4%
EfficientDet-D5(1280)EfficientNet-B550.7%70.2%54.7%
EfficientDet-D6(1280)EfficientNet-B651.7%71.2%56.0%
EfficientDet-D7(1536)EfficientNet-B752.6%71.6%56.9%
CenterNet511 (single-scale)Hourglass-5241.6%59.4%44.2%
CenterNet511 (single-scale)Hourglass-10444.9%62.4%48.1%
CenterNet511 (multi-scale)Hourglass-5243.5%61.3%46.7%
CenterNet511 (single-scale)Hourglass-10447.0%64.5%50.7%

2. 与CornerNet的对比

(1) CornerNet
  CornerNet生成两个热度图(左上corner的热度图和右下corner的热度图),图中每个像素表示不同类别的corner关键点位置,并为每个关键点分配一个信任评分。此外,每个corner还预测了embedding和offset。embedding用于衡量两个焦点是否来自同一对象,即度量学习领域,offset则是学习corner点重新映射到原图上的偏差。为了生成目标的bbox,根据置信度评分选取top-k的左上角和右下角的corner,用embedding的距离来确定corner之间是否可以构成一个bbox,产生的置信分是corner置信分的平均值。
  CornerNet的具体可以参考CornerNet
(2) CenterNet和CornerNet的关系
  CenterNet比CornerNet多了一个分支去预测中心点,某种极端情况下,可以理解成Center Keypoint分支不会太多改变CornerNet产生的原始Bbox的数目(实际上Loss为两个分支的联合Loss,也会影响CornerNet的分支),该分支只是用来筛选CornerNet产生的bbox,而筛选的方式就是选取top-k个中心关键点,看某个中心关键点是否落在bbox产生的中心区域内,如果落在中心区域,并且分类类别与两个corner点一致,则保留该bbox。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值