在深度学习领域,目标检测作为计算机视觉的核心任务之一,其性能的提升始终吸引着研究者们的目光。近期,我们创新性地将Swin Transformer这一前沿的Transformer架构引入到YoloV8目标检测模型中,通过替换其原有的主干网络,实现了检测性能的显著提升,为YoloV8系列模型注入了新的活力。
完整链接:
https://jingjing.blog.csdn.net/article/details/142305302?spm=1001.2014.3001.5502
改进亮点概述:
改进优点总结:
本次将Swin Transformer融入YoloV8的改进尝试,不仅是对传统目标检测模型的一次大胆革新,更是对深度学习技术在实际应用中潜力的一次深刻挖掘。我们相信,随着技术的不断进步和完善,这一改进方案将在更多领域展现出其独特的价值和魅力,引领目标检测技术迈向新的高度。欢迎广大研究者和开发者加入我们,共同探索深度学习技术的无限可能!
链接:https://arxiv.org/pdf/2103.14030.pdf 本文介绍了一种称为 Swin Transformer 的新视觉 Transformer,它可以作为计算机视觉的通用主干。将 Transformer 从语言适应到视觉方面的挑战源于两个领域之间的差异,例如视觉实体的规模差异很大,以及与文本中的单词相比,图像中像素的高分辨率。为了解决这些差异,我们提出了一种分层 Transformer,其表示是用移位窗口计算的。移位窗口方案通过将自注意力计算限制到非重叠的本地窗口同时还允许跨窗口连接来提高效率。这种分层架构具有在各种尺度上建模的灵活性,并且相对于图像大小具有线性计算复杂性。Swin Transformer 的这些品质使其与广泛的视觉任务兼容,包括图像分类(ImageNet-1K 上的 86.4 top-1 准确率)和密集预测任务,例如对象检测(COCO test 上的 58.7 box AP 和 51.1 mask AP) dev) 和语义分割(ADE20K val 上为 53.5 mIoU)。它的性能在 COCO 上以 +2.7 box AP 和 +2.6 mask AP 以及在 ADE20K 上 +3.2 mIoU 的大幅度超过了之前的最新技术,证明基于 Transformer 的模型作为视觉支柱的潜力。代码和模型将公布在 https://github.com/microsoft/Swin-Transformer 。
计算机视觉建模长期以来一直由卷积神经网络 (CNN) 主导。从 AlexNet [38] 及其在 ImageNet 图像分类挑战中的革命性表现开始,CNN 架构通过更大的规模 [29, 73]、更广泛的连接 [33] 和更复杂的卷积形式 [67, 17, 81]。随着 CNN 作为各种视觉任务的骨干网络,这些架构的进步导致了性能改进,从而广泛提升了整个领域。
另一方面,自然语言处理 (NLP) 中网络架构的演变采取了不同的路径,如今流行的架构是 Transformer [61]。Transformer 专为序列建模和转导任务而设计,以其对数据中长期依赖关系建模的关注而著称。它在语言领域的巨大成功促使研究人员研究其对计算机视觉的适应性,最近它在某些任务上展示了有希望的结果,特别是图像分类 [19] 和联合视觉语言建模 [46]。
在本文中,我们寻求扩展 Transformer 的适用性,使其可以作为计算机视觉的通用主干,就像 NLP 和 CNN 在视觉中所做的那样。我们观察到,将其在语言领域的高性能转移到视觉领域的重大挑战可以通过两种模式之间的差异来解释。这些差异之一涉及规模。与作为语言转换器中处理基本元素的单词标记不同,视觉元素在规模上可能会有很大差异,这个问题在对象检测等任务中受到关注 [41, 52, 53]。在现有的基于 Transformer 的模型中 [61, 19],代币都是固定规模的,这种特性不适合这些视觉应用。另一个区别是与文本段落中的单词相比,图像中像素的分辨率要高得多。存在许多视觉任务,例如语义分割,需要在像素级别进行密集预测,这对于高分辨率图像上的 Transformer 来说是难以处理的,因为其自注意力的计算复杂度与图像大小成二次方。为了克服这些问题,我们提出了一种通用的 Transformer 主干,称为 Swin Transformer,它构建分层特征图并且对图像大小具有线性计算复杂度。如图 1(a) 所示,Swin Transformer 通过从小尺寸的补丁(灰色轮廓)开始并逐渐合并更深的 Transformer 层中的相邻补丁来构建分层表示。通过这些分层特征图,Swin Transformer 模型可以方便地利用先进的技术进行密集预测,例如特征金字塔网络 (FPN) [41] 或 U-Net [50]。线性计算复杂度是通过在划分图像的非重叠窗口中本地计算自注意力来实现的(以红色标出)。每个窗口中的补丁数量是固定的,因此复杂度与图像大小成线性关系。这些优点使 Swin Transformer 适合作为各种视觉任务的通用主干,与之前基于 Transformer 的架构 [19] 形成对比,后者产生单一分辨率的特征图并具有二次复杂性。
Swin Transformer 的一个关键设计元素是它在连续自注意力层之间的窗口分区的移动,如图 2 所示。移动的窗口桥接前一层的窗口,提供它们之间的连接,显着增强建模能力(见表 4)。这种策略在现实世界的延迟方面也很有效:窗口内的所有查询补丁共享相同的密钥集 1,这有助于硬件中的内存访问。相比之下,早期的基于滑动窗口的自注意力方法 [32, 49] 由于不同查询像素的不同键集而在通用硬件上存在低延迟2。我们的实验表明,所提出的移位窗口方法的延迟比滑动窗口方法低得多,但建模能力相似(见表 5 和表 6)。
所提出的 Swin Transformer 在图像分类、对象检测和语义分割的识别任务上取得了强大的性能。它在三个任务上以相似的延迟显着优于 ViT / DeiT [19, 60] 和 ResNe(X)t 模型 [29, 67]。它在 COCO 测试开发集上的 58.7 box AP 和 51.1 mask AP 以 +2.7 box AP(没有外部数据的复制粘贴 [25])和 +2.6 mask AP(DetectoRS [ 45])。在 ADE20K 语义分割上,它在 val 集上获得了 53.5 mIoU,比之前的最先进技术(SETR [78])提高了 +3.2 mIoU。它还在 ImageNet-1K 图像分类上实现了 86.4% 的 top-1 准确率。
我们相信,跨计算机视觉和自然语言处理的统一架构可以使这两个领域受益,因为它将促进视觉和文本信号的联合建模,并且可以更深入地共享来自两个领域的建模知识。我们希望 Swin Transformer 在各种视觉问题上的强大表现能够在社区中更深入地推动这种信念,并鼓励视觉和语言信号的统一建模 。
CNN 和变体 CNN 作为整个计算机视觉的标准网络模型。虽然 CNN 已经存在了几十年 [39],但直到 AlexNet [38] 的引入,CNN 才起飞并成为主流。从那时起,人们提出了更深入、更有效的卷积神经架构,以进一步推动计算机视觉领域的深度学习浪潮,例如 VGG [51]、GoogleNet [56]、ResNet [29]、DenseNet [33]、HRNet [62]和 EfficientNet [57]。除了这些架构上的进步,在改进单个卷积层方面也有很多工作,例如深度卷积 [67] 和可变形卷积 [17, 81]。虽然 CNN 及其变体仍然是计算机视觉的主要骨干架构在应用程序中,我们强调了类似 Transformer 的架构在视觉和语言之间统一建模的强大潜力。我们的工作在几个基本的视觉识别任务上取得了强劲的表现,我们希望它有助于建模转变。
基于自注意力的骨干架构 同样受到 NLP 领域中自注意力层和 Transformer 架构成功的启发,一些作品采用自注意力层来替换流行的 ResNet [32,49,77] 中的部分或全部空间卷积层。在这些工作中,自注意力是在每个像素的局部窗口内计算的,以加速优化 [32],并且它们实现了比对应的 ResNet 架构稍好一些的精度/FLOPs 权衡。然而,它们昂贵的内存访问导致它们的实际延迟明显大于卷积网络 [32]。我们建议不使用滑动窗口,而是在连续层之间移动窗口,这允许在通用硬件中更有效地实现。
自我注意/Transformer 以补充 CNN 另一项工作是使用自注意力层或 Transformer 来增强标准的 CNN 架构。自注意力层可以通过提供编码远程依赖或异构交互的能力来补充主干 [64, 6, 68, 22,71, 54] 或头部网络 [31, 26]。最近,Transformer 中的编码器-解码器设计已应用于对象检测和实例分割任务 [7, 12, 82, 55]。我们的工作探索了 Transformers 对基本视觉特征提取的适应性,并且是对这些工作的补充。
基于 Transformer 的视觉主干与我们的工作最相关的是 Vision Transformer (ViT) [19] 及其后续 [60, 69, 14, 27, 63]。ViT 的开创性工作直接将 Transformer 架构应用于不重叠的中等大小图像块上进行图像分类。与卷积网络相比,它在图像分类方面实现了令人印象深刻的速度-准确度权衡。虽然 ViT 需要大规模训练数据集(即 JFT-300M)才能表现良好,但 DeiT [60] 引入了几种训练策略,允许 ViT 使用较小的 ImageNet-1K 数据集也有效。ViT 在图像分类上的结果令人鼓舞,但其架构不适合用作密集视觉任务或输入图像分辨率高时的通用骨干网络,因为它的低分辨率特征图和二次增加图像大小的复杂性。有一些作品通过直接上采样或反卷积将 ViT 模型应用于目标检测和语义分割的密集视觉任务,但性能相对较低 [2, 78]。与我们的工作同时进行的是一些修改 ViT 架构 [69, 14, 27] 以获得更好的图像分类。根据经验,我们发现我们的 Swin Transformer 架构可以在这些图像分类方法中实现最佳速度精度权衡,尽管我们的工作侧重于通用性能而不是专门针对分类。另一项并发工作 [63] 探索了在 Transformer 上构建多分辨率特征图的类似思路。它的复杂性仍然是图像大小的二次方,而我们的复杂性是线性的,并且也在局部操作,这已被证明有利于对视觉信号中的高相关性进行建模 [35,24,40]。我们的方法既高效又有效,在 COCO 对象检测和 ADE20K 语义分割上都达到了最先进的准确性。
图 3 展示了 Swin Transformer 架构的概述,其中展示了微型版本 (SwinT)。它首先通过补丁拆分模块(如 ViT)将输入的 RGB 图像拆分为不重叠的补丁。每个补丁都被视为一个“令牌”,其特征被设置为原始像素 RGB 值的串联。在我们的实现中,我们使用 4 × 4 的补丁大小,因此每个补丁的特征维度是 4 × 4 × 3 = 48。线性嵌入层应用于这个原始值特征以将其投影到任意维度( 表示为 C)
在这些补丁令牌上应用了几个具有修改自注意力计算的 Transformer 块(Swin Transformer 块)。Transformer 块保持令牌数,与线性嵌入一起被称为“阶段 1”。
为了产生分层表示,随着网络变得更深,通过补丁合并层来减少令牌的数量。第一个补丁合并层连接每组 2 × 2 相邻补丁的特征,并在 4C 维连接特征上应用线性层。这将令牌数量减少了 2×2 = 4 的倍数(分辨率的 2 倍下采样),并且输出维度设置为 2C。之后应用 Swin Transformer 块进行特征转换,分辨率保持在 。补丁合并和特征转换的第一个块表示为“第 2 阶段”。该过程重复两次,分别为“第 3 阶段”和“第 4 阶段”,输出分辨率分别为 和 。这些阶段共同产生一个分层表示,具有与典型卷积网络相同的特征图分辨率,例如 VGG [51] 和 ResNet [29]。因此,所提出的架构可以方便地替换现有方法中用于各种视觉任务的骨干网络。
Swin Transformer 模块 Swin Transformer 是通过将 Transformer 模块中的标准多头自注意力 (MSA) 模块替换为基于移动窗口的模块(在第 3.2 节中描述)而构建的,其他层保持不变。如图 3(b) 所示,Swin Transformer 模块由一个基于移动窗口的 MSA 模块组成,后跟一个 2 层 MLP,其间具有 GELU 非线性。在每个 MSA 模块和每个 MLP 之前应用一个 LayerNorm (LN) 层,在每个模块之后应用一个残差连接。
标准的 Transformer 架构 [61] 及其对图像分类的适应 [19] 都进行全局自注意力,其中计算了令牌与所有其他令牌之间的关系。全局计算会导致与标记数量相关的二次复杂性,使其不适用于许多需要大量标记进行密集预测或表示高分辨率图像的视觉问题。
非重叠窗口中的自注意力 为了有效建模,我们建议在局部窗口内计算自注意力。窗口被布置为以不重叠的方式均匀地划分图像。假设每个窗口包含 M × M 个补丁,全局 MSA 模块和基于 h × w 补丁图像的窗口的计算复杂度为:
其中前者与补丁号 hw 的二次方,当 M 固定时后者是线性的(默认设置为 7)。全局自注意力计算对于大型hw来说通常是负担不起的,而基于窗口的自注意力是可扩展的。
连续块中的移位窗口分区 基于窗口的自注意力模块缺乏跨窗口的连接,这限制了其建模能力。为了在保持非重叠窗口的高效计算的同时引入跨窗口连接,我们提出了一种移位窗口分区方法,该方法在连续的 Swin Transformer 块中的两个分区配置之间交替。
如图 2 所示,第一个模块使用从左上角像素开始的常规窗口划分策略,将 8 × 8 特征图均匀划分为大小为 4 × 4 (M = 4) 的 2 × 2 窗口。然后,下一个模块采用从前一层的窗口配置偏移的窗口配置,通过将窗口从规则分区的窗口中移动个像素。使用移位窗口分区方法,连续的 Swin Transformer 块计算为
其中和 分别表示块 的 (S)WMSA 模块和 MLP 模块的输出特征;W-MSA 和 SW-MSA 分别表示使用常规和移位窗口分区配置的基于窗口的多头自注意力。
移位窗口分区方法在前一层中引入了相邻非重叠窗口之间的连接,并被发现在图像分类、对象检测和语义分割中是有效的,如表 4 所示。
移位配置的高效批量计算 移位窗口分区的一个问题是它会导致更多窗口,在移位配置中从 到 ,并且一些窗口将小于 M × M。一个简单的解决方案是将较小的窗口填充到 M × M 的大小,并在计算注意力时屏蔽填充的值。当常规分区中的窗口数量很少时,例如 2 × 2,这个简单的解决方案增加的计算量是相当可观的(2 × 2 !3 × 3,是 2.25 倍)。在这里,我们提出了一种更有效的批量计算方法,通过向左上方向循环移位,如图 4 所示。在这种移位之后,一个批量窗口可能由几个在特征图中不相邻的子窗口组成,因此采用屏蔽机制将自注意力计算限制在每个子窗口内。使用循环移位,批处理窗口的数量与常规窗口分区的数量相同,因此也是有效的。这种方法的低延迟如表 5 所示。
相对位置偏差 在计算自注意力时,我们遵循 [48, 1, 31, 32] 通过在计算相似度时将相对位置偏差添加到每个头部:
其中 是查询、键和值矩阵;d 是查询/键维度,M2 是窗口中的补丁数。由于沿每个轴的相对位置位于 [−M + 1; M − 1],我们参数化一个更小的偏置矩阵,B 中的值取自
我们观察到与没有这个偏置项或使用绝对位置嵌入的对应项相比有显着的改进,如表 4 所示。在 [19] 中进一步向输入添加绝对位置嵌入会略微降低性能,因此在我们的实现中没有采用。
预训练中学习到的相对位置偏差也可用于初始化模型,通过双三次插值 [19, 60] 使用不同的窗口大小进行微调。
我们建立我们的基础模型,称为 Swin-B,具有 模型大小和计算复杂度类似于 ViTB/DeiT-B。我们还介绍了 Swin-T、Swin-S 和 Swin-L,它们分别是模型大小和计算复杂度约为 0.25x、0.5x 和 2x 的版本。请注意,Swin-T 和 Swin-S 的复杂度分别与 ResNet-50 (DeiT-S) 和 ResNet-101 的复杂度相似。默认情况下,窗口大小设置为 M = 7。对于所有实验,每个头部的查询维度为 d = 32,每个 MLP 的扩展层为 α = 4。这些模型变体的架构超参数是:
其中 C 是第一阶段隐藏层的通道数。表 1 列出了 ImageNet 图像分类模型变体的模型大小、理论计算复杂度 (FLOPs) 和吞吐量。
我们对 ImageNet-1K 图像分类 [18]、COCO 对象检测 [42] 和 ADE20K 语义分割 [80] 进行了实验。在下文中,我们首先将所提出的 Swin Transformer 架构与之前在三个任务上的最新技术进行比较。然后,我们在 Swin Transformer 的重要设计元素做了消融实验。
设置 对于图像分类,我们在 ImageNet-1K [18] 上对提议的 Swin Transformer 进行了基准测试,其中包含来自 1,000 个类别的 1.28M 训练图像和 50K 验证图像。报告了单个作物的 top-1 准确度。我们考虑两种训练设置:
常规 ImageNet-1K 训练的结果 表 1(a) 展示了使用常规 ImageNet-1K 训练与其他主干的比较,包括基于 Transformer 和基于 ConvNet 的主干。
与之前最先进的基于 Transformer 的架构(即 DeiT [60])相比,Swin Transformers 明显优于具有相似复杂性的对应 DeiT 架构:Swin-T (81.3%) 比 DeiT-S (79.8%) + 1.5% ) 使用 2242 输入,Swin-B (83.3%/84.2%) 使用 输入,分别超过 DeiT-B (81.8%/83.1%) +1.5%/1.1%。
与最先进的 ConvNets,即 RegNet [47] 和 EfficientNet [57] 相比,Swin Transformer 实现了稍微更好的速度-精度权衡。请注意,虽然 RegNet [47] 和 EfficientNet [57] 是通过彻底的架构搜索获得的,但所提出的 Swin Transformer 改编自标准 Transformer,并且具有进一步改进的强大潜力。
ImageNet-22K 预训练的结果 我们还在 ImageNet-22K 上预训练了更大容量的 Swin-B 和 Swin-L。在 ImageNet-1K 图像分类上微调的结果如表 1(b) 所示。对于 Swin-B,ImageNet-22K 预训练比从头开始训练 ImageNet-1K 带来了 1.8%∼1.9% 的收益。与之前 ImageNet-22K 预训练的最佳结果相比,我们的模型在速度和准确度之间取得了明显更好的权衡:Swin-B 获得了 86.0% 的 top-1 准确度,比具有相似推理吞吐量的 ViT 高 2.0% (84.7 对 85.9 张图像/秒)和略低的 FLOP(47.0G 对 55.4G)。较大的 Swin-L 模型实现了 86.4% 的 top-1 准确率,略好于 Swin-B 模型。
设置 对象检测和实例分割实验在 COCO 2017 上进行,其中包含 118K 训练、5K 验证和 20K 测试开发图像。使用验证集进行消融研究,并在 test-dev 上报告系统级比较。对于消融研究,我们考虑了四种典型的对象检测框架:级联掩码 R-CNN [28, 5]、ATSS [76]、RepPoints v2 [11] 和 mmdetection [9] 中的稀疏 RCNN [55]。对于这四个框架,我们使用相同的设置:多尺度训练 [7, 55](调整输入的大小,使短边在 480 到 800 之间,而长边最多为 1333)、AdamW [43] 优化器(初始学习率为 0.0001,权重衰减为 0.05,批量大小为 16),以及 3x 计划(36 个时期)。对于系统级比较,我们采用改进的 HTC [8](表示为 HTC++)和 instaboost [21]、更强的多尺度训练 [6]、6x 计划(72 epochs)、soft-NMS [4] 和 ImageNet -22K 预训练模型作为初始化。
我们将 Swin Transformer 与标准 ConvNets(即 ResNe(X)t)和之前的 Transformer 网络(例如 迪特。比较是通过在其他设置不变的情况下仅更改主干来进行的。请注意,虽然 Swin Transformer 和 ResNe(X)t 由于其分层特征图可直接适用于上述所有框架,但 DeiT 仅生成单一分辨率的特征图,不能直接应用。为了公平比较,我们按照 [78] 使用反卷积层为 DeiT 构建分层特征图。
与 ResNe(X)t 的比较 表 2(a) 列出了 Swin-T 和 ResNet-50 在四个对象检测框架上的结果。与 ResNet-50 相比,我们的 Swin-T 架构带来了一致的 +3.4∼4.2 box AP 增益,模型尺寸、FLOPs 和延迟略大 。
表 2(b) 比较了使用 Cascade Mask RCNN 在不同模型容量下的 Swin Transformer 和 ResNe(X)t。Swin Transformer 实现了 51.9 box AP 和 45.0 mask AP 的高检测精度,与具有相似模型大小、FLOPs 和延迟的 ResNeXt101-64x4d 相比,显着提高了 +3.6 box AP 和 +3.3 mask AP。在使用改进的 HTC 框架的 52.3 box AP 和 46.0 mask AP 的更高基线上,Swin Transformer 的收益也很高,为 +4.1 box AP 和 +3.1 mask AP(见表 2(c))。关于推理速度,虽然 ResNe(X)t 是由高度优化的 Cudnn 函数构建的,但我们的架构是通过内置的 PyTorch 函数实现的,这些函数并非都经过优化。彻底的内核优化超出了本文的范围。
与 DeiT 的比较 使用 Cascade Mask R-CNN 框架的 DeiT-S 的性能如表 2(b) 所示。Swin-T 的结果比 DeiT-S 高 +2.5 box AP 和 +2.3 mask AP,具有相似的模型大小(86M vs. 80M)和显着更高的推理速度(15.3 FPS vs. 10.4 FPS)。DeiT 较低的推理速度主要是由于其对输入图像大小的二次复杂度。
与之前最先进技术的比较 表 2(c) 将我们的最佳结果与之前最先进模型的结果进行了比较。我们的最佳模型在 COCO test-dev 上实现了 58.7 box AP 和 51.1 mask AP,超过了之前的最佳结果 +2.7 box AP(没有外部数据的复制粘贴 [25])和 +2.6 mask AP(DetectoRS [45])。
设置 ADE20K [80] 是一个广泛使用的语义分割数据集,涵盖了广泛的 150 个语义类别。它总共有 25K 张图像,其中 20K 用于训练,2K 用于验证,另外 3K 用于测试。我们利用 mmseg [15] 中的 UperNet [66] 作为其高效的基础框架。附录中提供了更多详细信息。
结果 表 3 列出了不同方法/主干对的 mIoU、模型大小(#param)、FLOP 和 FPS。从这些结果可以看出,Swin-S 比 DeiT-S 高 +5.3 mIoU(49.3 vs. 44.0),计算成本相似。它也比 ResNet-101 高 +4.4 mIoU,比 ResNet-101 高 +2.4 mIoU ResNeSt-101 [75]。我们使用 ImageNet-22K 预训练的 Swin-L 模型在 val 集上实现了 53.5 mIoU,超过了之前最好的模型 +3.2 mIoU(SETR [78] 的 50.3 mIoU,具有更大的模型尺寸)
在本节中,我们使用 ImageNet-1K 图像分类、COCO 对象检测上的 Cascade Mask R-CNN 和 ADE20K 语义分割上的 UperNet 消除了所提出的 Swin Transformer 中的重要设计元素。
移窗 表 4 中报告了对三个任务的移位窗口方法的消融。在 ImageNet-1K 上,具有移位窗口分区的 Swin-T 在每个阶段的性能优于基于单个窗口分区的对应物+1.1% top-1,+ COCO 上为 2.8 box AP/+2.2 mask AP,ADE20K 上为 +2.8 mIoU。结果表明使用移位窗口在前面层中的窗口之间建立连接的有效性。移位窗口的延迟开销也很小,如表 5 所示 。
相对位置偏差 表 4 显示了不同位置嵌入方法的比较。具有相对位置偏差的 Swin-T 在 ImageNet-1K 上产生 +1.2%/+0.8% top-1 准确度,在 COCO 上产生 +1.3/+1.5 box AP 和 +1.1/+1.3 mask AP,在 COCO 上产生 +2.3/+2.9 mIoU ADE20K 分别与那些没有位置编码和绝对位置嵌入的相关,表明相对位置偏差的有效性。另请注意,虽然包含绝对位置嵌入提高了图像分类精度(+0.4%),但它会损害对象检测和语义分割(COCO 上的框/掩码 AP 为 -0.2,ADE20K 上的为 -0.6 mIoU)。
虽然最近的 ViT/DeiT 模型放弃了图像分类中的平移不变性,尽管它长期以来一直被证明对视觉建模至关重要,但我们发现鼓励某些平移不变性的归纳偏差对于通用视觉建模仍然是可取的,特别是对于 目标检测和语义分割的密集预测任务。
不同的self-attention方法 表 5 中比较了不同自注意力计算方法和实现的实际速度。我们的循环实现比朴素填充的硬件效率更高,特别是对于更深的阶段。总体而言,它分别为 Swin-T、Swin-S 和 Swin-B 带来了 13%、18% 和 18% 的加速。
基于所提出的自注意力模块 在四个网络阶段,在朴素/内核实现中,移位窗口方法分别比滑动窗口方法效率高 40.8×/2.5×、20.2×/2.5×、9.3×/2.1× 和 7.6×/1.8×。总体而言,构建在移动窗口上的 Swin Transformer 架构分别比构建在滑动窗口上的 Swin-T、Swin-S 和 Swin-B 变体快 4.1/1.5、4.0/1.5、3.6/1.5 倍。表 6 比较了它们在三个任务上的准确性,表明它们在视觉建模方面的准确性相似。
与作为最快的 Transformer 架构之一的 Performer [13] 相比(参见 [59]),所提出的基于移位窗口的自注意力计算和整体 Swin Transformer 架构略快(参见表 5),同时实现了 +2.3 % top-1 准确率与使用 Swin-T 在 ImageNet-1K 上的 Performer 相比(见表 6)。
本文介绍了 Swin Transformer,这是一种新的视觉 Transformer,它产生分层特征表示,并且相对于输入图像大小具有线性计算复杂度。Swin Transformer 在 COCO 对象检测和 ADE20K 语义分割方面实现了最先进的性能,显着超越了以前的最佳方法。我们希望 Swin Transformer 在各种视觉问题上的强大表现将鼓励视觉和语言信号的统一建模。
作为 Swin Transformer 的一个关键元素,基于移动窗口的自注意力在视觉问题上被证明是有效和高效的,我们也期待研究它在自然语言处理中的应用。
和 ADE20K 语义分割方面实现了最先进的性能,显着超越了以前的最佳方法。我们希望 Swin Transformer 在各种视觉问题上的强大表现将鼓励视觉和语言信号的统一建模。
作为 Swin Transformer 的一个关键元素,基于移动窗口的自注意力在视觉问题上被证明是有效和高效的,我们也期待研究它在自然语言处理中的应用。
YOLOv8l summary: 351 layers, 52355306 parameters, 0 gradients, 476.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 29/29 [00:01<00:00, 15.02it/s]
all 230 1412 0.979 0.989 0.993 0.773
c17 230 131 0.991 1 0.995 0.872
c5 230 68 0.957 0.983 0.993 0.862
helicopter 230 43 0.952 1 0.979 0.683
c130 230 85 0.988 0.989 0.995 0.68
f16 230 57 0.994 0.965 0.994 0.703
b2 230 2 1 1 0.995 0.895
other 230 86 0.98 0.977 0.988 0.576
b52 230 70 0.992 0.986 0.99 0.887
kc10 230 62 0.996 0.984 0.99 0.876
command 230 40 0.993 1 0.995 0.866
f15 230 123 1 0.99 0.995 0.692
kc135 230 91 0.999 0.989 0.992 0.698
a10 230 27 1 0.855 0.992 0.481
b1 230 20 0.988 1 0.995 0.707
aew 230 25 0.945 1 0.973 0.757
f22 230 17 0.984 1 0.995 0.798
p3 230 105 0.997 1 0.995 0.801
p8 230 1 1 1 0.995 0.697
f35 230 32 0.993 1 0.995 0.594
f18 230 125 0.983 0.992 0.995 0.848
v22 230 41 0.987 1 0.995 0.736
su-27 230 31 0.99 1 0.995 0.917
il-38 230 27 0.988 1 0.995 0.955
tu-134 230 1 0.83 1 0.995 0.895
su-33 230 2 0.894 1 0.995 0.497
an-70 230 2 1 1 0.995 0.995
tu-22 230 98 0.997 1 0.995 0.89