Happy · 4 天前

TPN: FPN的变革者,你所用检测器的Neck该更新了

image.png
arXiv:2110.04004

Abstract

特征金字塔已成为多尺度CV任务(比如目标检测)中普遍存在的模块。考虑到其重要性,我们将CV模型分为三个部分:

  • backbone: 用于生成特征金字塔
  • core:用于对特征金字塔进行提炼
  • head:用于生成最终的输出
    image.png
    现有对特征金字塔进行处理方案往往比较浅,往往聚焦于top-down或者bottom-up方式通讯处理 (communication-based processing)。本文提出一种新的新的架构TPN(Trident Pyramid Network),它可以进行更深设计,同时在通讯处理与字处理之间具有更好的均衡。

当在COCO检测任务上使用TPN时可以看到一致性性能提升,以1.5AP指标优于BiFPN基线 。此外,我们发现:当为TPN添加更多计算量(而非Backbone)时,ResNet50+TPN以1.7AP指标超过约了ResNet101+FPN ,同时两者具有相当的计算复杂度。

Method

TPN Core Architecture

image.png
image.png

  • top-down
  • self-processing
  • bottom-up

image.png

接下来,我们将主要聚焦于如何对上述操作进行最佳组合。采用这些通用模块,我们可以对主流的FPN与PANet进行重设计,见上图。注:上图仅为FPN与PANet架构的核心结构示意图,移除了transition部分操作。从上图我们可以看到两点:

  • top-down与bottom-up操作是sequential形式的;
  • 两种结构中均无self-processing操作。

image.png

最后,我们组合上述讨论得到了本文的TPN,见下图,它包含top-down、self-processing以及bottom-up等操作。

image.png

Communication vs Content

以上面的Figure4图示的TPN为例,它在两边进行基于comminication的top-down与bottom-up处理,在中间进行基于content的self-processing处理。可能有人会问:communication与content之间如何进行最佳均衡呢

image.png

首先,我们来看一下self-processing操作。我们将其定义为上图形式。其中Bottleneck层的数量B决定了TPN中self-processing的数量。

然后,每个TPN层包含一个top-down、一个bottom-up,TPN层的数量L决定了TPN中的communication-processing的数量。因此,通过改变B和L,我们可以对两者进行均衡。

Top-down and Bottom-up Operations

image.png

一般来讲,top-down与bottom-up操作通过额外的特征对当前特征进行更新,要么更低分辨率,要么更高分辨率。上图给出了本文关于top-down与bottom-up的实现:

image.png

Experiments

在实验方面,训练数据集为MS-COCO,基线模型为一阶段检测器RetinaNet。其他训练细节与超参建议查看原文,这里略过。

TPN Experiments

image.png

上图给出了对标的FPN改进版示意图,前者加深了backbone,后者加深了head部分,这种改进版是为了确保计算量的相当。

image.png

上表给出了不同TPN配置的性能对比,从中可以看到:

  • 四种不同的TPN架构的性能非常相近,均在413-41.8AP之间。更大的L参数要比更大的B参数带来稍高的性能,这说明:两者之间的均衡更强于communication-processing,但是当完全移除content-processing后,TPN退化为PANet架构,性能大幅下降到38.8;
  • 对比TPN与PANet以及BiFPN,我们可以看到:TPN架构以1.0-1.5AP指标显著优于BiFPN
  • 对比TPN与bFPN以及hFPN,我们可以看到:TPN表现最佳 。比如,ResNet50+TPN组合以1.7AP指标优于ResNet101-FPN ,而ResNet101-FPN具有与ResNet+hFPN、ResNet50+bFPN相当的性能。

总而言之,TPN不仅优于PANet以及BiFPN等知名结果,同时优于重backbone基线与重head基线。

Comparison with Other Methods

image.png

上表对比了TPN与其他方案的性能,从中可以看到:

  • 在不同目标尺寸下,所提方案均具有更优的性能;
  • 相比DETR与Deformable DETR,所提方案在小目标方面表现尚可,在大目标方面表现较差(这个对比不是那么公平,一个是模块一个架构,不是很方便进行公平对比)。

个人思考

这篇论文目前尚未开源,其性能几何暂时不可知。仅从笔者有限的经验来看:TPN比FPN和PANet有效是肯定的,但与最近一年其他FPN的改进对比如何就不可知了。

从应用角度来看,TPN不是那么实用。对于算法的应用来说,速度与精度均非常重要,甚至速度优于精度。而TPN的这种设计方式无疑会很大程度上导致推理速度变慢,故实用价值只能说不怎么样。

从创新角度来看,TPN的出发点其实很简单,就是对常见的FPN与PAN“缺失点”出发进行探索,这样就比较容易找到一个新的切入点,FPN与PAN中间插入一个并行的操作,也就是文中的self-processing。这种处理方式非常简单,其实还可以更简单,直接大一统是不是也可以呢?也许吧。

从实验对比来看,TPN一文的实验对比做的太粗糙了,对比的Neck方法均是非常“古老”的,而对最新的一些FPN改进则并未纳入对比中,一个小小的“败笔”。

首发:AIWalker
作者:Happy

推荐阅读

1 阅读 184
推荐阅读
0 条评论
关注数
2085
内容数
107
夯实深度学习知识基础, 涵盖动态滤波,超分辨,轻量级框架等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
Arm中国学堂公众号
关注Arm中国学堂
实时获取免费 Arm 教学资源信息
Arm中国招聘公众号
关注Arm中国招聘
实时获取 Arm 中国职位信息