目标检测笔记-CenterNet(Object as Point)

Object as Point

从关键点检测的角度进行anchor-free目标检测

  1. 输入Image 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
    R表示output stride,通常为4,输出对输入下采样R倍。
    C在目标检测中表示类别数,coco数据集时C=80.
    论文使用三种不同的全卷积的encoder-decoder网络:hourglass,ResNet,DLA

  2. 用CornerNet的方法,使用高斯核函数,将GT转化为heatmap。
    Y x y c = e x p ( − ( x − p x ~ ) 2 + ( y − p y ~ ) 2 2 σ p 2 ) Y_{xyc}=exp(-\frac{(x-\tilde{p_x})^2+(y-\tilde{p_y})^2}{2\sigma^2_p}) Yxyc=exp(2σp2(xpx~)2+ypy~)2)
    网络使用focal loss,损失函数为:
    目标检测笔记-CenterNet(Object as Point)_第1张图片
    为了恢复由输出步长(stride)引起的离散误差,网络同时预测了局部偏移。所有的类别c共享相同的局部偏移。损失函数使用L1 loss。监督只用于关键点 p ~ \tilde{p} p~
    在这里插入图片描述
    ( x 1 ( k ) , y 1 ( k ) , x 2 ( k ) , y 2 ( k ) ) (x_1^{(k)},y_1^{(k)},x_2^{(k)},y_2^{(k)}) (x1(k),y1(k),x2(k),y2(k))是类别k的bbox,目标尺寸定义为 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))。在目标中心点使用L1损失函数,不对比例尺进行规范化,直接使用原始像素坐标:

在这里插入图片描述
因此网络的总损失函数为:

  1. 网络预测类别C,偏移O和尺寸S。对 ( W R , H R ) (\frac{W}{R},\frac{H}{R}) (RW,RH) 中的每个输出位置,输出C+4个结果,C表示类别,4表示偏移和尺寸。所有输出共享一个全卷积主干网络。

  2. 在检测阶段,首先提取每个类别在heatmap图上的峰值(其值大于相邻的8个邻点,并取前100个。我们用 Y x i y i c Y_{x_iy_ic} Yxiyic作为点 ( x i , y i ) (x_i,y_i) xiyi点上属于类别c的置信度。 σ x ^ \sigma\hat{x} σx^ σ y ^ \sigma\hat{y} σy^为偏移量预测, w ^ \hat{w} w^ h ^ \hat{h} h^为尺寸预测。则我们可以计算出bbox的边界框坐标:
    在这里插入图片描述
    所有输出都是直接从关键点估计产生的,而不需要基于IOU的非最大抑制(NMS)或其他后处理。峰值键点提取作为一种充分的NMS替代方案,可以在设备上使用3×3最大池操作进行有效的实现。(?)

  3. Hourglass-104能在COCO数据集上达到42.2%的准确率和7.8FPS。具体实验结果参考论文。
    目标检测笔记-CenterNet(Object as Point)_第2张图片

你可能感兴趣的:(目标检测)