YOLOv5改进 | 2023主干篇 | RepViT从视觉变换器(ViT)的视角重新审视CNN

简介: YOLOv5改进 | 2023主干篇 | RepViT从视觉变换器(ViT)的视角重新审视CNN

一、本文介绍

本文给大家来的改进机制是RepViT,用其替换我们整个主干网络,其是今年最新推出的主干网络,其主要思想是将轻量级视觉变换器(ViT)的设计原则应用于传统的轻量级卷积神经网络(CNN)。我将其替换整个YOLOv5的Backbone,实现了大幅度涨点。我对修改后的网络(我用的最轻量的版本),在一个包含1000张图片包含大中小的检测目标的数据集上(共有20+类别),进行训练测试,发现所有的目标上均有一定程度的涨点效果,下面我会附上基础版本和修改版本的训练对比图。

image.png

推荐指数:⭐⭐⭐⭐⭐

专栏回顾:YOLOv5改进专栏——持续复现各种顶会内容——内含100+创新

二、RepViT基本原理

image.png

RepViT: Revisiting Mobile CNN From ViT Perspective 这篇论文探讨了如何改进轻量级卷积神经网络(CNN)以提高其在移动设备上的性能和效率。作者们发现,虽然轻量级视觉变换器(ViT)因其能够学习全局表示而表现出色,但轻量级CNN和轻量级ViT之间的架构差异尚未得到充分研究。因此,他们通过整合轻量级ViT的高效架构设计,逐步改进标准轻量级CNN(特别是MobileNetV3),从而创造了一系列全新的纯CNN模型,称为RepViT。这些模型在各种视觉任务上表现出色,比现有的轻量级ViT更高效。

其主要的改进机制包括:

  1. 结构性重组:通过结构性重组(Structural Re-parameterization, SR),引入多分支拓扑结构,以提高训练时的性能。
  2. 扩展比率调整:调整卷积层中的扩展比率,以减少参数冗余和延迟,同时提高网络宽度以增强模型性能。
  3. 宏观设计优化:对网络的宏观架构进行优化,包括早期卷积层的设计、更深的下采样层、简化的分类器,以及整体阶段比例的调整。
  4. 微观设计调整:在微观架构层面进行优化,包括卷积核大小的选择和压缩激励(SE)层的最佳放置。

这些创新机制共同推动了轻量级CNN的性能和效率,使其更适合在移动设备上使用,下面的是官方论文中的结构图,我们对其进行简单的分析。

image.png

这张图片是论文中的图3,展示了RepViT架构的总览。RepViT有四个阶段,输入图像的分辨率依次为

image.png

每个阶段的通道维度用 Ci 表示,批处理大小用 B 表示。

  • Stem:用于预处理输入图像的模块。
  • Stage1-4:每个阶段由多个RepViTBlock组成,以及一个可选的RepViTSEBlock,包含深度可分离卷积(3x3DW),1x1卷积,压缩激励模块(SE)和前馈网络(FFN)。每个阶段通过下采样减少空间维度。
  • Pooling:全局平均池化层,用于减少特征图的空间维度。
  • FC:全连接层,用于最终的类别预测。

总结:大家可以将RepViT看成是MobileNet系列的改进版本

目录
相关文章
|
2月前
|
机器学习/深度学习 测试技术 Ruby
YOLOv5改进 | 主干篇 | 反向残差块网络EMO一种轻量级的CNN架构(附完整代码 + 修改教程)
YOLOv5改进 | 主干篇 | 反向残差块网络EMO一种轻量级的CNN架构(附完整代码 + 修改教程)
128 2
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
探索未来的视觉革命:卷积神经网络的崭新时代(二)
探索未来的视觉革命:卷积神经网络的崭新时代(二)
探索未来的视觉革命:卷积神经网络的崭新时代(二)
|
1月前
|
机器学习/深度学习 自然语言处理 计算机视觉
探索未来的视觉革命:卷积神经网络的崭新时代(一)
探索未来的视觉革命:卷积神经网络的崭新时代(一)
探索未来的视觉革命:卷积神经网络的崭新时代(一)
|
2月前
|
机器学习/深度学习 数据可视化 数据处理
【DeepViT】我们能否通过使用更深层来进一步提高vit的性能,就像cnn一样?
【DeepViT】我们能否通过使用更深层来进一步提高vit的性能,就像cnn一样?
39 0
【DeepViT】我们能否通过使用更深层来进一步提高vit的性能,就像cnn一样?
|
11月前
|
机器学习/深度学习 算法
模型加速|CNN与ViT模型都适用的结构化剪枝方法(二)
模型加速|CNN与ViT模型都适用的结构化剪枝方法(二)
160 0
|
11月前
|
机器学习/深度学习 人工智能 边缘计算
模型加速|CNN与ViT模型都适用的结构化剪枝方法(一)
模型加速|CNN与ViT模型都适用的结构化剪枝方法(一)
215 0
|
11月前
|
机器学习/深度学习 编解码 数据可视化
解锁CNN和Transformer正确结合方法,字节跳动提出有效的下一代视觉Transformer
解锁CNN和Transformer正确结合方法,字节跳动提出有效的下一代视觉Transformer
|
2月前
|
机器学习/深度学习 编解码 PyTorch
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
4月前
|
机器学习/深度学习
CNN卷积神经网络手写数字集实现对抗样本与对抗攻击实战(附源码)
CNN卷积神经网络手写数字集实现对抗样本与对抗攻击实战(附源码)
34 0

热门文章

最新文章