LeYOLO, New Scalable and Efficient CNN Architecture for Object Detection

news2024/11/27 12:28:54

LeYOLO, New Scalable and Efficient CNN Architecture for Object Detection

论文链接:http://arxiv.org/abs/2406.14239

代码链接:https://github.com/LilianHollard/LeYOLO

一、介绍

  本文关注基于FLOP的高效目标检测计算的神经网络架构设计选择,并提出了几种优化方法来增强基于YOLO模型的效率。首先,引入了一种受倒置瓶颈和信息瓶颈原理理论启发的高效骨干网络缩放。其次,提出了快速金字塔架构网络(FPAN),旨在促进快速多尺度特征共享,同时减少计算资源。最后,提出了一个分离的网络内网络(DNiN)检测头,旨在为分类和回归任务提供快速且轻量级的计算。
  基于这些优化和更高效的骨干网络,本文为目标检测和以YOLO为中心的模型提供了一种名为LeYOLO的新的缩放范式。该模型在各种资源约束条件下始终优于现有模型,在准确性和FLOP比率方面取得了较大的竞争力。值得注意的是,LeYOLO-Small在COCO val上仅使用4.5 FLOP(G)就实现了竞争力强劲的38.2% mAP得分,相比最新的最先进YOLOv9-Tiny模型,计算负载减少了42%,同时实现了类似的准确性。

在这里插入图片描述

二、创新点

  • 轻量级: 就每个FLOP比率而言,LeYOLO在轻量级目标检测方面的准确性优于最先进的神经网络(在0.5到8 FLOP(G)之间)。

  • 缩放: LeYOLO为工业、边缘和嵌入式设备提供了使用轻量级YOLO模型的全新机会,具有最先进的状态调整效率。

  • 特殊包:尽管该研究侧重于精度与计算成本的最佳比率,但作者发现的所有选项提出了不同的替代方案。

  • 新架构: 在LeYOLO中使用新的计算效率高的模块,并通过实验进行验证。

  • 高可复现性: 该研究重点是改进深度神经网络的架构。 使用ultralytics API中可重复使用的训练方法取得了结果,而无需进行ImageNet的[31]预训练。

