点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

这篇文章收录于ECCV2020,将Transformer机制应用于对特征金字塔FPN的改进上,整体思路新颖,和之前的将Transformer应用于目标检测、语义分割、超分辨率等任务的思想相类似,是一个能够继续挖掘的方向。

论文地址:https://arxiv.org/abs/2007.09451

代码地址:https://github.com/ZHANGDONG-NJUST/FPT

跨空间和尺度的特征交互是现代视觉识别系统的基础,因为它们引入了有益的视觉环境。通常空间上下文信息被动地隐藏在卷积神经网络不断增加的感受野中,或者被non-local卷积主动地编码。但是,non-local空间交互作用并不是跨尺度的,因此它们无法捕获在不同尺度中的对象(或部分)的非局部上下文信息。为此,本文提出了一种在空间和尺度上完全活跃的特征交互,称为特征金字塔Transformer(FPT)。它通过使用三个专门设计的Transformer,以自上而下和自下而上的交互方式,将任何一个特征金字塔变换成另一个同样大小但具有更丰富上下文的特征金字塔。FPT作为一个通用的视觉框架,具有合理的计算开销。最后,本文在实例级(即目标检测和实例分割)和像素级分割任务中进行了广泛的实验,使用不同的主干和头部网络,并观察到比所有baseline和最先进的方法一致的改进。

简介

现代视觉识别系统与上下文息息相关。由于卷积神经网络(CNN)的层次结构,如图1(a)所示,通过pooling池化、stride或空洞卷积等操作,将上下文编码在逐渐变大的感受野(绿色虚线矩形)中。因此,对最后一个特征图的预测基本上是基于丰富的上下文信息。

Scale also matters。尺度scale也很重要,传统的解决方案是对同一图像进行堆积多尺度的图像金字塔,其中较高/较低的层次采用较低/较高分辨率的图像进行输入。因此,不同尺度的物体在其相应的层次中被识别。然而,图像金字塔增加了CNN前向传递的耗时,因为每个图像都需要一个CNN来识别。幸运的是,CNN提供了一种特征金字塔FPN,即通过低/高层次的特征图代表高/低分辨率的视觉内容,而不需要额外的计算开销。如图1(b)所示,可以通过使用不同级别的特征图来识别不同尺度的物体,即小物体(电脑)在较低层级中识别,大物体(椅子和桌子)在较高层级中识别。

Sometimes the recognition——尤其是像语义分割这样的像素级标签,需要结合多个尺度的上下文。例如图1(c)中,要对显示的帧区域的像素赋予标签,也许从较低的层次上看,实例本身的局部上下文就足够了;但对于类外的像素,需要同时利用局部上下文和较高层次的全局上下文。

为此,本文提出了一种称为特征金字塔转换器Transformer(FPT)的新颖特征金字塔网络,用于视觉识别任务,例如实例级(即目标检测和实例分割)和像素级分割任务。简而言之,如图2所示,FPT的输入是一个特征金字塔,而输出是一个变换的金字塔,其中每个level都是一个更丰富的特征图,它编码了跨空间和尺度的非局部non-local交互作用。然后,可以将特征金字塔附加到任何特定任务的头部网络。顾名思义,FPT中特征之间的交互采用了 transformer-style。它具有整洁的查询query,键key和值value操作,在选择远程信息进行交互时非常有效,从而可以调整我们的目标:以适当的规模进行非局部non-local交互。另外,像其他任何transformer模型一样,使用TPU可以减轻计算开销。

大量的实验表明,FPT可以极大地改善传统的检测/分割网络:1)在MS-COCO test-dev数据集上,用于框检测的百分比增益为8.5%,用于遮罩实例的mask AP值增益为6.0%;2)对于语义分割,分别在Cityscapes和PASCAL VOC 2012 测试集上的增益分别为1.6%和1.2%mIoU;在ADE20K 和LIP 验证集上的增益分别为1.7%和2.0%mIoU。

本文方法

图2. 本文提出的FPT网络的总体结构。不同的纹理图案表示不同的特征转换器,不同的颜色表示具有不同比例的特征图。“ Conv”表示输出尺寸为256的3×3卷积。在不失一般性的前提下,顶层/底层特征图没有rendering/grounding 转换器。

