• 这是Facebook AI Research提出的ViTDet模型,对Vit进行了最小限度的修改以使得它具有多尺度特征图,从而可以用于目标检测,并取得较好的性能。

  • 现有的其它Transformer用于目标检测的模型都致力于利用transformer复现卷积神经网络的结构,从而具有FPN的结构。但本文从另一个方向出发,希望基于ViT进行最少限度的修改,这些修改都是关键修改,从而使得ViT的网络能够进行目标检测任务。并且可以利用ViT的预训练模型,而无需重新进行预训练。

  • 通过实验发现,FPN的结构对于ViT来说并非必要的,只需要从ViT的最后一层特征获取信息即可。文章对ViT的修改主要基于三点,一点是从最后一层取出pyramid的信息送进预测头进行多尺度目标间的预测,一点是利用了non-overlapping的window attention,一点是利用cross-window block来进行全局的attention。

simple feature pyramid

  • 文章尝试了三种方案,实验结果显示最后一种比较有效,前面两种完全没必要:


  • 这个对比实验带给我们很多信息,

    • 首先b c 的比较说明了,在同一深度下,从小尺度特征图到大尺度特征图的信息并不能带来多少帮助;
    • 其次,a b的比较说明了,对于某个尺度的预测头来说,最后一层特征图的特征图比前面的特征图更有效(这一定程度上挑战了FPN的尺度论,FPN认为大尺度目标需要在浅层特征图的skip connection中获取信息)

backbone adaptation

  • 原来的ViT对全图的token都进行attention在小图上进行图像分类任务,是可以的。一旦到了大图上进行全图的attention,显存消耗会很大,速度也会很慢。为此许多之前的方法提出了各种机制避免全图的attention,从而能够加快速度节省显存,从而可以把transofmer用到大图上。这些方法都修改了网络的结构和机制,因此都需要自行进行预训练。
  • 而本文非常简单地,就用non-overlap 的 window attention (即对图片划分window,只在window内的token之间做attention而无需对全图所有的token进行attention)来限制attention的内存消耗和运算量,并且这一修改无需重新进行预训练,原先预训练好的ViT可以直接用,只需要在fine-tuning的时候改成window attention机制就行,是兼容的。
  • 为了解决 non-overlap 的 window attention 出现的window之间信息不流通问题,本文使用了cross-window blocks,仅在ViT4个stage(原先也没有stage的说法,其实就是,比如有24个block,那就每个stage分6个block给它,没有什么特殊的block)的最后一个block上进行cross-window 的prppagation。 cross-window attention由可以有两种实现方式
    • 一种是直接简单地把window attention改回成全图的attention。举个例子,在前向传播的24个window attention block里面,把第6、12、18、24个block改成全图的attention。由于只改了4个,所以增加的显存和运算量并不会太严重。
    • 另一种方式是,在第6、12、18、24个block后面插入一些残差的卷积块。通过卷积使得相邻的window之间的信息得以相互流通。并且通过残差的结构使得网络可以稳定地从预训练没有这些卷积块的情况下finetune下去。
  • 这两种设计的结果都不错。文章还对比了shift window策略。总的来说看起来第二个方案,也就是卷积的方案更快更好:

  • 上面卷积的naive、basic和bottleneck分别表示一层3x3卷积、两层3x3卷积、以及一层1x1+一层3x3+一层1x1的结构。

