arXiv:2110.04004
Abstract
特征金字塔已成为多尺度CV任务(比如目标检测)中普遍存在的模块。考虑到其重要性,我们将CV模型分为三个部分:
- backbone: 用于生成特征金字塔
- core:用于对特征金字塔进行提炼
- head:用于生成最终的输出
现有对特征金字塔进行处理方案往往比较浅,往往聚焦于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
- top-down
- self-processing
- bottom-up
接下来,我们将主要聚焦于如何对上述操作进行最佳组合。采用这些通用模块,我们可以对主流的FPN与PANet进行重设计,见上图。注:上图仅为FPN与PANet架构的核心结构示意图,移除了transition部分操作。从上图我们可以看到两点:
- top-down与bottom-up操作是sequential形式的;
- 两种结构中均无self-processing操作。
最后,我们组合上述讨论得到了本文的TPN,见下图,它包含top-down、self-processing以及bottom-up等操作。
Communication vs Content
以上面的Figure4图示的TPN为例,它在两边进行基于comminication的top-down与bottom-up处理,在中间进行基于content的self-processing处理。可能有人会问:communication与content之间如何进行最佳均衡呢 ?
首先,我们来看一下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
一般来讲,top-down与bottom-up操作通过额外的特征对当前特征进行更新,要么更低分辨率,要么更高分辨率。上图给出了本文关于top-down与bottom-up的实现:
Experiments
在实验方面,训练数据集为MS-COCO,基线模型为一阶段检测器RetinaNet。其他训练细节与超参建议查看原文,这里略过。
TPN Experiments
上图给出了对标的FPN改进版示意图,前者加深了backbone,后者加深了head部分,这种改进版是为了确保计算量的相当。
上表给出了不同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
上表对比了TPN与其他方案的性能,从中可以看到:
- 在不同目标尺寸下,所提方案均具有更优的性能;
- 相比DETR与Deformable DETR,所提方案在小目标方面表现尚可,在大目标方面表现较差(这个对比不是那么公平,一个是模块一个架构,不是很方便进行公平对比)。
个人思考
这篇论文目前尚未开源,其性能几何暂时不可知。仅从笔者有限的经验来看:TPN比FPN和PANet有效是肯定的,但与最近一年其他FPN的改进对比如何就不可知了。
从应用角度来看,TPN不是那么实用。对于算法的应用来说,速度与精度均非常重要,甚至速度优于精度。而TPN的这种设计方式无疑会很大程度上导致推理速度变慢,故实用价值只能说不怎么样。
从创新角度来看,TPN的出发点其实很简单,就是对常见的FPN与PAN“缺失点”出发进行探索,这样就比较容易找到一个新的切入点,FPN与PAN中间插入一个并行的操作,也就是文中的self-processing。这种处理方式非常简单,其实还可以更简单,直接大一统是不是也可以呢?也许吧。
从实验对比来看,TPN一文的实验对比做的太粗糙了,对比的Neck方法均是非常“古老”的,而对最新的一些FPN改进则并未纳入对比中,一个小小的“败笔”。
首发:AIWalker
作者:Happy
推荐阅读
- Timm助力ResNet焕发“第二春”,无蒸馏且无额外数据,性能高达80.4%
- ICCV2021 | ArbSR:国防科大提出带尺度感知功能的新型任意尺度图像超分方案
- PPLCNet:CPU端强悍担当,吊打现有主流轻量型网络,百度提出CPU端的最强轻量型架构”
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通。