论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设计的特征增强操作,分别用于借鉴层内特征进行增强、借鉴高层特征进行增强以及借鉴低层特征进行增强,FPT的输出维度与输入一致,能够自由嵌入到各种包含特征金字塔的检测算法中,从实验结果来看,效果不错



来源:晓飞的算法工程笔记 公众号

论文: Feature Pyramid Transformer

Introduction


  讲论文前先捋一下CNN网络结构相关的知识,论文的思想主要来自两个,一个是特征金字塔结构,一个是Non-local网络:

  • 首先是特征金字塔,如图1a,CNN网络以层级结构的形式逐层提取更丰富的特征,然后使用最后的特征层进行预测。但对于一些小物体而言,最后一层的特征图往往没有足够的像素点进行预测。为了更好地对不同大小的物体进行预测,人们提出图1b的金字塔特征,大物体使用高层的粗粒度特征,小物体使用底层的细粒度特征。对于一些pixel-level任务,比如语义分割,需要综合不同层的上下文信息进行细致的预测,所以就需要图1c的预测结构。
  • 其次是Non-local network,该网络借鉴了NLP模型的Self-attention思想,如图1d所示,能够借鉴特征图上的其它特征点来对当前特征点进行增强。

  基于上面两个思想,论文提出了FPT(Feature Pyramid Transformer),结构如图1e所示,核心在特征金字塔上进行类似Non-local的特征增强,然后再使用多层特征进行预测。FPT设计了3种特征增强操作,也是论文的主要贡献:

  • ST(Self-Transformer):跟non-local操作一样在对当前层进行特征增强。
  • GT(Grounding Transformer):这是top-down形式的non-local操作,将高层特征(尺寸小的)分别用于低层特征的增强。
  • RT(Rendering Transformer):这是bottom-up形式的non-local操作,将低层特征(尺寸大的)分别用于高层特征的增强。

Feature Pyramid Transformer


  FPT的特征转换流程如图2所示,输入为金字塔特征,首先对每层特征分别进行ST、GT、RT特征增强得到多个增强后的特征,然后对增强的特征按尺寸进行排序,将相同大小的特征concate到一起,通过卷积将增强后的特征维度恢复到输入时的相同维度。

Non-Local Interaction Revisited

  由于论文提出的特征增强操作与non-local操作有很大关系,这里需要先介绍下non-local的思想。常规non-local操作的输入为单特征图\(X\)上的queries(Q), keys(K)和values(V),输出与\(X\)尺寸相同的增强特征\(\hat{X}\):

\(q_i=f_q(X_i)\in Q\),\(k_j=f_k(X_j)\in K\),\(v_j=f_v(X_j)\in V\),\(f_q(\cdot)\)、\(f_k(\cdot)\)和\(f_v(\cdot)\)为对应的线性变换,\(X_i\)和\(X_j\)为特征图\(X\)上的第\(i^{th}\)和\(j^{th}\)位置上的特征,\(F_{sim}\)为相似度函数,默认为点积,\(F_{nom}\)为归一化函数,默认为softmax,\(F_{mul}\)为权重集成函数,默认为矩阵相乘,\(\hat{X}_i\)为输出特征图\(\hat{X}\)的第\(i^{th}\)位置上的特征。

Self-Transformer

  ST为改进版non-local操作,如图1a所示,主要有两点不同:

  • 将\(q_i\)和\(k_j\)分为\(\mathcal{N}\)部分,然后计算每部分的每组\(q_{i,n}\)和\(k_{j,n}\)相似度分数\(s^n_{i,j}\)
  • 相似度计算使用改进的MoS(Mixture of Softmaxes)函数\(F_{mos}\):



    \(\pi_n=Softmax(w^T_n \overline{k})\)为特征集成时的权重,\(w_n\)为可学习的线性变换,\(\overline{k}\)为所有\(k_j\)的均值。

  基于上述的改进,ST定义为:

