SBCFormer: Lightweight Network Capable of Full-size ImageNet Classification at 1 FPS

期刊:WACV

年份:2024

代码:https://github.com/xyongLu/SBCFormer

摘要

计算机视觉在解决不同领域的现实问题方面变得越来越普遍,包括智慧农业、渔业和牲畜管理。这些应用程序可能不需要每秒处理许多图像帧,导致从业者使用单板计算机(SBCs)。虽然已经为"移动/边缘"设备开发了许多轻量级网络,但它们主要针对具有更强大处理器的智能手机,而不是具有低端cpu的sbc。提出了一种CNN-ViT混合网络SBCFormer,在这种低端cpu上实现了高精度和快速计算。这些cpu的硬件限制使得Transformer的注意力机制优于卷积。然而,在低端cpu上使用注意力机制存在一个挑战:高分辨率的内部特征图需要过多的计算资源,但降低其分辨率会导致局部图像细节的丢失。SBCFormer引入了一种架构设计来解决这个问题。因此,SBCFormer在具有ARM-Cortex A72 CPU的树莓派4 B模型上实现了精度和速度之间的最高权衡。它首次在SBC上以1.0帧/秒的速度实现了约80%的ImageNet-1K top-1精度。

拓展阅读:

SBCs,即单板计算机(Single Board Computers),是一种小型、低功耗、通常价格低廉的计算机,它们在尺寸和性能上都低于传统的台式计算机或笔记本电脑。SBCs通常由一块包含处理器、内存、存储和其他必要组件的单板组成,这些组件都集成在一个紧凑的封装内。由于其紧凑的设计和较低的能源需求,SBCs非常适合用于嵌入式系统和物联网(IoT)设备。

Introduction

尽管智能手机的处理器比服务器中的GPU/TPUs要弱,但它们仍然相当强大,并且在处理器的范围内属于中档。然而,还有“低端”处理器,如嵌入式系统的CPU/MPUs,它们的计算能力受到严重限制。本研究专注于低端处理器,这些处理器在轻量级网络的开发中尚未得到充分探索。

研究的核心问题是卷积或Transformer的注意力机制哪种更适合SBCs。作者指出,卷积需要复杂的内存访问模式,需要高IO吞吐量才能有效处理,而注意力则相对简单。此外,它们都被转换为矩阵乘法,而注意力通常处理的矩阵维度比传统的卷积方法要小。考虑到SBCs在并行计算资源和内存带宽方面不如GPU,注意力成为首选的基础构建块。

主要贡献:

  1. SBCFormer架构:提出了一种新的CNN-ViT混合网络架构,称为SBCFormer,它专为在单板计算机(SBCs)上运行而设计。这种架构特别考虑到了低端CPU的硬件限制,优化了计算效率和推理速度。

  2. 两流块结构:SBCFormer引入了一个创新的两流块结构,包括局部流和全局流。局部流保留了输入特征图的原始尺寸,而全局流则通过缩小、应用注意力机制、再放大的方式处理特征图,以有效利用Transformer的全局特征聚合能力。

  3. 修改后的注意力机制:为了弥补在低分辨率特征图上应用注意力机制可能导致的表示能力下降,论文提出了一种改进的注意力机制,通过将CNN的标准计算元组应用于注意力的值(value)部分,增强了空间信息的聚合能力。

Related Work

移动设备上的卷积网络:包括SqueezeNet、MobileNet、MobileNetV2、MobileNetV3、ShuffleNetV2、MnasNet、ESPNetv2、GhostNet、MobileNeXt、EfficientNet和TinyNet等。这些网络通过各种方法提高计算效率,例如深度可分离卷积、倒置残差结构等。

CNN-ViT混合模型:如LeViT、EdgeViT、MobileFormer、MobileViT和EfficientFormer。这些模型通过结合局部特征学习和全局特征交互来提高性能和效率。

评估指标:包括模型参数数量、浮点运算次数(FLOPs)、推理时间或延迟以及内存使用情况。

Method

该网络从一个初始部分开始(在图中标记为“Stem”),由三个3 × 3核的卷积层组成,步幅为2,它将输入图像转换为特征图。主要部分包括三个阶段:每个阶段都通过一个卷积层(在图中标记为“嵌入”)连接到下一个阶段,该层使用步幅为2的3×3卷积将输入特征图的大小减半。对于输出部分,我们采用全局平均池化,然后使用全连接线性层作为网络的最后一层,特别是针对图像分类任务。

