Conv2Former ~2

news2024/12/25 14:35:25

还是来说Conv2Former~~ 上次发了一次~~

一种卷积调制模块,利用卷积来建立关系,这比注意力机制在处理高分辨率图像时更高效,称为 Conv2Former。作者在 ImageNet 分类、目标检测和语义分割方面的实验也表明,Conv2Former 比以前基于 CNN 的模型和大多数基于 Transformer 的模型表现得更好。

Conv2Former:Transformer 风格的卷积网络视觉基线模型

论文名称:Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition

论文地址:https://arxiv.org/pdf/2211.11943.pdf

以 VGGNet、Inception 系列和 ResNet 系列为代表的 2010-2020 年代的卷积神经网络 (ConvNets) 在多种视觉任务中取得了巨大的进展,它们的共同特点是顺序堆叠多个基本模块 (Basic Building Block),并采用金字塔结构 (pyramid network architecture),但是却忽略了显式建模全局上下文信息的重要性。SENet 模块系列模型突破了传统的 CNN 设计思路,将注意力机制引入到 CNN 中以捕获远程依赖,获得了更好的性能。

自从 2020 年以来,视觉 Transformer (ViTs) 进一步促进了视觉识别模型的发展,在 ImageNet 图像分类和下游任务上表现出比最先进的 ConvNets 更好的结果。这是因为与只进行局部建模的卷积操作相比,Transformer 中的自注意力机制能够对全局的成对依赖进行建模,提供了一种更有效的空间信息编码方法。然而,在处理高分辨率图像时,自注意力机制导致的计算成本是相当大的。

为了解决这个问题,一些 2022 年经典的工作试图回答:如何借助卷积操作,打造具有 Transformer 风格的卷积网络视觉基线模型?

​比如 ConvNeXt[1]:将标准 ResNet 架构现代化,并使用与 Transformer 相似的设计和训练策略,ConvNeXt 可以比一些 Transformer 表现得更好。 从原理和代码详解FAIR去年的惊艳之作:全新的纯卷积模型ConvNeXt 再比如 HorNet[2]:通过建模高阶的相互作用,使得纯卷积模型可以做到像 Transformer 一样的二阶甚至更高的相互作用。 精度超越ConvNeXt的新CNN!HorNet:通过递归门控卷积实现高效高阶的空间信息交互 再比如 RepLKNet[3],SLaK[4]:通过 31×31 或者 51×51 的超大 Kernel 的卷积,使得纯卷积模型可以建模更远的距离。 又对ConvNets下手了!详解SLaK:从稀疏性的角度将卷积核扩展到 51×51 到目前为止,如何更有效地利用卷积来构建强大的 ConvNet 体系结构仍然是一个热门的研究课题。 ​

卷积调制模块

ConvNeXt 表明,将 ConvNets 的核大小从3扩大到7可以提高分类性能。然而,进一步增加 Kernel 的大小几乎不会带来性能上的提升,反而会在没有重新参数化的情况下增加计算负担。但作者认为,使 ConvNeXt 从大于 7×7的 Kernel Size 中获益很少的原因是使用空间卷积的方式。对于 Conv2Former,当 Kernel Size 从 5×5 增加到 21×21 时,可以观察到一致的性能提升。这种现象不仅发生在 Conv2Former-T (82.8→83.4) 上,也发生在参数为80M+ 的 Conv2Former-B (84.1→84.5) 上。考虑到模型效率,默认的 Kernel Size 大小可以设置为 11×11。

权重策略的优化: 注意这里作者直接将深度卷积的输出作为权重,对线性投影后的特征进行调制。Hadamard 积之前既没有使用激活层,也没有使用归一化层 (例如 Sigmoid 或 LN 层),如果像 SE 模块那样加一个 Sigmoid 函数,会使性能降低 0.5% 以上。

Conv2Former 整体架构

如下图3所示,与ConvNeXt 和 Swin Transformer 相似,作者的 Conv2Former 也采用了金字塔架构。总共有4个 Stage,每个 Stage 的特征分辨率依次递减。根据模型大小尺寸,一共设计了5个变体:Conv2Former-N,Conv2Former-T, Conv2Former-S, Conv2Former-B,Conv2Former-L。

当可学习参数数量固定时,如何安排网络的宽度和深度对模型性能有影响。原始的 ResNet-50 将每个 Stage 的块数设置为 (3,4,6,3)。ConvNeXt-T 按照 Swin-T 的模式将 Block 数之比更改为 (3,3,9,3),并对较大的模型将 Block 数之比更改为 (1,1,9,1)。Conv2Former 的设置如下图4所示。可以观察到,对于一个小模型 (参数小于30M),更深的网络表现更好。 

实验结果

ImageNet-1K 实验分为两种,一种是直接在 ImageNet-1K 上面训练和验证,另一种是先在 ImageNet-22K 上预训练,再在 ImageNet-1K 上微调和验证。

ImageNet-1K 实验设置

数据集:ImageNet-1K 训练 300 Epochs,ImageNet-1K 验证。

ImageNet-22K 实验设置

