前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >YotoR | 融合 Swin Transformer 和YoloR 的混合架构,提升目标检测性能的新前沿 !

YotoR | 融合 Swin Transformer 和YoloR 的混合架构,提升目标检测性能的新前沿 !

作者头像
集智书童公众号
发布2024-06-11 18:41:37
2370
发布2024-06-11 18:41:37
举报
文章被收录于专栏:集智书童

本文介绍了YotoR(You Only Transform One Representation),一种结合了Swin Transformers和YoloR架构的新型深度学习目标检测模型。在自然语言处理中具有革命性的Transformer技术,同样对计算机视觉产生了重大影响,提供了提高准确性和计算效率的潜力。 YotoR将健壮的Swin Transformer主干网与YoloR的 Neck 和 Head 结合在一起。 在作者的实验中,YotoR模型TP5和BP4在各项评估中一致优于YoloR P6和Swin Transformers,比Swin Transformer模型实现了更优的目标检测性能和更快的推理速度。 这些结果突显了通过Transformer进一步模型组合和改进实时目标检测的潜力。 论文最后强调了YotoR的更广泛意义,包括其增强基于Transformer的模型用于图像相关任务的可能性。

1 Introduction

卷积神经网络在过去十年中彻底改变了计算机视觉应用,使得诸如目标检测、图像分割和实例分割等任务得以解决。尽管近年来卷积网络 Backbone 有所改进,甚至在某些任务上超过了人类的表现,但多年来在计算机视觉任务中使用Transformers [22] 仍然难以捉摸。

2020年[8]提出了首次将 Transformer 应用于计算机视觉任务。然而,由于图像的高分辨率, Transformer 仅限于在低分辨率应用如图像分类中使用。像目标检测这样的高分辨率任务需要开发更专业的Transformer架构,如Swin Transformer [16],它通过动态改变注意力窗口来规避Transformer的计算限制,并允许它们作为多种视觉任务的通用 Backbone 。此外,基于Transformer的目标检测Head,如DETR [3],在之前由卷积神经网络主导的任务中已成为最先进的技术。

另一方面,实时目标检测器,如Yolo / YoloR家族[19][25],对于依赖高帧率的任务(如自动驾驶)或在硬件资源有限的平台上仍然是不可或缺的。尽管近年来在计算机视觉Transformer方面取得了进展,但实时目标检测主要还是依赖于卷积神经网络。它们在特征提取中已建立的可靠性和计算效率是Transformer难以克服的挑战。因此,将Transformer与类似Yolo的目标检测器结合可能会产生能够同时实现高帧率和高检测准确性的新型架构。

本文介绍了YotoR(You Only Transform One Representation),一种新颖的深度学习模型,用于目标检测,它结合了Swin Transformer和YoloR架构。YotoR将健壮的Swin Transformer Backbone 与YoloR的 Neck 和 Head 结合在一起。在作者的实验中,YotoR模型TP5和BP4在多种评估中一致地超过了YoloR P6和Swin Transformer,提供了比Swin Transformer模型更优的目标检测性能和更快的推理速度。这些结果突显了进一步模型组合和改进实时目标检测Transformer的潜力。

本文的贡献如下:

  1. 提出了一个名为YotoR的新目标检测架构家族,它由基于Swin Transformer的 Backbone 和基于YoloR的 Head 组成。
  2. 对不同的YotoR变体进行了详尽的评估,结果表明,在考虑目标检测性能和推理速度的各种评估中,YotoR模型TP5和BP4一致地超过了YoloR P6和Swin Transformer。

2 Related work

Real-time CNN-based object detection

基于CNN的目标检测器,起源于Faster R-CNN [20],已成为解决目标检测任务的一种广泛应用的方法。在某些需要实时处理或存在硬件限制的应用中,轻量级目标检测器是必需的。

最广泛使用的实时目标检测器基于FCOS [21]或YOLO系列检测器[19][23]。这一领域的进展是通过改进网络的主干、 Neck 、检测Head、损失函数和训练过程来实现的。主干是网络的组成部分,其任务是获取编码输入图像的嵌入。在主干方面,改进主要是由受到RepVGG [7]、CSP [24]、ELAN [4]和VoVNet [13]启发的构建块的使用所引领的。Neck 的任务是对嵌入进一步处理,使其对生成检测有用。在 Neck 方面,最成功的方法是受到RepVGG [7]和PAN [18]启发的。最后,检测Head生成网络的输出检测结果。在YOLO系列检测器中,有几个头,每个头都专门用于检测不同大小的物体。因此,主干、 Neck 和检测Head的设计对于获得能够在不牺牲性能的情况下进行实时检测的架构至关重要。