如图2的FPT分解图所示,主要是是三种transformer的设计:1)自变换器Self-Transformer(ST)。它是基于经典的同级特征图内的非局部non-local交互,输出与输入具有相同的尺度。2)Grounding Transformer(GT)。它是以自上而下的方式,输出与下层特征图具有相同的比例。直观地说,将上层特征图的 "概念 "与下层特征图的 "像素 "接地。特别是,由于没有必要使用全局信息来分割对象,而局部区域内的上下文在经验上更有参考价值,因此,还设计了一个locality-constrained的GT,以保证语义分割的效率和准确性。3)Rendering Transformer(RT)。它是以自下而上的方式,输出与上层特征图具有相同的比例。直观地说,将上层 "概念 "与下层 "像素 "的视觉属性进行渲染。这是一种局部交互,因为用另一个远处的 "像素 "来渲染一个 "对象 "是没有意义的。每个层次的转换特征图(红色、蓝色和绿色)被重新排列到相应的地图大小,然后与原始map连接,然后再输入到卷积层,将它们调整到原始 "厚度"。

1、Non-Local Interaction Revisited

传统的Non-Local Interaction

2、Self-Transformer

自变换器(Self-Transformer,ST)的目的是在同一张特征图上捕获共同发生的对象特征。如图3(a)所示,ST是一种修改后的非局部non-local交互,输出的特征图与其输入特征图的尺度相同。与其他方法区别在于,作者部署了Mixture of Softmaxes(MoS)作为归一化函数,事实证明它比标准的Softmax在图像上更有效。具体来说,首先将查询q和键k划分为N个部分。然后,使用Fsim计算每对图像的相似度分数。基于MoS的归一化函数Fmos表达式如下:

自变换器可以表达为:

3、Grounding Transformer

Grounding Transformer(GT)可以归类为自上而下的非局部non-local交互,它将上层特征图Xct中的 "概念 "与下层特征图Xf中的 "像素 "进行对接。输出特征图与Xf具有相同的尺度。一般来说,不同尺度的图像特征提取的语义或语境信息不同,或者两者兼而有之。此外,根据经验,当两个特征图的语义信息不同时,euclidean距离的负值比点积更能有效地计算相似度。所以我们更倾向于使用euclidean距离Fedu作为相似度函数,其表达方式为:

于是,Grounding Transformer可以表述为:

在特征金字塔中,高/低层次特征图包含大量全局/局部图像信息。然而,对于通过跨尺度特征交互的语义分割,没有必要使用全局信息来分割图像中的两个对象。从经验上讲,查询位置周围的局部区域内的上下文会提供更多信息。这就是为什么常规的跨尺度交互(例如求和和级联)在现有的分割方法中有效的原因。如图3(b)所示,它们本质上是隐式的局部non-local样式,但是本文的默认GT是全局交互的

Locality-constrained  Grounding  Transformer。因此,作者引入了局域性GT转换进行语义分割,这是一个明确的局域特征交互作用。如图3(c)所示,每个q(即低层特征图上的红色网格)在中心区域的局部正方形区域内与k和v的一部分(即高层特征图上的蓝色网格)相互作用。坐标与q相同,边长为正方形。特别是,对于k和v超出索引的位置,改用0值。

4、Rendering Transformer

Rendering Transformer(RT)以自下而上的方式工作,旨在通过将视觉属性合并到低层级“像素”中来渲染高层级“概念”。如图3(d)所示,RT是一种局部交互,其中该局部是基于渲染具有来自另一个遥远对象的特征或属性的“对象”是没有意义的这一事实。

在本文的实现中,RT不是按像素进行的,而是按整个特征图进行的。具体来说,高层特征图定义为Q,低层特征图定义为K和V,为了突出渲染目标,Q和K之间的交互是以通道导向的关注方式进行的,K首先通过全局平均池化(GAP)计算出Q的权重w。然后,加权后的Q(即Qatt)通过3×3卷积进行优化,V通过3×3卷积与步长来缩小特征规模(图3(d)中的灰色方块)。最后,将优化后的Qatt和下采样的V(即Vdow)相加,再经过一次3×3卷积进行细化处理。

实验与结果

消融实验:

对比实验

可视化对比

更多细节可参考论文原文。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉优质源码即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

整理不易,请给工坊点赞和在看