数据集:ImageNet-22K 预训练 90 Epochs,ImageNet-1K 微调 30 Epochs,ImageNet-1K 验证。

如下图5所示是 ImageNet-1K 实验结果。对于小型模型 (< 30M),与 ConvNeXt-T 和 Swin-T 相比,Conv2Former 分别有 1.1% 和 1.7% 的性能提升。即使 Conv2Former-N 只有 15M 参数和 2.2G FLOPs,其性能也与具有 28M 参数和 4.5G FLOPs 的 SwinT-T 相同。对于其他流行的模型,Conv2Former 也比类似模型尺寸的模型表现更好。Conv2Former-B 甚至比 EfficientNetB7 表现得更好 (84.4% vs . 84.3%),后者的计算量是 Conv2Former 的两倍 (37G vs. 15G)。

图5:ImageNet-1K 实验结果

如下图6所示是 ImageNet-22K 的实验结果。作者遵循 ConvNeXt 中使用的设置来训练和微调模型。与 ConvNeXt 的不同变体相比,当模型尺寸相似时,Conv2Former 都表现得更好。此外,我们可以看到,当在更大的分辨率384×384 上进行微调时,Conv2Former-L 获得了比混合模型 (如 CoAtNet 和 MOAT) 更好的结果,Conv2Former-L 达到了 87.7% 的最佳结果。

 图6:ImageNet-22K 实验结果

如下图8所示是关于卷积核大小的消融实验结果。在 大小增加到 21 × 21 之前,性能增益似乎已经饱和。这个结果与 ConvNeXt 得出的结论截然不同,ConvNeXt 得出的结论是,使用大于 7×7 的 Kernel 不会带来明显的性能提升。

图7:onv2Former 对于大卷积核的泛化效果很好

消融实验1:卷积核大小

如下图8所示是关于卷积核大小的消融实验结果。在 Kernel Size 增加到 21 × 21 之前,性能增益已经饱和。这个结果与 ConvNeXt 得出的结论截然不同,ConvNeXt 得出的结论是,使用大于 7×7 的 Kernel Size 不会带来明显的性能提升。这表明 Conv2Former 的做法能比传统方式更有效地利用大 Kernel 的优势。

图8:卷积核大小,融合策略的消融实验结果

消融实验2:不同融合策略的影响

直筒架构实验结果

遵循 ConvNeXt 的做法,作者也训练了 Conv2Former 的直筒架构 (Isotropic Models) 版本,结果如下图9所示。作者将 Conv2Former-IS 和 Conv2Former-IB 的块数设置为18,并调整通道数以匹配模型大小。字母 "I" 表示直筒架构,可以看到,对于 22M 参数左右的小型模型,Conv2Former-IS 比 DeiT-S 的表现要好得多。当将模型尺寸放大到 80M+ 时,Conv2Former-IB 达到了 82.7% 的 Top-1 Accuracy,这也比 ConvNeXt-IB 高 0.7%,比 DeiT-B 高0.9%。

图9:直筒架构实验结果

目标检测实验结果

如下图10所示是不同骨干网络,以 Mask R-CNN 为检测头和 Cascade Mask R-CNN 为实例分割头在 COCO 数据集的实验结果。训练策略遵循 ConvNeXt。对于小模型,使用 Mask R-CNN 框架时,Conv2Former-T 比 SwinT-T 和 ConvNeXt-T 获得了约 2% AP 的改进。

图10:目标检测实验结果  whaosoft aiot http://143ai.com

语义分割实验结果

如下图11所示是不同骨干网络,以 UperNet 为分割头在 ADE20k 上的实验结果。对于不同尺度的模型,我们的Conv2Former可以优于Swin Transformer和ConvNeXt。

 

总结

本文试图回答:如何借助卷积操作,打造具有 Transformer 风格的卷积网络视觉基线模型。本文提出一种卷积调制模块,利用卷积来建立关系,这比注意力机制在处理高分辨率图像时更高效。最终的模型称为 Conv2Former,它通过只使用卷积和 Hadamard 积,简化了注意力机制。卷积调制操作是一种利用大核卷积的更有效的方法。作者在 ImageNet 分类、目标检测和语义分割方面的实验也表明,Conv2Former 比以前基于 CNN 的模型和大多数基于 Transformer 的模型表现得更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2022.12.19】备战春招Day14——每日一题 + 234. 回文链表 + 860. 柠檬水找零

【每日一题】1971. 寻找图中是否存在路径 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n -1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi之间的双向边。…

昆仑万维的AI作画简直就是业界天花板

AI作画的业界天花板被我找到了&#xff0c;AIGC模型揭秘 | 昆仑万维。 一、前景 1、AI和AIGC的关系 人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的…

SpringMVC入门到实战------ 十一 拦截器的使用

1、拦截器的配置 拦截器用于拦截控制器方法的执行 拦截器需要实现HandlerInterceptor 拦截器必须在SpringMVC的配置文件中进行配置 1.1 和1.2 是对所有的请求进行拦截&#xff1b;1.3 对排出的请求不在拦截 1.1 不使用注解的情况 创建拦截器类 /*** 拦截器* author zyz* ve…