目录

  • LeYOLO, New Scalable and Efficient CNN Architecture for Object Detection
  • 一、介绍
  • 二、创新点
  • 三、原理
    • Description of the LeYOLO Architecture
      • Block definition
        • 1、Base building block
        • 2、Stride strategy
      • STEM
      • Efficient backbone feature extractor
        • Information Bottleneck Characteristic
      • Neck
      • Decoupled Network in Network Head
      • Results
        • Architecture scaling
      • Discussions
  • 四、总结
  • 五、附录
    • B Notations
      • B.1 Complete State-of-the-art![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e5eb95dd399541cbb47f2dcacb7c0907.png#pic_center)
      • B.2 Overall Architecture
      • B.3 Architecture differences
    • B.4 Ablation study
      • B.4.1 Kernel size
      • B.4.2 Architecture improvement
      • B.4.3 Channels choice
      • B.4.4 Architecture scaling choice
      • B.4.5 Speed tests
      • B.5 Code
      • B.6 Training specificity

三、原理

Description of the LeYOLO Architecture

在这里插入图片描述

Block definition

1、Base building block

  对反向瓶颈块进行的实验中,作者观察到优化通道数量可以有效地减少计算需求,特别是在大尺寸空间特征图上。实际上,如果一个块的扩展比例等于一,或者通过串联效应,传入通道 C i n C_{in} Cin 等于计算得到的扩展层的数量 C m i d C_{mid} Cmid,那么块中就不需要使用第一个逐点卷积。即使第一个逐点卷积不存在,只要传入 C i n C_{in} Cin 和传出 C o u t C_{out} Cout 张量相等,始终使用残差连接,正如图2和方程 (1) 所示。在图 2© 中描述了LeYOLO的基本构建块,突出了经典瓶颈(图 2(a))、反向瓶颈(图 2(b))[25, 54, 24]和所提出的方法(图2©)之间的区别。

  用 ⊗ ⊗ 表示两个值之间的卷积。对于 F i n ∈ R 1 , 1 , C i n , C m i d Fin \in R^{1,1,C_{in},C_{mid}} FinR1,1,Cin,Cmid F o u t ∈ R 1 , 1 , C m i d , C o u t F_{out} \in R^{1,1,C_{mid},C_{out}} FoutR1,1,Cmid,Cout F m i d ∈ R k , k , 1 , C m i d F_{mid} \in R^{k,k,1,C_{mid}} FmidRk,k,1,Cmid,其中卷积中 C i n C_{in} Cin 是输入通道数, C m i d C_{mid} Cmid 是反向瓶颈中扩展通道的数量, C o u t C_{out} Cout 是输出通道数:

在这里插入图片描述

  类似于最先进的神经网络技术用于目标检测[71, 73], 在整个模型中始终实现SiLU(Sigmoid-Weighted Linear Unit)[11]激活函数。

2、Stride strategy

  采用了一个特定的通道扩展策略。 每个语义信息级别表示为 P i P_{i} Pi始终具有其输入 C i n P i C_{in}P_{i} CinPi、 输出 C o u t P i C_{out}P_{i} CoutPi和扩展通道 C m i d P i C_{mid}P_{i} CmidPi的数量, 这在其所有隐藏层中保持一致。 旨在通过按比例增加通道 C i n P i C_{in}P_{i} CinPi来丰富从语义信息级别 P i P_{i} Pi的隐藏层 h i h_{i} hi到后续隐藏层 h i + 1 h_{i+1} hi+1的信息流, 以适应从 C m i d P i + 1 C_{mid}P_{i+1} CmidPi+1预期的通道扩展。

  倒置瓶颈采取以下步骤:

h i = F o u t ⊗ [ F m i d ⊗ ( F i n ⊗ x ) ]   ( 2 ) h_{i}= F_{out} ⊗ [F_{mid} ⊗ (F_{in} ⊗ x)] \ (2) hi=Fout[Fmid(Finx)] (2)

  strided反向瓶颈内的语义信息,表示为 P,如下所示 - 见图 3:

在这里插入图片描述

  因此,具有大于一的步长的通道扩展策略可能类似于以下形式:

C i n P i → C m i d P i + 1 → C o u t P i + 1 w i t h C m i d P i + 1 > C m i d P i   ( 4 ) C_{in}P_{i} \rightarrow C_{mid}P_{i+1} \rightarrow C_{out}P_{i+1} with C_{mid}P_{i+1} > C_{mid}P_{i} \ (4) CinPiCmidPi+1CoutPi+1withCmidPi+1>CmidPi (4)

  可以简单地对每个块应用丰富的扩展比率,不仅仅是那些步幅大于一的块,但这样做会显著增加整个网络的成本。

  虽然这种策略对整个模型并非强制性的,但在某些关键时刻确实是有意义的,比如在干细胞阶段,以最大化从昂贵的特征图空间尺寸中扩展信息,特别是在最终的逐点卷积中。

STEM

  之前的工作经常使用术语“STEM”来描述第一层,直接处理输入图像和低语义信息,以快速高效地减小空间尺寸激发初始信息通道计数(通常为红、绿和蓝各3个通道)至更高的通道计数。主要优点是减少计算成本,因为如果处理的层在空间上太大,目标检测的总成本会迅速
增加。只有 YOLOv7 [71] 从第一层开始没有使用步幅卷积。初始 P0( 640 × 640 640\times640 640×640 - 1280 × 1280 1280\times1280 1280×1280)的空间尺寸成本太高。

  观察最先进的 YOLO 模型样本,只有 YOLOv6 [32] 和YOLOv8 [29] 是具有低计算资源的STEM 的良好示例,当将通道和层数缩减至 x 0.25 x0.25 x0.25 时,它们的总成本为0.32GFLOP。这两个模型迅速缩小到 160 x 160 p 160x160p 160x160p特征图,以弥补在空间尺寸过高时滑动卷积的成本。

  为了在大特征图尺寸上高效使用卷积,作者在整个 STEM 中使用“点卷积”和“标准卷积”,限制严格的低通道数量,从 P0( 640 × 640 640\times640 640×640)到 P2( 160 × 160 160\times160 160×160)-请参见表 1。
在这里插入图片描述

Efficient backbone feature extractor

  首先,使用倒置瓶颈,因为它具有无与伦比的计算成本和成本-精度比。最后,对于层数的选择,作者基于神经网络的最新状态做出了明显的观察:在P4或等效层上重复的关注

  更有趣的是,使用NAS类型的算法来选择层数或重复次数,作者观察到相同的现象:P4上的层比其他层更重要[25, 62, 63, 61, 15, 4]。基于对YOLO的选择[52, 2, 30, 32]的观察做出了这一观察,如表2所示,同时也基于使用卷积的分类模型[77, 41, 58, 57, 59]、自注意力[42–44, 68, 39]以及基于ResNet[20]的DETR等目标检测器[6],后者也侧重于等效的P4中间流。所提方法的主干网络使用表2中显示的重复次数(包括步进倒置瓶颈)。
在这里插入图片描述

Information Bottleneck Characteristic

  信息瓶颈原理理论[66]强调了学习理论中关于信息的两个关键方面。首先,作者认识到深度神经网络(DNNs)偏离了精确的马尔可夫链[13],即 X → X ^ → Y X \rightarrow \hat{X} \rightarrow Y XX^Y,其中 X X X X ^ \hat{X} X^ Y Y Y分别为输入、从 X X X中提取的最小充分统计量和输出。

  因此,为了推导 X ^ \hat{X} X^作为提取有意义特征以解决 Y Y Y的最小充分统计量,DNNs需要学会使用最小充分统计量提取特征,采用最紧凑的架构[66]。

  其次,由于DNNs仅处理来自前一层 h i − 1 h_{i−1} hi1的输入,一个直接的影响涉及潜在丢失信息,随后的层无法恢复(方程(5))。
I ( Y ; X ) ≥ I ( Y ; h i ) ≥ I ( Y ; h i + j )   w i t h i + j ≥ i   ( 5 ) I(Y; X) ≥ I(Y; h_{i}) ≥ I(Y; h_{i+j}) \ with i + j ≥ i \ (5) I(Y;X)I(Y;hi)I(Y;hi+j) withi+ji (5)

  昂贵的解决方案,如面向列的网络[5, 21],通过在每个块之间进行密集的特征共享来解决这个问题,通过在信息分割的关键点添加密集的训练块或额外的检测头,最近在YOLOv9中看到[73]。如上述方程中实现公平是可行的,理论[66]表明每一层应该最大化其内部的信息 I ( Y ; h i ) I(Y; h_{i}) I(Y;hi),同时尽量减少层间信息交换 I ( h i − 1 ; h i ) I(h_{i−1}; h_{i}) I(hi1;hi)

  因此,选择在模型中更高效地扩展,选择集成Dangyoon等人[17]的反向瓶颈理论

  实现涉及通过确保输入/输出通道的数量从第一个隐藏层到最后一个隐藏层的差异比率永远不超过一个最小化层间信息交换的形式 I ( h 0 ; h n ) I(h_{0}; h_{n}) I(h0;hn),其中 n n n等于神经网络的最后一个隐藏层。隐藏层通道的数量应该保持在由 P 1 P1 P1处的输入通道和 P 5 P5 P5处的输出通道定义的限制内,差异比率小于6,最小化 I ( h i − 1 ; h i ) I(h_{i−1}; h_{i}) I(hi1;hi)的形式 I ( h 1 ; h n ) I(h_{1}; h_{n}) I(h1;hn)
C h i ∈ [ C h 1 ; C h n ] w i t h C h n C h 1 ≤ 6   ( 6 ) C_{h_{i}} \in [C_{h_{1}}; C_{h_{n}}] with C_{h_{n}} C_{h_{1}} ≤ 6 \ (6) Chi[Ch1;Chn]withChnCh16 (6)

  相反,Dangyonn等人的反向瓶颈通道扩展实验[17]表明,扩展或缩小比率不应超过6。因此,在整个网络中最大化 I ( Y ; h i ) I(Y; h_{i}) I(Y;hi),扩展为 3 3 3。此外,在具有逐步反向瓶颈和逐点通道扩展策略的情况下,通过总扩展为6,进一步激发信息,在 ( P i ; P i + 1 ) (P_{i}; P_{i+1}) (Pi;Pi+1)之间最大化 I ( Y ; h i ) I(Y; h_{i}) I(Y;hi)。然而,从 P 4 P4 P4 P 5 P5 P5的反向瓶颈进一步激发信息,在 ( P 4 ; P 5 ) (P4; P5) (P4;P5)处最大化 I ( Y ; h i ) I(Y; h_{i}) I(Y;hi),扩展为 9 9 9(与扩展为6相比,mAP增加了0.5,更多信息请参见第B.3章和第B.4章)。

  在块之间实现残差连接有助于通过提供来自前一层 h i − 1 h_{i−1} hi1的信息来最小化 I ( h i − 1 ; h i ) I(h_{i−1}; h_{i}) I(hi1;hi)。密集连接[16, 27]可能增强模型,但需要额外的内存。

Neck

  Neck作为模型的一部分,它聚合了多个层次的语义信息,从更远的层次共享提取到第一层

在之前的研究中,研究人员使用了PANet [79] 或 FPN [36] 来有效共享特征图,通过将多个语义信息 P i P_{i} Pi链接到PANet并将它们的各自输出如图4(a)所示,实现多个检测层次。
在这里插入图片描述

  在本文这部分中,主要关注两个竞争对手:BiFPN [64] 和 YOLOF的SiSO [8]。BiFPN体现了所提模型的核心理念:使用计算成本低的层(拼接和加法、深度和逐点卷积)。然而,BiFPN需要太多的语义信息和太多的阻塞状态(等待前一层、复杂图形),这使得它难以跟上快速执行速度。

  另一方面,SiSO [8] 在目标检测方面的方法很有趣。事实上可以看到YOLOF的作者决定为模型neck使用单个输入和输出。与YOLOF论文中提出的其他解决方案相比,具有多个输出的neck(单输入,多输出 - SiMO)和具有单个输出的neck(单输入单输出 - SiSO)之间存在显著的退化。作者特别关注他们关于SiMO潜在效率的研究,证明了通过优化只有一个丰富输入的YOLO模型的neck的第一层可能性

  受PAN和FPNnet的启发,提出了一个Fast PANnet(FPANet),具有更少的卷积层、较低数量的通道和更有效的语义信息共享。所提方法与YOLOv8中的neck概念相似。在主干网络后的P3和P5之间以及头部之前减少了计算流,直接加强了P4中的语义信息层,如图4(b)所示。此外简化了neck,减少了锁定和等待时间,考虑到有限的并行化机会和架构的复杂性。

  此外,如图4( c )所示,优化了通道数量,以减少P3中的计算量,因为从P4和主干网络中的P3信息的自底向上路径的拼接与PAN中P3的反向瓶颈中扩展通道匹配,即 C o u t P 4 + C i n P 3 = C m i d P 3 C_{out}P_{4} + C_{in}P_{3} = C_{mid}P_{3} CoutP4+CinP3=CmidP3。通过从P3和P5中进行最少计算来加强单个输入(P4)以指导neck信息,实现了SiMO和MiMO方法之间的中间方法,显著减少了MiMO的变化。

Decoupled Network in Network Head

  作者推测除了通过轻量级深度卷积逐通道细化由骨干和颈部通道提取的特征之外,无需添加空间信息。

  在之前的研究中,YOLO 模型作为一个网格运作,为每个网格像素提出一个分类建议,每个点由锚框固定。锚框提供了几种可能的检测尺寸,不仅仅是像素级检测。

  通过 YOLO 的逐点网格操作,作者推测可以使用逐点卷积简化检测头,将其作为一个滑动的多层感知器解决方案逐像素进行,类似于为每个像素提出分类建议——几个仅用于空间指令的深度卷积,细化两个逐点分类和回归每个像素之间的空间关系。

  消融研究(见第 B.4 章)证明仅在模型头部使用逐点卷积可以取得更好的结果,在 LeYOLO-Nano@640 尺度上达到 33.4 mAP。通过在逐点卷积之间使用深度卷积细化空间信息,将模型推至 34.3 mAP。

  如图 5 所示,作者提出了 DNiN(Decoupled Network-in-Nework Head),这是一个以逐点为中心的方法,为每个网络提议使用两个独立的逐点操作:分类和回归(边界框)。逐点操作在目标检测中至关重要,作为网络内网络框架中逐像素分类器和回归器。深度卷积被分成两个 3 × 3 3\times3 3×3卷积以降低总体成本,与单个 5 × 5 5\times5 5×5卷积相比。

  作者进行两个独立的逐点卷积:一个专门用于分类,另一个用于回归。这种区别源于分类和边界框提取之间的不同需求。提出的 DNiN 头部扩展通道以匹配类别数量,同时在水平 P i P_{i} Pi上保持空间维度。因此,每个像素代表一个潜在的预测。使用 1 × 1 1\times1 1×1卷积是指神经网络起源,特别是 NiN 模型 [35],其中逐点卷积作为传统多层感知器的替代品出现。

Results

Architecture scaling

  LeYOLO提供了一系列受上述架构基础启发的模型。一种经典的方法涉及扩展通道数、层数和输入图像大小。传统上,扩展强调通道和层配置,有时会融入各种扩展模式。由于LeYOLO模型的主干、neck和head经过了优化,将图像大小增加到640以上并不涉及高FLOP。作者提供了八个版本的LeYOLO,其扩展在第B.4.4章中讨论,从320到768p,从0.66到8.4 FLOP(G),如表3所示。
在这里插入图片描述

Discussions

  作者承认存在几个潜在改进领域,并且迫不及待地期待看到进一步的研究进展与LeYOLO。

  • 通道选择:尽管将网络设计基于最优信息原理理论,但该研究仍存在不确定性。观察神经架构搜索(NAS)论文表明,通道配置的潜在选择是广泛的,通常超出人类直觉。没有NAS,很难确认具有强大理论依据的特定通道数量的选择。作者预计NAS可以促进更好的层重复和通道配置的发现。

  • LeYOLO FPANet + DNiN Head:考虑到FPANet和模型头的成本效益,有很大的实验机会可以跨越最先进分类模型的不同骨干进行尝试。LeYOLO成为SSD和SSDLite的一个有前途的替代方案。作者在MSCoco上取得的有希望的结果表明该解决方案可能适用于其他面向分类的模型。作者专注于MSCOCO和YOLO导向的网络的优化。然而,我们鼓励在其他数据集上尝试该解决方案。

  • 计算效率:为YOLO模型实现了一种新的缩放, 证明了在使用非常少的计算资源(FLOP)时可以实现非常高水平的准确性。然而,作者并非处于最先进的速度,因为由于(故意的)缺乏可并行化的架构,存在速度不完美,如前人所述[54, 24, 64]。可以进一步分析不同边缘功率的缩放,以提出可并行化的列和块缩放。

四、总结

  引入了一种适用于YOLO模型的新型缩放方法。从信息理论的角度,使用像逐点和深度卷积这样的轻量级操作提出架构,FPAN 和 DNiN,提供了一个专门为目标检测而设计的高效神经网络。这在成本与准确性的比率方面开创了新局面。提出了一系列新的 YOLO 模型,在MSCOCO 上实现了竞争性的 mAP 分数,关注一系列 FLOP 资源约束。LeYOLO-Small 在比最新的最先进目标检测器少 42%的 FLOP 的情况下实现了类似的准确性。这种方式展示了在不同语义信息层级之间进行缩放和优化通道选择可以使所提方法超越前所未有的 FLOP 每个 mAP 的比率。LeYOLOMedium 在 mAP 上优于最新的 YOLOv9-Tiny 最先进技术,分别为 39.3 mAP(+2.61%)和5.8 FLOP(G)(-24.67%)。

五、附录

B Notations

  全文使用几种符号来描述深度学习的基本组件,特别是在目标检测中,例如,不同张量的空间大小被描述为 P i P_{i} Pi。本章涵盖了论文中使用的所有符号。由于关于深度学习符号的共识很少或根本没有,作者认为有必要在附录中更深入地描述这些符号,以便需要进一步解释的读者。

  首先,希望对本文的主要组件——计算公式进行更详细的解释。整个论文始终使用 FLOP(浮点运算)指标来将该工作与其他最先进的神经网络进行比较。通过基于神经网络所需的乘法和加法次数进行计算,为高效模型比较奠定了坚实的基础。FLOP指标在不同硬件上保持可靠性,使其成为计算效率的良好指标。尽管可以使用其他指标,比如速度,但这些指标高度依赖于因素,如神经网络架构的并行化、所使用的硬件、加速器软件(TensorRT、CoreML、TFLite)以及内存使用和传输速度。

  在整个论文中第二个一直使用的主要元素是 mAP(平均精度均值)。研究人员广泛使用此指标来比较基于目标检测的神经网络。mAP通过评估提议的边界框与实际标注的边界框之间的重叠来衡量模型的精度。虽然一些论文使用50%重叠的固定阈值(mAP50)来比较模型,但论文主要使用mAP50-95。该指标对不同重叠阈值(从50%到95%)上的精度进行平均,涵盖了更广泛的评估标准范围。

  在目标检测中,特征图的空间大小至关重要,将 P i P_{i} Pi 定义为深度神经网络的特征图大小。这些大小从 P 0 P_{0} P0 640 x 640 640x640 640x640像素)到 P 5 P_{5} P5 20 x 20 20x20 20x20像素)适用于 LeYOLO-Small 到Medium,其中 i i i 代表所使用的步长数。类似地, P i − 1 P_{i−1} Pi1 表示明确描述的特征图 i i i 的前一个特征图的大小。

  在描述神经网络中的隐藏层时,引用整个块而不是单个卷积。例如,论文将单个反向瓶颈描述为一个隐藏层 h i h_{i} hi,其中包括两个逐点卷积和一个深度卷积。在整个论文中,这可以直接将前一个反向瓶颈称为 h i − 1 h_{i−1} hi1

  请注意,论文可能会结合所有符号来突出显示架构的特定组件。例如,将每个语义级别 P P P 上的通道数 C C C 表示为 C P i C_{P_{i}} CPi。将每个语义级别 P i P_{i} Pi 的特征图的高度和宽度分别表示为 H P i H_{P_{i}} HPi W P i W_{P_{i}} WPi

