【YOLOv8改进】MobileViT 更换主干网络: 轻量级、通用且适合移动设备的视觉变压器 (论文笔记+引入代码)

简介: MobileViT是针对移动设备的轻量级视觉Transformer网络,结合CNN的局部特征、Transformer的全局注意力和ViT的表示学习。在ImageNet-1k上,它以600万参数实现78.4%的top-1准确率,超越MobileNetv3和DeiT。MobileViT不仅适用于图像分类,还在目标检测等任务中表现出色,且优化简单,代码已开源。YOLOv8引入了MobileViT块,整合卷积和Transformer结构,提升模型性能。更多详情可参考相关专栏和链接。

YOLO目标检测创新改进与实战案例专栏

专栏目录: YOLO有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLO基础解析+创新改进+实战案例

摘要

轻量级卷积神经网络(CNNs)已成为移动视觉任务的事实标准。它们的空间归纳偏差使它们能够跨不同视觉任务学习具有更少参数的表示。然而,这些网络在空间上是局部的。为了学习全局表示,基于自注意力的视觉Transformer(ViTs)已被采纳。与CNNs不同,ViTs是重量级的。在本文中,我们提出以下问题:是否可能结合CNNs和ViTs的优势构建一个轻量级且低延迟的网络用于移动视觉任务?为此,我们介绍了MobileViT,一个面向移动设备的轻量级通用视觉Transformer。MobileViT以不同的视角呈现了使用Transformer进行信息全局处理的方式。我们的结果表明,MobileViT在不同任务和数据集上明显优于基于CNN和ViT的网络。在ImageNet-1k数据集上,MobileViT以约600万参数实现了78.4%的top-1准确率,比MobileNetv3(基于CNN)和DeIT(基于ViT)准确率高出3.2%和6.2%。在MS-COCO目标检测任务中,MobileViT比MobileNetv3准确率高出5.7%,参数数量相近。我们的源代码是开源的,可在以下链接获取:https://github.com/apple/ml-cvnets。

创新点

MobileViT 是一种轻量级、通用且适用于移动设备的视觉Transformer网络

  1. 结合CNN、Transformer和ViTs的优势:MobileViT将CNN的空间局部性特征学习、Transformer的全局自注意力机制以及ViTs的视觉表示学习相结合,充分利用三者的优势,旨在构建轻量级、通用且适用于移动设备的视觉处理网络。
  2. 出色的性能表现:在ImageNet-1k数据集上,MobileViT在参数约为250万时优于MobileNetv2、ShuffleNetv2和MobileNetv3等传统CNNs,甚至比ResNet、DenseNet、EfficientNet等重量级CNNs表现更好。
  3. 通用用途:MobileViT不仅适用于图像分类任务,还在目标检测和语义分割等移动视觉任务中展现出优异的性能,表现出其通用性和多功能性。
  4. 简单且易于优化:与许多ViT变体需要复杂数据增强相比,MobileViT在基本数据增强下表现出更好的性能,易于优化和应用于新任务和数据集中。

MobileViT的创新设计使其成为当前领先的移动视觉处理网络之一,为移动设备上的视觉任务提供了全新的解决方案。

yolov8 引入


# MobileViT块的定义,整合了卷积和Transformer结构
class MobileViTBlock(nn.Module):
    def __init__(self, dim, depth, channel, kernel_size, patch_size, mlp_dim, dropout=0.):
        super().__init__()
        self.ph = patch_size  # 设置patch的高度
        self.pw = patch_size  # 设置patch的宽度
        self.conv1 = conv_nxn_bn(channel, channel, kernel_size)  # 第一个卷积层,用于提取特征
        self.conv2 = conv_1x1_bn(channel, dim)  # 通过1x1卷积调整通道数
        self.transformer = Transformer(dim, depth, 4, 8, mlp_dim, dropout)  # Transformer模块,用于处理序列化的patch
        self.conv3 = conv_1x1_bn(dim, channel)  # 通过1x1卷积恢复通道数
        self.conv4 = conv_nxn_bn(2 * channel, channel, kernel_size)  # 最后的卷积层,融合特征

    def forward(self, x):
        y = x.clone()  # 复制输入,用于后续与Transformer的输出融合
        x = self.conv1(x)  # 应用第一个卷积层
        x = self.conv2(x)  # 通过1x1卷积调整通道数
        _, _, h, w = x.shape  # 获取特征图的高度和宽度
        # 重组特征图以适应Transformer的输入格式
        x = rearrange(x, 'b d (h ph) (w pw) -> b (ph pw) (h w) d', ph=self.ph, pw=self.pw)
        x = self.transformer(x)  # 通过Transformer处理
        # 重新排列输出以恢复原始的特征图结构
        x = rearrange(x, 'b (ph pw) (h w) d -> b d (h ph) (w pw)', h=h // self.ph, w=w // self.pw, ph=self.ph,
                      pw=self.pw)
        x = self.conv3(x)  # 通过1x1卷积恢复通道数
        x = torch.cat((x, y), 1)  # 将Transformer的输出与原始特征图融合
        x = self.conv4(x)  # 应用最后的卷积层融合特征
        return x

task与yaml配置

详见:https://blog.csdn.net/shangyanaf/article/details/136962297

相关文章
|
5月前
|
机器学习/深度学习 资源调度 算法框架/工具
AI-ANNE: 将神经网络迁移到微控制器的深度探索——论文阅读
AI-ANNE框架探索将深度学习模型迁移至微控制器的可行路径,基于MicroPython在Raspberry Pi Pico上实现神经网络核心组件,支持本地化推理,推动TinyML在边缘设备中的应用。
329 10
|
5月前
|
机器学习/深度学习 边缘计算 算法
SEENN: 迈向时间脉冲早退神经网络——论文阅读
SEENN提出一种时间脉冲早退神经网络,通过自适应调整每个样本的推理时间步数,有效平衡脉冲神经网络的准确率与计算效率。该方法基于置信度判断或强化学习策略,在保证高精度的同时显著降低能耗与延迟,适用于边缘计算与实时处理场景。
335 13
|
4月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
641 0
|
5月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
545 1
|
9月前
|
人工智能 算法 异构计算
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
近日,阿里云基础网络技术5篇论文被NSDI 2025主会录用。研究涵盖大模型训练网络故障诊断、仿真、容器网络性能诊断、CDN流控算法智能选择及GPU解耦推理优化等领域。其中,《Evolution of Aegis》提出增强现有体系+训练过程感知的两阶段演进路线,显著降低故障诊断耗时;《SimAI》实现高精度大模型集群训练模拟;《Learning Production-Optimized Congestion Control Selection》通过AliCCS优化CDN拥塞控制;《Prism》设计全新GPU解耦推理方案;《ScalaCN》解决容器化RDMA场景性能问题。
489 7
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
|
11月前
|
SQL 缓存 Cloud Native
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
446 63
|
9月前
|
canal 负载均衡 智能网卡
阿里云洛神云网络论文入选SIGCOMM'25主会,相关实习生岗位火热招聘中
阿里云飞天洛神云网络的两项核心技术Nezha和Hermes被SIGCOMM 2025主会录用。Nezha通过计算网络解耦实现vSwitch池化架构,大幅提升网络性能;Hermes则提出用户态引导I/O事件通知框架,优化L7负载均衡。这两项技术突破解决了云网络中的关键问题,展现了阿里云在网络领域的领先实力。
1514 2
|
11月前
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
329 10
|
11月前
|
canal 编解码 运维
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
SIGCOMM 2024 | 洛神云网络学术活动与论文分享
633 6

热门文章

最新文章