目标检测 47mAP CenterNet: Keypoint Triplets for Object Detection

CenterNet: Keypoint Triplets for Object Detection
Kaiwen Duan, Song Bai, Lingxi Xie, Honggang Qi, Qingming Huang, Qi Tian
中科院
牛津大学
华为诺亚方舟实验室, 2019

CornerNet的另一个升级版,COCO上47的mAP是SOTA的one-stage目标检测精度。代码与模型已开源


Introduction

传统的基于关键点的目标检测方法例如最具代表性的 CornerNet通过检测物体的左上角点和右下角点来确定目标,但在确定目标的过程中,无法有效利用物体的内部的特征,即无法感知物体内部的信息,从而导致该类方法产生了很多误检 (错误目标框)。如图1第一行。

Alt text

这篇论文利用三个关键点:中心点、左上和右下角点来确定一个目标,使网络花费了很小的代价便具备了感知物体内部信息的能力,从而能有效抑制误检。另外,为了更好的检测中心点和角点,论文分别提出了 center pooling 和 cascade corner pooling 来提取中心点和角点的特征。

CenterNet

Object Detection as Keypoint Triplets

Alt text

网络结构见图2。基于CornerNet预测中心点的热图和偏移,利用CornerNet的方法得到top-k个限位框。然后按如下流程过滤误检测:

  1. 按score选出top-k个中心点
  2. 使用对应的offset将中心点映射回原图
  3. 为每个限位框定义一个中间区域,并检查其中是否包含同类关键点
  4. 如存在同类关键点,则保留该框,并将其score替换为3个关键点的score均值,否则删除

中间区域的大小会影响检测结果。小的中间区域会降低小限位框的召回率,大的中间区域会降低准确率。因此区域的大小需要动态调整,公式如下:

n为奇数,实验中取3和5,区分为限位框是否大于150。图3是两种n取值时中间区域的大小。

Alt text

Enriching Center and Corner Information

Center pooling. 物体的几何中心并不一定能具有极易辨认的视觉模式(比如人的头部有很强的视觉模式,但中心点通常在身体中间)。因此提出了Center pooling来增强信息。图4(a)是center pooling的示例。找到水平、垂直方向的最大值并求和即可。

Alt text

Cascade corner pooling 角点通常位于物体外而缺乏局部外观特征。CornerNet使用Corner pooling来解决这个问题,见图4(b)。其目标是找到边界方向的最大值,从而来确定是否是角点,但这样会对边缘敏感。Cascade corner pooling见图4(c),首先和corner pooling一样,找到边缘的最大值,再从最大值的位置往里找到内部最大值,将两个最大值相加。这样来使角点获得边缘和物体视觉模式。

以上两个pooling都可以使用corner pooling的组合完成。

Alt text

Experiment

进行了single和multi scale测试。single scale是使用原图和水平翻转进行推理,multi-scale是对0.6、1、1.2、1.5和1.8及他们的水平翻转进行推理。使用top-70的中心、左上、右下进行检测。把进行翻转检测得到的限位框翻转回去,一起进行Soft-NMS。最终选择得分最高的100个限位框作为检测结果。在COCO上与SOTA的方法比较结果如下:

Alt text

在Tesla P100上, CenterNet511-104处理每张图片需要340ms,CenterNet511-52需要270ms。这里的时间不知道是否包含了对水平翻转的推理。再算上multi-scale的话,1.7s/img才能获得47的AP。