B.1 Complete State-of-the-art在这里插入图片描述

B.2 Overall Architecture

  在自下而上的路径中,使用轻量级块来上采样特征图,而自上而下的路径则使用标准卷积。尽管标准卷积的成本显著,但在这种情况下由于低空间尺寸和受限制的通道数量,跨步标准卷积在效率上表现出色。尝试使用倒置瓶颈代替卷积,但发现它们成本更高且精度更低。 此外, 在第一个 20 x 20 20x20 20x20上采样之前,避免使用任何卷积,这与大多数YOLO架构的做法不同。

  对在空间金字塔池融合(SPPF)之后再进行另一次卷积的必要性提出质疑,因为在骨干网络中它可能已经足够高效。最后, 80 x 80 80x80 80x80的部分是资源密集型的,需要仔细考虑。出于类似的理由,避免计算 80 x 80 80x80 80x80自上而下的路径,因为成本似乎与边际精度改善不成比例,正如在FPANet的 80 x 80 80x80 80x80逐点组件的消融研究中所证明的那样。图6展示了LeYOLO的完整架构。
在这里插入图片描述

B.3 Architecture differences

  尽管被大多数当代最先进的目标检测器忽视,MobileNetv2 [54]、MobileNetv3 [24] 和 EfficientNets [75, 63, 64]都采用了倒置瓶颈的理念进行目标检测。

  GPU 技术的进步使得强大且快速的神经网络得以发展。然而,倒置瓶颈为多个计算块的并行化提供了有限的深度。在嵌入式设备上实现深度神经网络的并行化仍然具有挑战性,但对未来持乐观态度。研究主要集中在降低 MAC 和 FLOP 成本,有时甚至包括内存访问成本。自然地,执行速度仍然是一个重要关注点。然而,作者目标是使用一致的符号简要比较所提的主干网络(表 5)与展现“相似”架构的模型(表 6、7 和 8),特别是那些利用倒置瓶颈的模型。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  通过这种比较,可以观察到步幅倒置瓶颈策略。在代码验证中,确实注意到当从一个层 ( h i ; P i ) (h_{i}; P_{i}) (hi;Pi) 过渡到另一个层 ( h i + 1 ; P i + 1 ) (h_{i+1}; P_{i+1}) (hi+1;Pi+1) 时,如果步幅大于1,通道扩展存在明显差异。
