32

AI学习者 · 2023年07月06日 · 广东

图视觉模型崛起 | MobileViG同等精度比MobileNetv2快4倍,同等速度精度高4%!

image.png

传统上,卷积神经网络(CNN)和Vision Transformer(ViT)主导了计算机视觉。然而,最近提出的Vision Graph神经网络(ViG)为探索提供了一条新的途径。不幸的是,对于移动端应用程序来说,由于将图像表示为图结构的开销,ViG在计算上是比较耗时的。

在这项工作中,作者提出了一种新的基于图的稀疏注意力机制,即稀疏Vision Graph注意力(SVGA),该机制是为在移动端设备上运行的ViG设计的。此外,作者提出了第一个用于移动端设备上视觉任务的混合CNN-GNN架构MobileViG,该架构使用SVGA。

大量实验表明,MobileViG在图像分类、目标检测和实例分割任务的准确性和/或速度方面优于现有的ViG模型以及现有的移动端CNN和ViT架构。作者最快的模型MobileViG-Ti在ImageNet-1K上实现了75.7%的Top-1准确率,在iPhone 13 Mini NPU(使用CoreML编译)上实现了0.78 ms 的推理延迟,这比MobileNetV2x1.4(1.02 ms ,74.7%Top-1)和MobileNetV2x1.0(0.81 ms ,71.8%Top-1。作者最大的模型MobileViG-B仅用2.30 ms 的延迟就获得了82.6%的Top-1准确率,这比类似规模的EfficientFormer-L3模型(2.77 ms ,82.4%)更快、更准确。

作者的工作证明,设计良好的混合CNN-GNN架构可以成为在移动端设备上设计快速准确模型的新探索途径。

代码:https://github.com/SLDGroup/MobileViG

1、简介

人工智能(AI)和机器学习(ML)在过去十年中取得了爆炸式的增长。在计算机视觉中,这种增长背后的关键驱动力是神经网络的重新出现,尤其是卷积神经网络(CNNs)和最近的视觉Transformer。尽管通过反向传播训练的神经网络是在20世纪80年代发明的,但它们被用于更小规模的任务,如字符识别。直到AlexNet被引入ImageNet竞赛,神经网络reshape人工智能领域的潜力才得以充分实现。

CNN架构的进一步进步提高了其准确性、效率和速度。与CNN架构一样,多层感知器(MLP)架构和类MLP架构也有望成为通用视觉任务的Backbone。

尽管神经网络和MLP已在计算机视觉中得到广泛应用,但由于视觉和语言任务之间的差异,自然语言处理领域使用了递归神经网络(RNN),特别是长短期记忆(LSTM)网络。尽管LSTM仍在使用,但在NLP任务中,它们在很大程度上已被Transformer架构所取代。随着视觉Transformer(ViT)的引入,引入了一种适用于语言和视觉领域的网络架构。通过将图像分割成patch嵌入序列,可以将图像转换为Transformer模块可用的输入。与神经网络或MLP相比,Transformer架构的主要优势之一是其全局感受野,使其能够从图像中的远距离物体交互中学习。

图神经网络(GNN)已发展为在基于图的结构上运行,如生物网络、社交网络或引文网络。GNN甚至被提议用于节点分类、药物发现、欺诈检测等任务,以及最近提出的视觉GNN(ViG)的计算机视觉任务。简言之,ViG将图像划分为多个patch,然后通过K近邻(KNN)算法连接这些patch,从而提供了处理类似于ViT的全局目标交互的能力。

移动端应用的计算机视觉研究快速增长,导致了使用神经网络学习空间局部表示和使用Vision Transformer(ViT)学习全局表示的混合架构。当前的ViG模型不适合移动端任务,因为它们在移动端设备上运行时效率低且速度慢。可以探索从CNN和ViT模型的设计中学到的概念,以确定CNN-GNN混合模型是否能够提供基于CNN的模型的速度以及基于ViT的模型的准确性。

在这项工作中,作者研究了用于移动端设备上计算机视觉的混合CNN-GNN架构,并开发了一种可以与现有高效架构竞争的基于图形的注意力机制。作者的贡献总结如下:

  1. 作者提出了一种新的基于图的稀疏注意力方法,用于移动端视觉。作者称作者的注意力方法为稀疏Vision Graph注意力(SVGA)。作者的方法是轻量级的,因为与以前的方法相比,它不需要重新reshape,并且在图构建中几乎没有开销。
  2. 作者使用作者提出的SVGA、最大相对图卷积以及来自移动端CNN和移动端视觉Transformer架构的概念(作者称之为MobileViG),为视觉任务提出了一种新的移动端CNN-GNN架构。
  3. 作者提出的模型MobileViG在3个具有代表性的视觉任务(ImageNet图像分类、COCO目标检测和COCO实例分割)上的准确性和/或速度与现有的Vision Graph神经网络(ViG)、移动端卷积神经网络(CNN)和移动端Vision Transformer(ViT)架构类似或者更优的性能。

据作者所知,作者是第一个研究用于移动端视觉应用的混合CNN-GNN架构的算法。作者提出的SVGA注意力方法和MobileViG架构为最先进的移动端架构和ViG架构开辟了一条新的探索之路。

2、相关工作

ViG被提议作为神经网络和ViT的替代方案,因为它能够以更灵活的格式表示图像数据。ViG通过使用KNN算法来表示图像,其中图像中的每个像素都关注相似的像素。ViG的性能与流行的ViT模型DeiT和SwinTransformer相当,这表明它值得进一步研究。

尽管基于ViT的模型在视觉任务中取得了成功,但与基于CNN的轻量级模型相比,它们仍然较慢,相比之下,基于CNN的模型缺乏基于ViT模型的全局感受域。因此,通过提供比基于ViT的模型更快的速度和比基于CNN的模型更高的精度,基于ViG的模型可能是一种可能的解决方案。据作者所知,目前还没有关于移动端ViG的作品;然而,在移动端CNN和混合模型领域,已有许多工作。作者将移动端架构设计分为两大类:卷积神经网络(CNN)模型和混合CNN-ViT模型,它们融合了CNNs和ViT的元素。

基于CNN架构的MobileNetv2和EfficientNet系列是首批在常见图像任务中取得成功的移动端模型。这些模型轻,推理速度快。然而,纯粹基于CNN的模型已经被混合模型竞争对手稳步取代。

有大量的混合移动端模型,包括MobileViTv2、EdgeViT、LeViT和EfficientFormerv2。这些混合模型在图像分类、目标检测和实例分割任务方面始终优于MobileNetv2,但其中一些模型在延迟方面并不总是表现良好。延迟差异可能与包含ViT块有关,ViT块在移动端硬件上的速度传统上较慢。

为了改善这种状况,作者提出了MobileViG,它提供了与MobileNetv2相当的速度和与EfficientFormer相当的精度。

3、本文方法

在本节中,作者将描述SVGA算法,并提供有关MobileViG架构设计的详细信息。更确切地说,第3.1节描述了SVGA算法。第3.2节解释了作者如何调整ViG中的Graper模块来创建SVGA块。第3.3节描述了作者如何将SVGA块与反向残差块结合起来进行局部处理,以创建MobileViGTi、MobileViG-S、MobileVeg-M和MobileViG-B。

3.1、Sparse Vision Graph Attention

作者提出稀疏Vision Graph注意力(SVGA)作为Vision GNN中KNN图注意力的一种移动端友好的替代方案。基于KNN的图注意力引入了2个非移动端友好组件,KNN计算和输入reshape,作者用SVGA去除了这两个组件。

更详细地说,每个输入图像都需要KNN计算,因为不能提前知道每个像素的最近邻居。这产生了一个具有看似随机连接的图,如图1a所示。由于KNN的非结构化性质,KNN的作者将输入图像从4D张量reshape为3D张量,使他们能够正确对齐连接像素的特征,用于图卷积。在图形卷积之后,对于随后的卷积层,必须将输入从3D重新reshape为4D。因此,基于KNN的注意力需要KNN计算和2次reshape操作,这两种操作在移动端设备上都是比较耗时的。

image.png

为了消除KNN计算和reshape操作的开销,SVGA假设一个固定图,其中每个像素都连接到其行和列中的第K个像素。例如,给定一个8×8的图像和K=2,左上角的像素将连接到其行上的每一个像素和列下的每一个像素,如图1b所示。对于输入图像中的每个像素重复这种相同的图案。由于图具有固定的结构(即,对于所有8×8个输入图像,每个像素都具有相同的连接),因此不必对输入图像进行reshape来执行图卷积。

相反,它可以使用跨越两个图像维度的滚动操作来实现,在算法1中表示为roll-right和roll-down。滚转操作的第一个参数是滚转的输入,第二个参数是向右或向下滚转的距离。使用图1b中K=2的示例,通过向右滚动图像两次、向右滚动四次和向右滚动六次,可以将左上角像素与其行中的第二个像素对齐。除了向下滚动之外,可以对其列中的每一个像素执行相同的操作。

image.png

请注意,由于每个像素都以相同的方式连接,因此用于将左上角像素与其连接对齐的滚动操作同时将图像中的其他每个像素与其连接对准。在MobileViG中,使用最大相对图卷积(MRConv)来执行图卷积。因此,在每次向右滚动和向下滚动操作之后,计算原始输入图像和滚动版本之间的差,在算法1中表示为和,并且按元素进行最大运算并存储在中,也在算法1表示。在完成滚动和最大相对操作之后,执行最终的Conv2d。通过这种方法,SVGA将KNN计算换成了更便宜的滚动操作,因此不需要reshape来执行图卷积。

作者注意到,SVGA避开了KNN的表示灵活性,而倾向于移动端友好。

3.2、SVGA Block

image.png

3.3、MobileViG Architecture

图2a中所示的MobileViG架构由卷积Backbone组成,然后是3级反向残差块(MBConv),其扩展比为4,用于MobileNetv2中提出的局部处理。在MBConv块中,作者将ReLU6替换为GeLU,因为它已被证明可以提高计算机视觉任务的性能。MBConv块由1×1卷积加批量归一化(BN)和GeLU、深度3×3卷积加BN和GeLU组成,最后是1×1卷积加BN和残差连接,如图2b所示。

在MBConv块之后,作者使用一个Stage的SVGA块来捕获全局信息,如图2a所示。作者在SVGA块之后还有一个卷积头用于分类。在每个MBConv阶段之后,下采样步骤将输入分辨率减半并扩展通道维度。每个阶段由多个MBConv或SVGA块组成,其中重复次数根据模型大小而变化。

MobileViG-Ti、MobileViG-S、MobileViG-M和MobileViG-B的通道尺寸和每个阶段重复的块的数量可以在表1中看到。

4、实验

4.1、图像分类

作者使用PyTorch 1.12和Timm库实现了该模型。作者使用8个NVIDIA A100 GPU来训练每个模型,有效批量大小为1024。这些模型是用AdamW优化器在ImageNet-1K上从头开始训练300个Epoch的。使用余弦退火策略将学习率设置为2e-3。作者使用标准图像分辨率224×224进行训练和测试。

与DeiT类似,作者使用RegNetY-16GF进行知识蒸馏,Top-1准确率为82.9%。对于数据扩充,作者使用RandAugment、Mixup、Cutmix、随机擦除和重复扩充。

作者使用iPhone 13 Mini(iOS 16)在NPU和GPU上测试延迟。这些模型是用CoreML编译的,延迟平均超过1000个预测。

如表2所示,对于类似数量的参数,MobileViG在准确性和GPU延迟方面都优于Pyramid ViG。例如,对于3.5 M以下的参数,MobileViG-S在Top-1的精度上与Pyramid-ViG-Ti匹配,同时速度快2.83倍。此外,在参数减少0.6 M的情况下,MobileViG-B在Top-1的准确率上击败Pyramid-ViG-S 0.5%,同时速度快2.08倍。

与表3中的移动端模型相比,MobileViG至少在NPU延迟、GPU延迟或准确性方面始终优于所有模型。MobileViG-Ti比MobileNetv2更快,Top-1的准确率高3.9%。它还与Top-1的EfficientFormerv2相匹配,同时在NPU和GPU延迟方面略有优势。

MobileViG-S在NPU延迟方面比EfficientNet-B0快近两倍,并比Top-1的准确率高0.5%。与MobileViTv2-1.5相比,MobileViG-M的NPU延迟快3倍以上,GPU延迟快2倍,Top-1精度高0.2%。此外,MobileViG-B比DeiT-S快6倍,能够在Top-1的精度上击败DeiT-S和Swin Tiny。

4.2、目标检测和实例分割

作者在目标检测和实例分割任务上评估了MobileViG,以进一步证明SVGA的潜力。作者在Mask RCNN中集成了MobileViG作为Backbone,并使用MS COCO 2017数据集进行了实验。作者使用PyTorch 1.12和Timm库实现了Backbone,并使用4个NVIDIA RTX A6000 GPU来训练作者的模型。

作者使用来自300个训练Epoch的预训练ImageNet-1k权重初始化模型,使用初始学习率为2e-4的AdamW优化器,并按照NextViT、EfficientFormer和EfficientFormerV2的过程,以标准分辨率(1333 X 800)训练12个Epoch的模型。

如表4所示,在相似的模型大小下,MobileViG在目标检测和/或实例分割方面的参数或改进的平均精度(AP)方面优于ResNet、PoolFormer、EfficientFormer和PVT。中等规模的模型MobileViG-M模型在目标检测任务上获得41.3 ,当50IoU时获得62.8 ,而当时获得45.1 。

对于实例分割任务,MobileViG-M在时获得38.1 ,在时得到60.1 。大尺寸MobileViG-B模型在目标检测任务上获得42.0 ,时获得64.3 ,时得到46.0 。在实例分割任务中,MobileViG-B在时获得38.9 ,在时得到61.4 。MobileViG在目标检测和实例分割方面的强大性能表明,MobileViG可以很好地推广为计算机视觉中不同任务的Backbone。

MobileViG的设计部分灵感来自Pyramid-ViG、EfficientFormer和MetaFormer的设计。在MobileViG中获得的结果表明,混合CNN-GNN架构是CNN、ViT和混合CNN-ViT设计的可行替代方案。混合CNN-GNN架构可以提供基于CNN的模型的速度以及ViT模型的准确性,使其成为高精度移动端架构设计的理想候选者。进一步探索用于移动端计算机视觉任务的混合CNN-GNN架构可以改进MobileViG概念,并引入新的最先进的架构。

5、参考

[1].MobileViG: Graph-Based Sparse Attention for Mobile Vision Applications.

作者: 小书童
文章来源:集智书童

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息