0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于视觉识别的Transformer风格的ConvNet

CVer 来源:AIWalker 作者:AIWalker 2022-11-30 14:06 次阅读

本文旨在通过充分利用卷积探索一种更高效的编码空域特征的方式:通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former。ImageNet分类、COCO检测以及ADE20K分割任务上的实验结果表明:所提Conv2Former取得了优于主流ConvNet(如ConvNeXt)、ViT(如Swin Transformer)的性能。

本文方案

26a273c4-706d-11ed-8abf-dac502259ad0.jpg

上图给出了本文方案架构示意图,类似ConvNeXt、SwinT,Conv2Former采用了金字塔架构,即含四个阶段、四种不同尺寸的特征,相邻阶段之间通过Patch Embedding模块(其实就是一个卷积核与stride均为的卷积)进行特征空间分辨率与通道维度的恶变换。下表给出了不同大小Conv2Former的超参配置,

26bec1f0-706d-11ed-8abf-dac502259ad0.jpg

核心模块

26cf68ac-706d-11ed-8abf-dac502259ad0.jpg

上图给出了经典模块的架构示意图,从经典的残差模块到自注意力模块,再到新一代卷积模块。自注意力模块可以表示为如下形式:

尽管注意力可以更好的编码空域相关性,但其计算复杂性随N而爆炸性增长。

本文则旨在对自注意力进行简化:采用卷积特征对V进行调制。假设输入,所提卷积调制模块描述如下:

需要注意的是:上式中表示Hadamard乘积。上述卷积调制模块使得每个位置的元素与其近邻相关,而通道间的信息聚合则可以通过线性层实现。下面给出了该核心模块的实现代码。

classConvMod(nn.Module):
def__init__(self,dim):
super().__init__()
self.norm=LayerNorm(dim,eps=1e-6,data_format='channel_first')
self.a=nn.Sequential(
nn.Conv2d(dim,dim,1),
nn.GELU(),
nn.Conv2d(dim,dim,11,padding=5,groups=dim)
)
self.v=nn.Conv2d(dim,dim,1)
self.proj=nn.Conv2d(dim,dim,1)

defforward(self,x):
B,C,H,W=x.shape
x=self.norm(x)
a=self.a(x)
v=self.v(x)
x=a*v
x=self.proj(x)
returnx

微观设计理念

Larger Kernel than 如何更好的利用卷积对于CNN设计非常重要!自从VGG、ResNet以来,卷积成为ConvNet的标准选择;Xception引入了深度分离卷积打破了该局面;再后来,ConvNeXt表明卷积核从3提升到7可以进一步改善模型性能。然而,当不采用重参数而进一步提升核尺寸并不会带来性能性能提升,但会导致更高计算负担。

作者认为:ConvNeXt从大于卷积中受益极小的原因在于使用空域卷积的方式。对于Conv2Former,从到,伴随核尺寸的提升可以观察到Conv2Former性能一致提升。该现象不仅发生在Conv2Former-T(),同样在Conv2Former-B得到了体现()。考虑到模型效率,作者将默认尺寸设置为

Weighting Strategy 正如前面图示可以看到:作者采用Depthwise卷积的输出对特征V进行加权调制。需要注意的是,在Hadamard乘积之前并未添加任务规范化层(如Sigmoid、),而这是取得优异性能的重要因素(类似SENet添加Sigmoid会导致性能下降超0.5%)。

Normalization and Activations 对于规范化层,作者参考ViT与ConvNeXt采用了Layer Normalization,而非卷积网络中常用的Batch Normalization;对于激活层,作者采用了GELU(作者发现,LN+GELU组合可以带来0.1%-0.2%的性能提升)。

本文实验

26e4184c-706d-11ed-8abf-dac502259ad0.jpg

上述两表给出了ImageNet分类任务上不同方案的性能对比,从中可以看到:

  • 在tiny-size(<30M)方面,相比ConvNeXt-T与SwinT-T,Conv2Former-T分别取得了1.1%与1.7%的性能提升。值得称道的是,Conv2Former-N仅需15M参数量+2.2GFLOPs取得了与SwinT-T(28M参数量+4.5GFLOPs)相当的性能。

  • 在base-size方面,相比ConvNeXt-B与SwinT-B,Conv2Former-B仍取得了0.6%与0.9%的性能提升

  • 相比其他主流模型,在相近大小下,所提Conv2Former同样表现更优。值得一提的是,相比EfficientNet-B7,Conv2Former-B精度稍有(84.4% vs 84.3%),但计算量大幅减少(15G vs 37G)。

  • 当采用ImageNet-22K预训练后,Conv2Former的性能可以进一步提升,同时仍比其他方案更优。Conv2Former-L甚至取得了87.7% 的优异指标

