在深度神经网络中,计算效率对于目标检测至关重要,尤其是在新模型更注重速度而非有效计算(FLOP)的情况下。这一演变某种程度上忽视了嵌入式和面向移动设备的AI目标检测应用。
在本文中,作者重点关注基于FLOP的高效目标检测计算的神经网络架构设计选择,并提出几项优化措施来提高基于YOLO模型的效率。
首先,作者引入了一种受倒置瓶颈和来自信息瓶颈原理的理论洞见启发的有效 Backbone 网络缩放方法。
其次,作者提出了快速金字塔架构网络(FPAN),旨在促进快速多尺度特征共享同时减少计算资源。
最后,作者提出了一个解耦的网络中网络(DNiN)检测Head,旨在为分类和回归任务提供快速且轻量级的计算。
在这些优化措施的基础上,并利用更有效的 Backbone 网络,本文为目标检测和以YOLO为中心的模型贡献了一个新的缩放范式,称为LeYOLO。作者的贡献在多种资源限制下始终优于现有模型,实现了前所未有的准确性和FLOP比率。
值得注意的是,LeYOLO-Small在仅使用4.5 FLOP(G)的情况下,在COCO_val_上达到了38.2%的竞争性mAP分数,与最新的YOLOv9-Tiny模型相比,计算负载减少了42%,同时保持了相似的准确性。
作者新颖的模型系列实现了前所未有的FLOP到准确性的比率,提供了从超低神经网络配置(< 1 GFLOP)到高效且要求严格的目标检测设置(> 4 GFLOPs)的可扩展性,对于 0.66, 1.47, 2.53, 4.51, 5.8和8.4 FLOP(G)分别达到了25.2, 31.3, 35.2, 38.2, 39.3和41 mAP。
1 Introduction
在目标检测中,深度神经网络旨在从原始输入图像中提取一组围绕每个感兴趣目标的边界框,并将它们正确分类。因此,收集丰富的空间信息对于精确定位不同感兴趣目标是必要的。
虽然深度神经网络已经取得了令人印象深刻的进展,但它们严重依赖于计算成本昂贵的资源,这限制了在性能较差的设备上的部署。云计算提供了一个替代方案,以卸载强大模型的执行,但它带来了延迟、带宽限制和安全问题等不便之处。实际上,在自动驾驶、监控系统、医疗成像和智能农业等实际应用中,高效计算、实时处理和低计算延迟至关重要。在移动和边缘计算设备等资源受限环境中,轻量级但强大的目标检测器找到了它们的用武之地。
State-of-the-art
深度神经网络一直在解决分类、回归、分割和目标检测问题的竞争中并驾齐驱。许多为移动使用而设计的前沿分类模型通过使用SSDLite神经网络[38]作为低成本目标检测器。另一方面,优化执行速度的YOLO型模型遵循计算资源的演变,放弃了嵌入式设备。幸运的是,基于YOLO的新型架构实现了高效计算,专注于MAC和FLOP。这些架构在边缘AI和工业应用中展示了它们的有用性,提升了嵌入式设备并使模型能直接响应。
实际上,对“YOLO”模型有着强烈的兴趣,这些模型在工业和非计算研究领域中同样受欢迎。实际上,YOLO被用于医学[1, 46, 67, 60],葡萄栽培[56, 34, 55, 48, 22]和其他领域[47, 33, 49]。此外,易用性和快速执行使YOLO成为研究行人的一个优秀选择。
目标检测器的可能性扩展到了几个选项:为速度设计的目标检测,精确度,以及精度(mAP)与计算成本(FLOP)的最佳比例,尽可能减少计算成本(FLOP)。最后一点应该让作者考虑将“低成本”和“快速”模型分开,好像它们之间没有关联。
最近,作者注意到YOLO模型的一个有趣趋势,即在牺牲计算成本的情况下越来越重视执行速度[71, 73, 9, 78]。这种计算成本的主要缺点是必须考虑内存访问和并行化卷积操作的可能性。随着GPU或更一般地说计算资源的明显演变,大多数作者得出了明确的结论,现在可以添加更多的滤波器和参数,在制定其架构时尽可能接近地并行化神经网络的操作。这一现象增加了模型的计算成本(MAC或FLOP),同时主要由于GPU年度升级,保持了或提高了模型的执行速度。
最新的YOLO模型[73; 8; 71],在令人印象深刻的执行速度和高性能计算资源优化伪装下,作为“轻量级”模型的最新技术,仍需要针对边缘移动设备进行改进。
作者将轻量级模型定义为具有少量FLOP的神经网络,无论其参数数量或执行速度如何。有些论文可能会用参数来证明其模型的“轻量级”能力。然而,相同数量的参数在不同的输入空间尺寸下可能具有非常不同的计算需求,这使得这种解决方案无效。至于速度,虽然这个指标很有趣,但它也关于计算资源的偏见。因此,作者专注于FLOP来构建像EfficientDet [64]这样的高效目标检测器,并且作者还提供了参数和速度,以使读者可以进行广泛的比较(第B.1章)。
作者提出了LeYOLO,这是一个概念简单但效率高的架构,它采用了计算效率高的组件来进行目标检测,遵循EfficientNets ,MobileNets 以及类似创新的核心。作者旨在为 YOLO 模型引入一种新的架构方法,优先考虑有效的扩展。这一倡议旨在为移动和嵌入式设备提供增强的能力。
作者将LeYOLO与其他最先进的efficient object detectors进行了比较,如YOLOs,EfficientDet等。作者的评估重点关注MSCOCO [37]验证mAP和FLOP比例,强调对于嵌入式设备而言最低计算的重要性。LeYOLO在广泛的神经网络中展示了卓越的性能,超越了超低网络(小于1 FLOP(G)),中档网络(1到4 FLOP(G)之间),甚至超过了4 FLOP(G)的模型,如图1所示。
在所有版本中,LeYOLO在MSCOCO验证数据集上针对0.66、1.126、1.47、2.53、3.27、4.51、5.8和8.4 FLOP(G)分别实现了25.2%、29%、31.3%、35.2%、36.4%、38.2%、39.3%和41%的mAP,如表3所示。
作者的主要贡献如下:
- 轻量级: 在每FLOP准确率方面,LeYOLO相比于轻量级目标检测的最先进神经网络(0.5到8 FLOP(G)之间)实现了最佳的准确率。
- 可扩展性: LeYOLO为工业、边缘和嵌入式设备提供了使用轻量级YOLO模型与最先进的扩展效率的新机会。
- 特殊集合: 尽管作者的研究专注于精度与计算成本的最佳比例,但作者提出了不同的替代方案,参考了作者发现的所有选项。
- 新架构: 作者建议在LeYOLO中使用计算效率更高的块,并通过实验提供证据。
- 高可复现性: 作者的研究重点是改进深度神经网络的架构。作者使用ultralytics API的可重用训练方法实现结果,不使用ImageNet [31]预训练。
2 Description of the LeYOLO Architecture
LeYOLO架构受到YOLO在实时目标检测中的成功以及LeNet强大的特征提取能力的启发。该架构被设计为一个轻量级的网络,可以在计算资源有限的低端设备上运行,同时仍保持有竞争力的准确度。作者提出了一种专门为嵌入式和移动视觉应用量身定制的全新深度学习架构,命名为LeYOLO。LeYOLO架构的主要贡献可以总结如下:
Block definition
2.1.1 Base building block
倒置瓶颈结构,最初由MobileNetV2 [25; 54]提出,是许多新的最先进模型[62; 63; 18; 65; 43; 38; 69]的核心,因其轻量级计算和简洁性而受到重视。在FLOP计算方面,要超越深度可分离卷积达到一定有效性水平是复杂的。点卷积解决了通道间相关性的缺失问题,这是难以避免的。然而,在作者对倒置瓶颈块的实验中,作者观察到优化通道数量可以有效地减少计算需求,特别是在大型空间特征图尺寸上。实际上,如果块的扩展比率为1,或者由于拼接效果,输入通道等于计算出的扩展层数量,那么在作者的块中就没有必要使用第一个点卷积。只要输入的和输出的张量相等,如图2和方程所示,即使第一个点卷积不存在,作者也总是使用残差连接。作者在图2(c)中描述了LeYOLO的基础构建块,突出了经典瓶颈(图2(a))、倒置瓶颈(图2(b))[25, 54, 24]以及作者提出的方法(图2(c))之间的区别。
与目标检测的最先进的神经网络技术[71, 73]类似,作者在整个模型中一致地实现了SiLU [11]激活函数。
2.1.2 Stride strategy
一些模型在倒置瓶颈结构中包含了步长。然而,作者采用了一种特定的通道扩展策略。
倒置瓶颈采取以下步骤:
具有步长的倒置瓶颈中的语义信息表示为如下——图3:
作者本可以简单地为每个块应用丰富的扩展比例,不仅仅是那些步长大于一的块,但这样做会显著增加整个网络的成本。虽然这种策略不是整个模型所必需的,但在某些节点上这样做是有意义的,比如在茎部,以最大化从昂贵的特征图空间尺寸的信息扩展,特别是在最终的点式卷积之后。
Stem
作者经常用“STEM”这个术语来描述最初几层,这些层直接处理输入图像和低语义信息,以快速有效地减少空间尺寸,并将初始信息通道数(通常是3,代表红、绿、蓝三个颜色通道)激发到一个更高的通道数。主要的好处是减少了计算成本,因为如果处理的层在空间上过大,对于目标检测的总成本会迅速爆炸。只有YOLOv7[71]从第一层开始不使用步进卷积。初始的P0(640x640 - 1280x1280)空间尺寸成本太高。
看看一些最先进的YOLO模型,只有YOLOv6[32]和YOLOv8[29]是具有低计算资源STEM的好例子,当将通道数和层缩放到x0.25时,它们的总成本都是0.32 GFLOP。这两个模型迅速将特征图缩小到160x160p,以补偿在过高空间尺寸上的滑动卷积的成本。
为了在大特征图尺寸上有效地使用卷积,作者在整个STEM中使用了逐点与标准卷积,并将通道数限制在一个严格的低数值内,从而从P0(640x640)缩小到P2(160x160) - 表1。
Efficient backbone feature extractor
历史上,目标检测器被广泛用于补充分类任务[53; 19; 38],这导致了观察模型使用传统的分类模型作为特征提取器。
首先,作者采用了倒置瓶颈结构,因为其在计算成本和成本-精度比方面无与伦比。
最后,在层数的选择上,作者基于神经网络的最新状态做出了明显的观察:在P4或相应 Level 上存在对层重复的重视。
更有趣的是,使用类似NAS的算法来选择层数或重复次数,作者也观察到了同样的现象:P4 Level 的层比其他层受到更多的重视。这一观察基于作者对YOLO的选择,如表格2.3所示,同时也基于使用卷积的分类模型,自注意力,以及最终,基于ResNet [20]的目标检测器DETR [6],它同样关注等效的中流。
作者无法像那样过多依赖于P3来创建一个基于低计算成本的神经网络。因此,作者的 Backbone 网络使用了表3中所示的重复次数(包括带步长的倒置瓶颈)。
2.3.1 Information Bottleneck Characteristic's
Neck
在目标检测中,作者将模型中聚合多个语义信息层次的部分称为“neck”,它将更远层的提取层次共享到第一层。
从历史上看,研究行人使用PANet [79]或FPN [36]有效地共享特征图,通过将几个语义信息链接到PANet及其各自的输出,如图4(a)所示,实现了多个检测层次。
在本文中,作者主要关注两个竞争者:BiFPN [64]和YOLOF的SiSO [8]。BiFPN与作者模型的中心哲学相同:使用低计算成本的层(连接和加法,深度卷积和逐点卷积)。然而,BiFPN需要太多的语义信息和太多的阻塞状态(等待前一层,复杂的图),这使得难以保持快速执行速度。
另一方面,SiSO [8]在对待目标检测的方法上很有趣。实际上,作者可以看到YOLOF的作者决定为模型“neck”使用单一的输入和输出。与YOLOF论文中提出的其他解决方案相比,作者观察到多输出“neck”(单入多出-SiMO)与单输出“neck”(单入单出-SiSO)之间存在显著退化。作者特别感兴趣的是他们关于SiMO潜在效率的工作,证明仅通过优化单一丰富输入的语义信息流,就可以改进YOLO模型“neck”的第一层。
受到PAN和FPNnet的启发,作者提出了一个快速PANnet(FPANet),该网络具有更少的卷积层,较低的通道数和更有效的语义信息共享。作者的方法与YOLOv8 [29]中的“neck”概念相似。作者减少了后端和 Head 之间的和的计算流,直接强化了的语义信息层次,如图4(b)所示。此外,作者简化了“neck”,最小化了锁和等待时间,鉴于架构的并行化机会有限和复杂性。而且,如图4(c)所示,作者优化了通道数量以减少中的计算,其中初始逐点步骤是不必要的,因为从和后端来的信息的自底向上的路径的连接与PAN在处的倒置瓶颈中扩展的通道相匹配,即。
通过用和的最小计算加强单一输入()来指导“neck”信息,作者实现了介于SiMO和MiMO之间的方法,并显著减少了MiMO的变化。
Decoupled Network in Network Head
直到YOLOv5[50, 51, 52, 2, 30]时期,作者为分类和目标检测任务使用单一模型 Head 。然而,自YOLOv6[32]起,模型 Head 变成了一个更强大的工具,将块分成了两部分:一个用于分类的分支和一个用于目标回归的分支。尽管这种方法非常高效,但它意味着成本几乎翻倍,需要为分类和检测进行卷积。
作者理论化地认为,除了通过轻量级的深度卷积按通道细化 Backbone 和颈提取的特征外,无需添加空间信息。
从历史上看,YOLO模型作为一个网格工作,为每个网格像素通过 Anchor 框进行分类 Proposal 。 Anchor 框提供了几种可能的检测大小,不仅仅是像素级的检测。
通过YOLO的点对点网格操作,作者认为可以使用点卷积作为滑动多层感知机解决方案,逐像素地简化检测 Head ,类似于每个像素的分类 Proposal --几个深度卷积用于仅空间指令,改进两个点卷积之间的空间关系,每个像素进行分类和回归。
通过消融研究(见第B.4章),作者证明仅在模型 Head 使用点卷积就能在LeYOLO-Nano@640尺度上取得令人印象深刻的33.4 mAP结果。在点卷积之间使用深度卷积细化空间信息,将模型性能提升到34.3 mAP。
如图5所示,作者提出了DNiN(解耦网络中网络 Head ),一种以点卷积为中心的方法,具有两个单独的点操作,用于每个网络 Proposal :分类和回归(边界框)。点操作在目标检测中至关重要,在网络中网络框架内作为逐像素的分类器和回归器。深度卷积被分成两个3x3卷积,以降低与单个5x5卷积相比的整体成本。
作者操作两个独立的点卷积:一个专用于分类,另一个用于回归。这种区别源于分类和边界框提取之间不同的需求。作者提出的DNiN Head 在保持 Level 的空间尺寸的同时,扩展通道以匹配类数量。每个像素因此代表一个潜在的预测。使用1x1卷积指的是神经网络的起源,特别是NiN模型[35],其中点卷积作为传统多层感知机的替代品出现。
Results
2.6.1 Architecture scaling
对于LeYOLO,作者提供了多种受上述架构基础启发的模型。一种经典的方法包括缩放通道数、层数和输入图像大小。传统上,缩放强调通道和层配置,有时还结合了各种缩放模式。由于LeYOLO模型的茎部、 Neck 和 Head 进行了优化,将图像大小增加到640以上并不会导致FLOP急剧增加。作者提供了八个版本的LeYOLO,其缩放细节在B.4.4节中讨论,从320到768p,从0.66到8.4 FLOP(G),如表3所示。
3 Discussions
在作者试图从最先进的神经网络中提供彻底的理论见解以制定优化解决方案的同时,作者承认有多个领域存在潜在的改进空间,作者迫不及待地想要看到LeYOLO进一步的研究进展。
通道选择:尽管作者的网络设计基于最优信息原理理论,但作者的研究仍然存在不确定性。观察神经架构搜索(NAS)方面的论文可以发现,通道配置的潜在选择非常丰富,往往超出了人类的直觉。没有NAS,很难以稳健的理论证据确信特定通道数的选择。作者期待NAS能够促进发现更好的层重复和通道配置。
LeYOLO FPANet + DNiN头:考虑到作者的FPANet和模型头的成本效益,在不同状态下先进的分类模型的不同 Backbone 网络上进行实验具有巨大的机会。LeYOLO成为了SSD和SSDLite的有希望的替代品。在MSCoco上使用作者的解决方案所获得的令人鼓舞的结果,暗示了其可能适用于其他以分类为导向的模型。作者将优化工作特别集中在MSCOCO和YOLO导向网络上。然而,作者也鼓励在其他数据集上尝试作者的解决方案。
计算效率:作者已经为YOLO模型实现了一种新的缩放,证明在计算资源非常少(FLOP)的情况下,也能达到非常高的准确度。然而,在当前最先进的技术中,作者并不是最快的,这是因为存在速度上的不足,这是由于作者有意避免了像作者的前辈[54, 24, 64]那样的可并行架构。作者可以进一步分析不同边缘计算能力的缩放,以提出可并行的列和块缩放。
因此,作者鼓励进一步实验作者的 Proposal ,深入研究实验结果,同时探索针对特定行业需求,如智能农业和医药的各种数据集变体。
4 Conclusion
本文展示了适合移动应用的光轻目标检测技术的进展,提出了一种新的YOLO模型缩放方法。
作者提出的架构FPAN和DNiN使用了轻量级操作,如逐点卷积和深度卷积,为目标检测提供了一个高度有效的神经网络,其轻量级与SDDLite基础解决方案相当。
这在成本与准确性的比例上开创了新纪元。构建这些优化利用了更有效的YOLO缩放。作者提出了一系列新的YOLO模型,在MSCOCO上获得了具有竞争力的mAP分数,关注于一系列FLOP资源限制。
作者缩放后的LeYOLO-Small在减少了42%的FLOP的情况下,达到了与最新的最先进目标检测器相似的准确度。
这样,作者证明了在不同 Level 的语义信息之间进行缩放和优化通道选择可以使作者超过前所未有的FLOP每mAP比率。LeYOLO-Medium以39.3 mAP (+2.61%) 和5.8 FLOP(G) (-24.67%) 的成绩超过了最新的YOLOv9-Tiny最先进水平。
参考
[1].LeYOLO, New Scalable and Efficient CNN Architecture for Object Detection.
作者: 小书童
来源: 集智书童
推荐阅读
- FP8 低精度训练:Transformer Engine 简析
- 图解大模型计算加速系列:vLLM源码解析3,Prefix Caching
- CUDA-MODE课程笔记 第6课: 如何优化PyTorch中的优化器
- RDRNet 如何优雅地实时语义分割 ?
欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。