Anchor-free目标检测系列3:CenterNet Object as points

​​​​​​ CenterNet(一个中心点)

CenterNet: Objects as Points

(2019.4.17)

论文是由德克萨斯大学奥斯汀分校和UC 伯克利学者共同提出的真正意义上anchor-free的算法。与之前介绍的CornerNet系列算法不同,CenterNet仅仅检测目标中心点,没有后续的角点配对及NMS后处理操作,检测速度和精度相比于one-stagetwo-stage的框架都有不小的提高,尤其是与YOLOv3作比较,在相同速度的条件下,CenterNet的精度比YOLOv3提高了4个左右的点。实验结果如下图16所示,CenterNet不仅可以用于2D目标检测,还可以用于其他的一些任务,如肢体识别或者3D目标检测等等,这里我们就重点介绍2D目标检测部分。

                                           Anchor-free目标检测系列3:CenterNet Object as points_第1张图片

                                                             图16 CenterNet与其他模型的比较结果

CenterNet主要有这样几个特点。

  1. CenterNet的“anchor”仅仅会出现在当前目标的位置处而不是在整张图上广撒网,所以也没有所谓的根据IOU值计算正样本一说,也不需要区分这个anchor是物体还是背景 - 因为每个目标只对应一个“anchor”,这个anchor是从heatmap中提取出来的,所以不需要NMS再进行来筛选,加快的检测速度。
  2. CenterNet的输出分辨率的下采样因子是4,比起其他的目标检测框架算是比较小的(Mask-Rcnn最小为16、SSD为最小为16)。这样的设置,使得输出特征图分辨率大,对检测小目标有很好的帮助。

CenterNet网络中使用到的主干网络有hourglass、ResNet以及DLA,如下图17所示。这三种网络都是编码-解码的结构(encoder-decoder),三者分别的实验效果为:

  • Resnet-18 with up-convolutional layers : 28.1% coco and 142 FPS
  • DLA-34 : 37.4% COCOAP and 52 FPS
  •  Hourglass-104 : 45.1% COCOAP and 1.4 FPS

                         Anchor-free目标检测系列3:CenterNet Object as points_第2张图片

                                                    图17 CenterNet中用到的主干网络

CenterNet网络输入图像 ,图像宽为W,高为H。网络的目标是生成关键点热力图heatmaps,

                                                                  

其中R为网络输出stride,即输入输出的尺寸缩放比例,CenterNet目前支持缩放4倍。CenterNet的每个主干网络虽然内部的结构不同,但是在模型的最后都是经三个卷积网络结构来输出预测值,分别输出用于预测目标中心点位置、类别及置信度的heatmaps、预测目标尺寸的wh maps及预测中心点位置偏移的offset maps。CenterNet目标函数包括三个部分。分别是像素级逻辑回归的Focal loss、尺寸预测Size loss以及中心点偏移损失Offset loss

Focal loss

对于Ground Truth的目标中心点c,其位置记为p。经仿射变换缩放至低分辨后,得到低分辨率特征图gt heatmaps上对应的中心点,位置为对p/R向下取整。将GT关键点通过高斯核

                                                           https://img-blog.csdnimg.cn/20190417191729651.png

分散到heatmaps上去。公式中的σp为目标尺度-自适应的标准方差,不同的目标尺度对应不同的高斯核半径。采用带惩罚的Focal loss,目标函数如下,

                                                

 

其中,αβ分别设置为24N为图像I中的目标点的个数。这样的设置可以避免基于关键点的目标检测方法的正负样本比例失衡。对于在峰值点附近的预测点给与较小的惩罚,使网络预测不断集中于正样本区域,与CornerNet中的设置相同。α在此处对难易样本的惩罚力度不同,会对没有学习到的中心点增大训练的比重,β则弱化了实际中心点周围的其他负样本的损失比重,相当于处理正负样本的不平衡。结合来说, 来限制easy example导致的gradienteasy example dominant的问题,而 则用来处理正负样本的不平衡问题(因为每一个物体只有一个实际中心点,其余的都是负样本,负样本相较于一个中心点有很多)

尺寸预测Size loss

heatmaps热力图可以得到目标的峰值点,峰值点的值为此位置为目标中心点的置信度,同时峰值点所在的位置为目标中心点所在的位置,不同层的heatmap表示目标所属于的不同类别。根据heatmaps峰值点的位置,可以预测该目标的尺寸大小 ,并将其保存在wh maps对应的位置上。令https://img-blog.csdnimg.cn/20190417193433644.png是目标kbbox原始坐标,其类别的ck,由角点坐标可以计算得到中心位置以及目标长宽为

                                                                             

为了减少计算负担,为所有类别的所有目标使用单一的尺寸预测,在预测峰值点位置仅对正样本采用Size loss

                                                                    

此处,采用L1形式。同时,在回归目标尺寸时,不对其进行归一化,直接使用原始像素坐标。为了调节该loss的影响,为其设置系数,调整其对整体网络的影响。目标长宽回归时候没有进行归一化处理,之前的论文都会加log或者其他归一化方式,wh回归采用的L1损失(但是也有sl1_loss的选项,可能效果并没有什么提升,所以代码中是默认设置),论文中也有提到,是将原始图像下采样后的wh充当GT参与损失函数训练,这点可能稍微减小了回归难度,代码中也有尝试dense_wh,但是可能因为效果一般也没有采用。直接回归下采样后的wh难度小一些,不过这样可能边框的精度可能会低一些。

Anchor-free目标检测系列3:CenterNet Object as points_第3张图片

  • 在推理阶段,首先针对一张图像进行下采样,随后对下采样后的图像进行预测。首先对heatmaps进行处理。将热力图上的所有响应点和与其连接的8个临近点进行比较,若该点响应值大于或等于8个临近点则被保留。最后,保留满足之前所有要求的前100个峰值点。具体的实现方式为采用一个3x3MaxPool,类似于anchor-based检测中nms的效果。

接下来对wh maps进行处理。根据heatmaps保留的前100个峰值点的位置索引,可在wh maps预测图上找到对应的位置,该处的值即为预测的对应目标的宽高(wihi)。同理,根据ind索引数组,可以在offset maps上找到对应预测目标中心点的位置偏差(δxiδyi,)。最终对预测结果进行整合,得出预测目标的bbox

                                                                             

此时预测的[bbox, score, cls]是对应于128*128输出特征图上的目标框角点坐标、置信度及目标类别,最后将其映射回原测试图。

Anchor-free目标检测系列3:CenterNet Object as points_第4张图片

CenterNet的优势很明显,但也存在一些缺点,在实际训练中,如果在图像中同一个类别中的某些物体的GT中心点,在下采样时会挤到一块,两个物体在GT中的中心点会发生重叠,CenterNet对于这种情况是无能为力的,只能将这两个物体的当成一个物体来训练(因为只有一个中心点)。同理,在预测过程中,如果两个同类的物体在下采样后的中心点也重叠了,那么CenterNet也只能检测出一个中心点,不过CenterNet对于这种情况的处理要比faster-rcnn强一些的。需要注意的是,CenterNet在训练过程中,如果同一个类的不同物体的高斯分布点互相有重叠,那么则在重叠的范围内选取较大的高斯点。

你可能感兴趣的:(学习笔记,目标检测)