271576d0-706d-11ed-8abf-dac502259ad0.jpg

采用大核卷积是一种很直接的辅助CNN构建长程相关性的方法,但直接使用大核卷积使得所提模型难以优化。从上表可以看到:当不采用其他训练技术(如重参数、稀疏权值)时,Conv2Former采用时已可取得更好的性能;当采用更大的核时,Conv2Former取得了进一步的性能提升

272609be-706d-11ed-8abf-dac502259ad0.jpg

上表给出了COCO检测任务上不同方案的性能对比,从中可以看到:

  • 在tiny-size方面,相比SwinT-T与ConvNeXt-T,Conv2Former-T取得了2% 的检测指标提升,实例分割指标提升同样超过1%;

  • 当采用Cascade Mask R-CNN框架时,Conv2Former仍具有超1%的性能提升。

  • 当进一步增大模型时,性能优势则变得更为明显;

27420dc6-706d-11ed-8abf-dac502259ad0.jpg

上表给出了ADE20K分割任务上的性能对比,从中可以看到:

  • 在不同尺度模型下,Conv2Former均具有比SwinT与ConvNeXt更优的性能;

  • 相比ConvNeXt,在tiny尺寸方面性能提升1.3%mIoU,在base尺寸方面性能提升1.1%;

  • 当进一步提升模型尺寸,Conv2Former-L取得了54.3%mIoU,明显优于Swin-L与ConvNeXt-L。

一点疑惑解析

到这里,关于Conv2Former的介绍也就结束了。但是,心里仍有一点疑惑存在:Conv2Former与VAN的区别到底是什么呢?关于VAN的介绍可参考笔者之前的分享:《优于ConvNeXt,南开&清华开源基于大核注意力的VAN架构》。

先来看一下两者的定义,看上去两者并无本质上的区别(均为点乘操作),均为大核卷积注意力

  • VAN:

  • Conv2Former

2756254a-706d-11ed-8abf-dac502259ad0.jpg

结合作者开源代码,笔者绘制了上图,左图为Conv2Former核心模块,右图为VAN核心模块。两者差别还是比较明显的!

  • 虽然大核卷积注意力均是其核心,但Conv2Former延续了自注意力的设计范式,大核卷积注意力是其核心;而VAN则是采用传统Bottleneck设计范式大核卷积注意力的作用类似于SE

  • 从大核卷积内在机理来看,Conv2Former仅考虑了的空域建模,而VAN则同时考虑了空域与通道两个维度

  • 在规范化层方面,Conv2Former采用了Transformer一贯的LayerNorm,而VAN则采用了CNN一贯的BatchNorm;

  • 值得一提的是:两者在大核卷积注意力方面均未使用Sigmoid激活函数。两者均发现:使用Sigmoid激活会导致0.2%左右的性能下降。

2766b16c-706d-11ed-8abf-dac502259ad0.jpg

为更好对比Conv2Former与VAN的性能,特汇总上表(注:GFLOPs列仅汇总了)在Image输入时的计算量Net-1K上的指标进行了对比,可以看到:在同等参数量前提下,两者基本相当,差别仅在0.1%。此外,考虑到作者所提到的“LN+GELU的组合可以带来0.1%-0.2%的性能提升”,两者就算是打成平手了吧,哈哈。


		
			

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2694

    浏览量

    47427
  • 编码
    +关注

    关注

    6

    文章

    940

    浏览量

    54809
  • 视觉识别
    +关注

    关注

    3

    文章

    89

    浏览量

    16722

