[CenterNet]Objects as Points笔记

Objects as Points

paper: https://arxiv.org/pdf/1904.07850.pdf
code

1. Motivation

大部分的目标检测网络都需要详尽的可能的目标定位以及分类的anchor,这是非常浪费,不高效并且要引入预处理操作,如NMS。
在这篇论文中,作者提出了一个不同的方法,成为CenterNet,将物体建模为a single point———也就是一个物体的中心点。该检测器使用关键点估计方法去找到中心点,并回归其他目标属性(类别C,长宽,偏移量,预测值,3D位置等等)。
Center是一个end-to-end,simpler,faseter的目标检测器。可以应用于2D目标检测,3D目标检测以及姿态估计上面。

2. Differences

CenterNet与单阶段的anchor-based方法有关,一个中心点可以作为一个anchor,但有以下3种区别。
①CenterNet仅仅基于location挑选‘anchor’制定为正样本,而不是像之前方法,是挑选anchor与Ground Truth的IOU较大的作为正样本。因此对于前景和背景就没有定义thresholds。
②对于anchor,CenterNet只有正样本anchor,不需要NMS后处理操作。作者只需要在heatmap的peaks峰值上提取特征。
③与传统方法相比(步长为16的下采样),CenterNet可以获得一个更大的分辨率(步长为4的下采样)。

3.Related Work

CenterNet主要基于CornerNet和Hourglass Network。

3.1 CornerNet

在这里插入图片描述
在这里插入图片描述

CornerNet网络结构

3.2 Hourglass Network

在这里插入图片描述
在这里插入图片描述

hourglass 网络结构

4. loss

4.1 物体损失