此外,大多数倒置瓶颈使用扩展比 6,而作者在一个块内仅扩展到 3。这降低了总体计算量,并允许倒置瓶颈步幅策略在深度卷积中的步幅之前最后一次扩展通道数。

B.4 Ablation study

在这里插入图片描述

B.4.1 Kernel size

核心滤波器大小: 为了叙述清晰,作者直接概述了在论文中选择的最佳准确性和FLOP效率的最终架构。然而,该研究始于基于倒置瓶颈的极简主义架构。最初,当特征图大小达到 80 x 80 80x80 80x80时,尝试了 5 x 5 5x5 5x5 7 x 7 7x7 7x7的核心大小。消融研究表明,较大的核心大小会产生有希望的结果,如表9所示。尽管 7 x 7 7x7 7x7核心优于 3 x 3 3x3 3x3(+2.4 mAP点)和 5 x 5 5x5 5x5(+0.4 mAP点),但它显著增加了FLOP需求。因此,选择了5x5的kernel来平衡FLOP利用率和准确性

核心大小消融研究:

  1. 最小化:具有经典倒置瓶颈和完整的 3 x 3 3x3 3x3卷积的最小化架构。
  2. 5 x 5 5x5 5x5:在 P 3 P3 P3及之后采用 5 x 5 5x5 5x5卷积的最小架构。
  3. 7 x 7 7x7 7x7:在 P 3 P3 P3层及之后采用 7 x 7 7x7 7x7卷积的最小化架构。

  具有34.9 mAP在MSCOCO和3,293 FLOP(G)的情况下,最佳选择是在从语义级别 P 3 P3 P3 P 5 P5 P5的整个模型中使用一致的 5 x 5 5x5 5x5卷积核大小(干预仍然采用 3 x 3 3x3 3x3卷积核大小)

