小马&博客

不爱码字的小懒马儿

目标检测网络结构


关于

  • 个人微信公众号: Mn2+
  • 个人博客首页
  • 注:学习交流使用!
  • 本文简介:Object Detection结构组成

正文

1、目标检测的核心组成
目标检测的结构可以分成三个部分:Backbone、Neck、Head。

(1)Backbone
①Backbone(主干网络)。既然说他是网络,Backbone充当了整个目标检测网络的一部分。Backbone在整个目标检测网络当中指的是特征提取网络,其作用是提取图片当中的特征信息。在CV领域,使用卷积神经网络(CNN)来提取所输入的图片的特征,提取彼此之间的共同点,通过不断地卷积,缩小特征图尺寸,从而找到最核心的部分。
②常用的Backbone主要有:

  • 提取能力强:VGG、ResNet(ResNet18,50,100)、ResNeXt、DenseNet等
  • 轻量:MobileNet、GhostNet、VoVNet、ShuffleNet、ThunderNet等

(2)Neck
①Neck(颈部)。Neck是目标检测框架中承上启下的关键环节。Neck在目标检测网络主要是把Backbone提取的特征进行融合,使得网络学习到的特征更具备多样性,提高检测网络的性能。更好地融合/提取Backbone所给出的feature,然后再交由后续的Head去检测,从而提高网络的性能。
它对Backbone提取到的重要特征进行再加工及合理利用,有利于下一步Head的具体任务学习,如分类、回归、keypoint、instance mask等常见的任务。Neck放在backbone和head之间的,是为了更好的利用backbone提取的特征。 像是最著名的FPN——《Feature Pyramid NetworksforObject Detection》 提出的FPN结构,将不同尺度的特征进行融合,充分利用Backbone提取的特征信息。
②常用的Neck主要有:

  • Additional blocks:SPP、ASPP、RFB、SAM
  • Path-aggregation blocks:FPN、PAN、NAS-FPN、Fully-connected FPN、BiFPN、ASFF、SFAM、NAS-FPN

(3)Head
①Head(头部)。在目标检测网络中一般叫做检测头。Head是获取网络输出内容的网络,利用之前提取的特征,Head利用这些特征,做出预测。Head可以理解为是根据Backbone提取出来的特征,从这些特征中预测目标的位置和类别。目标检测除了识别出物体的类别,更重要的是还要对物体进行定位,主要作用是定位和分类。
②常用的Head主要有:

  • Dense Prediction (one-stage):RPN、SSD、YOLO、RetinaNet(anchor based)、CornerNet、CenterNet、MatrixNet、FCOS(anchor free)
  • Sparse Prediction (two-stage):Faster R-CNN、R-FCN、Mask RCNN (anchor based)、RepPoints(anchor free)

(4)总结
通过对目标检测各个组成部分的介绍和描述。一个目标检测网络的组成可以由一个公式来描述
Detector = Backbone + Neck + Head
其中

  • Backbone:提取基础特征网络
  • Neck:提出一个好的结构或模块,更好适应 feature
  • Head:分类+定位

备注:基于transformer结构的新的目标检测范式(有兴趣学习一下)


关注

  • 个人微信公众号:Mn2+

  • 哔哩哔哩:不爱码字的小懒马儿

  • GitHub

-------------本文结束感谢您的阅读-------------