美文网首页
ViT for Detection

ViT for Detection

作者: Valar_Morghulis | 来源:发表于2022-04-26 14:49 被阅读0次

    本文介绍何恺明组在MAE后发表的两篇论文。使plain ViT更直接地适配下游检测任务,并比较了自监督预训练、监督预训练和强随机初始化基线,并表明最新的基于屏蔽的无监督学习方法可能首次在COCO上提供令人信服的迁移学习改进。

    目录:

    1. Benchmarking Detection Transfer Learning with Vision Transformers(2021.11)

    2. Exploring Plain Vision Transformer Backbones for Object Detection(2022.3)


    基于视觉Transformer的基准检测迁移学习

    原文地址:https://arxiv.org/pdf/2111.11429.pdf

    目标检测是一项中心下游任务,用于测试预训练的网络参数是否能带来好处,例如提高准确性或训练速度。目标检测方法的复杂性使得当新的体系结构(如ViT模型)出现时,这种基准测试非常重要。这些困难(例如,架构不兼容、训练速度慢、内存消耗高、训练公式未知等)阻碍了最近的研究用标准ViT模型对检测迁移学习进行基准测试。在本文中,我们介绍了克服这些挑战的训练技术,使标准ViT模型能够用作Mask R-CNN的主干。这些工具促进了我们研究的主要目标:我们比较了五种ViT初始化,包括最新的自监督学习方法、监督初始化和强随机初始化基线。我们的研究结果表明,最新的基于屏蔽的无监督学习方法可能首次在COCO上提供令人信服的迁移学习改进,使box AP比有监督和之前的自监督预训练方法提高了4%(绝对值)。此外,这些基于屏蔽的初始化可以更好地扩展,并且随着模型大小的增加,改进也会增加。

    1.引言

    无监督/自监督深度学习通常用作预训练步骤,在将模型参数迁移到下游任务(如图像分类或目标检测)进行微调之前初始化模型参数。无监督学习算法的效用由下游任务指标(例如精度、收敛速度等)与基线进行比较来判断,如有监督的预训练或完全没有预训练,即随机初始化(通常称为“从头开始”的训练)。

    计算机视觉中的无监督深度学习通常使用标准卷积网络(CNN)模型[25],如RESNET[20]。迁移这些模型相对简单,因为CNN在大多数下游任务中广泛使用,因此基准协议易于定义,基线丰富(例如[17])。换句话说,使用CNN的无监督学习产生即插即用参数初始化。

    我们现在看到了使用视觉Transformer(ViT)模型的无监督学习的增长[10],虽然高级迁移学习方法保持不变,但一些重要下游任务的low-level细节和基线尚未建立。值得注意的是,在过去十年中,物体检测在迁移学习的研究中发挥了核心作用(例如[35,14,9,17]),但在ViT训练[10,7,5]的开创性工作中,由于将ViT整合到常见的检测模型(如Mask R-CNN[19])中的挑战(稍后描述),没有对其进行探索。ViT训练[10,7,5]是有监督或无监督的。

    为了弥补这一差距,本文使用COCO数据集[28]和Mask R-CNN框架建立了一个迁移学习协议,用于评估ViT模型在目标检测和实例分割方面的作用。我们关注标准的ViT模型,并对其进行最小的修改,如原始ViT论文[10]中所定义的,因为我们预计,在探索新技术(例如基于屏蔽的方法[1,16])时,这种架构将在未来几年的无监督学习工作中保持流行。

    we expect this architecture will remain popular in unsupervised learning work over the next few years due to its simplicity and flexibility when exploring new techniques, e.g., masking-based methods

    为ViT建立目标检测基线具有挑战性,因为技术障碍包括在处理检测大小的输入(例如:与预训练相比,图块数增加了大约20倍),体系结构不兼容(例如,单尺度ViT与多尺度检测器),以及为大量预训练初始化和随机初始化开发有效的训练公式(即学习计划、正则化和数据增强方法等)。我们克服了这些障碍,在从头开始初始化ViT[18]时,我们在COCO上提供了基于ViT的强Mask R-CNN基线,并使用预训练的ImageNet[8]监督,以及使用MoCo v3[7]、BEiT[1]和MAE[16]等最新方法进行的无监督预训练。

    展望ViT以外的领域,我们希望我们的实践和观察将成为未来工作的蓝图,比较更先进的ViT衍生物(如Swin[29]和MViT[12])的预训练方法。为了促进社区发展,我们将在Detectron2[40]中发布代码。

    2.方法

    我们选择了Mask R-CNN[19]框架,因为它在目标检测和迁移学习研究中无处不在。Mask R-CNN是更高复杂度/更高性能系统的基础,如Cascade R-CNN[4]和HTC/HTC++[6,29],它可能会在本文所述结果的基础上进行改进,但代价是额外的复杂度,这与基准迁移学习的目标正交。我们的选择试图平衡(相对)简单与复杂,同时提供令人信服的结果,尽管不完全是最先进的。

    我们为Mask R-CNN配置了许多升级模块(如§2.2所述)和相对于原始出版物的训练程序(如§2.3所述)。这些升级主要在[39,18,13]中开发,允许从随机初始化有效地训练模型,从而实现有意义的从头开始基线。接下来,我们将讨论如何用视觉Transformer替换主干网(通常是ResNet)。

    2.1. ViT主干

    在本节中,我们将讨论在Mask R-CNN中将ViT用作主干时遇到的两个技术障碍:(1)如何使其适应特征金字塔网络(FPN)[27]的工作;(2)如何减少其内存占用和运行时间,以使大型ViT主干的基准测试易于处理。

    FPN兼容性。Mask R-CNN可以与主干网一起工作,该主干网可以生成单尺度特征图,也可以生成多尺度的特征图,这些图可以输入FPN。由于FPN通常以最小的时间和内存开销提供更好的检测结果,我们采用了它。

    然而,使用FPN会带来一个问题,因为ViT以单一尺度(例如,1/16)生成特征图,而典型的CNN生成多尺度特征图。为了解决这一差异,我们采用了一种简单的技术,从[11](来自于单尺度尺XCiT主干)到向上采样或向下采样中间ViT特征图,方法是在每d/4 Transformer块等距间隔处放置四个分辨率修改模块,其中d是块的总数。见图1(绿色方块)。

    However, using FPN presents a problem because ViT produces feature maps at a single scale (e.g., 1/16th), in contrast to the multi-scale feature maps produced by typical CNNs.1 To address this discrepancy, we employ a simple technique from [11] (used for the single-scale XCiT backbone) to either upsample or downsample intermediate ViT feature maps by placing four resolution-modifying modules at equally spaced intervals of d/4 transformer blocks, where d is the total number of blocks. See Figure 1 (green blocks).

    图1。基于ViT的Mask R-CNN。在§2中,我们描述了如何将标准ViT模型有效地用作Mask R-CNN的主干。为了节省时间和内存,我们对ViT进行了修改,除了四个transformer块外,其它所有transformer块使用非重叠窗口注意,间隔为d/4,其中d是块的总数(蓝色)[26]。为了使单尺度ViT适应多尺度FPN(黄色),我们使用上采样和下采样模块(绿色)[11]。系统的其余部分(浅红色)使用升级但标准的Mask R-CNN组件。

    这些模块中的第一个模块使用一个跨步2×2转置卷积将特征图的采样率提高了4倍,然后是group normalization[39]和GeLU[21],再接着另一个跨步2×2转置卷积。下一个d/4th块的输出使用单个步长2×2转置卷积(无归一化和非线性)上采样2×2。下一个d/4th块的输出按原样进行,最后一个ViT块的输出使用stride two 2×2 max pooling进行2倍的下采样。每个模块都保留了ViT的嵌入/通道维度。假设图块大小为16,这些模块生成的特征图的步长为4、8、16和32像素,相对于输入图像,可以输入FPN。

    我们注意到,最近的工作,如Swin[29]和MViT[12],通过修改核心ViT架构(在预训练中)来解决单尺度与多尺度特征映射问题,因此它本质上是多尺度的。这是一个重要的方向,但它也使简单的ViT设计复杂化,并可能阻碍探索新的无监督学习方向,例如稀疏处理未屏蔽补丁的方法[16]。因此,我们关注VIT的外部添加,使其能够集成到多尺度检测系统中。我们还注意到,Beal等人[2]将标准ViT模型与更快的R-CNN相结合[34],但报告的APbox比我们的结果低很多(>10个点),这表明我们的设计非常有效。

    减少内存和时间复杂性。在Mask R-CNN中使用ViT作为主干会带来内存和运行时方面的挑战。对于将图像分为h\times w个非重叠块,ViT中的每个自注意操作都需要O(h^2w^2)的空间和时间[38]。

    在预训练期间,这种复杂性是可控的,因为h=w=14是一种典型的设置(224×224像素的图像分成16×16像素的拼接)。在目标检测中,标准图像大小为1024×1024,约21×更多像素和图块。为了检测相对较小的物体以及较大的物体,需要更高的分辨率。由于自注意的二次复杂性,即使是“基本”尺寸的ViT-B,在batch size 为1,使用半精度浮点数的情况下,也可能消耗∼在Mask R-CNN中使用20–30GB的GPU内存。

    为了降低空间和时间的复杂性,我们使用限制(或“窗口化”)自注意[38],它通过用局部计算代替全局计算来节省空间和时间。我们将h×w个图块划分为r×r块非重叠窗口,并在每个窗口内独立计算自注意。这种加窗的自注意具有O(r^2hw)空间和时间复杂性(每个窗口的复杂度为O(r^4),总共h/r\times w/r个窗口。我们将r设置为预训练中使用的全局自注意大小(例如,r=14是典型的)。

    窗口式自关注的一个缺点是主干网不能跨窗口集成信息。因此,我们采用了[26]中的混合方法,包括在每个d/4th块上均匀放置四个全局自注意块(它们与FPN集成使用的上/下采样位置一致;见图1)。

    (编者注,参考文献[26],MViTv2: Improved Multiscale Vision Transformers for Classification and Detection,https://arxiv.org/abs/2112.01526,和本文是相同的一作)

    2.2. 升级模块

    相对于[19]中的原始Mask R-CNN,我们对其几个模块进行了现代化。简而言之,这些修改包括:(1)在FPN中卷积后面使用批量归一化(BN)[23],(2)在区域建议网络(RPN)[33]中使用两个卷积层,而不是一个,(3)使用四个带有BN的卷积层,然后使用一个线性层进行感兴趣区域(RoI)分类和盒回归头[39],而不是不进行归一化的两层MLP,(4)并在带有BN的标准Mask头中进行卷积。无论在哪里应用BN,我们都在所有GPU中使用synchronous BN。这些升级在Detectron2 model zoo中实施。(原注:https://github.com/facebookresearch/detectron2/blob/main/MODEL_ZOO.md#new-baselines-using-large-scale-jitter-and-longer-training-schedule

    2.3. 训练公式

    我们采用了比原来的R-CNN口罩升级的训练公式。该公式是在[18]中开发的,它证明了在使用规范化层进行足够长时间的训练时,从零开始就表现出良好的性能,[13]证明了一种称为大规模抖动(LSJ)的简单数据增强方法在防止过度拟合方面是有效的,并在对模型进行很长时间的训练(例如400个epoch)时改善了结果。

    我们的目标是将超参数的数量保持在较低的水平,从而避免采用额外的数据增强和正则化技术。然而,我们发现drop path正则化[24,22]对ViT主干非常有效,因此我们将其包括在内(例如,它将从头开始的训练提高了2 APbox)。

    总之,我们用相同的简单公式训练所有模型:LSJ(1024×1024分辨率,标度范围[0.1,2.0]),AdamW[30](β1,β2=0.9,0.999),具有半周期余弦学习率衰减,0.25个epoch的线性预热[15],以及drop path正则化。当使用预训练好的初始化时,我们会微调Mask R-CNN,最多调整100个epoch。当从头开始训练时,我们会考虑多达400个阶段的时间表,因为收敛速度比使用预训练时慢。我们在32或64个GPU(NVIDIA V100-32GB)上分布训练,并始终使用64个图像的minibatch size。我们使用Pytorch的自动混合精度。附加的超参数通过协议的一致应用进行调整,下面描述。

    2.4. 超参数调整协议

    为了使训练公式适应每个模型,我们调整了三个超参数学习率(lr)、权重衰减(wd)和drop path率(dp)——同时保持所有模型的其他参数不变。我们使用MoCo v3预训练的ViT-B进行了初步实验,以估计合理的超参数范围。基于这些估计,我们制定了以下调整协议:

    (1) 对于每次初始化(从零开始、监督等),我们将dp固定为0.0,并使用ViT-B和25个epoch计划(或从零开始初始化时为100个epoch)在lr和wd上执行网格搜索。We center a 3 × 3 grid at lr, wd = 1.6e−4, 0.1 and use doubled and halved values around the center。如果没有找到局部最优值(即最佳值是一个边界值),我们将扩大搜索范围。

    (2) 对于ViT-B,我们从{0.0,0.1,0.2,0.3}中选择dp,使用50个epoch的时间表进行预训练的初始化。较短的25个epoch时间表是不可靠的,100个epoch被认为是不切实际的。对于随机初始化,由于收敛速度慢,我们不得不使用100个epoch。我们发现dp=0.1对于所有初始化都是最佳的。

    (3) 对于ViT-L,我们采用来自ViTB的最佳lr和wd(用ViT-L搜索是不切实际的),并使用与ViT-B相同的程序,发现dp=0.3最好。

    局限性    以上步骤采用了实用的快捷方式,以减少超参数的全部调整空间。特别是,lr和wd与dp分开优化,因此组合可能不太理想。此外,我们仅使用ViT-B调整lr和wd,因此对于ViT-L,选择可能是次优的。我们还使用比我们最终训练的最长时间表短4倍的时间表调整lr和wd,这也可能是次优的。考虑到这些限制,我们的目标是通过对所有初始化应用相同的调优协议来避免结果偏差。

    最后,我们注意到,我们是在COCO 2017验证集上调试lr、wd和dp,并且在COCO验证集上评估。

    虽然技术上不是ML最佳实践,但多年来对COCO val和test dev结果的大量比较表明,过度拟合并不是这种低自由度超参数调整的问题。(原注,SwinTransformer的版本1的表格2,在7个系统级的比较中,测试集的APbox要系统地高于验证集APbox)

    2.5. 其他实施细节

    在训练和推理过程中对图像进行填充,形成1024×1024分辨率的输入。在训练期间,要形成batch,因此padding是必要的。在(unbatched)推断过程中,输入的每个边长只需要是ViT图块大小的倍数,一侧可能小于1024。然而,我们发现这种减少的填充(reduced padding),相比填充至训练尺寸要效果更差(例如,减少∼0.5–1 APbox)。这可能是因为ViT使用了位置信息。因此,我们在推理时使用1024×1024分辨率的输入,即使额外的填充会将推理时间减慢10%∼平均30%。

    3. 初始化方法

    我们比较五种初始化方法,下面简要总结一下。

    随机:所有网络权重均随机初始化,不使用预训练。ViT主干初始化遵循[1]的代码,掩码R-CNN初始化使用Detectron2[40]中的默认值。

    监督:ViT主干经过预训练,使用ImageNet-1k图像和标签进行监督分类。我们将DeiT释放的权重[36]用于ViT-B,并使用[16](编者注:MAE)中的ViT-L权重,这使用了比DeiT更强的训练公式来避免过度拟合(此外,DeiT释放不包括ViT-L)。ViT-B和ViT-L分别接受了300和200个epoch的预训练。

    MoCo v3:我们使用[7]作者提供的无监督ImageNet-1k预训练ViT-B和ViT-L权重(ViT-B是公共的;ViT-L通过私人通信提供)。这些模型经过300个epoch的预训练。

    BEiT:由于ImageNet-1k预训练的权重不可用,我们使用官方的BEiT代码版本[1]在无监督的ImageNet-1k上对ViT-B和ViT-L进行800个epoch的训练(在[1]中使用的默认训练长度)。

    MAE:我们使用[16]作者在无监督ImageNet-1k上预训练的ViT-B和ViT-L权重。使用标准化像素作为目标,对这些模型进行了1600个epoch的预训练。

    3.1. 预训练的干扰因素

    我们试图尽可能地进行同等匹配的比较,但以下列出了不同方法的预训练干扰因素。

    (1) 不同的预训练方法可能会使用不同的epochs。我们采用了各自论文中预设的预训练时间。虽然这些值看起来可能不具有可比性,但现实情况尚不清楚:并非所有方法都能从更长时间的训练中同等受益,也并非所有方法都具有相同的每epoch训练成本(例如,BEiT比MAE多使用大约3倍的flops)。

    (2) BEiT使用学习到的相对位置偏差,这些偏差被添加到每个块中的自注意逻辑[31],而不是其他方法使用的绝对位置嵌入。为了考虑这一点,尽管不完全,我们在所有检测模型中都包含了相对位置偏差和绝对位置嵌入,而不管它们在预训练中的使用。对于BEiT,我们迁移预训练好的偏差,并随机初始化绝对位置嵌入。对于所有其他方法,我们对相对位置偏差进行零初始化,并迁移预训练好的绝对位置嵌入。相对位置偏差在窗口注意块之间共享,在全局注意块之间(单独)共享。当预训练和微调之间存在空间维度不匹配时,我们将预训练参数调整为所需的微调分辨率。

    (3) BEiT在预训练中使用了layer scale[37],而其他方法则没有。在微调过程中,还必须对BEiT初始化模型进行参数化,以使用layer scale和从预训练模型初始化的预训练layer scale参数。所有其他模型在预训练或微调中不使用layer scale。

    (4) 我们试图将预训练数据标准化为ImageNet1k,但BEiT使用了DALL·E[32]离散VAE(dVAE),这是在∼2.5亿张专有和未公开的图像,作为图像标记器。这些额外训练数据的影响尚未完全了解。

    4.实验与分析

    4.1. 比较初始化

    结果 在表1中,我们使用预训练的初始化和§3中描述的随机初始化来比较COCO微调结果。我们展示了在考虑的训练长度上最大化APbox后的结果:预训练初始化的25、50或100个epoch,以及随机初始化的100、200或400个epoch。(我们在下面讨论趋同。)接下来,我们做一些观察。

    (1) 我们更新的Mask R-CNN使用ViT-B和ViT-L主干网进行平稳训练,无论采用何种初始化方法。它不表现出不稳定性,也不需要像梯度剪裁这样的稳定技术。

    (2) 从零开始的训练比从有监督的1K预训练(50.7对49.3)中微调产生的APbox高出1.4。虽然AP的升高听起来可能令人惊讶,但在[13]中也观察到了同样的趋势。有监督的预训练并不总是比随机初始化更强的基线。

    (3) 基于对比学习的MoCo v3相比随机初始化的AP表现不佳,并且与监督初始化的结果类似。

    (4) 对于ViT-B,BEiT和MAE都表现更优,相比随机初始化1.4 APbox(50.3对48.9),相比监督初始化方2.4 APbox(50.3对47.9)。

    (5)对于ViT-L,APbox差距增大,BEiT和MAE显著优于随机初始化和监督初始化,相比随机初始化2.6个APbox(53.3对50.7),相比监督初始化4.0个APbox(53.3对49.3)。

    收敛

    在图2中,我们展示了预训练如何影响微调收敛。给定每种初始化方法的优化超参数,我们训练模型2倍和4倍(以及0.5倍的随机初始化)。通常,我们发现,与随机初始化相比,所有预训练的初始化都显著加快了收敛速度,如[18]中所述。当训练计划足够长时,大多数方法都会显示出过度拟合的迹象,对于预训练的初始化,通常是100个阶段,而对于随机初始化,则是400个阶段。根据这些数据,与随机初始化相比,预训练倾向于将COCO上的训练速度提高约4倍。

    In Figure 2 we show how pre-training impacts fine-tuning convergence. Given the tuned hyperparameters for each initialization method, we train models for 2× and 4× longer (and also 0.5× for random initialization)

    我们还注意到关于这些结果的两个警告:(i)理想情况下,应针对每个训练持续时间调整下降路径速率,因为我们已经观察到,当模型训练更长时间时,最佳dp值可能需要增加。(然而,对所有初始化、模型尺寸和训练持续时间执行彻底的dp扫描在计算上可能是不切实际的。)(ii)此外,通过在更复杂的训练公式下进行更长时间的训练,可能会在所有情况下取得更好的结果,该公式采用更严格的规则化和更强的数据扩充。

    We also note two caveats about these results: (i) The drop path rate should ideally be tuned for each training duration as we have observed that the optimal dp value may need to increase when models are trained for longer. (However, performing an exhaustive dp sweep for all initializations, model sizes, and training durations is likely computationally impractical.) (ii) Moreover, it may be possible to achieve better results in all cases by training for longer under a more complex training formula that employs heavier regularization and stronger data augmentation

    讨论COCO数据集对于迁移学习来说是一个具有挑战性的环境。因为训练规模很大(∼118k图像∼0.9M注释对象),通过随机初始化进行训练时,可能会获得很好的效果。我们发现,现有的方法,如有监督的IN1k或无监督的MoCo v3预训练,实际上表现不如随机初始化基线的AP(尽管它们产生更快的收敛速度)。之前报告COCO(例如[17])上无监督迁移学习改进的工作往往比有监督的预训练提升(例如。,∼1 APbox),并不像我们在这里做的那样包含强随机初始化基线(因为还没有开发基于大规模抖动的强训练公式)。此外,他们使用较弱的模型,报告的结果总体上要低得多(例如。,∼40 APbox),使我们不清楚这些发现在多大程度上转化为最先进的实践。

    Prior works reporting unsupervised transfer learning improvements on COCO (e.g., [17]) tend to show modest gains over supervised pre-training (e.g., about 1 APbox) and do not include a strong random initialization baseline as we do here (because strong training formulae based on large-scale jitter had not yet been developed). Moreover, they use weaker models and report results that are overall much lower (e.g., ∼40 APbox) making it unclear how well the findings translate to state-of-the-art practices.

    我们发现,由于预训练,MAE和BEiT提供了第一个令人信服的COCO AP显著改善的结果。此外,随着模型尺寸的增加,这些基于屏蔽的方法显示出改进检测迁移学习的潜力。而无论是有监督的IN1k预训练还是无监督对比学习,如MoCo v3,我们没有观察到这一重要的扩展趋势。

    4.2. 烧蚀与分析

    我们消除了系统比较中涉及的几个因素,分析了模型的复杂性,并报告了调整后的超参数值。对于这些实验,我们默认使用MAE和50epoch微调。

    单尺度与多尺度。

    在表2中,我们将默认的基于FPN的多尺度探测器与单尺度探测器进行了比较。单尺度尺变体仅将RPN和ROIAllign[19]应用于ViT主干生成的最终1/16分辨率特征图。两个系统之间的RoI头部和所有其他选择都是相同的(尤其要注意,两者都使用相同的混合窗口/全局注意力)。我们观察到,多尺度FPN设计将APbox增加了∼1.3-1.7(例如,50.1 vs.48.4),而训练和推理的时间则分别增加大约5%和10%。多尺度内存开销小于1%。

    减少内存和时间。

    在表3中,我们比较了在Mask R-CNN中使用标准ViT主干时减少内存和时间复杂性的几种策略。将14×14非重叠窗口自注意与四个全局注意块结合使用,可以在内存、训练和推理时间以及AP指标之间实现良好的平衡。这一发现促使我们将此设置用作默认设置。有些令人惊讶的是,即使主干网完全分别地处理所有窗口(APbox从53.3减少到50.7),只使用窗口关注并不是灾难性的。这可能是因为在Mask R-CNN模型的其余部分中,卷积和ROIAllign引入了跨窗口计算。

    位置信息。

    在默认的BEiT代码中,ViT被修改为在每个Transformer块中使用相对位置偏差[31],而不是在图块嵌入中添加绝对位置嵌入。这种选择是一种正交增强,其他预训练方法不使用(尽管可以用)。为了使比较更加平等,我们默认将这些偏差(和绝对位置嵌入)包括在所有微调模型中,如§3.1所述。

    在表4中,我们研究了相对位置偏差对微调性能的影响。标题中给出了详细的分析。总之,对于仅使用绝对位置嵌入进行预训练的模型,我们观察到在微调过程中包含相对位置偏差可能会提升∼0.2–0.3个点(例如,53.0到53.3)。

    我们还观察到,预训练相对位置偏差,如BEiT所做的,也可能对∼0.1-0.3分。我们在微调过程中包含两种位置信息类型的做法似乎提供了一个合理公平的比较。我们还注意到,使用相对位置偏差会带来不小的开销——它会使训练和推理时间分别增加约25%和15%,而相对位置偏差会使内存增加约20%∼15%(即使有共享的偏置),也许应该避免。

    预训练epochs。

    在图3中,我们研究了MAE预训练阶段对COCO APbox的影响,将预训练阶段从100个扫到1600个(默认值)。结果表明,预训练的持续时间对迁移学习绩效有显著影响,从100到800个epochs,APbox的持续时间大幅增加。从800epochs到1600epochs(从53.1年增加到53.3年,增幅为0.2),尽管梯度已基本持平。

    TIDE 错误类型分析。

    在图4中,我们展示了TIDE工具box[3]生成的错误类型分析。标题中给出了详细的描述和分析。分析揭示了更多关于MAE和BEiT相对于其他初始化改善整体AP的细节信息。总之,我们观察到,对于正确定位的对象,所有初始化都会导致大致相同的分类性能但是与其他初始化相比,MAE和BEiT初始化会改善定位。当我们观察漏检时,我们观察到一个更强大的效果:基于屏蔽的初始化产生的召回率明显高于其他初始化,因此未检测到的对象更少。这种较高的Recall会导致背景错误的轻微增加,从而导致更好的整体AP。

    This higher recall creates a small increase in background errors, thus leading to better overall AP.

    模型复杂性。

    表5比较了我们特定掩码RCNN配置的各种复杂性和挂钟时间度量。我们还报告了使用ResNet-101主干而不是ViT的这些措施。当从头开始训练时,ResNet-101和ViT-B骨干都达到48.9 APbox。在推理时,ResNet-101主干速度更快;然而,在训练期间,ViT-B在200个epoch时达到最高性能,而ResNet101为400个epoch。ResNet-101还不能从BEiT或MAE预训练中获益,因此在APbox中落后于ViT-B(∼1)当这些方法用于初始化时

    超参数调整。

    所有经过预训练的初始化都首选wd=0.1进行微调。随机初始化得益于更强的正则化,选择了更高的设置0.2。大多数选择的方法lr=8.0e−5,但随机初始化和MoCo v3初始化除外,它们都倾向于更高的设置1.6e−4.如前所述,使用较短的时间表无法可靠地调整drop path速率。因此,我们对dp进行了50个epoch训练,用于预训练的初始化,并对100个epoch训练,用于随机初始化。基于此调整,所有初始化在使用ViT-B时选择dp=0.1,在使用ViT-L时选择0.3。

    5.结论

    我们介绍了一些技术,这些技术使标准ViT模型能够实际用作R-CNN中的主干。这些方法产生了可接受的训练内存和时间,同时在COCO上也取得了很好的效果,而不涉及太多复杂的扩展。利用这些技术,我们找到了有效的训练公式,使我们能够对五种不同的ViT初始化方法进行基准测试。我们证明了随机初始化需要∼比任何预训练的初始化都长4倍,但实现了比ImageNet-1k监督预训练更高的AP。我们发现,作为对比无监督学习的代表,MoCo v3的性能几乎与有监督的预训练相同(因此比随机初始化更差)。重要的是,我们看到了一个令人兴奋的新结果:基于屏蔽的方法(BEiT和MAE)显示出比监督和随机初始化都有相当大的收益,并且这些收益随着模型大小的增加而增加。无论是在有监督的还是基于MoCo v3的初始化中,都没有观察到这种扩展行为。

    探索用于目标检测的平面视觉Transformer主干

    我们探索了普通的、非分层的视觉Transformer(ViT)作为目标检测的主干网络。这种设计使得最初的ViT体系结构能够针对目标检测进行微调,而无需重新设计用于预训练的分层主干。通过对微调进行最小程度的调整,我们的普通主干检测器可以获得具有竞争力的结果。令人惊讶的是,我们观察到:(i)从单一尺度的特征图(没有常见的FPN设计)构建一个简单的特征金字塔就足够了;(ii)使用窗口注意(不移动)辅助很少的跨窗口传播块就足够了。通过将普通ViT主干预训练为屏蔽自动编码器(MAE),我们的检测器ViTDet可以与之前所有基于分层主干的领先方法竞争,仅使用ImageNet-1K预训练即可在COCO数据集上达到61.3boxAP。我们希望我们的研究能引起人们对普通主干探测器的关注。代码将可用。

    1导言

    现代目标检测器通常由一个主干特征提取程序和一组颈部和头部组成,前者与检测任务无关,后者结合了检测特定的先验知识。颈部/头部中的常见组件可能包括感兴趣区域(RoI)操作[25,19,24]、区域建议网络(RPN)或锚[46]、特征金字塔网络(FPN)[35]等。如果特定于任务的颈部/头部的设计与主干的设计分离,它们可能会并行发展。从经验上看,目标检测研究得益于对通用主干[29,47,48,26]和检测特定模块的基本独立探索。很长一段时间以来,由于卷积网络(ConvNet)[31]的事实设计,这些主干一直是多尺度、分层的体系结构,这严重影响了在多尺度(如FPN)上检测物体的颈部/头部设计。

    在过去的一年里,视觉Transformer(ViT)[13]已经成为视觉识别的强大支柱。与典型的ConvNet不同,最初的ViT是一个简单的、非层次结构的体系结构,在整个过程中维护一个单一尺度的特征图。它的“极简主义”追求在应用于对象检测时遇到了挑战,例如,我们如何在下游任务中使用上游预训练的简单主干来处理多尺度对象?普通ViT是否效率太低,无法用于高分辨率检测图像?放弃这种追求的一种解决方案是在主干网中重新引入分层设计。

    这种解决方案,例如SwinTransformer[40]和相关工程[53,16,32,28],可以继承基于ConvNet的探测器设计,并已显示出成功的结果。

    在这项工作中,我们追求一个不同的方向:我们探索只使用普通、非层次主干的对象检测器。1如果该方向成功,将允许使用原始ViT主干进行目标检测;这将使预训练设计与微调需求脱钩,保持上游和下游任务的独立性,基于ConvNet的研究就是如此。这一方向也在一定程度上遵循了ViT的哲学,即“更少的归纳偏差”[13],以追求普适性。由于非局部自注意计算[52]可以学习平移等变特征[13],它们还可以从某些形式的监督或自监督预训练中学习尺度等变特征。

    在我们的研究中,我们的目标不是开发新的组件;相反,我们做出了最小的调整,足以克服上述挑战。特别是,我们的检测器仅从普通ViT主干的最后一个特征映射构建了一个简单的特征金字塔(图1)。这就放弃了FPN设计[35],放弃了分层主干网的要求。为了有效地从高分辨率图像中提取特征,我们的检测器使用简单的非重叠窗口注意(不像[40])。少量的跨窗口块(例如4)可以是全局注意[52]或卷积,用于传播信息。这些调整仅在微调期间进行,不会改变预训练。

    我们的简单设计结果令人惊讶。我们发现,在普通ViT主干的情况下,FPN设计是不必要的,它的优点可以通过从大跨步(16)单尺度尺图构建的简单金字塔有效地获得。我们还发现,只要信息能够在少量的层中很好地跨窗口传播,窗口关注就足够了。

    更令人惊讶的是,在某些情况下,我们的普通主干检测器ViTDet可以与领先的分层主干检测器竞争(例如,Swin[40],MViT[16,32])。通过屏蔽自动编码器(MAE)[23]预训练,我们的普通主干检测器可以优于在ImageNet-1K/21K[11]上经过监督预训练的分层检测器(图3)

    对于更大尺寸的模型,收益更为显著。我们的探测器在不同的目标探测器框架下具有竞争力,包括Mask R-CNN[24]、Cascade Mask R-CNN[4]及其增强功能。我们在COCO数据集[37]上报告了61.3个APbox,具有普通的ViT巨大主干,仅使用ImageNet-1K预训练,没有标签。我们还展示了长尾LVIS检测数据集的竞争结果[22]。虽然这些强有力的结果可能部分是由于MAE预训练的有效性,但我们的研究表明,普通主干检测器是有前途的,挑战了目标检测中层次主干的固有位置。

    除了这些结果之外,我们的方法论还保持了将特定于探测器的设计与任务无关主干解耦的理念。这种理念与重新设计Transformer主干以支持多尺度层次结构的趋势形成对比[40,53,16,28]。在我们的例子中,检测特定的先验知识只在微调期间引入,而不需要在预训练中预先定制主干设计。这使得我们的检测器与ViT在不同方向上的发展兼容,这些发展不一定受到分层约束的限制,例如块设计[50,51]、自监督学习[2,23]和缩放[55]。我们希望我们的研究能对未来的普通主干目标检测研究有所启发。2.

    2.相关工作

    目标探测器主干。

    由R-CNN[20]的工作开创,目标检测和许多其他视觉任务采用预训练+微调范式:一个通用的、任务无关的主干通过监督或自监督训练进行预训练,其结构后来被修改并适应下游任务。计算机视觉的主要支柱是各种形式的网络[31],例如[29,47,48,26]。

    早期的神经网络检测器,例如[25,19,46,45],最初出现时基于单尺度特征图。虽然它们使用默认分层的ConvNet主干网,但原则上,它们适用于任何普通主干网。SSD[38]是最早利用ConvNet主干的层次性的作品之一(例如VGG网络的最后两个阶段[47])。FPN[35]通过使用分层主干的所有阶段,通过横向和自上而下的连接,进一步推动了这一方向。FPN设计广泛应用于目标检测方法中。

    ViT[13]是用于图像分类的标准ConvNets的强大替代品。最初的ViT是一个简单的、非层次结构的体系结构。已经介绍了各种分级Transformer,例如,Swin[40]、MViT[16,32]、PVT[53]和PiT[28]。这些方法继承了ConvNet的一些设计,包括层次结构和平移等变先验(例如卷积、池、滑动窗口)。因此,用这些主干代替ConvNet进行目标检测相对简单。

    普通主干探测器。

    ViT的成功激发了人们推动普通脊柱用于目标检测的前沿。最近,UViT[8]被作为一个单尺度Transformer用于目标检测。UViT在目标检测指标下研究普通ViT主干的网络宽度、深度和输入分辨率。提出了一种渐进式窗口注意策略来处理高分辨率输入。与在预训练修改结构的UViT不同,我们的研究侧重于原始的ViT结构,没有先验的检测规范。我们的研究保持了主干的任务不可知性,因此它可以支持大量可用的ViT主干,以及它们在未来的改进。我们的方法将主干设计与检测任务分离,这是追求普通主干的关键动机。

    UViT对探测头使用单尺度特征映射,而我们的方法在单尺度主干上构建一个简单的金字塔。在我们的研究背景下,整个探测器都是单尺度的,这是一个不必要的限制。注:全UViT探测器也有几种形式的多尺度先验(例如,RPN[46]和ROIAllign[24]),因为它基于级联掩模R-CNN[4]。在我们的研究中,我们专注于利用预训练好的普通脊柱,而不限制检测器的颈部/头部设计。

    目标检测方法。

    目标检测是一个蓬勃发展的研究领域,采用了不同性质的方法,例如,两阶段[20,25,19,46]与一阶段[45,38,36],基于锚[46]与无锚[30,14,49],以及基于区域[20,25,19,46]与基于查询(DETR)[5]。对不同方法的研究不断推进对目标检测问题的理解。我们的研究表明,“普通与等级”主干的主题值得探索,并可能带来新的见解。

    3.方法

    我们的目标是消除主干上的层次约束,并实现普通主干目标检测的探索。为此,我们的目标是进行最小的修改,使普通主干仅在微调期间适应对象检测任务。经过这些调整后,原则上可以应用任何探测头,我们选择使用Mask R-CNN[24]及其扩展。我们的目标不是开发新组件;相反,我们关注的是在我们的探索中可以得出什么样的新见解。

    简单特征金字塔。

    FPN[35]是一种常见的解决方案,用于构建用于目标检测的网络金字塔。如果主干是分层的,FPN的动机是将早期阶段的更高分辨率特征与后期阶段的更强特征相结合。这在FPN中通过自上而下和横向连接实现[35](图1左)。

    如果主干是非分层的,那么FPN动机的基础就失去了,因为主干中的所有特征映射都具有相同的分辨率。在我们的场景中,我们只需使用主干中的最后一个功能映射,它应该具有最强的功能。在此图上,我们并行应用一组卷积或反卷积来生成多尺度特征图。具体地说,使用默认的ViT特征图(步长=16[13]),我们使用步长{2,1,1,2,1 4}的卷积生成{1 32,1 16,1 8,1 4}尺度的特征图,其中分数步长表示反卷积。我们将其称为“简单特征金字塔”(图1右侧)。从单一图构建多尺度尺特征图的策略与SSD的策略相关[38]。然而,与[38]不同的是,我们的场景涉及从深度、低分辨率的特征图进行上采样,而[38]利用的是较浅的特征图。在分层主干中,上采样通常由横向连接辅助[35];在普通ViT主干中,我们根据经验发现这是不必要的(第4节),简单的反褶积就足够了。我们假设这是因为ViT可以依赖位置嵌入[52]来编码位置,而且高维ViT补丁嵌入不一定会丢弃信息。3.

    我们将比较两个同样构建在普通主干上的FPN变体(图2)。在第一种变体中,主干被人为地划分为多个阶段,以模拟分层主干的阶段,并应用横向和自上而下的连接(图2(a))[15]。第二个变量与第一个变量类似,但只使用最后一个映射,而不是分阶段(图2(b))。我们证明这些FPN变体是不必要的(第4节)

    主干适应。

    对象检测器受益于高分辨率的输入图像,但在整个主干网中计算全局自注意在内存中是禁止的,而且速度很慢。在这项研究中,我们将重点放在这样一个场景上:预训练好的主干执行全局自注意,然后在微调过程中适应更高分辨率的输入。这与最近使用主干预训练直接修改注意力计算的方法(例如[40,16])形成对比。我们的场景使我们能够使用原始的ViT主干进行检测,而无需重新设计预训练架构。

    我们探索了使用窗口注意[52]和几个跨窗口块。在微调过程中,给定一个高分辨率的特征映射,我们将其划分为规则的非重叠窗口。5在每个窗口内计算自注意。在原始Transformer中,这被称为“受限”自关注[52]。与Swin不同,我们不会跨层“移动”[40]窗口。为了允许信息传播,我们使用了几个(默认情况下为4个)可以跨越窗口的块。我们将预训练的主干平均分成4个区块子集(例如,24区块ViT-L的每个子集中有6个区块)。我们在每个子集的最后一个块中应用传播策略。我们研究这两种策略:

    (i) 全球传播。我们在每个子集的最后一个区块进行全局自关注。由于全局块的数量较少,因此内存和计算成本是可行的。这类似于[32]中与FPN联合使用的混合窗口注意。

    (ii)卷积传播。作为替代方案,我们在每个子集后添加一个额外的卷积块。卷积块是由一个或多个卷积和标识快捷键组成的剩余块[26]。该块中的最后一层初始化为零,因此块的初始状态为标识[21]。将块初始化为标识允许我们将其插入预训练的主干中的任何位置,而不会破坏主干的初始状态。

    我们的主干适应非常简单,使检测微调与全球自注意预训练兼容。如上所述,无需重新设计预训练架构。

    讨论

    对象检测器包含任务无关的组件,如主干,以及其他任务特定的组件,如RoI头。该模型分解使任务无关组件能够使用非检测数据(例如ImageNet)进行预训练,这可能会提供一个优势,因为检测训练数据相对稀缺。从这个角度来看,追求一个包含较少诱导偏差的主干是合理的,因为主干可以使用大规模数据和/或自监督进行有效训练。相比之下,检测任务特定组件的可用数据相对较少,并且可能仍然受益于额外的感应偏差。虽然追求具有较少感应偏差的探测头是一个活跃的工作领域,但像DETR这样的领先方法很难训练,并且仍然受益于特定于探测的先验知识[58]。

    在这些观察的推动下,我们的工作遵循了原始普通ViT纸关于探测器主干的精神。虽然ViT论文[13]的讨论集中在减少对平移等变的归纳偏见上,但在我们的例子中,它是关于主干中对尺度等变的归纳偏见更少甚至没有。我们假设,普通主干实现尺度等变的方法是从数据中学习先验知识,类似于它如何在没有卷积的情况下学习平移等变和局部性[13]。

    我们的目标是证明这种方法的可行性。因此,我们选择使用标准检测特定组件(即Mask R-CNN及其扩展)来实现我们的方法。探索探测头中更少的感应偏差是未来工作的一个开放而有趣的方向。我们希望它能从我们在这里的工作中受益,并在此基础上再接再厉。

    实施

    我们使用vanillaViTB、ViTL、ViTH[13]作为预训练的主干。我们将斑块大小设置为16,因此特征图尺度为1/16,即步长=16.6。我们的探测头遵循掩模R-CNN[24]或级联掩模R-CNN[4],结构细节见附录。输入图像为1024×1024,在训练期间会出现大规模抖动[18]。由于这种严格的规范化,我们对COCO进行了多达100个epoch的微调。我们使用AdamW优化器[41],并使用基线版本搜索最佳超参数。更多细节见附录。

    4个实验

    4.1消融研究和分析

    我们在COCO数据集上进行消融实验[37]。我们在2017年的训练集上进行训练,并在2017年的训练集上进行评估。我们报告了边界盒对象检测(APbox)和实例分割(APmask)的结果。

    默认情况下,我们使用第节中描述的简单特征金字塔和全局传播。3.我们使用4个传播块,均匀地放置在主干中。我们使用MAE[23]初始化主干,在IN-1K上预训练,没有标签。我们消除了这些缺陷,并将主要观察结果讨论如下。

    一个简单的特征金字塔就足够了。在表1中,我们比较了图2所示的特征金字塔构建策略。

    我们研究了一个没有特征金字塔的基线:RPN和RoI头部都应用在主干的最终单尺度(1 16)特征图上。这种情况类似于FPN提出之前的更快的R-CNN[46]。所有特征金字塔变体(表1 a-c)都明显优于该基线,使AP增加了3.4个点。我们注意到,使用单尺度特征映射并不意味着检测器是单尺度的:RPN头部具有多尺度锚,RoI头部在多尺度区域上操作。即便如此,特征金字塔也是有益的。这一观察结果与FPN论文[35]中关于等级主干的观察结果一致。

    然而,FPN设计是不需要的,我们简单的功能金字塔足以让普通ViT主干享受金字塔的好处。为了消除这种设计,我们模仿FPN架构(即自上而下和横向连接),如图2(a,b)所示。表1(a,b)显示,虽然两种FPN变体在没有金字塔的情况下都比基线获得了很好的增益(正如在分层主干上的原始FPN中广泛观察到的那样),但它们并不比我们的简单特征金字塔更好。原始FPN[35]的动机是将低分辨率、更强的特征图与高分辨率、较弱的特征图相结合。当主干是普通的,没有高分辨率的图时,这个基础就失去了,这可以解释为什么我们的简单金字塔就足够了。

    我们的研究表明,金字塔特征映射集,而不是自上而下/横向连接,是有效多尺度检测的关键。为了看到这一点,我们研究了简单金字塔的一个更具攻击性的例子:我们通过反褶积只生成最精细的尺度(14)特征图,然后从这个最精细的图中,我们通过逐步平均池并行地对其他尺度进行子采样。此设计中没有非共享的按尺度参数。这个有攻击性的简单金字塔几乎同样好:它有54.5 AP(ViT-L),比没有金字塔的基线高3.3。这表明了金字塔特征图的重要性。对于这些特征金字塔的任何变体,锚(在RPN中)和区域(在RoI头部中)都会根据其尺度映射到金字塔中的相应级别,如[35]所示。我们假设,这种明确的尺度等变映射,而不是自上而下/横向连接,是特征金字塔能够极大地有利于多尺度目标检测的主要原因。

    在几个传播块的帮助下,窗口注意就足够了。表2列出了我们的主干适应方法。简言之,在一个纯窗口关注且没有跨窗口传播块(表2,“无”)的基线之上,各种传播方式可以显示出可观的收益。7.

    在表2a中,我们比较了全局和卷积传播策略与无传播基线。与基线相比,它们的增益分别为1.7和1.9。我们还将其与“移位窗口”(Swin[40])策略进行了比较,在该策略中,每隔一个块,窗口网格就被移位半个窗口大小。移动窗口变体比基线有1.1的增益,但比我们的差。注意,这里我们只关注Swin的“移位窗口”方面[40]:主干仍然是一个普通的ViT,只在微调期间适应移位窗口注意;这不是我们稍后将要比较的Swin架构。

    表2b比较了用于卷积传播的不同类型的剩余块。我们研究了基本(两个3×3)[26],瓶颈(1×1→3×3→1×1)[26],以及具有一个3×3卷积的naıve块。它们都比基线有所改善,而具体的区块设计只会产生微小的差异。有趣的是,即使卷积是一个局部操作,如果它的感受野覆盖两个相邻的窗口,原则上它足以连接两个窗口的所有像素。这种连接性是由于在接下来的两个窗口中的自关注。这或许可以解释为什么它可以像全球传播一样发挥作用。

    在表2c中,我们研究了跨窗口传播应该位于主干中的什么位置。默认情况下,平均放置4个全局传播块。我们将它们放在第一个或最后4个区块进行比较。有趣的是,在最后4个块中执行传播几乎和均匀放置一样好。这与[13]中的观察结果一致,即ViT在后期区块中的注意距离更长,在早期区块中更局限。相比之下,仅在前4个块中执行传播不会显示任何增益:在这种情况下,在这4个块之后,主干中没有跨窗口的传播。这再次证明了跨窗口传播是有帮助的。

    表2d比较了要使用的全局传播块的数量。即使只使用两个块也能获得很好的精度,明显优于基线。为了全面起见,我们还报告了一种变体,其中ViT-L中的所有24个区块都使用全局注意力。这比我们的4块默认值有0.5点的边际增益,而它的训练需要特殊的内存优化(我们使用内存检查点[7])。这一要求使得扩展到更大型号(如ViT-H)不切实际。我们的窗口注意加上几个传播块的解决方案提供了一个实用、高性能的折衷方案。

    我们在表3中对这种权衡进行了基准测试。使用4个传播块可以得到很好的折衷。卷积传播是最实用的,只需增加记忆和时间≤5%,而额外增加4%的参数。具有4个块的全局传播也是可行的,并且不会增加模型大小。在所有24个街区中,全球自关注都是不现实的。

    总之,表2显示了各种形式的传播是有帮助的,而我们可以在大多数或所有块中继续使用窗口注意。重要的是,所有这些架构调整仅在微调期间执行;它们不需要重新设计预训练架构。

    屏蔽自动编码器提供强大的预训练主干。

    表4比较了骨干预训练的策略。有监督的IN-1K预训练比没有预训练略差,类似于[18]中的观察结果。有监督的IN-21K预训练对ViT-L略好一些。

    相比之下,MAE[23]在In-1K(无标签)上的预训练显示出巨大的收益,ViT-B的APbox增加了3.1,ViT-L增加了4.6。我们假设,归纳偏差较少的普通ViT[13]可能需要更高的学习平移和缩放等变特征的能力,而更高容量的模型容易出现更严重的过度拟合。MAE预训练有助于缓解这个问题。接下来我们将在上下文中详细讨论MAE。

    4.2与等级主干的比较

    现代检测系统涉及许多实现细节和微妙之处。为了在尽可能公平的条件下比较主干网,我们将Swin[40]和MViTv2[32]主干网合并到我们的实现中。

    设置。

    我们对所有ViT、Swin和MViTv2主干使用相同的Mask R-CNN[24]和Cascade Mask R-CNN[4]实现。我们使用FPN作为Swin/MViTv2的层次主干。我们分别为每个主干网搜索最优超参数(见附录)。我们的Swin结果优于原始论文中的对应结果;8我们的MVITV2结果优于或等同于在[ 32 ]中报道的结果。

    根据原始文献[40,32],Swin和MViTv2都使用相对位置偏差[44]。为了进行更公平的比较,我们还根据[32]在ViT脊柱中采用了相对位置偏差,但仅在微调期间,不影响预训练。这一添加提高了AP∼1分。请注意,我们的烧蚀时间为秒。4.1没有相对位置偏差。

    结果与分析。

    表5显示了比较结果。图3给出了折衷方案。这里的比较涉及两个因素:骨干和预训练策略。我们的普通主干检测器与MAE预训练相结合,呈现出更好的缩放行为。当模型较大时,我们的方法优于SWI/MViTv2的层次结构,包括使用IN-21K监督预训练的方法。我们使用ViT-H的结果比使用MViTv2-H的结果好2.6。此外,普通ViT具有更好的挂钟性能(图3右侧,请参见ViT-H与MViTv2-H),因为简单的块对硬件更友好。

    我们还对MAE对等级主干的影响感到好奇。这在很大程度上超出了本文的范围,因为它涉及到为具有MAE的等级骨干找到良好的训练方法。为了提供一些见解,我们使用MViTv2主干实现了MAE的一个简单扩展(见附录)。我们观察到,在IN-1K上进行MAE预训练的MViTv2-L比在IN-21K监督预训练的MViTv2-L(54.9对53.6)好1.3。作为比较,对于我们的普通主干检测器,这个差距是4点(表4)。这表明普通ViT主干可能比等级主干从MAE预训练中受益更多,这表明MAE的自监督训练可以弥补量表上缺乏诱导性偏差。虽然通过MAE预训练改进分层主干是一个有趣的未来话题,但我们的普通主干检测器使我们能够使用MAE现成的ViT主干来实现强大的结果。

    我们还注意到,层级主干通常涉及增强的自注意块设计。例子包括Swin[40]中迁移的窗口注意力,以及MViT v1/v2[16,32]中的集中注意力。如果将这些块设计应用于普通主干,也可以提高精度和参数效率。虽然这可能会让我们的竞争对手处于优势,但如果没有这些改进,我们的方法仍然具有竞争力。

    4.3与以前系统的比较

    接下来,我们将系统级的结果与之前的论文中报告的主要结果进行比较。我们称我们的系统为ViTDet,即ViT检测器,旨在使用ViT主干进行检测。由于这些比较是系统级的,因此这些方法使用了各种不同的技术。虽然我们努力平衡比较(如下所述),但总体而言,进行完全受控的比较是不可行的;相反,我们的目标是将我们的方法置于当前领先方法的背景下。

    可可的比较。

    表6报告了COCO的系统级比较。为了进行更公平的比较,我们在这里对我们的竞争对手进行了两项更改:我们采用了本表中所有竞争对手[40,32,34,39]使用的软nms[3],并在[34,39]之后增加了输入大小(从1024增加到1280)。我们注意到,我们在以前的烧蚀中没有使用这些改进。与前一小节(第4.3节)一样,我们在这里使用相对位置偏差。

    到目前为止,领先的系统都是基于等级主干的(表6)。我们首次证明,普通主干检测器可以在COCO上获得高精度的结果,并可以与领先的系统竞争。

    我们还将其与UViT[8]进行了比较,后者是一种最新的普通主干检测方法。如第2节所述。2、UViT和我们的工作重点不同。UViT的目标是设计一种新的、有利于检测的普通主干网,而我们的目标是支持通用ViT主干网,包括[13]中的原始主干网。尽管重点不同,但UViT和我们的工作都表明,平原主干检测是一个很有潜力的方向。

    LVIS的比较。

    我们进一步报告了LVIS数据集上的系统级比较[22]。LVIS包含∼针对1203个类的2M高质量实例分割注释,呈现出自然的长尾对象分布。与COCO不同的是,班级分布严重不平衡,许多班级几乎没有(例如,<10)个训练案例。

    我们遵循与COCO系统级比较相同的模型和训练细节,加上两种常见的LVIS实践:我们使用[57]中的联邦损失和重复因子抽样的样本图像[22]。我们在v1训练集上微调了100个epoch。

    表7显示了v1 val分割的结果。与之前所有使用分层主干的领先结果相比,我们的普通主干检测器实现了具有竞争力的性能。我们的对手比2021竞争对手的“强基线”(17)(48.1比43.1 Ap面具)高出5分,它使用了带有两个SW-L骨干的CBNVv2(34)的HTC。LVIS中的一个特殊问题是关于长尾分布,这超出了我们的研究范围。专门解决这个问题的技术,例如使用CLIP[42]文本嵌入或[17]的其他改进,可以在很大程度上增加稀有类的AP(APmask稀有),从而提高整体AP。这些与我们的方法是正交的,可能是互补的。然而,我们在LVIS上的结果再次表明,普通主干检测器可以与分层检测器竞争。

    5结论

    我们的探索表明,普通主干检测是一个很有前途的研究方向。这种方法在很大程度上保持了通用主干网和下游特定任务设计的独立性,这是基于ConvNet的研究的情况,但不适用于基于Transformer的研究。我们希望,将预训练与微调脱钩是一种普遍有益于社区的方法。例如,在自然语言处理(natural language processing,NLP)中,通用预训练(GPT[43],BERT[12])极大地推进了该领域,并一直支持各种下游任务。在这项研究中,我们的普通主干检测器得益于MAE[23]现成的预训练模型。我们希望这种方法也将有助于使计算机视觉和NLP领域更加紧密。

    附录

    A.1其他消融结果

    表8是关于主干适应的表2的ViT-B对应项。观察结果与ViT-L相似:与使用无繁殖(“无”)的基线相比,各种繁殖策略显示出良好的增益。

    表9给出了表5中关于触发器、参数和推断时间的额外细节,如图3所示。

    表10是LVIS的预训练策略。与表4类似,MAE预训练比有监督的预训练有很大的收益。

    图4是图3的LVIS对应图。这种趋势与COCO中的趋势相似,而in-21K监督预训练的增益更大,因为它显著改善了LVIS中的罕见类别检测。

    A.2实施细节

    架构。

    我们建立了一个简单的特征金字塔{132,116,18,14}(见第3节)。1 32标度是由STERID-2 2×2最大池(平均池或卷积的工作原理类似)构建的。1.16尺度尺仅使用ViT的最终特征图。尺度18(或14)由一个(或两个)2×2反褶积层建立,步长=2。在14尺度尺的情况下,第一次反褶积之后是LayerNorm(LN)[1]和GeLU[27]。然后,对于每个金字塔级别,我们对LN进行1×1卷积,将维数降低到256,然后对LN进行3×3卷积,类似于FPN的每级别处理[35]。

    我们研究了两种检测框架:Mask R-CNN[24]和Cascade Mask RCNN[4]。由于这两个[24,4]都是在几年前提出的,我们结合了自那时以来开发的一些常见最佳实践。根据[54],我们为RPN使用2个隐藏卷积层,为RoI头使用4个隐藏卷积层。这些隐藏的卷积层后面是LN。我们对普通主干和分层主干使用相同的检测实现。

    对于所有ViT主干,我们使用的补丁大小为16。由于[13]中的ViT-H默认图块大小为14,在预训练后,我们将图块嵌入滤波器从14×14×3插值到16×16×3。

    COCO的超参数。

    我们默认的训练方法如下(除非在消融术上下文中注明)。输入大小为1024×1024,在训练期间通过[0.1,2.0]范围内的大规模抖动[18]增加。我们使用AdamW[41](β1,β2=0.9,0.999)进行逐步学习率衰减。我们使用线性学习率预热[21]进行250次迭代。批量大小为64,分布在64个GPU上(每个GPU 1个映像)。

    我们搜索每个模型尺寸(B、L、H)和每个模型类型(ViT、Swin、MViTv2)的学习率(lr)、权重衰减(wd)、下降路径率(dp)和时间。所用的超参数见表11。我们还使用0.7/0.8/0.9的逐层lr衰减[9][2]进行ViT-B/L/H和MAE预训练,其小增益高达0.3 AP;我们还没有看到分级骨干或ViT在有监督的预训练中获得这种收益。

    LVIS的超参数。

    表7中的LVIS实验遵循表5中的COCO设置。对于LVI,我们设置lr=2e−4/1e−4(ViT-L/H),wd=0.1,dp=0.4。我们微调了100个epoch。我们使用0.02的测试分数阈值(较小的值没有帮助)和重复因子抽样(t=0.001)[22]。我们输出≤ [22]之后,每张图像的检测次数为300次(而COCO的默认检测次数为100次)。

    MAE代表等级主干。

    我们为分层主干消融(第4.2节)实施了MAE预训练[23]的简单扩展。MAE通过跳过编码器掩码令牌享受普通ViT带来的效率优势[23]。将此策略扩展到分层主干网超出了本文的范围。相反,我们采用了一种简单的解决方案,在该解决方案中,我们不会跳过编码器掩码令牌(类似于[12]),而以较慢的训练为代价。我们使用归一化像素作为MAE重建目标[23],并将解码器深度设置为2。    

    相关文章

      网友评论

          本文标题:ViT for Detection

          本文链接:https://www.haomeiwen.com/subject/zxofyrtx.html