论文笔记:InternImage—基于可变形卷积的视觉大模型,超越ViT视觉大模型,COCO 新纪录 64.5 mAP!

news2024/12/23 14:41:45

文章信息

  • Title:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions
  • Paper Link:https://arxiv.org/abs/2211.05778
  • Code Link:https://github.com/OpenGVLab/InternImage

写在前面

拿到文章之后先看了一眼在ImageNet1k上的结果,确实很高,超越了同等大小下的VAN、RepLKNet、ConvNext等先进的大核注意力CNN模型,同时也超过了Swin、DeiT3、CoAtNet等ViT模型。回顾自从Vision Transformer被提出之后,通过大量数据训练出的ViT大模型刷新了许多视觉任务的记录,这得益于ViT的MHSA机制能够建模长距离依赖,具有相当低的归纳偏置,从而能够在海量数据中学习到强大鲁棒的特征表达。相反的,我们以前经常使用的卷积神经网络具有较高的归纳偏置,在大模型和大数据的条件下的表现却不如ViT大模型。该论文就指出,通过合适的算子、先进的架构设计、大量模型参数和海量数据的训练之下,CNN大模型也可以具有媲美ViT大模型的性能。InternImage设计了全新的可变性卷积模块,并且借鉴了ViT的先进架构和相关组件,从而设计出一个新的CNN大模型。并且,InternImage在相关的下游任务上的性能也很高,InternImage-H在目标检测COCO数据集上达到了65.4%的性能,超越了SwinV2-G大模型的性能。

COCO box AP

Background & Motivation

随着基于Transformer的语言大模型在NLP相关下游任务中取得优异性能,Vision Transformer也席卷了CV领域,成为基础视觉大模型研究和实践的首选。Swin V2、BeiT、CoAtNet等工作已经将ViT扩展到超过十亿参数规模,显著提升了CV分类、检测和分割等下游任务的性能,超越了CNN模型。但是,该论文提出如果CNN具备类似于ViT的算子和架构,并且在大量参数和海量数据情况下,其性能是可以与ViT相同甚至更好的。
作者认为CNN和ViT大模型性能存在差距的主要有两个原因:

  • ViTs的MHSA具有长程依赖和自适应空间聚合能力,从而可以在海量数据中学习到比CNN更强大鲁棒的特征表达。
  • 除MHSA外,ViT还包含不同于CNN的高级组件,如层归一化、前馈网络、GELU等。

基于此,该论文设计了一个新颖的基于可变性卷积CNN网络——InternImage,可以在大量参数和海量数据的情况下表现很好。如下图所示,动态稀疏可变性卷积既不像MHSA那样具有较高复杂度,也不像Local attention那样缺乏长程依赖,同时具有自适应的空间聚合能力。

不同算子的特性对比

该论文的主要贡献如下:

  • 提出一种新的CNN大模型——InternImage,首个参数达1B、训练数据达400M、取得与ViT相当甚至更优性能的CNN模型。证明对于大尺度模型研究,CNN同样是一个值得探索的方向。
  • 将长程依赖、自适应空域聚合引入到DCNv3,将CNN模型的大小和尺度进行扩展;并对模块定制化、堆叠规则以及缩放策略进行了探索。
  • 在图像分类、目标检测、语义分割以及实例分割等下游任务上验证了所提方案的有效性。其中,InternImage-B仅在ImageNet-1K训练即可取得84.9%的精度(比其他CNN至少高出1.1%);当在大量参数(1B)、海量数据(427M)条件下,InternImage-H取得了89.2%的性能;在COCO上,InternImage-H以2.18B的参数量取得了65.4%mAP,比SwinV2-G高出2.3%,参数量少27% 。

Method

该论文首先从DCNv2算子开始实验,然后借鉴了MHSA的相关思想对DCN V2做出了三个关键改进,设计出了全新的DCNv3算子;基于此算子,作者又提出了与ViT相似的Basic Block组成了InternImage网络,并且给出了InternImage的堆叠规则和大小缩放规则。