卷积核大小和特征图大小成本: P 3 P3 P3 80 x 80 80x80 80x80)特征图产生相当大的计算成本,需要在该模型阶段减少计算。一个目标是通过在骨干和FPANet中从 P 4 P4 P4 P 5 P5 P5仅使用 5 x 5 5x5 5x5卷积来优化模型效率,而不是从 P 3 P3 P3 P 5 P5 P5

  此外,在FPANet的自顶向下路径中使用两个步幅为2的 5 x 5 5x5 5x5卷积的有效性仍然需要证明。通过在FPANet中使用 3 x 3 3x3 3x3卷积进行下采样来探索不同卷积核大小的有效性。消融研究确定了在这一时刻卷积核大小的最佳折中,如表9所示。

卷积核大小消融研究:

  1. 5 x 5 @ P 4 5x5@P4 5x5@P4:在 P 4 P4 P4层及之后采用 5 x 5 5x5 5x5卷积的最小架构。
  2. FPANet $3x3 ↓ $: 在FPANet中仅使用 3 x 3 3x3 3x3卷积进行下采样的最小架构,具有 5 x 5 @ P 4 5x5@P4 5x5@P4

  关于 mAP 到 FLOP 比率,观察到通过在从 P 4 P4 P4 P 5 P5 P5 使用 5 x 5 5x5 5x5 核大小(Stem 和 P 3 P3 P3 使用一致的 3 x 3 3x3 3x3 核大小)以及在 FPANet 下采样卷积中使用 3 x 3 3x3 3x3 核大小,可以得到更好的核滤波器大小选择。这些选择将 mAP 到 FLOP 比率推到 m A P F L O P ( G ) = 11 , 49 \frac{mAP}{FLOP (G)} = 11, 49 FLOP(G)mAP=11,49,其中 34,6 mAP 对应3,011 FLOP(G)

