Objects as Points:CenterNet 无锚检测算法的理解

简介

  1. 问题

在2018年,大多数成功的目标检测算法都是通过枚举无穷潜在的目标框,这样会加大计算成本。CenterNet(无锚检测算法)的提出缓解了这一问题。

  1. 主要贡献
    使用MS COCO数据集
 - ResNet 18+upsample+deformable convolution: 28.1 AP/142 FPS
 - DLA 34+upsample+deformable convolution: 37.4 AP/52 FPS
 - Hourglass104:45.1%/ 1.4FPS(test)
  • 用于3D检测
  • 用于人体姿态检测

流程图

首先输入一张3*512*512的图片;再传入骨干网络(ResNet残差网络、Stacked Hourglass Network堆叠沙漏网络、DLA深度聚合网络)提取到特征图,接着传入检测头网络,最后将特征图分为三大部分输出(HeatMap热力图部分也是置信度:80(COCO类别)*128(特征图的大小)*128、WH目标的宽高部分:2(W\H)*128*128、XY中心点的偏移量部分:2(X\Y)*128*128)用于计算损失进行训练。
Objects as Points:CenterNet 无锚检测算法的理解

骨干网络

1.ResNet(残差网络)
这个网络不用多说,是2015年何凯明提出的(记忆中),特别经典,用于解决网络在回传时发生的梯度消失的问题。


2.Stack Hourglass Network(堆叠沙漏网络)
首先堆叠沙漏网络的由来:由于以前的网络通常使用最后一层的卷积层特征,这样会造成信息的丢失。因为网络的每层卷积提取的是不同的特征,例如提取人脸的特征,可能第一层卷积提取的特征是人脸轮廓的特征,第二层和第三层、第四层等卷积层提取鼻子或眼睛、嘴巴等特征。

其次,使用堆叠沙漏网络将各个不同卷积层的特征进行融合,进而缓解信息丢失的问题。

最后,由下图可得,堆叠沙漏网络可由Pre(卷积层) 与多个kps模块与Inters(中间监督卷积层)组成。其中最重要的部分为KPS模块,此思想是借用的残差模块skip的思想。
Objects as Points:CenterNet 无锚检测算法的理解


3.DLA(Deep Layer Aggregation 深度聚合网络)
要了解深度聚合网络必须得明白语义融合空间融合

语义融合:通道间的融合,提升模型的分类能力。
空间融合:尺度与分辨率的融合,提升模型的定位能力。
  • FPN则是空间融合(特征融合时采用像素点相加而非通道相加)。
  • DensNet则是语义融合,此思想也是借鉴残差模块的skip(将每层特征都去做了skip)
  • 而DLA则是集合了FPN与DensNet的思想,如下图,其中一个红色框代表一个树形结构,红色框中的绿色节点代表树的根节点。橘黄色的箭头,代表前一个根节点与后一个根节点的特征融合,其余的与一般网络结构无二。

Objects as Points:CenterNet 无锚检测算法的理解


损失函数Objects as Points:CenterNet 无锚检测算法的理解

Objects as Points:CenterNet 无锚检测算法的理解
Objects as Points:CenterNet 无锚检测算法的理解Objects as Points:CenterNet 无锚检测算法的理解Objects as Points:CenterNet 无锚检测算法的理解

上一篇:3D点云语义分割篇——PointNet


下一篇:Python turtle安装和使用教程