图像定义为 I ∈ R W × H × 3 I \in R^{W \times H \times 3} IRW×H×3,本文的目标是制造一个包含关键点的热力图heatmap Y ^ ∈ [ 0 , 1 ] W R × H R × C \hat{Y} \in [0,1]^{\frac{W}{R} \times \frac{H}{R} \times C} Y^[0,1]RW×RH×C ,C就是预测的类别的总数,R为下采样因子,本文设置为4。
基于物体的损失采用和focal loss相似的参数和公式。分为 Y x y c = 1 Y_{xyc} =1 Yxyc=1以及 Y x y c = 0 Y_{xyc} = 0 Yxyc=0的两种情况, Y x y c = 1 Y_{xyc} =1 Yxyc=1表示ground truth keypoint中心点, Y x y c = 0 Y_{xyc} =0 Yxyc=0表示背景。本文采用了几个不同的全卷积编码-解码网络来预测图像 I 得到的 Y ^ \hat{Y} Y^:stacked hourglass network , upconvolutional residual networks (ResNet), deep layer aggregation (DLA) 。
对于 每一个类别class为c的 p ∈ R 2 p \in R^2 pR2Ground Truth Keypoints,首先会进行下采样对于映射成 p ~ = ⌊ p R ⌋ \tilde p =\left \lfloor \frac{p}{R} \right \rfloor p~=Rp。然后将所有的关键点通过高斯核函数 Y x y c = e x p ( ( − ( x − p x ~ ) 2 + ( y − p ~ y ) 2 2 σ 2 ) Y_{xyc}=exp((-\frac{(x - \tilde{p_x})^2 + (y-\tilde p_y)^2}{ 2 \sigma^2}) Yxyc=exp((2σ2(xpx~)2+(yp~y)2)分散到整张heatmap图上 Y ^ ∈ [ 0 , 1 ] W R × H R × C \hat{Y} \in [0,1]^{\frac{W}{R} \times \frac{H}{R} \times C} Y^[0,1]RW×RH×C如下图所示,一张图要有2个相同的类猫,如果对于同个类 c (同个关键点或是目标类别)有两个高斯函数发生重叠,我们选择高斯核对应元素最大的,至于其他类,发生了重合也不用考虑,因为都分布在了C个通道上了
在这里插入图片描述

基于focal loss的物体逻辑回归损失的公式如下:
在这里插入图片描述

4.2 偏移损失offset loss

在这里插入图片描述

4.3 大小损失

下面的公式表示的是第K个bounding box,他的类别为 C k C_k Ck,表示为 ( x 1 ( k ) , y 1 ( k ) , x 2 ( k ) , x 2 ( k ) ) (x_1 ^{(k)} , y_1 ^{(k)}, x_2 ^{(k)}, x_2 ^{(k)} ) (x1(k)y1(k),x2(k),x2(k))

因此它的中心点就是两点坐标的平均:
在这里插入图片描述
其中 s k = ( X 2 ( k ) − X 1 ( k ) , y 2 ( k ) − y 1 ( k ) ) s_k = (X_2 ^{(k)} - X_1 ^{(k)}, y_2 ^{(k)} - y_1 ^{(k)} ) sk=(X2(k)X1(k),y2(k)y1(k))表示 要回归的每一个object k的大小。
同样的对于所有的分类,使用 S ^ ∈ R ( W / R ) × ( H / R ) × 2 \hat S \in R^{(W/R) \times (H/R) \times 2} S^R(W/R)×(H/R)×2作为网络的输出。
在这里插入图片描述

4.4 总损失

在这里插入图片描述

5. Inference

网络在每一个location预测 C + 4 C+4 C+4个outputs,其中的4所代表的就是根据heatmap的置信度 Y ^ x , y , c \hat Y_{x,y,c} Y^x,y,c,偏移offset和size的width与height2维。C(如果是coco就是80)就是代表着heatmap,详细如下(参考):
(1)HeatMap,大小为(W/4,H/4,80),输出不同类别(80个类别)物体中心点的位置。
(2) Offset,大小为(W/4,H/4,2),对HeatMap的输出进行精炼,提高定位准确度。
(3) Height&Width,大小为(W/4,H/4,2),预测以关键点为中心的检测框的宽高。

在HeatMap(W/4,H/4,80)的特征图上,挑选一个peaks,其value满足大于周围8个相连领域的value,一共挑选100个,用于coco-eval,让 P ^ c \hat P_c P^c作为关于某个类c的n个检测的中心点, P ^ = ( x ^ i , y ^ i ) i = 1 n \hat P={(\hat x_i, \hat y_i)}^n_{i=1} P^=(x^i,y^i)i=1n,每一个关键点的位置通过坐标给出 ( x i , y i ) (x_i, y_i) (xi,yi),接着使用 Y ^ x , y , c \hat Y_{x,y,c} Y^x,y,c计算其置信度,然后结合offset分支和size分支,最终得到经过偏移后的4个坐标点,表示如下:
在这里插入图片描述
其中, δ x i ^ , δ y i ^ = O ^ x i ^ , y i ^ \delta \hat{x_i}, \delta \hat{y_i} = \hat{O}_{\hat{x_i},\hat{y_i}} δxi^,δyi^=O^xi^,yi^ 表示为offset预测, ( w i ^ , h i ^ = S ^ x ^ i , y ^ i ) (\hat{w_i}, \hat{h_i}= \hat{S}_{\hat x_i, \hat y_i}) (wi^,hi^=S^x^i,y^i)表示预测宽高的大小。所有的输出都是不需要NMS的。基于peak的关键点提取作为一个搞笑的NMS替代方式,并且可以被3x3的max pooling方法所取代。
下图中,top从左到右,分别为目标检测输出的heatmap,offset prediction和size。
在这里插入图片描述

对于不同任务的CenterNet 网络的输出

References

https://blog.csdn.net/c20081052/article/details/89358658
https://zhuanlan.zhihu.com/p/72373052
https://zhuanlan.zhihu.com/p/45002720
https://zhuanlan.zhihu.com/p/41825737

猜你喜欢

转载自blog.csdn.net/weixin_43823854/article/details/111469205
今日推荐