DCN V2

在提出DCN V3算子前,作者先回顾了一下传统卷积和多头自注意力机制这两种算子的区别,主要包括如下两点:

  • 长距离建模能力。普通的卷积聚合邻域内的信息,显然不具备全局建模的能力,尽管传统的CNN能够通过堆叠多个3 \times 3的卷积增加模型的感受野,但是仍然不能像ViT那样进行全局的交互。
  • 自适应空间聚合能力。多头自注意力机制在聚合不同的tokens的时候,权重都是根据输入query的不同而动态变化的;而传统的CNN不管输入是什么,卷积核的参数都是静态不变的。

然后回过头看一下DCN V2算子,其恰好是具有上述两个特性的;对于给定输入 \mathbf{x}\in \mathbb{R} ^{C\times H\times W} 和某像素 p_0,DCN V2算子的输出如下
\mathbf{y}\left( p_0 \right) =\sum_{k=1}^K{\mathbf{w}_k\mathbf{m}_k\mathbf{x}\left( p_0+p_k+\bigtriangleup p_k \right)}其中,K表示采样点个数、\mathbf{w}_k为相应采样点投影权重、\mathbf{m}_k代表了相应采样点的调制标量、\bigtriangleup p_k表示相应采样点的偏移量。
由这个表达式可以看出:

  • DCN V2算子可以通过偏移量来与局部或全局的交互,具有长距离建模的能力;
  • 由于调制标量\mathbf{m}_k和偏移量\bigtriangleup p_k都是可学习并且根据输入不同而变化的,所以DCN V2算子也具有类似于MHSA的自适应空间聚合能力。

因此,DCN V2算子==具备MHSA算子的相关特性==,有可能构成大规模的CNN基础模型。

DCN V3

尽管DCN V2算子已经缩小了普通卷积算子和MHSA之间的差距,对于大规模的视觉基础模型来说,DCN V2算子仍然不是最优的选择,于是作者从三个方面对DCN V2进行改进,得到了IntenImage的主要算子——DCN V3。

  1. 共享卷积权重。在DCN V2中,对于每一个采样点处的特征向量,都使用一个独立的投影权重。当采样点增多的时候,模型的参数和复杂度将会线性增加,不利于构建大规模的模型。在这里,作者借鉴了深度可分离卷积的思想来降低DCN算子的复杂度;具体地。对于point-wise,也就是不同的采样点向量,使用一个共享的权重w来进行投影;而对于depth-wise,则直接使用算子中的调制标量\mathbf{m}_k来代替。总体来说就是用同一个同权重对采样点进行投影,然后用一个位置感知的可学习系数对投影后的特征向量进行加权。
  2. 引入多组机制。回顾多头自注意力机制中的“多头”思想,不同的head实际上能够提供在不同子空间的丰富的信息。因此,作者将DCN V3也进行分组,在每组中进行不同的偏移采样、采样向量投影、因子调制。相当于把原来的操作重复多次,增强了DCN V3算子的表达能力(确实应该这样设计,不然只有一个共享的投影权重的话,特征表达的确单一)。
  3. 归一化调制标量。这个是因为在原始的DCN V2中,调制标量是用sigmoid进行处理的,对于K个调制因子来说,其和并不是1。作者指出,这样会导致训练不稳定的问题,因此作者改为了对K个调制因子进行softmax归一化,使得整个训练过程更为稳定。

以上三个点都是根据论文理解而来,因为现在作者还没有公布InternImage模型代码,无法查看具体的实现细节。综上所述,完整的DCN V3算子可以表示如下\mathbf{y}\left( p_0 \right) =\sum_{g=1}^G{\sum_{k=1}^K{\mathbf{w}_g\mathbf{m}_{gk}\mathbf{x}_g\left( p_0+p_k+\bigtriangleup p_{gk} \right)}}
其中,G表示group的数量。\mathbf{w}_g每组内共享投影权重,\mathbf{m}_{gk}表示第g组第k个采样点的归一化后的调制因子。如此一来 ,新设计的DCN V3算子弥补了传统卷积在长程依赖和自适应空间聚合方面的不足,同时使得可变性卷积算子更加适用于视觉大模型;在实现了稀疏全局建模的同时,又适当的保留了CNN的归纳偏置,可以说是在计算量和准确度之间进行了更好的权衡。