discussion

  • 目标检测网络由许多组件构成,有些组件是 task agnostic 的,与特定任务无关,如网络的backbone;有些组件是task-specific的,他们针对目标检测这个特定的任务设计,同时具有一些先验的归纳偏置(inductive bias),如ROI heads。
  • task agnostic的组件可以在非目标检测的任务上进行预训练,从而在目标检测数据集图片数量不足的情况下也能具有好的性能。因此,设计一个具有更少归纳偏置的backbone是有必要的,这样的网络可以在大数据集上进行预训练甚至无监督的预训练,从而减少对目标检测数据集的依赖。我认为这一观点建立在这样一个前提下:有一些归纳偏置,仅有利于目标检测任务,对于其它任务是不友好的,包括预训练任务,因此这些归纳偏置会影响预训练的效果,如果能去掉这些归纳偏置,那么网络可以从预训练中获得更多好处。但我认为这样的说法忽视了归纳偏置的好处,有些归纳偏置就是符合实际分布的,是正确的,如果网络具有这样的先验,它就不需要再从数据集中学习这样的知识
  • 而网络的task-specific部分,他们无法在其它任务的预训练中优化,取而代之他们从设计的归纳偏置中得到一些好处(只要这些先验是正确的,符合测试集上分布的),而具有一些无需从数据集上学习的知识(如平移不变性等性质)。
  • 文章提到了ViT提出来时,重点讨论的Transformer相比卷积所不具有的“平移不变性”这一归纳偏置。ViT的文章认为,相比卷积神经网络,基于transfomer的网络需要大量的数据来预训练,以学习“平移不变性”等视觉任务所固有的这些归纳偏置。文章的看法似乎认为学习得来的比先验的更好,从这一观点出发认为本文的设计去除了原先hierarchical backbone中具有的关于尺度的先验,是更好的。

与其它模型的对比

  • 但是,本文与其它模型的实验对比(没有放到这篇blog里面)其实不太公平,本文对ViDet进行了基于MAE的无监督预训练,并把结果与基于有监督预训练的其它方法进行对比,却以“This is largely beyond the scope of this paper, as it involves finding good training recipes for hierarchical backbones with MAE”为理由,没有给出其它方法基于MAE的无监督预训练的结果,只简单给出了MViTv2的MAE结果,说提高了1.3个点,不如ViDet提高了4个点。

  • 虽然确实如果要对每个网络基于MAE进行训练策略的调参太麻烦,那么至少与ViDet的非MAE预训练的结果也进行对比吧,也没有。ViDet的非MAE预训练的结果单独给出来在Table4,ViT-B只有47.8,ViT-L只有50.6,放到Table5中进行公平对比,就是垫底:

  • 那我只能理解为写作技巧,本身结果确实不如其它模型,只能通过这样的技巧,来避免直接对比时效果不如其它模型的尴尬,偷偷藏一手,从而借助MAE来进行不公平的对比。

思考

  • 本文对于非 hierarchical 网络结构的研究结果有利于我们对网络的性质、特征图的尺度性质进行思考。非hierarchical型的backbone取得的好效果挑战了hierarchical型backbone的设计理念,让我们思考了它的必要性和意义。是否有必要从一开始的大尺度特征图慢慢下采样和前向传播直到最后的小尺度特征图(根据任务需求可能还需要慢慢上采样回来)。是否可以采取另一个方案,从一开始的大步长地进行下采样得到小尺度的特征图,然后不变大小地前向传播,最后再根据需求预测结果或上采样后预测结果。之前不这么做,可能是认为在下采样的过程中会出现信息的损失,一下子变换到小尺度特征图损失了大量的空间信息,不利于后续的预测,但本文的实验结果显示,一开始就下采样成小尺度特征图也可以获取很好的效果。正如本文所说:

Our study suggests that the topic of “plain vs. hierarchical” backbones is worth exploring and may bring in new insights.

  • 目标检测网络到底是设计为更多归纳偏置好还是更少好呢。我认为有些正确的知识,添加到网络中去作为先验的归纳偏置,比让网络自行去学习更好;但文章的看法恰恰与我相反,文章认为学习来的知识比先验添加的更好,并做出了以下论断:

Exploring even fewer inductive biases in the detection heads is an open and interesting direction for future work. We hope it can benefit from and build on our work here.

  • 我觉得文章提出了两个很有意思的问题,或者是,研究方向,值得深思和后续的探究。但是这样呈现实验结果的方式实在是有点。。一言难尽。。

