共计 4918 个字符,预计需要花费 13 分钟才能阅读完成。
【写在后面】
作者摸索了一般的、非分层的视觉 Transformer(ViT)作为指标检测的骨干网络。这种设计使原始 ViT 架构可能针对对象检测进行微调,而无需从新设计用于预训练的分层骨干。通过对微调的最小调整,本文的一般骨干检测器能够取得具备竞争力的后果。令人诧异的是,作者察看到:(1)从单尺度特色图 (没有常见的 FPN 设计) 构建一个简略的特色金字塔是足够的 ,(2) 在很少的跨窗口流传块的辅助下,应用窗口留神 (不挪动) 是足够的。通过应用预训练的纯 ViT 骨干 mask 主动编码器(MAE),本文的检测器名为 ViTDet,能够与之前所有基于分层骨干的 SOTA 办法获得竞争性的后果,仅应用 ImageNet-1K 预训练就能够在 COCO 数据集上达到 61.3 APbox。
1. 论文和代码地址
Exploring Plain Vision Transformer Backbones
for Object Detection
论文地址:https://arxiv.org/abs/2203.16527
代码地址:https://github.com/facebookresearch/detectron2/tree/main/projects/ViTDet
2. Motivation
古代指标检测器通常由一个与检测工作无关的骨干特征提取器和一组蕴含特定检测先验常识的颈部(neck)和头部(head)组成。颈部 / 头部中的常见组件可能包含 RoI 操作、区域倡议网络 (RPN) 或锚点(Anchor)、特色金字塔网络 (FPN) 等。如果特定工作的颈部 / 头部的设计与骨干的设计脱钩,它们可能会并行倒退。依据试验,指标检测钻研受害于对通用骨干和检测特定模块的很大水平上独立摸索。长期以来,因为卷积网络 (ConvNet) 的理论设计,这些骨干始终是多尺度、分层架构,这重大影响了用于检测多尺度对象的颈部 / 头部设计(例如,FPN)。
在过来的一年中,视觉 Transformer (ViT) 已被确立为视觉辨认的弱小支柱。与典型的 ConvNets 不同,原始的 ViT 是一个简略的、非分层的架构,它始终保持单尺度特色图。它的“极简主义”谋求在利用于对象检测时遇到了挑战——例如,如何通过上游预训练的简略骨干解决上游工作中的多尺度对象?是否一般的 ViT 在应用高分辨率检测图像效率低下?放弃这种谋求的一种解决方案是将分层设计从新引入骨干。该解决方案,例如 Swin Transformers,能够继承基于 ConvNet 的检测器设计并显示出胜利的后果。
在这项工作中,作者谋求不同的方向:摸索仅应用一般、非分层骨干的指标检测器。如果这个方向胜利,它将可能应用原始 ViT 骨干进行指标检测;这将使预训练设计与微调需要脱钩,放弃上游与上游工作的独立性,就像基于 ConvNet 的钻研一样。这个方向也局部遵循了 ViT 在谋求通用特色时“缩小演绎偏置”的哲学。因为非部分自注意力计算能够学习平移等变特色,它们还能够从某些模式的监督或自监督预训练中学习尺度等变特色。
在本文的钻研中,作者的指标不是开发新组件。相同,作者进行了足以克服上述挑战的最小调整。特地是,本文的检测器仅从一般 ViT 骨干的最初一个特色图构建一个简略的特色金字塔(见上图)。这放弃了 FPN 设计并放弃了分层骨干的要求。为了无效地从高分辨率图像中提取特色,本文的检测器应用简略的非重叠窗口注意力。大量的跨窗口块(例如 4 个)可能是全局注意力或卷积,用于流传信息。这些调整仅在微调期间进行,不会扭转预训练。
事实证明,本文简略的设计获得了令人诧异的后果。作者发现在一般的 ViT 骨干的状况下,FPN 设计不是必须的,它的益处能够通过从大步幅、单比例特色图构建的简略金字塔无效地取得。作者还发现,只有信息在大量层的窗口中很好地流传,窗口注意力就足够了。
更令人诧异的是,在某些状况下,本文名为 ViTDet 的一般骨干检测器能够与当先的分层骨干检测器(例如 Swin、MViT)竞争。应用 Masked Autoencoder (MAE) 预训练,本文的一般骨干检测器能够胜过在 ImageNet-1K/21K 上通过监督预训练的分层检测器(见上图)。对于较大的模型尺寸,收益更为突出。本文的检测器的竞争力是在不同的指标检测器框架下察看到的,包含 Mask R-CNN、Cascade Mask R-CNN 及其加强模型。本文基于一般的 ViT-Huge 骨干,在 COCO 数据集上报告了 61.3 APbox,仅应用没有标签的 ImageNet-1K 预训练。作者还在长尾 L VIS 检测数据集上展现了具备竞争力的后果。尽管这些强有力的后果可能局部归因于 MAE 预训练的有效性,但本文的钻研表明,一般骨干检测器可能很有前途,挑战了用于指标检测的分层骨干的积重难返的地位。
3. 办法
本文的指标是打消对骨干网的分层束缚,并启用对一般骨干网指标检测的摸索。为此,本文的指标是进行起码的批改,以仅在微调期间使简略的骨干适应指标检测工作。在这些适应之后,原则上能够利用任何检测器头,作者抉择应用 Mask R-CNN 及其扩大。
Simple feature pyramid
FPN 是构建用于指标检测的网络内金字塔的常见解决方案。如果骨干是分层的,FPN 的动机是联合晚期阶段的高分辨率特色和前期阶段的更强特色。这是在 FPN 中通过自上而下和横向连贯实现的。
如果骨干是非分层的,那么 FPN 动机的根底就会失落,因为骨干中的所有特色图都具备雷同的分辨率。在本文的场景中,作者仅应用骨干中的最初一个特色图,它应该具备最强的特色。在这张特色图上,作者并行利用一组卷积或反卷积来生成多尺度特色图。具体来说,应用尺度为 $\frac{1}{16}$(步幅 = 16)的默认 ViT 特色图,作者应用步幅为 $\left\{2,1, \frac{1}{2}, \frac{1}{4}\right\}$ 的卷积生成尺度为 $\left\{\frac{1}{32}, \frac{1}{16}, \frac{1}{8}, \frac{1}{4}\right\}$ 的特色图,其中小数步幅示意反卷积。作者将其称为“简略特色金字塔”。
从单个特色图构建多尺度特色图的策略与 SSD 的策略无关。然而,本文的场景波及从深度、低分辨率的特色图进行上采样,而 SSD 利用了较浅的特色图。在分层骨干中,上采样通常由横向连贯辅助;在一般的 ViT 骨干中,作者凭试验发现这不是必须的,简略的反卷积就足够了。作者认为这是因为 ViT 能够依赖地位嵌入来编码地位,并且还因为高维 ViT 补丁嵌入不肯定会抛弃信息。
作者将与同样构建在一般骨干上的两个 FPN 变体进行比拟(上图)。在第一个变体中,骨干被人为地分为多个阶段,以模拟分层骨干的阶段,利用横向和自上而下的连贯(上图(a))。第二个变体与第一个变体相似,但仅应用最初一个映射而不是划分的阶段(上图 (b))。
Backbone adaptation
指标检测器受害于高分辨率输出图像,但在整个骨干中计算全局自注意力在显存中是令人望而生畏的,而且速度很慢。在这项钻研中,作者关注预训练的骨干执行全局自留神的场景,而后在微调期间适应更高分辨率的输出。这与最近的通过主干涉训练间接批改注意力计算的办法相同。本文的场景可能应用原始的 ViT 骨干进行检测,而无需从新设计预训练架构。
作者摸索应用带有几个跨窗口块的窗口注意力。在微调期间,给定一个高分辨率特色图,作者将其划分为惯例的非重叠窗口。在每个窗口内计算自注意力。这在原始 Transformer 中被称为“受限”自注意力。
与 Swin 不同,本文不会跨层“挪动”窗口。为了容许信息流传,作者应用了极少数(默认状况下,4 个)能够跨窗口的块。作者将预训练的骨干均匀分成 4 个块子集(例如,对于 24 块 ViT-L,每个子集中有 6 个)。作者在每个子集的最初一个块中利用传播策略。在本文中,作者钻研了这两种策略:
(1) 全局流传(Global propagation)。作者在每个子集的最初一个块中执行全局自留神。因为全局块的数量很少,显存和计算成本是可行的。这
(2) 卷积流传(Convolutional propagation)。作为代替计划,作者在每个子集之后增加一个额定的卷积块。卷积块是一个残差块,由一个或多个卷积和一个恒等连贯组成。该块中的最初一层被初始化为零,因而该块的初始状态是一个 identity。将块初始化为 identity 容许将其插入到预训练骨干中的任何地位,而不会毁坏骨干的初始状态。
本文的骨干适应很简略,并且使检测微调与全局自注意力预训练兼容。如前所述,没有必要从新设计预训练架构。
Discussion
对象检测器蕴含能够与工作无关的组件,例如骨干,以及其余特定于工作的组件,例如 RoI 头。这种模型合成使与工作无关的组件可能应用非检测数据(例如 ImageNet)进行预训练,这可能会提供一个劣势,因为检测训练数据绝对稀缺。
从这个角度来看,谋求蕴含较少演绎偏差的骨干变得正当,因为能够应用大规模数据和 / 或自监督来无效地训练骨干。相比之下,检测工作特定组件的可用数据绝对较少,并且仍可能受害于额定的演绎偏差。尽管谋求具备较少感应偏差的检测头是一个沉闷的工作畛域,但像 DETR 这样的当先办法难以训练并且依然受害于特定于检测的先验常识。在这些察看的推动下,本文的工作在检测器的骨干方面遵循了原始一般 ViT 论文的精力。尽管 ViT 论文的探讨侧重于缩小平移等变的演绎偏差,但在本文的案例中,它是对于在骨干中的尺度等变上缩小甚至没有演绎偏差。作者认为一般骨干实现的尺度等变性是从数据中学习先验常识,相似于它如何在没有卷积的状况下学习平移等方差和局部性。
本文的指标是证实这种办法的可行性。因而,作者抉择应用规范检测特定组件(即,Mask R-CNN 及其扩大)来实现本文的办法。在检测头中摸索更少的感应偏差是将来工作的一个凋谢且乏味的方向。
Implementation
作者应用 vanilla ViT-B、ViT-L、ViT- H 作为预训练骨干。将 patch 大小设置为 16,因而特色图比例为 1/16,即步幅 = 16。检测头遵循 Mask R-CNN 或 Cascade Mask R-CNN。输出图像为 1024×1024,在训练期间通过大规模抖动进行了加强。因为这种重度正则化,作者在 COCO 中微调了多达 100 个 epoch。应用 AdamW 优化器并应用基线版本搜寻最佳超参数。
4. 试验
上表展现了不同特色金字塔的试验后果。
上表融化了本文的骨干适应办法。简而言之,在具备纯窗口注意力且没有跨窗口流传块的基线之上,各种传播方式都能够显示出不错的收益。
上表展现了骨干适应策略的理论体现。
上表展现了应用在 COCO 上评估的 Mask R-CNN 对具备一般 ViT 骨干的预训练策略进行融化。
上表展现了在 COCO 上应用 Mask RCNN 和 Cascade Mask R-CNN 比拟一般与分层骨干。
上表展现了与原始论文报告的 COCO SOTA 后果的零碎级比拟。
上表展现了与原始论文报告的 LVIS SOTA 后果的零碎级比拟。
5. 总结
本文的摸索表明,plain-backbone 检测是一个很有前途的钻研方向。这种办法在很大水平上放弃了通用骨干和上游特定工作设计的独立性——这在基于 ConvNet 的钻研中是这种状况,但在基于 Transformer 的钻研中却不是。作者心愿将预训练与微调拆散是一种广泛有益于社区的办法。例如,在自然语言解决(NLP)中,通用预训练(GPT、BERT)极大地推动了该畛域的倒退,并始终反对各种上游工作。在这项钻研中,本文的一般骨干检测器受害于 MAE 中现成的预训练模型。作者心愿这种办法也有助于拉近计算机视觉和 NLP 畛域的间隔。
已建设深度学习公众号——FightingCV,欢送大家关注!!!
ICCV、CVPR、NeurIPS、ICML 论文解析汇总:https://github.com/xmu-xiaoma…
面向小白的 Attention、重参数、MLP、卷积外围代码学习:https://github.com/xmu-xiaoma…
退出交换群,请增加小助手 wx:FightngCV666
本文由 mdnice 多平台公布