牛客竞赛每日俩题 - Day11

目录 错排问题 有理数运算 错排问题 年会抽奖__牛客网 全部都不获奖的概率必定是由 n个人都拿错的情况种数 除 n个人拿出的所有排列情况数。n个人拿出的所有排列情况数显然是n的阶乘。 假设a的名字没有被a拿到&#xff0c;其他n - 1个人都有可能拿到&#xff0c;即有n - 1种…

JavaScript 中的设计模式

目录 1. 单例模式 2. 策略模式 3. 代理模式 4. 装饰者模式 5. 组合模式 6. 工厂模式 7. 访问者模式 8. 发布订阅模式 9. 观察者模式 10. 参考链接 设计模式&#xff08;Design Pattern&#xff09;是从许多优秀的软件系统中&#xff0c;总结出的成功的、能够实现可维…

CentOS 7安装及使用MobaXterm连接

1、 下载centos7映像文件地址&#xff1a;http://mirrors.aliyun.com/centos/7/isos/x86_64 选择CentOS-7.0-x86_64-DVD-2009.iso 标准安装版或者CentOS-7-x86_64-Everything-1908.iso下载 2、安装centos7 2.1、右击以管理员身份运行 2.2、点击创建新的虚拟机 2.3、选择…

c++ - 第18节 - 哈希

1.unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0c;进行很…

MockServer 服务框架设计

大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘&#xff0c;比如对 socket 协议的应用进行 mock&#xff0c;或者对于支付接口的失败重试的定制化 mock 场景。 为解决上述问题&#xff0c;霍格沃兹测试学院设计并研…

【Redis -String、List介绍和应用场景】

String String 是最基本的 key-value 结构&#xff0c;key 是唯一标识&#xff0c;value 是具体的值&#xff0c;value其实不仅是字符串&#xff0c; 也可以是数字&#xff08;整数或浮点数&#xff09;&#xff0c;value 最多可以容纳的数据长度是 512M。 内部实现 String 类…

万字解析,带你深入掌握多种排序算法!-C语言

今天我们来看排序&#xff0c;排序在生活中经常使用&#xff0c;非常重要&#xff0c;是必学的内容。 目录 1.插入排序 1.1直接插入排序 1.2希尔排序 2.选择排序 2.1直接选择排序 2.2堆排序 3.交换排序 3.1冒泡排序 3.2快速排序 3.2.1挖坑法 3.2.2左右指针法 3.2.3…

【驯服野生verilog-mode全记录】day4 —— 对循环展开语法的python脚本外挂支持

我们的目标是┏ (゜ω゜)☞芯片前端全栈工程师~喵&#xff01; 系列文章目录 【驯服野生verilog-mode全记录】day3 —— 基于vim自动生成verilog-mode格式初始文件模板_尼德兰的喵的博客-CSDN博客 【驯服野生verilog-mode全记录】day2 —— 模块的例化_尼德兰的喵的博客-CSDN…

微服务框架 SpringCloud微服务架构 服务异步通讯 53 MQ 集群 53.4 仲裁队列【RabbitMQ控制台搭建】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 服务异步通讯 文章目录微服务框架服务异步通讯53 MQ 集群53.4 仲裁队列【RabbitMQ控制台搭建】53.4.1 仲裁队列53.4.2 搭建仲裁队列53 MQ 集…

10. 注解开发Bean作用范围和生命周期管理

1. bean作用范围注解配置 使用Scope注解定义bean作用范围 1.1. singleton为单例 1.1.1 在bean头上使用Scope注解&#xff0c;singleton package com.lin.dao.impl;import com.lin.dao.BookDao; import org.springframework.context.annotation.Scope; import org.springfra…

企业档案管理实务:档案的检索方法知多少

在鸿翼档案的企业档案系统设计中&#xff0c;企业档案常用的检索实际上包括两个行为&#xff1a;企业档案信息的贮存和企业档案信息的查找。档案检索工具一方面是整个企业档案检索体系中贮存结果的最终体现&#xff0c;直接反映贮存的质量和水平&#xff1b;另一方面又是各项业…

Redis 哈希(Hash)方法使用详解

目录一、简介二、常用方法2.1、HSET2.2、HSETNX2.3、HGET2.4、HINCRBY、HINCRBYFLOAT2.5、HSTRLEN2.6、HEXISTS2.7、HDEL2.8、HLEN2.9、HMSET、HMGET2.10、HKEYS、HVALS、HGETALL2.11、HSCAN一、简介 本文今天主要是讲哈希&#xff08;Hash&#xff09;的方法的使用&#xff0c…

毕业设计 单片机手势检测识别系统 - arduino 物联网 嵌入式

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理5 部分核心代码6 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长…

uniapp中video层级太高(或者在页面中不跟随页面滚动)解决方案

我觉得这个问题有必要记录一下。最近项目中遇到的问题&#xff1a;项目是uniapp开发&#xff0c;有一个商品详情的页面和一个视频竖向轮播的页面。 问题描述 1、商品详情页上面是图片轮播(包含视频)&#xff0c;下面是商品详情&#xff0c;当页面上下滑动时&#xff0c;如果当…