Multi-task-oriented real-time CNN architectures

多任务架构的使用前景看好,因为它们可以整合多种信息模态以提高所有任务的性能。然而,设计能够在实时中执行多任务的建筑结构是具有挑战性的,因为使用每个任务的网络集合会负面影响系统的运行时间。

图1:如YoloR所提出的多任务网络不同方法的图解。

一种名为YoloR[25]的架构被提出以解决实时多任务问题。该系统基于使用单一统一架构来解决多个任务。YoloR基于建模两种知识源:显性知识和隐性知识。传统上,显性知识与网络的输入紧密相关,并由网络的第一层表示,而隐性知识对输入的依赖较低,由更深层编码。为了使统一架构具备多任务能力,建议显性知识由所有输入模态共享的权重建模,而隐性知识作为网络深层中的与输入无关的参数建模。与隐性知识相关的权重可以通过应用诸如拼接、加法和乘法等操作来修改内部网络嵌入。通过使用这种方法,单一网络架构可以从被训练执行多个任务中受益,因为与显性知识相关的网络权重可以同时压缩来自所有输入模态的信息。

基于Transformer的目标检测

尽管Transformer在自然语言处理[22]中已被成功使用,但由于所需的计算处理能力与图像中的标记(块)数量的平方成正比,它们在计算机视觉中的应用被推迟了。首次使用纯ViT(视觉Transformer)进行分类的工作[8]将大小为16x16的块作为标记,并且Transformer架构由一系列编码器组成。尽管ViT能够同时处理所有标记,但它们没有像CNN架构固有的平移不变性这样的感应偏差。然后,该工作中提出的最大的ViT模型需要超过30亿张图像才能实现比当时最先进的CNN模型如使用BiT[12]训练的ResNets更好的性能。此外,由于标记数量的平方增长的计算能力、块的大小以及缺乏多尺度处理的问题,导致纯ViT架构无法用于目标检测或图像分割等任务。

一种有效的基于视觉Transformer的 Backbone 网络被提出,能够取代基于CNN的网络,名为Swin Transformer,在[16]中提出。Swin Transformer通过使用大小为的小块作为标记并将图像划分为窗口来工作。然后,在每个窗口上独立应用编码器。这种策略使计算能力的要求保持在较低水平。由于窗口是独立处理的,它们的信息必须在网络的后续层中合并。然后,在某一层的窗口上应用编码器之后,下一层的窗口会移动。换句话说,每一层的每个窗口都能从前一层的四个窗口中整合信息。此外,在应用非移动和移动窗口层之后,标记会被合并,这增加了嵌入维度同时减少了标记数量。此外,块合并策略使架构能够生成对涉及多尺度处理任务有用的特征金字塔。因此,Swin Transformer可以用作目标检测、目标实例分割和语义分割等任务中基于CNN的 Backbone 网络的替代。

近年来,出现了许多建议创新的架构组合,这些组合将Transformer用于目标检测。值得注意的是,[27]的作者提出了一种独特的融合,包括YOLO的 Anchor-Free 实现,即YOLOX[10]和Swin Transformer。在他们的私有数据集上,观察到自主驾驶中检测障碍物的mAP性能提高了6.1%,为将Swin Transformer Backbone 与YOLO家族检测器结合树立了一个良好的先例。作者的 Proposal 与YOLOX-S模型的不同之处在于,在检测Head上保留了YoloV3 Anchor ,并实现了YoloV4和YoloR添加的改进,如新的BoG和BoS技术以及隐性知识建模。此外,所提方法在MSCOCO数据集上进行训练,以便直接与其它最先进的方法进行比较。

另一个强有力的竞争者是DETR[3]家族的基于Transformer的目标检测架构,其中一些变体如Co-DETR[28]达到了最先进的性能。DETR通过在由 Backbone 提取的特征上使用编码器-解码器Transformer来工作。这使得模型在保持架构简单结构的同时,能够实现更高的准确性和处理目标间复杂关系的能力。