原文标题:超越ConvNeXt!Conv2Former:用于视觉识别的Transformer风格的ConvNet

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开源项目 ! 利用边缘计算打造便携式视觉识别系统

    扩展地构建这些系统。 边缘计算平台应运而生 —— 它是实现超快速、低延迟视觉识别的秘诀所在。通过在本地处理数据,边缘计算大幅削减了传输延迟,实现了实时响应,并提高了计算效率。对于那些分秒必争的应用场
    发表于 12-16 16:31

    ASR与传统语音识别的区别

    识别技术。 构建更深更复杂的神经网络模型,利用大量数据进行训练。 提高了语音识别的准确率和稳定性。 传统语音识别 : 通常依赖于声学-语言模型的方法。 在处理复杂的语音输入时,可能表现不如ASR技术出色。 二、功能多样性 ASR
    的头像 发表于 11-18 15:22 432次阅读

    使用 TMP1826 嵌入式 EEPROM 替换用于模块识别的外部存储器

    电子发烧友网站提供《使用 TMP1826 嵌入式 EEPROM 替换用于模块识别的外部存储器.pdf》资料免费下载
    发表于 09-09 09:44 0次下载
    使用 TMP1826 嵌入式 EEPROM 替换<b class='flag-5'>用于</b>模块<b class='flag-5'>识别的</b>外部存储器

    目标检测识别主要应用于哪些方面

    目标检测识别是计算机视觉领域的一个重要研究方向,它主要关注于从图像或视频中识别和定位目标物体。随着计算机视觉技术的不断发展,目标检测识别已经
    的头像 发表于 07-17 09:34 1030次阅读

    如何设计人脸识别的神经网络

    人脸识别技术是一种基于人脸特征信息进行身份识别的技术,广泛应用于安全监控、身份认证、智能门禁等领域。神经网络是实现人脸识别的关键技术之一,本文将介绍如何设计人脸
    的头像 发表于 07-04 09:20 640次阅读

    Transformer模型在语音识别和语音生成中的应用优势

    随着人工智能技术的飞速发展,语音识别和语音生成作为人机交互的重要组成部分,正逐渐渗透到我们生活的各个方面。而Transformer模型,自其诞生以来,凭借其独特的自注意力机制和并行计算能力,在
    的头像 发表于 07-03 18:24 1072次阅读

    人脸检测和人脸识别的区别是什么

    人脸检测和人脸识别是计算机视觉领域的两个重要技术,它们在许多应用场景中都有广泛的应用,如安全监控、身份验证、社交媒体等。尽管它们在某些方面有相似之处,但它们之间存在一些关键的区别。本文将详细介绍人
    的头像 发表于 07-03 14:49 1155次阅读

    人脸检测与识别的方法有哪些

    人脸检测与识别是计算机视觉领域中的一个重要研究方向,具有广泛的应用前景,如安全监控、身份认证、智能视频分析等。本文将详细介绍人脸检测与识别的方法。 引言 人脸检测与识别技术在现代社会中
    的头像 发表于 07-03 14:45 696次阅读

    图像检测和图像识别的区别是什么

    详细的比较和分析。 定义和概念 图像检测(Image Detection)是指利用计算机视觉技术对图像中的特定目标进行定位和识别的过程。它通常包括目标的检测、分类和定位三个步骤。图像检测的目标可以是人、车、动物等任何具有特定特征
    的头像 发表于 07-03 14:41 968次阅读

    视觉Transformer基本原理及目标检测应用

    视觉Transformer的一般结构如图2所示,包括编码器和解码器两部分,其中编码器每一层包括一个多头自注意力模块(self-attention)和一个位置前馈神经网络(FFN)。
    发表于 04-03 10:32 3435次阅读
    <b class='flag-5'>视觉</b><b class='flag-5'>Transformer</b>基本原理及目标检测应用

    语音识别的技术历程及工作原理

    语音识别的本质是一种基于语音特征参数的模式识别,即通过学习,系统能够把输入的语音按一定模式进行分类,进而依据判定准则找出最佳匹配结果。
    的头像 发表于 03-22 16:58 3063次阅读
    语音<b class='flag-5'>识别的</b>技术历程及工作原理

    机器视觉的图像目标识别方法综述

    机器视觉代替传统的人工视觉,能够更好的满足危险作业基本需求。机器视觉的图像目标识别的重要性图像目标识别是机器
    的头像 发表于 02-23 08:26 709次阅读
    机器<b class='flag-5'>视觉</b>的图像目标<b class='flag-5'>识别</b>方法综述

    基于Transformer模型的压缩方法

    基于Transformer架构的大型模型在人工智能领域中发挥着日益重要的作用,特别是在自然语言处理(NLP)和计算机视觉(CV)领域。
    的头像 发表于 02-22 16:27 646次阅读
    基于<b class='flag-5'>Transformer</b>模型的压缩方法

    机器视觉的图像目标识别方法操作要点

    通过加强图像分割,能够提高机器视觉的图像目标识别的自动化水平,使得图像目标识别效果更加显著。图像分割的方法有很多种,不同方法分别适用于不同领域,这里重点介绍以下3种分割方法。
    发表于 01-15 12:17 432次阅读

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自动训练需要掌握一些重要的概念和技术。在本文中,我们将介绍如何使用Python中的一些常用库和算法来实现
    的头像 发表于 01-12 16:06 572次阅读