一、本文介绍
本文记录的是基于EfficientViT的YOLOv11轻量化改进方法研究。EfficientViT
通过构建多尺度线性注意力模块
将全局感受野与多尺度学习相结合,并以此模块为核心构建网络,构建轻量级且硬件高效的操作,以提升性能并降低硬件部署难度。
本文在替换骨干网络中配置了原论文中的EfficientViT_M0
、EfficientViT_M1
、EfficientViT_M2
、EfficientViT_M3
、EfficientViT_M4
和EfficientViT_M5
6种模型,以满足不同的需求。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
YOLOv11m | 20.0M | 67.6GFLOPs | 3.5ms |
Improved | 11.8M | 31.1GFLOPs | 3.2ms |
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、EfficientViT结构详解
EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction
2.1 设计出发点
- 解决高分辨率密集预测模型的部署难题:高分辨率密集预测在现实世界有广泛应用,但现有先进模型计算成本高,难以在硬件设备上部署。
- 兼顾性能与硬件效率:之前的模型通过复杂结构或硬件低效操作获得性能,
EfficientViT
旨在用轻量级且硬件高效的操作实现全局感受野和多尺度学习,以提升性能并降低硬件部署难度。
2.2 原理
2.2.1 多尺度线性注意力模块(Multi - Scale Linear Attention)
- ReLU线性注意力实现全局感受野:使用
ReLU线性注意力
替代softmax注意力来实现全局感受野。在ReLU线性注意力中,相似性函数定义为$Sim(Q, K)=ReLU(Q)ReLU(K)^{T}$,通过矩阵乘法的结合律,可将计算复杂度从二次降为线性,同时避免了softmax等硬件低效操作。 - 解决ReLU线性注意力的局限性:
ReLU线性注意力
因缺乏非线性相似函数,难以生成集中的注意力图,捕捉局部信息能力弱。为此,在每个FFN层插入深度可分离卷积(depthwise convolution)来增强局部信息捕捉能力。 - 实现多尺度学习:通过聚合附近的
Q/K/V tokens
生成多尺度tokens,使用小核深度可分离卷积进行信息聚合,避免影响硬件效率。在实际实现中利用组卷积减少总操作数。对多尺度tokens执行ReLU线性注意力,将全局感受野与多尺度学习相结合。2.2.2 基于多尺度线性注意力构建EfficientViT
以提出的多尺度线性注意力模块
为核心构建块(EfficientViT Module),采用标准的骨干 - 头部/编码器 - 解码器架构设计模型。
2.3 结构
2.3.1 骨干(Backbone)
遵循标准设计,由输入干(input stem)和四个阶段组成,特征图大小逐渐减小,通道数逐渐增加。在第3和第4阶段插入EfficientViT模块
,下采样使用步长为2的MBConv
。
2.3.2 头部(Head)
将第2、3、4阶段的输出(P2、P3、P4)形成特征图金字塔,通过1x1卷积
和标准上采样
操作调整空间和通道大小,并通过加法融合。头部采用简单设计,包含几个MBConv块
和输出层(预测和上采样)。
2.4 优势
- 性能提升
- 语义分割:在Cityscapes和ADE20K数据集上,与之前的先进模型相比,在提高效率的同时保持或提高了mIoU。例如在Cityscapes上,与SegFormer相比,EfficientViT在边缘GPU上可节省高达13x的#MACs,降低高达8.8x的延迟,且mIoU更高。
- 超分辨率:在轻量级超分辨率任务中,在BSD100上与基于CNN的先进方法相比,保持相同或更低GPU延迟的同时,PSNR提高高达0.09dB;与基于ViT的先进方法相比,GPU加速高达5.4×且PSNR相同。在高分辨率超分辨率任务中,与Restormer相比,GPU加速高达6.4×,PSNR提高0.11dB。
- 实例分割(Segment Anything):构建的EfficientViT - SAM模型在A100 GPU上吞吐量比SAM - ViT - Huge提高48.9×,且在COCO上的零射击实例分割性能略优。
- 硬件效率高:模型不涉及硬件低效操作,#FLOPs的降低可直接转化为硬件设备上的延迟降低,在移动CPU、边缘GPU和云GPU等多种硬件平台上均实现显著加速。
论文:https://arxiv.org/pdf/2205.14756
源码:https://github.com/mit-han-lab/efficientvit
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: