CenterNet论文详细解析Objects as Points

一、论文相关信息

​ 1.论文题目:Objects as Points

​ 2.发表时间:2019

​ 3.文献地址:https://arxiv.org/pdf/1904.07850.pdf

4.论文作者: Xingyi Zhou Dequan Wang Philipp Krahenb

​ 5.论文源码:https://github.com/xingyizhou/CenterNet

二、论文详情

CenterNet以bounding box 的中心来表征目标,其它的属性如2d检测中的宽和高、3d检测中的深度、三位边框与方向,多人姿态估计的关键点等属性都由中心点回归得到。
于是目标检测就转换为一个标注的关键点估计问题,只需要将图片输入一个全卷积网络产生一个热力图heatmap,图中的峰值peaks对应我们的目标中心object centers。然后每个peak处的图像特征预测目标bounding box的宽高等属性。在inference时只徐通过一个网络的前向传播得到结果,没有nms等后期处理。
该方法具有通用性,简单修改就能用到其它领域,如上述提到的3D检测和多人姿态估计等。
由于网络很简单,所以也由很快的速度——142 FPS with 28.1% COCO bounding box AP
用上最先进的关键点估计网络沙漏网络(Hourglass-104)以及多尺度检测,精度会大大提高,但速度也会慢下来。

和其他方法对比

该方法和基于anchor 的one-stage方法很像,可以把中心点看作一个类别无关的anchor。
在这里插入图片描述
上图为基于anchor detector和我们的center point detector 的比较。
基于anchor和基于center point的区别:
1.CenterNet分配“anchor”只依赖位置,而不依赖IoU,因此也不用手动设置区分前景和背景的阈值。
2. 每个物体只有一个正样本,因此也用不到非极大值抑制(NMS),只需简单的提取heatmap中的局部峰值(peaks)
3. 和传统检测器相比,CenterNet输出有更大的分辨率,stride只有4(其它的stride为16),所以也不需要使用多尺度的特征图r。

CornerNet也是使用的keypoint maps做估计,只不过它的keypoint是corner,采用的是一对corner来预测物体。相比而言,它在预测了哪些可能是corner之后,还需要进行一步操作来给这些corner分组匹配,即确定哪些corner是同一个物体的。而CenterNet则省去了这一步骤,只需简单从每个物体提取一个中心点,无需分组或后期处理(nms)。

网络架构:

backbone提取feature map,这里backbone举了三个选项,都是encode-decode形式的网络,分别是:
1.A stacked hourglass network,沙漏网络,文中未对其修改
2.upconvolutional residual networks (ResNet)
3.deep layer aggregation (DLA)
在backbone之后接了三个分支网络,分别用于预测heatmap(c个通道),size(2个通道),offset(2通道)。
所有最后每个位置共有C+4个通道。
如下图所示
图片来源
在这里插入图片描述

heatmap分支即keypoint prediction分支,heatmap有c个channel,对应c个类。最后挑选每个channel中peaks作为该类的center points。
size分支用于预测宽和高,offset分支用于弥补卷积操作的下采样导致离散误差,做回归用,这两个分支与类无关,所有类共享。

Train

Lk 是keypoint detection 损失。
在这里插入图片描述

Yxyc代表的是在c这个通道的热力图上,(x,y)位置这个点是ground truth的置信度,如果是gt则为1,如果不是,也不是一定为0。因为我们的热力图是通过把ground truth从输入图片位置映射到该较低分辨率的图上,然后再以ground truth为中心做高斯分布来为整个图赋值,即以ground truth为中心,在其一定半径内的点的Yxyc值如瀑布式下降(高斯分布)。有点像这个图:
在这里插入图片描述

Y^xyc是我们的预测x,y处的像素点是c这个类的center的得分,取值0~1,0指background,1则认为是ground truth。
α和β是focal loss超参数,这里沿用CornerNet中的设置,α = 2 , β = 4 。N则为图片中总的keypoint数量。

Loff
在这里插入图片描述
在这里插入图片描述
p是原图上位置,R是sride,p~则是映射到低分辨率特征图上的位置。在这里插入图片描述
Lsize 代表宽和高的损失,sk为原图上的宽高,S^pk则是预测的点得到的宽高。

在这里插入图片描述
总损失:
在这里插入图片描述
其中λsize=0.1,λoff=1。

Inference

首先从heatmap中分别提取每个类的peaks:如果一个点的值大于或等于其八邻域(周围最近的8个点)中的所有值则视为peak,最后保留值最大的100个peaks。令P^c是检测到的 c 类别的 n 个中心点的集合,每个关键点(keypoint)以整数坐标 (xi, yi).给出,使用关键点处预测值Y ^xyc的作为检测到物体置信度,然后通过下面的计算得到最终bounding box ,即center加偏移量,然后计算宽和高即可得到我们的bounding box了。
在这里插入图片描述
其中,偏移预测结果为
在这里插入图片描述
尺寸预测结果为
在这里插入图片描述
所有输出都直接从关键点估计得到,而不需要基于IoU的NMS。
但是,再提取峰值peaks的时候,我们使用一个3 × 3 max pooling运算,实际上也相当于是一种NMS的替代。

时间v准确度

在这里插入图片描述
state of art detector 在COCO test-dev是检测的比较:上面的two-stage,下面是ones-stage。one-stage里的使用了single-scale /multi-scale
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yanghao201607030101/article/details/110202400
今日推荐