B.4.2 Architecture improvement

  为了改进模型, 目标是在P4之前简化所有计算。 在P3已经调整了核大小后,在P2( 160 x 160 160x160 160x160)的STEM中移除了初始的逐点操作,因为输入通道与深度卷积所需通道数匹配。利用反向瓶颈构建块的效率,再加上可选的逐点操作,提高到34.7 mAP,并将计算减少了66MFLOP(2,945 FLOP(G))。

  为了配合这一优化过程,作者选择了最小架构中的通道配置,与压缩信息瓶颈 I ( h 1 ; h n ) I(h_{1}; h_{n}) I(h1;hn)(方程(6))保持一致,限制了每个块的输入通道。通过这种方式,来自P4的自底向上路径的特征图串联 C o u t C_{out} Cout和来自骨干的P3的 C o u t C_{out} Cout,在FPANet中的P3块的所需扩展通道数已经匹配,因此将架构简化到P4之前的基本组件,为令人印象深刻的34.1mAP和2,823 FLOP(G)腾出计算资源。
在这里插入图片描述

最小架构改进:

  1. n o p w @ S T E M no_{pw}@STEM nopw@STEM : 第一个反向瓶颈 P1 中stem中没有逐点。
  2. n o p w @ F P A N − P 3 no_{pw}@FPAN − P3 nopw@FPANP3 : FPAN底层路径中P3处第一个反向瓶颈中的非点对点。

B.4.3 Channels choice

  确定最佳通道数量,而不依赖于像NAS这样昂贵的训练算法,而是依靠基于先前架构选择的迭代实验。因此,进行了各种实验,包括探索FPANet中理想的通道数量。表10描述了所有以下解释。

主干通道选择: 希望优化通道选择,并发现从P3到P4的信息扩展因子为3而不是6,虽然不那么强大,但需要更少的计算。这个实验保持了P2到P3之间的步进反向瓶颈通道扩展比为6(从16 C i n P 2 C_{in}P_{2} CinP2 通道到 96 C m i d P 3 96 C_{mid}P_{3} 96CmidP3)和P4到P5(从64 C i n P 4 C_{in}P_{4} CinP4 到576 C m i d P 5 C_{mid}P_{5} CmidP5 通道,用于LeYOLO-Nano基础通道选择)。

