RCS-YOLO | 比YOLOv7精度提高了2.6%,推理速度提高了60%

简介: RCS-YOLO | 比YOLOv7精度提高了2.6%,推理速度提高了60%

作者提出了一种新颖的YOLO架构,名为Reparameterized Convolution based on channel Shuffle (RCS-YOLO)。作者引入了RCS和一种One-Shot Aggregation of RCS (RCS-OSA)技术,将特征级联和计算效率相结合,以提取更丰富的信息并减少时间消耗。

在大脑肿瘤数据集Br35H上的实验结果显示,所提出的模型在速度和准确性上均优于YOLOv6、YOLOv7和YOLOv8。

值得注意的是,与YOLOv7相比,RCS-YOLO的精度提高了2.6%,推理速度提高了60%,达到每秒114.8张图像检测。作者提出的RCS-YOLO在大脑肿瘤检测任务上实现了最先进的性能。

代码:https://github.com/mkang315/RCS-YOLO

1、简介

自动检测磁共振成像(MRI)中的脑肿瘤是复杂、繁琐和耗时的,因为在脑肿瘤图像中存在许多被错过、误解和误导性的类似肿瘤的病变。目前大部分工作集中在从MRI中进行脑肿瘤分类和分割,而检测任务却很少被探索。尽管现有研究表明各种卷积神经网络(CNN)对脑肿瘤检测是有效的,但使用YOLO网络的性能却鲜有研究。

随着CNN的快速发展,不同视觉任务的准确性不断提高。然而,基于CNN的模型中越来越复杂的网络架构,如ResNet、DenseNet、Inception等,使推理速度变慢。尽管许多先进的CNN提供了更高的准确性,但复杂的多支设计(如ResNet中的残差相加和Inception中的分支连接)使得模型难以实现和定制,从而降低了推理速度并减少了内存利用率。MobileNets中使用的深度可分离卷积也降低了GPU推理速度的上限。此外,某些现代计算库对3x3正则卷积进行了高度优化。因此,VGG在研究和工业界的实际应用中仍然广泛使用。

RepVGG是对VGG的扩展,通过重参化来加快推理时间。在训练阶段,RepVGG使用多支拓扑结构的架构,然后在推理阶段重参化为简化的单支结构。在网络训练的优化策略方面,YOLOv6、YOLOv7和YOLOv6 v3.0中引入了重参化。YOLOv6和YOLOv6 v3.0使用了来自RepVGG的重参化。在YOLOv6、YOLOv6 v3.0和YOLOv7中,通过RepConv将RepVGG转换为没有Indentity连接的RepVGG,而在YOLOv7中被称为RepConvN。由于RepConv中去除了Indentity连接,可以为不同特征映射提供更多的梯度多样性,直接访问ResNet或在DenseNet中进行连接。

分组卷积,使用多个核在每层进行卷积的分组,如RepVGG一样,也可以显著减少模型的计算复杂性,但组之间没有信息交流,这限制了卷积操作的特征提取能力。为了克服分组卷积的缺点,ShuffleNet V1和V2引入了通道洗牌操作,以便在不同特征通道之间促进信息流动。

此外,将YOLOv7中的空间金字塔池化和交叉阶段部分网络加上Conv-BN-SiLU(SPPCSPC)与YOLOv5和YOLOv8 中的空间金字塔池化快速(SPPF)进行比较时,发现SPPCSPC体系结构中的更多卷积层会减缓网络的计算。然而,SPP模块通过在Neck网络中对不同卷积核大小进行最大池化来实现局部特征和全局特征的融合。

为了实现快速高准确性的医学图像目标检测,作者提出了一种新的YOLO架构,名为RCS-YOLO,利用了RepVGG/RepConv。

本工作的贡献总结如下:

  1. 作者首次开发了一个基于RepVGG/RepConv和ShuffleNet的RCS,通过在训练阶段利用重参化来提供更多的特征信息,并减少推理时间。然后,作者构建了一个RCS-OSA(One-Shot Aggregation)模块,它不仅具有低成本的内存消耗,还能提取语义信息。
  2. 作者通过将开发的RCS-OSA和RepVGG/RepConv与路径聚合相结合,设计了新的YOLO架构的Backbone和Neck,缩短了特征预测层之间的信息路径。这导致精确定位信息快速传播到Backbone和Neck的特征层次结构中。
  3. 作者将所提出的RCS-YOLO模型应用于具有挑战性的脑肿瘤检测任务。据作者所知,这是首次利用基于YOLO的模型进行快速脑肿瘤检测的工作。在公开可用的脑肿瘤检测数据集上进行评估,与其他最先进的YOLO架构相比,RCS-YOLO表现出优越的检测准确性和速度。

2、本文方法