Grounding Transformer

  GT是top-down形式的non-local操作,如图2c所示,借用高层的粗粒度特征\(X^c\)来增强低层的细粒度特征\(X^f\)。在计算时,相似度计算由点积替换为更高效的欧氏距离\(F_{eud}\):

\(q_i=f_q(X^f_i)\),\(k_j=f_k(X^c_j)\)。GT跟ST一样将\(q_i\)和\(k_j\)分为\(\mathcal{N}\)部分,完整的定义为:

  在特征金字塔中,高低层特征分别包含图片的全局和局部信息,而对于语义分割任务,不需要关注过多高层的全局信息,更多的是需要query位置附近的上下文信息,所以图3b的跨层卷积对语义分割任务十分有效。由于GT操作是全局计算,所以论文提出了局部约束(Locality-constrained)的GT操作LGT,如图3c所示,每个\(q_i\)只与高层局部区域的\(k_j\)和\(v_j\)进行计算。高层局部区域以\(q_i\)对应的位置为中心,边长(square size)为固定值。如果高层的局部区域越出了特征图,则使用0代替。

Rendering Transformer

  与GT相反,RT是bottom-up形式的non-local操作,借用低层的细粒度特征来增强高层的粗粒度特征。RT也是局部约束(Locality-constrained)的,以channel-wise进行计算的,定义高层特征为\(Q\),低层特征为\(K\)和\(V\),计算步骤包含如下:

  • 对\(K\)和进行全局平均池化得到权重\(w\)。
  • 使用权重\(w\)对\(Q\)进行加权得到\(Q_{att}\)。
  • 对\(V\)进行带stride的\(3\times 3\)卷积下采样得到\(V_{dow}\)。
  • 使用\(3\times 3\)卷积对\(Q_{att}\)进行调整,并与\(V_{dow}\)相加,再过一层\(3\times 3\)卷积后输出。

  完整RT的定义为:

\(F_{att}(\cdot)\)为外积函数,\(F_{scov}(\cdot)\)为带stride的\(3\times 3\)卷积,\(F_{conv}(\cdot)\)为用于调整的\(3\times 3\)卷积,\(F_{add}(\cdot)\)为包含\(3\times 3\)卷积的特征相加函数。

Experiments


  在COCO上与其它算法的对比实验。

  在多个数据集上的进行语义分割性能对比。

Conclusion


  论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设计的特征增强操作,分别用于借鉴层内特征进行增强、借鉴高层特征进行增强以及借鉴低层特征进行增强,FPT的输出维度与输入一致,能够自由嵌入到各种包含特征金字塔的检测算法中,从实验结果来看,效果不错。





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

FPT:又是借鉴Transformer,这次多方向融合特征金字塔 | ECCV 2020的更多相关文章

  1. Transformer详解:各个特征维度分析推导

    谷歌在文章<Attention is all you need>中提出的transformer模型.如图主要架构:同样为encoder-decoder模式,左边部分是encoder,右边部 ...

  2. 预训练模型——开创NLP新纪元

    预训练模型--开创NLP新纪元 论文地址 BERT相关论文列表 清华整理-预训练语言模型 awesome-bert-nlp BERT Lang Street huggingface models 论文 ...

  3. 【Gabor】基于多尺度多方向Gabor融合+分块直方图的表情识别

    Topic:表情识别Env: win10 + Pycharm2018 + Python3.6.8Date:   2019/6/23~25 by hw_Chen2018                  ...

  4. 三大特征提取器(RNN/CNN/Transformer)

    目录 三大特征提取器 - RNN.CNN和Transformer 简介 循环神经网络RNN 传统RNN 长短期记忆网络(LSTM) 卷积神经网络CNN NLP界CNN模型的进化史 Transforme ...

  5. FPT: Feature Pyramid Transfomer

    导言: 本文介绍了一个在空间和尺度上全活跃特征交互(fully active feature interaction across both space and scales)的特征金字塔transf ...

  6. ICCV2021 | SOTR:使用transformer分割物体

    ​前言 本文介绍了现有实例分割方法的一些缺陷,以及transformer用于实例分割的困难,提出了一个基于transformer的高质量实例分割模型SOTR. 经实验表明,SOTR不仅为实例分割提供了 ...

  7. 数据融合(data fusion)原理与方法

    数据融合(data fusion)原理与方法 数据融合(data fusion)最早被应用于军事领域.     现在数据融合的主要应用领域有:多源影像复合.机器人和智能仪器系统.战场和无人驾驶飞机.图 ...

  8. 目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向

    目标检测,主要问题发展,非极大值抑制中阈值也作为参数去学习更满足end2end,最近发展趋势和主要研究思路方向 待办 目标检测问题时间线 特征金字塔加滑窗 对象框推荐 回归算法回归对象框 多尺度检测 ...

  9. 目标检测中特征融合技术(YOLO v4)(下)

    目标检测中特征融合技术(YOLO v4)(下) ASFF:自适应特征融合方式 ASFF来自论文:<Learning Spatial Fusion for Single-Shot Object D ...

  10. 目标检测中特征融合技术(YOLO v4)(上)

    目标检测中特征融合技术(YOLO v4)(上) 论文链接:https://arxiv.org/abs/1612.03144 Feature Pyramid Networks for Object De ...