Exploring Plain Vision Transformer Backbones for Object Detection 论文阅读笔记相关推荐

  1. 论文阅读-ViTDet:Exploring Plain Vision Transformer Backbones for Object Detection

    目录 A.写在前面 B.有个工作我得说说 C.摘要拆分 D.先看看结果 E.代码细节 1.MaskRCNN部分的修改 2.数据增强部分 3.SFP的实现 F.参考文献 A.写在前面 ViTDet[1] ...

  2. Kaiming He论文阅读笔记二——Plain Vision Transformer Backbones for Object Detection

    Kaiming在2022年发表了一篇Exploring Plain Vision Transformer Backbones for Object Detection. 文章的主要目的是追求一种包含较 ...

  3. Swin Transformer:Hierarchical Vision Transformer using Shifted Windows (论文阅读笔记)

    swin transformer 是微软亚研院胡瀚老师与2021年提出,发表在ICCV上并获得best paper 和马尔奖.是基于transformer的backbone网络,屠榜各大视觉任务. 论 ...

  4. CenterNet: Keypoint Triplts for Object Detection 论文阅读笔记

    论文名称:CenterNet: Keypoint Triplts for Object Detection 作者:Kaiwen Duan & Song Bai等 论文链接:https://ar ...

  5. Class-Aware Robust Adversarial Training for Object Detection论文阅读笔记

    针对目标检测的类感知对抗训练 2021年的CVPR,哥伦比亚大学和中心研究院合作的工作. 摘要:    目的通过对抗训练增强目标检测的鲁棒性,对于一张给定的图像,本文提出的方法产生一个通用的对抗性攻击 ...

  6. Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR

    Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 文章目录 Feature Selective A ...

  7. Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记

    Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记 一.Abstract 二.引言 ...

  8. HLA-Face: Joint High-Low Adaptation for Low Light Face Detection论文阅读笔记

    HLA-Face: Joint High-Low Adaptation for Low Light Face Detection 论文阅读笔记 这是去年7月读这篇文章的笔记了,今年由于忘记了,又有需要 ...

  9. ViTDet:Exploring Plain Vision Transformer Backbonesfor Object Detection(arXiv 2022)

    最前面是论文翻译,中间是背景+问题+方法步骤+实验过程,最后是文中的部分专业名词介绍(水平线分开,能力有限,部分翻译可能不太准确) 探索用于目标检测的普通视觉Transformers骨干 在本文中,& ...

  10. DynamicViT: Efficient Vision Transformers with Dynamic Token Sparsification 论文阅读笔记

    简介 文章利用Transformer的token非结构化序列的特点,设计了一种Token稀疏化剪枝方法,通过删除信息量不大的tokens降低计算量,加速Transformer.该文章为Transfor ...

最新文章

  1. 008_logback配置语法
  2. SpringBoot学习之常用注解
  3. 手机linux内核下载,Linux Kernel
  4. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令
  5. 安卓APP_ 布局(5) —— GridLayout网格布局
  6. java计算两个数组的交集_回顾面试题:计算两个数组交集
  7. 全向轮机器人应用平台
  8. 后悔药来了?发出去的微信图文消息删除后不再显示
  9. matlab鲍威尔方法求函数,基于MATLAB的鲍威尔法求极值问题.doc
  10. [Sql2008错误问题] 配置系统未能初始化 0x84B10001
  11. 信息安全技术国家相关标准一览表
  12. java catch中throw_Java的catch块中throw e和throw new Exception(e)有什么区别?
  13. electron-builder打包后没生成latest.yml文件问题
  14. macbook蓝牙pan未连接_蓝牙自动重连机制
  15. 如何在Linux系统中安装DBeaver通用数据库工具
  16. 前端基础2——CSS3
  17. 理解Fourier变换,Laplace变换和Z变换的几个基本点
  18. 过云锁php木马,绕过waf的另类木马文件攻击方法
  19. iPhone字体显示大全
  20. u盘服务器安装win7系统安装教程,服务器u盘安装win7系统

热门文章

  1. php多语言商城,Ecshop商城多国语言修改方法
  2. 小问题:要把pdg格式的jpg图片还原成pc能显示的jpg图片
  3. Android 智能手机程序使用历史记录查询
  4. ASPJpeg和ASPUpload组件的一些属性和方法
  5. 什麼是SWOT分析?示例和模板
  6. sony媒体服务器文件不对,索尼Z280断电MXF变成RSV文件完美修复
  7. ntfsdos pro v5.0
  8. rar压缩包加密以及rar密码破解的教程
  9. 论文解读:Structural Optimization Makes Graph Classification Simpler and Better
  10. 配置catalina.out的日志格式