ECCV2020 | 即插即用,涨点明显!FPT:特征金字塔Transformer相关推荐

  1. 即插即涨2-3%!AC-FPN:用于目标检测的注意力引导上下文的特征金字塔网络

    关注 点击关注上方"AI深度视线",并"星标"公号 技术硬文,第一时间送达! 精彩内容 AC-FPN--用于目标检测的注意力引导上下文的特征金字塔网络 ,即插即 ...

  2. FPT:又是借鉴Transformer!这次多方向融合特征金字塔 | ECCV 2020

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:晓飞的算法工程笔记 论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设 ...

  3. 重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合

    原文链接:重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合 论文地址:https://arxiv.org/abs/2006.02334 代码地址(基于mmd ...

  4. 检测器:用递归特征金字塔和可切换的阿托洛斯卷积检测物体

    Abstract 许多现代的目标探测器都采用了"三思"机制,表现出了优异的性能.本文将此机制应用于目标检测的主干设计中.在宏层次上,我们提出了递归特征金字塔,它将来自特征金字塔网络 ...

  5. 性能超FPN!北大、阿里等提多层特征金字塔网络

    作者 | Qijie Zhao等 编译 | 李杰 出品 | AI科技大本营(ID:rgznai100) 特征金字塔网络具有处理不同物体尺度变化的能力,因此被广泛应用到one-stage目标检测网络(如 ...

  6. 详解何恺明团队4篇大作 !(附代码)| 从特征金字塔网络、Mask R-CNN到学习分割一切

    来源:新智元 作者:krish 本文5000字,建议阅读10+分钟. 本文介绍FAIR何恺明.Tsung-Yi Lin等人的团队在计算机视觉领域最新的一些创新,包括特征金字塔网络.RetinaNet. ...

  7. CVPR 2019 | NAS-FPN:基于自动架构搜索的特征金字塔网络

    作者丨孙明珊 学校丨哈尔滨工业大学(深圳)硕士生 研究方向丨目标检测 研究动机 当前目标检测网络中采用特征金字塔网络(FPN)结构解决多尺度的问题,但是这些 FPN 都是人工事先设计,并不一定是最优的 ...

  8. 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计

    过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...

  9. 特征金字塔 Feature Pyramid Networks for Object Detection

    特征金字塔是用于检测不同尺度的对象的识别系统中的基本组件.但是最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们是计算密集型和内存密集型的.在本文中,我们利用深层卷积网络固有的多尺度金字塔层 ...

最新文章

  1. 嵌入式C程序基础与编程结构
  2. mysql 1449 : The user specified as a definer ('root'@'%') does not exist
  3. ITK:二进制图像的最小和最大曲率流
  4. python逻辑运算符的使用_总结Python中逻辑运算符的使用
  5. java中局部变量和成员变量
  6. Arduino笔记-使用RFID-RC522读取IC卡卡号
  7. c++随机打乱数组_第四天 Java 数组与排序
  8. 常见浏览器bug以及解决方法
  9. 满二叉树与完全二叉树入门
  10. Tensorflow 2.x代码中如何控制随机性以保证结果可重复性
  11. mysql2 connector_2.升级mysql-connector 5到8遇到的问题
  12. 计算机管理储存u盘无法使用,小编教你无法格式化u盘怎么解决
  13. EFCore-5 Migration操作
  14. PIL(pillow)读取图片自动旋转的问题
  15. 使用Route报错:A <Route> is only ever to be used as the child of <Routes> element, never rendered directl
  16. bzoj-1135 Lyz
  17. 洛谷P4188 Lifeguards S
  18. android pdf转jpg格式,在Android中将图片转换为PDF
  19. SLCP认证辅导,SLCP认证产品应覆盖不同的产品类别
  20. 「GitLab篇」如何用Git平台账号登录建木CI

热门文章

  1. linux学习笔记十四:安装SAMBA(Server Message Block)
  2. 查看MS SQL Server数据库每个表占用的空间大小
  3. 在Windows 2003 64位下ASP无法连接Access数据库的解决办法
  4. MCSE2003学习之六
  5. 接口级故障的应对方法
  6. 实现一个全链路监控平台很难吗?一点都不难。。。
  7. 【腾讯二面】5s内建立多少个mysql连接?
  8. 阿里云二面:你对限流了解多少?
  9. 一次I/O问题引发的P0重大故障[改版重推]
  10. 某快手程序员吐槽:月薪四万很惶恐!和老婆亲热时都在想工作,薪资越高,做人越怂!...