所提出的RCS-YOLO网络的体系结构如图1所示。它在基于年轻人群的目标检测器的Backbone和Neck集成了一个新的模块RCS-OSA。

2.1、RepVGG/RepConv ShuffleNet

受ShuffleNet的启发,作者设计了一种基于通道Shuffle的结构化重参化卷积,称为RCS。图2显示了RCS的结构示意图。给定输入张量的特征维度为C×H×W,经过通道分裂运算符后,它被分为两个不同的通道维张量,尺寸均为C×H×W。对于其中一个张量,作者使用Indentity分支、1×1卷积和3×3卷积构建训练时的RCS。

在推理阶段,通过使用结构重参化,将Indentity分支、1×1卷积和3×3卷积转换为3×3 RepConv。多支拓扑结构在训练阶段可以学习丰富的特征信息,简化的单支结构在推理阶段可以节省内存消耗以实现快速推理。在其中一个张量经过多支训练后,以通道方式将其与另一个张量连接。通道Shuffle运算符也被应用于增强两个张量之间的信息融合,从而实现对输入不同通道特征之间的深度测量,而计算复杂度较低。

当没有通道Shuffle时,每个分组的输出特征仅与分组内的输入特征相关,并且来自某个分组的输出仅与该分组内的输入相关。这阻止了通道组之间的信息流动,削弱了特征提取的能力。而使用通道Shuffle后,输入和输出特征完全相关,其中一个卷积组从其他组中获取数据,实现了不同组之间更有效的特征信息交流。通道Shuffle操作在堆叠的分组卷积上进行,允许更丰富的特征表示。此外,假设分组数为,则对于相同的输入特征,通道Shuffle的计算复杂度是通用卷积的倍。

与常用的3×3卷积相比,在推理阶段,RCS使用通道分裂和通道Shuffle等运算符将计算复杂度降低了一半,同时保持了通道间的信息交换。此外,使用结构重参化使得在训练阶段可以进行深度表示学习,从输入特征中学习更丰富的表示,并在推理阶段减少内存消耗以实现快速推理。

2.2、RCS-based One-Shot Aggregation

作者提出了一种RCS-OSA模块,通过将在第2.1节中开发的RCS结合到OSA中,如图3所示。RCS模块被重复堆叠,以确保特征的复用,并增强相邻层特征之间不同通道之间的信息流动。在网络的不同位置,作者设置不同数量的堆叠模块。

为了减少网络碎片化的程度,在One-Shot Aggregation路径上仅保留了3个特征级联,这可以减轻网络计算负担并降低内存占用。在多尺度特征融合方面,受到PANet的启发,RCS-OSA + 上采样和RCS-OSA + RepVGG / RepConv 下采样进行不同大小特征图的对齐,以允许两个预测特征层之间的信息交换。这使得目标检测可以实现高精度的快速推理。

此外,RCS-OSA保持相同数量的输入通道和最小输出通道,从而降低了内存访问成本(MAC)。在网络构建方面,作者将最大池化下采样32次的YOLOv7作为Backbone,并采用RepVGG / RepConv,Stride为2进行下采样。由于RCS-OSA模块具有多样化的特征表示和低成本的内存消耗,因此作者在RCS-OSA模块中使用不同数量的堆叠RCS,以在Backbone和Neck的不同阶段实现语义信息提取。

计算效率(或时间复杂度)的常见评估指标是浮点运算次数(FLOPs)。FLOPs只是衡量推理速度的间接指标。然而,具有DenseNet Backbone的目标检测器显示出较慢的速度和较低的能量效率,因为通过密集连接线性增加的通道数导致了较重的MAC,这导致了相当大的计算开销。给定尺寸为M×M的输入特征,大小为K×K的卷积核,输入通道数和输出通道数,可以计算出FLOPs和MAC。

假设n为4,作者提出的RCS-OSA和Efficient Layer Aggregation Networks (ELAN) 的FLOPs分别为和。与ELAN相比,RCS-OSA的FLOPs减少了近50%。RCS-OSA的MAC(即)也比ELAN的MAC(即)要少。

2.3、Detection Head

为进一步减少推理时间,作者将由RepVGG和IDetect组成的检测头数量从3减少到2。YOLOv5、YOLOv6、YOLOv7和YOLOv8都有3个检测头。

然而,作者只使用两个特征层进行预测,将原来的9个不同尺度的anchors减少为4个,并使用K-means无监督聚类方法重新生成具有不同尺度的anchors。相应的尺度为(87,90),(127,139),(154,171),(191,240)。这不仅减少了RCS-YOLO的卷积层数和计算复杂性,还减少了推理阶段网络的整体计算要求和后处理NMS的计算时间。

3、实验

3.1、SOTA对比