颈部通道选择: 通过在所有模型中一致的扩展通道选择为3,测试neck内不同的扩展比率,为2和2.5。比较了神经网络在P5处更多支持主干的性能,例如扩展比为6,并且在整个FPAN颈部内扩展比为2而不是3,减少了对颈部的压力。

  通过查看表10中提的消融发现对全局而言,在neck内简化通道数量,扩展比为2是更好的选择,因为在P5瓶颈内更大的扩展策略导致更好的准确性和FLOP比例的mAP。

Channel choice:

  1. C C CC CC:信道选择 - 将从P3到P4的扩展比率从6减少到3。
  2. C C x 6 CCx6 CCx6:将所有块内P5的扩展比率增加到6,而不是3。
  3. F P A N x 2 FPANx2 FPANx2:所有FPAN反向瓶颈块使用比率2而非3。
  4. F P A N x 2.5 FPANx2.5 FPANx2.5:所有FPAN反向瓶颈块使用比率2.5而非3。

  关于用于实验的初始最小架构,从 2.877 GFLOP 的 32.9 mAP 开始。将 LeYOLO-Nano 的准确性提升至 34.3 mAP,同时将计算要求降低至 2.64GFLOP。这表明在模型优化过程中准确性得到提升,同时计算复杂度有所降低。

B.4.4 Architecture scaling choice

  表11展示了四种训练缩放可能性(从Nano到Large),表12显示了八种最终提出的推理缩放。

在这里插入图片描述

在这里插入图片描述

  可以有效地将先前提到的消融研究中的核心架构在推理和验证过程中转移到不同的输入尺寸。例如,一个明确在640p训练的神经网络,在压缩和验证时可能比从头开始在320p训练的神经网络产生更好的结果。因此,测试了各种尺度的LeYOLO——Nano、Small、Medium和Large。从表11中训练的神经网络——以确定最佳的输入和训练组合。表13中呈现的结果突出了这项研究的最佳结果。
在这里插入图片描述

B.4.5 Speed tests

  提出了一系列高效的神经网络模型,仅关注 FLOP 计算,而忽略执行速度。倒置瓶颈本质上降低了神经网络的并行化潜力,导致 GPU 需要按顺序等待后续操作。因此,虽然所提模型可能不是最快的现有模型,但它们提供了具有不同执行速度的各种模型。作者专注于嵌入式设备上的目标检测,因此提出使用配备 TensorRT 软件加速器的 4GB Jetson TX2 进行比较,以观察最先进的并行化能力。可以在表 14 和图 7中找到执行速度、准确性、每秒查询、FLOP 和 qps 的详细信息。
在这里插入图片描述

在这里插入图片描述

B.5 Code

B.6 Training specificity

在MSCOCO数据集上训练。使用标准数据增强[49]以随机梯度下降(SGD)和批量大小为128在四个GPU上对我们的模型进行训练,数据集为MSCOCO [37]。学习率最初设置为0.01,动量设置为0.9。权重衰减设置为0.001。

Mosaic data augmentation:整个训练过程通过多次实验发现,由于小物体的数据样本有限,例如MSCOCO中的牙刷,马赛克增强可能会产生不利影响,导致准确性变化较小。实验注意到潜在的平均精度(mAP)变化为0.4。

  1. epochs: 500
  2. patience: 50
  3. batch: 128
  4. imgsz: 640
  5. gpu count: 4
  6. workers: 8
  7. optimizer: SGD
  8. seed: 0
  9. close mosaic: 10
  10. training iou: 0.7
  11. max detectections: 300
  12. lr0: 0.01
  13. lrf: 0.01
  14. momentum: 0.9
  15. weight decay: 0.001
  16. warmup epochs: 3.0
  17. warmup momentum: 0.8
  18. warmup bias lr: 0.1
  19. box: 7.5
  20. cls: 0.5
  21. dfl: 1.5
  22. pose: 12.0
  23. kobj: 1.0
  24. label smoothing: 0.0
  25. nbs: 64
  26. hsv h: 0.015
  27. hsv s: 0.7
  28. hsv v: 0.4
  29. degrees: 0.0
  30. translate: 0.1
  31. scale: 0.5
  32. shear: 0.0
  33. perspective: 0.0
  34. flipud: 0.0
  35. fliplr: 0.5
  36. mosaic: 1.0
  37. mixup: 0.0
  38. copy paste: 0.0
  39. erasing: 0.4
  40. crop fraction: 1.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全新UI自助图文打印系统小程序源码/自助云打印机前后端源码

全新UI自助图文打印系统小程序源码,自助云打印机前后端源码。最新的自助图文打印系统和证件照云打印小程序源码采用了PHP作为后端开发语言,旨在为用户提供全面的自助打印服务。 这些服务覆盖了多种文件格式,包括文档、图片、表格等。除此之外…

Vue3 Composition API计算属性实现扁平化树节点的索引

本教程是Vue3 composition api计算属性活学活用(作业题1 - 计算扁平化树树节点的索引)的答案。通过该示例,让读者进一步巩固Vue3 Computed计算属性的最佳实践。 本作业题所使用的index计算属性在后续自定义Tree组件的高级功能实现中有着重要…

[经验] 孙叔敖举于海,百里奚举于市的翻译 #学习方法#学习方法#微信

孙叔敖举于海,百里奚举于市的翻译 1、孙叔敖举于海 孙叔敖,春秋时期鲁国大夫,是古代中国的著名政治家和军事家,他被誉为“孔子之后”的大贤。 孙叔敖的主要贡献在于他的外交策略和军事管理能力。在他的领导下,鲁国积极扩张其疆…

