编者按:深度学习知名博主jonathan hui简要介绍了fpn(特征金字塔网络)的直觉、架构和表现。
检测不同尺度的目标(尤其是其中的小目标)很有挑战性。我们可以使用同一图像的不同尺度版本来检测目标(下图左部)。然而,处理多尺度图像很费时,内存需求过高,难以同时进行端到端训练。因此,我们可能只在推理阶段使用这种方法,以尽可能提高精确度,特别是在竞赛之类不顾及速度的场景中。我们也可以创建特征金字塔来检测目标(下图右部)。然而接近图像的、由低层结构组成的特征映射在精确目标预测上效果不佳。
来源:fpn论文
特征金字塔网络(feature pyramid network,fpn)是为这一金字塔概念设计的特征提取器,设计时考虑到了精确性和速度。它代替了faster r-cnn之类的检测模型的特征提取器,生成多层特征映射(多尺度特征映射),信息的质量比普通的用于特征检测的特征金字塔更好。
数据流
来源:fpn论文
fpn由自底向上和自顶向下两个路径组成。自底向上的路径是通常的提取特征的卷积网络。自底向上,空间分辨率递减,检测更多高层结构,网络层的语义值相应增加。
fpn特征提取(修改自fpn论文中的图片)
ssd基于多个特征映射进行检测。然而,低层并不用于目标检测——这些层的分辨率很高,但语义值不够高,因此,为了避免显著的速度下降,目标检测时不使用这些层。因为ssd检测时仅适用高层,所以在小目标上的表现要差很多。
修改自fpn论文中的图片
而fpn提供了自顶向下的路径,基于语义较丰富的层构建分辨率较高的层。
修改自fpn论文中的图片
尽管重建的层语义足够丰富,但经过这些下采样和上采样过程,目标的位置不再准确了。因此fpn在重建层和相应的特征映射间增加了横向连接,以帮助检测器更好地预测位置。这些横向连接同时起到了跳跃连接(skip connection)的作用(类似残差网络的做法)。
修改自fpn论文中的图片
自底向上路径
自底向上路径由很多卷积模块组成,每个模块包含许多卷积层。自底向上的过程中,空间维度逐模块减半(步长翻倍)。每个卷积模块的输出将在自顶向下的路径中使用。
自顶向下路径
上图中,fpn使用一个1x1的卷积过滤器将c5(最上面的卷积模块)的频道深度降至256维,得到m5。接着应用一个3x3的卷积得到p5,p5正是用于目标预测的第一个特征映射。
沿着自顶向下的路径往下,fpn对之前的层应用最近邻上采样(x2)。同时,fpn对自底向上通路中的相应特征映射应用1x1卷积。接着应用分素相加。最后同样应用3x3卷积得到目标检测的特征映射。这一过滤器减轻了上采样的混叠效应。
这一过程在p2后停止,因为c1的空间维度太高了。如果不停,依法炮制得到p1的话,会大大拖慢进程。
fpn搭配rpn
fpn自身并不是目标检测器,而是一个配合目标检测器使用的特征检测器。例如,使用fpn提取多层特征映射后将其传给rpn(基于卷积和锚的目标检测器)检测目标。rpn在特征映射上应用3x3卷积,之后在为分类预测和包围盒回归分别应用1x1卷积。这些3x3和1x1卷积层称为rpn头(head)。其他特征映射应用同样的rpn头。
fpn搭配fast r-cnn和faster r-cnn
首先简短地概览下fast r-cnn和faster r-cnn的数据流。它基于特征映射层创建roi(感兴趣区域)。然后使用roi和特征映射层创建特征片,以传给roi池化。
fpn生成了特征映射金字塔后,应用rpn(见上一节)生成roi。根据roi的尺寸,选择最合适的尺度上的特征映射以提取特征片。
基于roi尺寸选择特征映射的具体公式为:
其中,w和h为roi的宽度和高度,k0= 4,k对应fpn中的pk层。
所以,如果k = 3,我们将选择p3作为特征映射,应用roi池化,并将结果传给fast r-cnn/faster r-cnn头(两者的头一致),以完成预测。
分割
类似mask r-cnn,fpn也是一个优良的图像分割提取掩码。下图中,应用5x5的滑窗于特征映射,以生成14x14分割。之后,合并不同尺度的掩码以形成最终的掩码预测。
来源:fpn论文
结果
fpn搭配rpn,提升ar(average recall,平均召回)至56.3,相比rpn基线提升了8. 在小目标上的提升更是达到了12.9.
来源:fpn论文
基于fpn的faster r-cnn的推理时间为0.148秒/张(单nvidia m40 gpu,resnet-50),单尺度resnet-50基线的速度是0.32秒/张。
来源:fpn论文
fpn和当前最先进的检测器实力相当。事实上,fpn击败了coco 2016和2015挑战的赢家。
来源:fpn论文
经验总结
下面是从试验数据中总结出的一些经验。
在单个高分辨率特征映射层上增加更多锚不足以提升精确度。
自顶向下路径重建了富含语义信息的分辨率。
但我们需要横向连接,以便将更多准确的目标空间信息加回来。
在coco数据集上,自顶向下路径和横向连接将精确度提升了8。小目标的提升达到了12.9.
智创全“芯”生态,青云系列芯片设计原型平台重磅发布
蓝牙耳机什么牌子好?四款主动降噪蓝牙耳机推荐
智能手环的PCB设计的注意事项
桥式整流电路计算公式及输出电压波形图
辉芒微兼容ST003系列MCU芯片的的推荐说明
FPN(特征金字塔网络)的直觉、架构和表现简要介绍
乐播乐投荣获“年度优秀智慧盒子”,创造大小屏互联“无线”可能
一文详解Linux内核源码组织结构
巴塞罗那绽放中国智能 百度国际化组团亮相MWC
探讨自动驾驶在传感器选型和布置上考虑的问题
氨燃料内燃机探索与研发的新突破
就在今晚23:30三星在美国纽约发布Galaxy Note9,将推出全新配色
芯原科技获认定为2023年临港新片区企业研发创新机构
使用高速Micro的串口-Using the High-Sp
工控机的作用与特点
iQOO 618优惠多多:直降1400元,五折爆款等你来抢
食品添加剂检测仪对食品行业的分析
全球首款柔性可穿戴体温计进入量产
电路板、工控电路板、信号板等维修的技术处理及维修方法
大讲解PATHRROT X2信道模拟器在NB-IoT测试中的应用