模型架构
InternImage整体架构

在设计完DCN v3算子后,作者抛弃了传统CNN的Block设计方式,而是采用了与ViT类似的整体架构设计。如上图所示,基本模块与ViT相同,什么LN、FFN、GELU激活函数都使用上了;downsample模块也是采用了正常的3*3、stride2、pooling1模块。然后按照论文中的堆叠和缩放策略就可以构建出完整的InternImage模型了。

模型配置参数

Experiment

分类
ImageNet1k分类结果

部分模型在ImageNet 1K上的效果如上图所示,可以说是非常SOTA了,超越了同等大小下的VAN、RepLKNet、ConvNext等先进的大核注意力CNN模型,同时也超过了Swin、DeiT3、CoAtNet等ViT模型。

检测
COCO val2017

在COCO val2017 和 test-dev 上的性能在当时也达到了SOTA的水平,确实可以。



喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

科普文:微服务之Spring Cloud Alibaba消息队列组件RocketMQ如何保证发送消息不丢失

概叙 本文分析了 RocketMQ 同步发送、异步发送和单向发送三种方式的原理、优缺点以及使用场景,并且分析了每种方式涉及到的核心源码。 科普文:微服务之Spring Cloud Alibaba版本选择-CSDN博客 通过上文的介绍可以知道同步发送方式可以保证消息发送时不…

git分支介绍

git branch 查看当前分支情况 可以看见当前只有一个分支叫main,也就是默认分支,可以理解为树的主干,git早期版本中默认分支叫master 命令行创建一个新分支 git branch [分支名]在创建之后,如果需要切换到新分支需要git switc…

用VBA在Word文档中快速查找到黄色底纹内容

一、效果展示 二、代码 Sub 快速查找定位到黄色底纹内容()With Selection.Find.ClearFormatting.Wrap wdFindContinue.Font.Shading.BackgroundPatternColorIndex wdYellow.ExecuteEnd With End Sub

C++面向对象高级编程(I)侯捷 自我总结版

关键词: 类的防卫式声明,模版,内联函数,构造函数以及重载,const,pass by reference(有&符号),friend,操作符重载,返回local object的不能retu…

【LightGlue】lightglue performance

【LightGlue】lightglue performance 1. 图表分析2. 数据点解释3. LightGlue的细节4. 结论 这张图表展示了不同特征匹配方法在图像对每秒处理速度和相对位姿精度(Relative Pose Accuracy)之间的关系。 1. 图表分析 X轴(横轴)&…

使用 abortNavigation 阻止导航

title: 使用 abortNavigation 阻止导航 date: 2024/8/3 updated: 2024/8/3 author: cmdragon excerpt: 摘要:在Nuxt3中,abortNavigation是一个辅助函数,用于路由中间件内阻止不符合条件的页面访问,实现权限控制、错误处理及动态…

3条职场情商法则,让你少走弯路

人生的幸福和工作息息相关,它占据了大量时间,而时间是人生最珍贵的资源。但当年轻人从校园走进职场时,却常常面临困境。因为职场和学校是完全不同的场所,游戏规则大相径庭。 人们会惊奇地发现,曾经的学霸可能在职场中…

Qt 5.14安装(配置MSVC 2017)

Qt 5.14安装(配置MSVC 2017) 记录一下自己安装配置Qt的步骤。 我需要安装Qt,并使用MSVC编译,所以才写了这篇文章。 一、环境 操作系统:windows 11 (64位) Qt:Qt 5.14.2 vs&…

Linux 命令,touch说明与使用