随机推荐

  1. 欧拉公式 Euler's Formula

    欧拉公式是数学中最重要的公式之一, 它涉及到了复数, 无理数, 三角函数, 简单优美 \(e^{i\theta} = cos(\theta) + isin(\theta)\) 欧拉公式代表的含义并不是 ...

  2. EmuELEC 4.3 安装和乐视手柄 LeWGP-201 evremap问题解决

    一年多前安装了EmuELEC3.9之后, 就一直没有再更新过, 平时玩玩小游戏也很正常. 昨天心血来潮想把吃灰的乐视手柄用起来, 结果发现3.9里面没有evremap 命令. 猜测可能是这个版本的问题 ...

  3. Android自动化测试框架uiautomator2详解

    1 uiautomator2 简介 ​ uiautomator2 是 一种 Android 自动化测试框架,提供了点击.长按.输入文本.滑动.拖拽.截屏等方法,能够模拟用户的各种动作.用户可以通过控件 ...

  4. 【Android】使用Binder实现进程间通讯简单案例

    1 前言 使用AIDL实现进程间通讯简单案例 和 使用AIDL实现进程间传递对象案例 中介绍了使用 AIDL 进行进程间通讯,文中提到在编写完 aidl 文件(如:IMessageManager.ai ...

  5. Js的GC机制

    Js的GC机制 在Js七种基本类型中的引用类型Object的变量其占据内存空间大且大小不固定,在堆内存中实际存储对象,在栈内存中存储对象的指针,对于对象的访问是按引用访问的.在栈区中执行的变量等是通过 ...

  6. Git实战系列教程

    介绍 本文详细记录了Git一系列核心概念和工作中常用的操作命令,通篇以实际出发拒绝过度理论,值得典藏:). 概念 版本管理系统 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的 ...

  7. 2021-10-25 css中零值0后面是否要省略单位

    原理 在css中如果值为0,可以省略单位. 在css应用场景中,有可能是多端多人维护.即可能维护的人有A及B及C-,应用场景中有电脑端及手机端及小程序及打印机之类的. 结论 个人认为不要省略单位,不要 ...

  8. JAVA 考试管理系统 大作业(一):需求分析

    好家伙,有需要的拿去借鉴吧(虽然我也百度了很多) 题目如下: 题目四:考试管理系统 (选做要求:使用图形用户界面) 分3种用户角色:教务员(具有管理权限).教师.学生 l  教务员:可以进行用户管理( ...

  9. Java 泛型举例

    1 package com.bytezero.genericity; 2 3 import org.junit.Test; 4 5 import java.util.*; 6 7 /** 8 * @a ...

  10. Java this关键字使用 详解+ 证明

    1 package com.bytezero.thistest; 2 /** 3 * 4 * @Description 5 * @author Bytezero·zhenglei! Email:420 ...