为了展示所提出的模型在检测脑肿瘤医学图像数据集方面的准确性和快速性,表1展示了作者提出的检测器与其他最先进的目标检测器之间的性能比较。FPS的时间包括数据预处理、前向模型推理和后处理。输入图像的长边设置为640像素。短边自适应缩放而不失真,同时保持填充的灰度是短边的32倍像素。

可以看到,RCS-YOLO在结合RCS-OSA模块的优势下表现出色。与YOLOv7相比,本文的目标检测器的FLOPs减少了8.8G,推理速度提高了43 FPS。在检测率方面,精确度提高了0.04;提高了0.002;提高了0.004。

此外,RCS-YOLO比YOLOv6-L v3.0和YOLOv8l更快且更准确。尽管RCS-YOLO的与YOLOv8l相等,但这并不掩盖RCS-YOLO的根本优势。结果清楚地显示了作者的方法相对于脑肿瘤检测的最先进方法的优越性能和高效性。

3.2、消融实验

作者在基于YOLO的目标检测器中展示了所提出的RCS-OSA模块的有效性。表2中RepVGG-CSP的结果,其中RCS-YOLO中的RCS-OSA被替换为现有的YOLOv4-CSP架构中使用的CSPNet),除了GFLOPs外,都低于RCS-YOLO。由于RepVGG-CSP的参数(22.2M)不到RCS-YOLO(45.7M)的一半,因此RepVGG-CSP的计算量(即GFLOPs)也相应较小。然而,RCS-YOLO在实际推理速度(以FPS为单位)上仍然表现更好。

4、参考

[1].RCS-YOLO: A Fast and High-Accuracy Object Detector for Brain Tumor Detection.

[2].https://github.com/mkang315/RCS-YOLO.


相关文章
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
917 0
|
机器学习/深度学习 PyTorch 数据处理
PyTorchVideo实战:从零开始构建高效视频分类模型
本文详细介绍了基于PyTorchVideo和PyTorch Lightning构建视频分类模型的全流程。通过Kinetics数据集,利用3D ResNet-50实现高效动作识别。教程涵盖数据加载与增强、模型构建及训练流程,结合两大框架优势,简化开发复杂度并提升性能,为视频理解任务提供完整解决方案。
647 3
PyTorchVideo实战:从零开始构建高效视频分类模型
|
6月前
|
Web App开发 缓存 监控
Playwright 并行测试:配置与优化技巧
本文详细介绍了如何利用Playwright实现高效的并行测试。从基础的workers配置到高级的分片策略,文章涵盖了测试隔离、资源竞争处理及配置文件优化等关键实践。通过分享性能调优建议与常见陷阱的避免方法,旨在帮助团队显著缩短测试执行时间,构建稳定且可扩展的自动化测试体系。
|
JSON Java 数据格式
一文彻底搞懂 @RequestBody 和 @RequestParam 的区别(附实战示例)
本文深入解析Spring Boot中@RequestBody和@RequestParam的区别,通过实战示例详解两者在数据来源、格式、使用场景及验证处理上的差异,帮助开发者正确选择参数绑定方式,提升开发效率与系统安全性。
1514 0
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
资源调度 自然语言处理 网络架构
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
401 11
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
1218 4
|
人工智能 弹性计算 算法
【云故事探索】NO.5:PETKIT小佩,科技与爱,共绘宠物智能生活新篇章
在数字化浪潮中,中国宠物行业蓬勃发展,国内养宠规模已超2亿,形成千亿市场。成立于2013年的PETKIT小佩,专注智能宠物用品,服务遍布40+国家。面对618、双11等高峰挑战,阿里云ECS弹性扩容助其稳定运行。借助阿里云全球化部署能力,小佩成功出海。最新可视喂食器结合AI算法与OSS存储,提升用户体验。未来,双方将进一步探索AI大模型在宠物行业的应用,持续优化养宠体验。
如果API调用失败,我应该如何排查问题?
当小红书API调用失败时,可按以下步骤排查:1. 检查请求参数;2. 确认身份验证凭据;3. 控制调用频率;4. 检查网络连接;5. 查看错误码和日志;6. 核实授权范围;7. 联系技术支持;8. 定期更新与测试。这些方法有助于系统地解决问题,确保API调用稳定。
|
C语言
【数据结构】双向带头循环链表(c语言)(附源码)
本文介绍了双向带头循环链表的概念和实现。双向带头循环链表具有三个关键点:双向、带头和循环。与单链表相比,它的头插、尾插、头删、尾删等操作的时间复杂度均为O(1),提高了运行效率。文章详细讲解了链表的结构定义、方法声明和实现,包括创建新节点、初始化、打印、判断是否为空、插入和删除节点等操作。最后提供了完整的代码示例。
589 0