1:touch命令功用: 对一个或多个文件,将访问时间和修改时间以及日期进行更新,既在 Linux 和 Unix 系统中,改变文件的访问和修改时间,touch对于强制其他的命令以某一方式处理文件时是有用的。如make的操作 和某些find命令…

LED显示屏的秘密:揭秘模拟信号与模拟电路

在我们日常生活中,LED显示屏无处不在,从商场的广告牌到舞台的背景墙,它们用绚丽多彩的画面吸引着我们的眼球。但你是否好奇,这些神奇的屏幕背后,是如何处理和显示信息的呢?今天,就让我们一起揭开…

计算机毕业设计hadoop+hive+spark医院数据分析大屏 医疗数据分析 医疗可视化 医院大数据 医院爬虫 医疗爬虫 数据仓库 大数据毕业设计

绪论 研究背景和意义 近年来,随着第五次科技革命的到来,科学、信息技术等迅猛发展,医疗信息方面的数据激增,全国各大医院每日也产生大量的数据,包括门诊每日接诊数据、患者信息数据、医院资源消耗数据等。数据的高速产…

Radamsa:一款高性能通用模糊测试工具

关于Radamsa Radamsa是一款高性能的通用模糊测试工具,广大研究人员可以将其当作一个应用程序稳定性测试的测试用例生成工具。 工具运行机制 该工具使用简单,支持自定义脚本开发,可以用于测试程序对格式错误和潜在恶意输入的承受能力。它的工…

MapCrafter - 定制精美的地图海报! | 限时免费

MapCrafter: 打造个性化城市地图海报的终极工具! 在您的 iPhone、iPad、Mac 或 VisionPro 上轻松制作美丽的城市地图海报,展示您的城市情感与创意。 https://apps.apple.com/cn/app/mapcrafter/id6557037905 为什么选择 MapCrafter? • 城市…

【中项】系统集成项目管理工程师-第9章 项目管理概论-9.7 项目管理原则

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

CTF-web基础 TCP/UDP协议

传输层协议由TCP/UDP协议组成,来控制信息的传输,二者有什么区别呢,TCP比较靠谱,但是UDP速度比较快一点。 TCP协议 Transmission Control protocol, 三次握手:先给服务器传输询问要发消息,然后…

Python语言编制批处理文件管理器

在软件开发和系统管理中,批处理文件(.bat)是一种常见且有用的工具。它们可以自动化重复性任务,简化复杂的操作流程。然而,随着批处理文件数量的增加,管理和执行这些文件可能变得麻烦。今天,我们…

uniapp HarmonyOS项目实战

1. uniapp HarmonyOS项目实战 Dcloud发布了uniapp兼容鸿蒙的文档:Uniapp开发鸿蒙应用 1.1. 说明 (1)鸿蒙开发只支持Vue3,不支持Vue2、不支持plus、但支持nvue (2)nvue编译到鸿蒙后非原生渲染,…

AUTOSAR实战教程 - 模式管理BswM与其他各模块的交互

近日驻厂某OEM,幸得大块的个人时间, 把BswM这一块的内容从ETAS/ISOLAR工具配置到代码实现做了一个全方位的CT. 2024,希望孜孜内卷的汽车人升职加薪! 博主近期写的一首小诗,也一并送给大家,懂的都懂: 在看不到阳光的冬天/ 我染了风寒/ 白天点灯/ 晚上吃药/ 躺在被窝里才敢…

2024上海初中生古诗文大会暑假备考:单选题真题和独家解析

今天是2024年8月3日,现在距离2024年初中生古诗文大会初选还有3个月(11月3日正式开赛),我们继续来看10道选择题真题和详细解析。为帮助孩子自测和练习,题目的答案和解析统一附后。 本专题持续分享,欢迎到我…

C 语言二分查找法

二分查找定义 二分查找法用于查找一个有序数组中某个目标值是否存在,或者接近目标值的元素;相比把 整个数组遍历一次的0(n)复杂度,二分查找可以把复杂度降低到0(logzn): 原理讲解 原来中间的值mid (left right)/ 2,但…