Detection Head、Neck、Backbone是什么
本文最后更新于 2023年9月18日 上午
Detection Head、Neck、Backbone是什么
简而言之,基于深度学习的目标检测模型的结构可以概括为:输入->主干->脖子->头->输出
主干网络提取特征,脖子提取一些更复杂的特征,然后头部计算预测输出
Backbone
我们一般将Backbone译作骨干网络或主干网络,它主要指网络中用于特征提取的部分。一般采用已在大型数据集(例如ImageNet|COCO等)上完成预训练的模型,例如:ResNet-50、Darknet53、VGG等。
Neck
用在Backbone和Detection Head之间用来更好地融合和提取特征,进一步提升特征的多样性及鲁棒性。一些模型会添加一些用于收集不同阶段中特征图的网络层。
Detection Head
- 获取网络输出,利用提取特征做出预测
- 后续连接的网络层由于主要是服务于detection任务,因此称之为“Detection head”
- Detection Head译作检测头是获取模型输出内容的网络,利用之前提取的特征做出预测,主要包括预测目标的种类和**位置(bounding boxes)**。
其他
Bottle Neck:瓶颈,通常指网络输入输出数据维度不同,通常输出维度比输入维度小很多、
GAP:Global Average Pool全局平均池化,将某个通道的特征取平均值
Warm up:小的学习率先训练几个epoch,这是因为网络的参数是随机初始化的,一开始就采用较大的学习率容易数值不稳定
引用
Detection Head、Neck、Backbone是什么
https://hexo.leelurker.com/posts/57151