基于JAVA+SpringBoot+Vue的故障报修平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、SpringCloud、Layui、Echarts图表、Nodejs、爬…

使用多进程和多线程实现服务器并发【C语言实现】

在TCP通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在一个单进程的服务器的时候,提供的服务器代码却不能完成这样的需求,先简单的看一下之前的服务器代码的处理思路,再来分…

打破误解:走近轻度自闭症患者的真实生活

在自闭症的广阔光谱中,轻度自闭症是一个相对温和但又不可忽视的存在。它像是一层薄薄的雾,轻轻笼罩在患者的世界里,既不影响他们基本的生存能力,又在一定程度上影响着他们的社交互动、情感表达及兴趣范围。 轻度自闭症患者往往能…

Leetcode2160. 拆分数位后四位数字的最小和:

问题描述: 给你一个四位 正 整数 num 。请你使用 num 中的 数位 ,将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有 前导 0 ,且 num 中 所有 数位都必须使用。 比方说,给你 num 2932 ,你拥有的数位包括…

【python】OpenCV—Shape Detection

文章目录 1、需求描述2、代码实现3、涉及到的库函数cv2.arcLengthcv2.approxPolyDP 4、案例5、参考 1、需求描述 给出图像,找出其轮廓,近似确认其为几变形图像 输入 输出 2、代码实现 # 导入必要的包 import cv2 import argparse import imutils imp…

Unity游戏开发入门:从安装到创建你的第一个3D场景

目录 引言 一、Unity的安装 1. 访问Unity官网 2. 下载Unity Hub 3. 安装Unity Hub并安装Unity编辑器 二、创建你的第一个项目 1. 启动Unity Hub并创建新项目 2. 熟悉Unity编辑器界面 3. 添加基本对象 4. 调整对象属性 5. 添加光源 三、运行与预览 引言 Unity&…

Unity VR开发入门:探索虚拟现实世界的无限可能

目录 引言 Unity VR开发基础 1. 安装Unity与VR SDK 2. 创建VR项目 3. 理解VR场景结构 Unity VR开发实战 1. 场景搭建 2. 交互设计 创建C#脚本 编写VRInteractor脚本 应用脚本到场景 注意 修改VRInteractor脚本 3. 用户体验优化 4. 测试与调试 引言 随着科技的飞速…

2.0.PyTorch神经网络基础

层和块 块(block)可以描述单个层、由多个层组成的组件或整个模型本身。 使用块进行抽象的一个好处是可以将一些块组合成更大的组件, 这一过程通常是递归的。多个层被组合成块,形成更大的模型: #层 import torch from …

ssm 学习 ---(spring)

一、spring框架 1、基本框架 2、Beanfactory快速入门 配置清单:xml文件 (1) 导入jar包或者maven坐标 (2) 定义UserService接口以及UserService实现类 (3) 创建bean.xml配置文件,将UserService信息配置到该xml文件中; (4)编写测试代码,创…

超简单安装指定版本的clickhouse

超简单安装指定版本的clickhouse 命令执行shell脚本 idea连接 命令执行 参考官网 # 下载脚本 wget https://raw.githubusercontent.com/183461750/doc-record/d988dced891d70b23c153a3bbfecee67902a3757/middleware/data/clickhouse/clickhouse-install.sh # 执行安装脚本(中…

JVM监控及诊断工具-命令行篇--jcmd命令介绍

JVM监控及诊断工具-命令行篇5-jcmd:多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能…

【LeetCode】旋转链表

目录 一、题目二、解法完整代码 一、题目 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入&#xff…

MySQL事务管理(上)

目录 前言 CURD不加控制,会有什么问题? CURD满足什么属性,能解决上述问题? 事务 什么是事务? 为什么会出现事务 事务的版本支持 事务提交方式 查看事务提交方式 改变 MySQL 的自动提交模式: 事务常见操作方式 前…

源码安装 AMD GPGPU 生态 ROCm 备忘

0, 前言 如果初步接触 AMD这套,可以先在ubuntu上使用apt工具安装,并针对特定感兴趣的模块从源码编译安装替换,并开展研究。对整体感兴趣时可以考虑从源码编译安装整个ROCm生态。 1, 预制二进制通过apt 安装 待补。。。 2, 从源码安装 sudo …

北京交通大学《深度学习》专业课,实验4循环神经网络实验

一、实验要求 1. 手动实现循环神经网络RNN,并在至少一种数据集上进行实验,从训练时间、预测精度、Loss变化等角度分析实验结果(最好使用图表展示) 2. 使用torch.nn.rnn实现循环神经网络,并在至少一种数据集上进行实验…

STM32学习(2)-GPIO输出

GPIO输出 2.1 GPIO输出1.GPIO简介2.GPIO基本结构3.GPIO位结构4.GPIO模式5.硬件电路 2.2LED闪烁&LED流水灯&蜂鸣器1.LED闪烁main函数代码 2.LED流水灯3.蜂鸣器 2.1 GPIO输出 1.GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配…

【LeetCode】翻转二叉树

目录 一、题目二、解法完整代码 一、题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root…