3 YotoR

在本工作中,引入了一组网络架构,将Swin Transformer Backbone 网络与YoloR Head 结合在一起。受到Yolo命名的启发,这些架构被命名为YotoR,即“你只转换一种表示”。这反映了使用由Transformer块生成的单一统一表示,这种表示多功能且适合于多种任务。这一 Proposal 背后的想法是利用强大的Swin Transformer特征提取来提高检测精度,同时通过使用YoloR Head ,也具有解决多种任务并快速进行推理的能力。

按照YoloR架构的YotoR模型命名如下:

为了更清晰地理解,请考虑以下示例:

  • YotoR TP5具有Swin-T Backbone 网络,YoloR P6 Head 和 Neck ,以及一个5块 Backbone 。
  • YotoR BP4具有Swin-B Backbone 网络,YoloR P6 Head 和 Neck ,以及一个4块 Backbone 。
  • YotoR LD4具有Swin-L Backbone 网络,YoloR D6 Head 和 Neck ,以及一个4块 Backbone 。

与YoloR与其基础模型P6的关系相似,YotoR TP4是YotoR模型的起点,代表了最基本组件组合。

使用未修改的SwinT Backbone 网络还具有一个重要优势,即可以应用迁移学习技术。这是因为,不改变Swin Transformer的结构,可以使用其创建者公开提供的权重。这简化了预训练Swin Transformer权重转移到其他数据集的过程,加快了训练速度并提高了性能。

Architecture

3.1.1 Backbone:

在图2中,展示了用于主干网的Swin Transformer简化架构,特别是被称为Swin T的小型(Tiny)版本。该架构的主要部分包含四个阶段;它首先将图像划分为小的块,然后将这些块转换为标记。这些标记通过线性嵌入层,转换成具有特定大小的标记,然后输入到构成第一阶段的第一组Swin Transformer块中。其他三个阶段由一个块合并模块组成,该模块通过的组来合并块,将特征图的宽度和高度分辨率减少一半,然后传递给相应的Swin Transformer块数组。

除了Swin T之外,还有另外三种架构:Swin S、Swin B和Swin L。它们非常相似,但在Swin Transformer块的数量和通道上有所不同。每个架构的详细信息可以在表1中找到。

在Swin Transformer文章[16]中的目标检测任务中,主要使用了Mask R-CNN[11]和Cascade R-CNN[2]作为 Head 。在B和L模型中,他们还使用了一个名为HTC++的框架,其中包括HTC[5]、instaboost[9]以及更先进的训练方法,使用更高的分辨率。虽然HTC++给出了更好的结果,但值得注意的是,它并未公开可用。因此,除非特别说明,作者的主要关注点将放在没有HTC++的模型上。

3.2.1 Head

为了构建YoloR模型,作者决定基于Scaled YoloV4[1]的架构。特别是,他们以YoloV4-P6-light为基础,并依次对其进行修改,以创建不同的YoloR版本:P6、W6、E6和D6。这些版本之间的变化如下:

  • Yolo-P6:将YoloV4-P6-light的Mish激活函数替换为SiLU。
  • Yolo-W6:增加了 Backbone 块输出的通道数。
  • Yolo-E6:将W6的通道数乘以1.25,并将下采样卷积替换为CSP卷积[24]。
  • Yolo-D6:增加了 Backbone 网络的深度。

3.2.2 YotoR models

在选择用于实施的YotoR模型时,考虑了两个重要方面。首先,分析了Swin Transformer主干生成的特征金字塔维度与YoloR Head 所需的维度之间的差异。这些维度之间的显著差异可能会在网络中造成瓶颈,限制其性能。其次,为了适应连接,必须将Swin Transformer特征重新塑形回带有注意力图的图像。然后对其进行归一化,并通过卷积调整通道数。这样做是为了使YoloR Head 的特征尺寸与DarknetCSP主干[1]相同,并在连接之间软化信息瓶颈。

基于这些考虑,作者选择了以下YotoR TP4、YotoR TP5、YotoR BP4和YotoRB4模型,具体描述如下:

YotoR TP4 是所提出组合中模型最小的,它使用了 Swin Transformer Tiny 主干网络,并搭配 YoloR P6 的 Head 和 Neck 。但是,这种组合面临一个挑战,因为这几个部分之间的连接维度差异极大,可能会导致信息瓶颈。

为了解决YotoRP4中的瓶颈问题,决定保留B6模块,该模块与YoloR主干的最后一个CSPDarknet模块相匹配。这个选择使得两部分之间的连接更加连贯。

7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 7x7卷积核、以及[w 77、以及[w 7x7卷积核、以及[w在转换到 Neck 时减少信息丢失。"5"在其名称中指的是除了四个Swin Transformer块之外,还包含了额外的B6 CSPDarknet块。

  • YotoR BP4 它遵循与YotoR TP4类似的原理和结构,但它用Swin Transformer基础(B) Backbone 网络替换了Swin TransformerTiny(T) Backbone 网络。直接选择基础 Backbone 网络而不是小型(S) Backbone 网络的决策是基于与YoloR P6 Backbone 网络的连接尺寸相似性,以避免像YotoR TP4那样的连接不一致。
  • YotoR BB4 作为最后提出的模型,YotoR BB4采取了不同的设计方法。不是适应YoloR P6 Neck 与Swin B Backbone 网络之间的连接,作者决定完全重新设计P6 Head ,遵循Swin B嵌入的尺寸。这导致网络更深层部分的尺寸扩大,而较浅层的尺寸减少。在YotoR BB4中,所有模型尺寸都是直接一致的,没有像之前模型那样的适配卷积层。

图3展示了YotoR BP4的架构。它引入了STB(Swin Transformer块),表示在不同YotoR架构中使用的Swin Transformer块。此外,在这些组件之间还包括了一个线性嵌入块。这个线性嵌入块来自用于目标检测的Swin Transformer实现,并且未经修改地被纳入到YotoR实现中。

这四个模型之所以被选择,是因为它们由YoloR和Swin Transformer的基础架构组成,这允许进行有效的比较以评估所提模型的合理性。虽然考虑过训练和评估像YotoR BW4或YotoR BW5这样的大型模型,但在V100 GPU上的资源限制使得这个选项不可行。

4 Experimental Results

作者对模型进行测试和比较的实验是在MSCOCO数据集上实施的。选择这个数据集是因为它常被用于评估目标检测器的基准。

Experimental Setup

训练和评估都是在分别拥有32GB和16GB内存的V100 GPU上进行的。1 所使用的训练参数与表2中显示的YoloR相同。遵循YoloR的训练计划,首先训练了300个周期,然后使用125个周期进行微调,最后在降低马赛克数量的情况下再额外训练25个周期。

Results of Inference Speed

从表5所示的结果来看,很明显,所有的YotoR模型都无法与YoloR的速度相匹配。然而,与各自的Swin Backbone 网络相比,所有的YotoR模型都提高了推理速度。特别是,TP5的推理帧率比Swin-T快了一倍多,而BP4和BB4相对于Swin B提高了80%以上。

由于不同模型之间时间测量的显著差异,作者在一个一致的平台上进行了所有计时评估:一个16GB的V100 GPU,在的分辨率下运行,没有非极大值抑制(NMS)或TensorRT加速。每个时间测量代表在单个会话中连续执行的三个连续运行的平均值。尽管作者尽了最大努力,记录的时间大约是YoloR和Swin Transformer模型论文报告时间的一半。这表明通过进一步的优化,有潜力将速度结果翻倍。

Results on COCO val2017

表5展示了四个YotoR模型在val2017上的mAP(平均平均精度)结果。TP5和BP4模型超越了所有 Baseline ,即使是作为参照的YoloR P6,其mAP性能也很高。唯一没有超过它的是BB4模型。然而,考虑到BB4完全基于Swin B构建,且没有使用YoloR P6 Head ,这一结果是可以预料的。尽管如此,BB4在性能上还是超越了Swin B,这表明探索更大模型如Swin L的可能性,Swin L的性能超越了YoloR D6。

当比较毫秒级的推理时间与mAP时,YotoR模型的优势显而易见,如图4所示。这使作者能够分析推理速度与模型性能之间的关系,这对于通常在这两方面存在权衡的情况下至关重要。当追求更高准确度时,速度往往会降低,反之亦然。在这张图中,可以看出所有YotoR模型在性能和速度上都优于它们对应的Swin检测器,这对所有这些模型来说都是一个显著的改进。尽管YoloR P6在推理时间上仍有相当大的优势,但它的性能可以被YotoR TP5和YotoR BP4超越,尽管它们使用了相同的 Head 架构。

Results on COCO testdev

观察表6,可以看出YotoR模型的TP5和BP4在所有mAP指标上都优于YoloR P6模型。这证实了这些模型性能的显著提升。这些结果得益于CodaLab团队公开提供,使得它们可以轻松与其他COCO竞赛参与者的结果进行比较。

除了传统指标外,表6还包括了每个模型的FLOPs(浮点运算)和参数数量的测量,这提供了有趣的见解。YotoR模型的FLOPs比YoloR P6少,尽管它们的推理时间更长。这可以解释为YotoR中浮点运算的性质,尽管数量较少,但可能比YoloR中的运算更计算密集或优化程度更低。这表明通过改进它们的操作,有优化YotoR模型推理时间的潜力。另一方面,YotoR模型的参数数量介于Swin和YoloR模型之间,正如预期的那样,因为它们结合了这两者的元素。

这些结果很有希望,特别是考虑到YotoR模型是使用YoloR和Swin Transformer的最基本版本实现的。这为探索YOLO家族模型和Swin Transformer之间新组合的可能性打开了大门,无论是创建具有Transformer的实时目标检测模型,还是推进性能方面的最先进水平。

在图5中,作者展示了YotoR BP4模型在val2017和testdev数据集上执行的检测实例。这些例子证明了模型在有效检测各种大小的目标方面的熟练程度,即使它们在群体内重叠。

Comparison with the state of the art

在表7中,作者详细比较了YotoR模型与各种最先进的目标检测模型,这些模型涵盖了不同的尺寸和架构。作者的关注点特别集中在尺寸和结构相似的模型上。此表提供了这些模型在COCO val2017和testdev数据集上性能的见解。

虽然很明显,与一些最新且更大的模型相比,YotoR模型的性能较低,但值得注意的是,这里只实现了较小的YotoR版本,其连接中的通道数最少。这个选择解释了与YoloR-W6、YOLOv7-W6及其更大版本相比,其性能相对较低的原因。尽管如此,YotoR模型仍然超过了其组成部分的性能,如YoloR-P6和Swin Transformer B。值得一提的是,该性能超过了没有HTC++的Swin Transformer,尽管某些细节没有公开披露,并对YoloR Head 进行了一些适配,以处理不同分辨率的图像。

本质上,YotoR模型在性能和速度之间取得了值得称赞的平衡。值得注意的是,这种平衡可能通过整合YotoR家族中更大的模型,如YotoR LE5或YotoR LD5,进一步优化。这些更大版本的实现有望提高模型的竞争力,为未来的探索开辟有趣的道路。

5 结论

在本文中,作者介绍了YotoR,这是一种结合了Swin Transformer和YoloR模型的混合架构,用于目标检测。YotoR在准确性和推理速度上都超过了其组成模型。尽管本研究专注于四种特定的YotoR配置,但它为探索更大模型以及超越YoloR和Swin Transformer的新架构适配开辟了道路。

Transformer-based Backbone 网络可以与Yolo-like Head 结合的事实具有更广泛的意义,扩展到了为不同类型的图像相关任务设计新型混合模型。

需要进行更多实验,以充分理解Yolo-style Head 的 影响,以及内隐知识,并解决实时处理中的性能挑战。

参考

[1].YotoR-You Only Transform One Representation.

免责声明

凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 集智书童 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Introduction
  • 2 Related work
  • Real-time CNN-based object detection
  • Multi-task-oriented real-time CNN architectures
    • 基于Transformer的目标检测
    • 3 YotoR
    • Architecture
    • 3.1.1 Backbone:
    • 3.2.1 Head
    • 3.2.2 YotoR models
    • 4 Experimental Results
    • Experimental Setup
    • Results of Inference Speed
    • Results on COCO val2017
    • Results on COCO testdev
    • Comparison with the state of the art
    • 5 结论
    • 参考
    相关产品与服务
    GPU 云服务器
    GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档