图1 架构图

 3.1 SBCFormer Block

SBCFormer块开始于一系列连续的倒置残差块(InvRes blocks),这些块最初在MobileNetV2中使用。每个InvRes块由逐点卷积、GeLU激活函数和深度卷积组成。这些InvRes块将输入特征图X_{i}转换为X_{i}^{l}

 关于InvRes blocks可参见文章MobileNetsV1、MobileNetsV2、MobileNetsV3-CSDN博客的V2部分。

  • 局部流:在局部流中,X_{i}^{l}直接传递到块的末尾部分,不经过下采样。
  • 全局流:对于全局流,首先使用平均池化层将X_{i}^{l}下采样到ℎ×𝑤(实验中设置为7×7),然后通过包含两个连续InvRes块的"Mixer",接着是一系列注意力块"MAttn"。最终,特征图通过上采样和卷积操作恢复到原始尺寸,得到全局流的特征图X_{i}^{g}

 特征融合:首先,使用从X_{i}^{g}创建的权重图对X_{i}^{l}进行调制。具体来说,计算权重图W_{i}^{g},然后将其与X_{i}^{l}进行Hadamard乘积,并在通道维度上与X_{i}^{g}进行连接,得到融合特征X_{i}^{u}。最后,X_{i}^{u}通过另一个投影块传递,以减半通道数,从而产生该块的输出。

 3.2 Modified Attention Mechanism

由于Transformer注意力机制的计算复杂度随着特征图尺寸的增加而呈二次方增长,直接应用于大尺寸特征图会导致计算成本急剧上升。为了解决这个问题,SBCFormer采用了一种新颖的设计,通过先缩小特征图尺寸,应用注意力机制,然后再恢复到原始尺寸,以此降低计算成本。

计算过程: 

  • 进行逐点卷积、计算多头自注意力机制、残差连接

  • 得到的特征输入FFN网络得到最终的输出

多头注意力计算:

  • 对V进行处理

  • 计算注意力

其中q表示位置嵌入。

评价:通过使用深度卷积、GeLU激活函数和批量归一化处理值(value)部分,增强了模型对空间信息的聚合能力,同时减少了对查询(query)和键(key)的独立线性变换,降低了计算量。

Result

我们观察到,具有不同模型大小的 SBCFormer 变体在 CPU 上的准确性和延迟之间实现了更高的权衡;SBCFormer 与其他模型的性能差距在 ARM CPU 上比在 Intel CPU 上更明显。值得注意的是,SBCFormer 在 GPU 上实现了平庸或劣的权衡。这些结果与我们的设计目标一致,因为 SBCFormer 进行了优化,以便在计算资源有限的 CPU 上运行得更快。

Conclusion 

我们提出了一种新的深度网络设计,称为SBCFormer,当与单板计算机(sbc)中常见的低端cpu一起使用时,它在推理精度和计算速度之间实现了良好的平衡。这些cpu在执行大型矩阵乘法时效率不高,这使得Transformer的注意力机制比cnn更有吸引力。然而,当应用于大型特征映射时,注意力在计算上是昂贵的。SBCFormer通过减小输入特征映射大小,将注意力集中在较小的映射上,然后将其恢复到原始大小,从而减轻了此成本。然而,这种方法存在局部图像信息丢失、小尺度注意力表征能力受限等副作用。为了解决这些问题,我们引入了两种新颖的设计。首先,我们在注意力计算中加入一个并行流,该流通过输入特征映射,使其保留局部图像信息。其次,我们通过加入标准CNN组件来增强注意机制。我们的实验表明,SBCFormer在流行的SBC上实现了精度和速度之间的良好权衡,Raspberry-PI 4 Model B带有ARM-Cortex A72 CPU。

Limitation:实验选择了特定的处理器,即两个 CPU 和一个 GPU,并测量它们中的每一个的延迟。尽管这些处理器在其类别中具有代表性,但可以使用其他处理器获得不同的结果。此外,我们的主要指标是推理延迟。它可以根据代码优化、编译器、深度学习框架、操作系统等几个因素而有所不同。因此,我们的实验结果可能无法在不同的环境中重现。

  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值