大规模基础模型!在视觉领域更强、更鲁棒!

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

5e22cba0ea59b9609bde6facb984f242.gif

d1f4d1cc8674e52c0ef0eadc19a8f418.gif

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

Column of Computer Vision Institute

今天分享的研究者提出了一种新的基于CNN的大规模基础模型,称为InternImage,它可以从增加参数和训练数据(如ViTs)中获得增益。

675c9819e7870e247695849c1156533f.gif

01

简介

与最近关注large dense kernels的CNN不同,InternImage以可变形卷积为核心算子,使我们的模型不仅具有检测和分割等下游任务所需的大有效感受野,而且具有受输入和任务信息约束的自适应空间聚合。因此,所提出的InternImage减少了传统CNNs严格归纳偏差,并使其能够从像ViT这样的海量数据中学习具有大规模参数的更强、更稳健的模式。我们的模型的有效性在ImageNet、COCO和ADE20K等具有挑战性的基准测试中得到了验证。值得一提的是,InternImage-H在COCO测试开发上获得了创纪录的65.4mAP,在ADE20K上获得了62.9mIoU,优于目前领先的CNNs和ViTs。

01556019ae91b2e9fa1da17641bc37d3.gif

02

背景

为了弥合CNNs和ViTs之间的差距,首先从两个方面总结了它们的差异:(1)从操作员层面来看,ViTs的多头自注意(MHSA)具有长程依赖性和自适应空间聚合(见图(a)段)。得益于灵活的MHSA,ViT可以从海量数据中学习到比CNN更强大、更健壮的表示。(2) 从架构的角度来看,除了MHSA之外,ViTs还包含一系列未包含在标准CNN中的高级组件,如层归一化(LN)、前馈网络(FFN)、GELU等。

596d5dd941e41cb05ba305776c9f57c8.png

尽管最近的工作已经做出了有意义的尝试,通过使用具有非常大内核(例如,31×31)的密集卷积将长程依赖引入到CNN中,如图(c)所示,在性能和模型规模方面与最先进的大型ViT仍有相当大的差距。

9621238d3970a6d412a86d3ea6c4ed42.gif

03

新框架介绍

通过大规模参数(即10亿)和训练数据(即4.27亿),InternImage-H的top-1准确率进一步提高到89.6%,接近well-engineering ViTs和混合ViTs。此外,在具有挑战性的下游基准COCO上,最佳模型InternImage-H以21.8亿个参数实现了最先进的65.4%的boxmAP,比SwinV2-G高2.3个点(65.4对63.1),参数减少了27%,如下图所示。

82e8058854a9a5766019a3bed670cca1.png

为了设计一个基于CNN的大型基础模型,我们从一个灵活的卷积变体开始,即DCNv2,并在此基础上进行一些调整,以更好地适应大型基础模型的要求。然后,通过将卷积算子与现代主干中使用的高级块设计相结合来构建基本块。最后,探索了基于DCN的块的堆叠和缩放原理,以构建一个可以从海量数据中学习强表示的大规模卷积模型。

70b797413a7581d9b915b003fda959b7.png

使用DCNv3作为核心带来了一个新的问题:如何构建一个能够有效利用核算子的模型?首先介绍了基本块和模型的其他集成层的细节,然后我们通过探索这些基本块的定制堆叠策略,构建了一个新的基于CNN的基础模型,称为InternImage。最后,研究了所提出的模型的放大规则,以从增加参数中获得增益。

Basic block

与传CNNs中广泛使用的瓶颈不同,我们的基块的设计更接近ViTs,它配备了更先进的组件,包括LN、前馈网络(FFN)和GELU。这种设计被证明在各种视觉任务中是有效的。我们的基本块的细节如上图所示。其中核心算子是DCNv3,并且通过将输入特征x通过可分离卷积(3×3深度卷积,然后是线性投影)来预测采样偏移和调制尺度。对于其他组件,默认使用后规范化设置,并遵循与普通变压器相同的设计。

b453ffa1d3a449293619f3d5541ca459.png

Hyper-parameters for models of different scales

Scaling rules

在上述约束条件下的最优原点模型的基础上,进一步探索了受[Efficientnet: Rethinking model scaling for convolutional neural networks]启发的参数缩放规则。具体而言,考虑两个缩放维度:深度D(即3L1+L3)和宽度C1,并使用α、β和复合因子φ缩放这两个维度。

通过实验发现,最佳缩放设置为α=1.09和β=1.36,然后在此基础上构建具有不同参数尺度的InternImage变体,即InternImage-T/S/B/L/XL,其复杂性与ConvNeXt的相似。为了进一步测试该能力,构建了一个具有10亿个参数的更大的InternImage-H,并且为了适应非常大的模型宽度,还将组维度C‘更改为32。上表总结了配置。

5e1c8bb15521862423eb1bda409c4379.gif

04

实验&可视化

Object detection and instance segmentation performance on COCO val2017.

4fba0e320b2f259e28aef4eb2c2c8fe6.png

为了进一步提高目标检测的性能,在ImageNet-22K或大规模联合数据集上预先训练的权重初始化主干,并通过复合技术将其参数翻倍。然后,在Objects365和COCO数据集上一个接一个地对其进行微调,分别针对26个epochs和12个epochs。如下表所示,新方法在COCO val2017和test-dev上获得了65.0 APb和65.4 APb的最佳结果。与以前最先进的模型相比,比FD-SwinV2-G[26]高出1.2分(65.4比64.2),参数减少了27%,并且没有复杂的蒸馏过程,这表明了新模型在检测任务上的有效性。

37b66fb275d6901fbb3acb8e9c833e4e.png

共享权重的模型参数和GPU内存使用v.s卷积神经元之间的非共享权重。左纵轴表示模型参数,右纵轴表示批量大小为32且输入图像分辨率为224×224时每个图像的GPU内存使用情况。

3f62b2da443661f6142cc8ae2d0f5451.png

不同阶段不同组的采样位置可视化。蓝色的星表示查询点(在左边的羊),不同颜色的点表示不同组的采样位置。

b82626695e3fa30d83fc9c0138afc537.png

9cf92a3195133d1f432493e78ab81f65.png

© THE END 

转载请联系本公众号获得授权

97ec7ba40573775aa6193c18f976c53d.gif

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

cd166700d7d8973133d8788d5276da5d.png

 往期推荐 

🔗

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

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

相关文章

一分钟完成centos7安装docker

action: 1、下载安装包2、安装docker 1、背景 使用CentOS / Redhat 7 版本的应该偏多。但是,Docker CE在系统中安装的时候,往往会出现一堆依赖包的报错,解决依赖包需要耗费不短的时间。 经验证,目前已找到兼容能力强的版本&am…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机,不管是企业还是个人,我觉得都是比较合适的,而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装,直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

离散化的两种实现方式【sort或者map】

离散化 定义 把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。 适用范围:数组中元素值域很大,但个数不是很多。 比如将…

基于IP地址的目的地址转换

基本需求 由于来自INTERNET的对政府、企业的网络攻击日益频繁,因此需要对内网中向外网提供访问服务的关键设备进行有效保护。采用目的地址NAT可以有效地将内部网络地址对外隐藏。 图中:公网Internet用户需要通过防火墙访问WEB服务器,为了隐藏…

macOS下Django环境搭建

1. macOS升级pip /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip 2. 卸载Python3.9.5版本 $ sudo rm -rf /usr/local/bin/python3 $ sudo rm -rf /usr/local/bin/pip3 $ sudo rm -rf /Library/Frameworks/Python.framework 3. 安装P…

Redis安装以及配置隧道连接(centOs)

目录 1.centOs安装Redis 2. Redis 启动和停⽌ 3. 操作Redis 2.Xshell配置隧道 1.centOs安装Redis #使⽤yum安装Redis yum -y install redis 2. Redis 启动和停⽌ #查看是否启动 ps -ef|grep redis#启动redis: redis-server /etc/redis.conf &#停⽌Redis redis-cli sh…

【代码随想录-LeetCode第一题】二分查找及实现

LeetCode刷题第一题:704二分查找法 什么是二分查找?题目思路和边界问题 参考 代码随想录 什么是二分查找? 二分查找(Binary Search)是一种在有序数组中查找特定元素的查找算法。它通过将目标值与数组的中间元素进行比…

Teams Room视频会议室方案

需求背景: 适合在40平米的会议室参加Teams视频会议,会议桌周围可以坐20人,要求: 1,操作简单,一键入会Teams Room; 2,任何人带上自己的笔记本电脑,可以分享电脑画面&#…

【TypeScript】初识TypeScript和变量类型介绍

TypeScript 1,TypeScript是什么?2,类型的缺失带来的影响3,Ts搭建环境-本博主有专门的文章专说明这个4,使用tsc对ts文件进行编译5,TS运行初体验简化Ts运行步骤解决方案1解决方案2(常见) 开始学习…

小程序wx:else提示 Bad attr `wx

问题&#xff1a;以下wx:for里的wx:if &#xff0c; wx:else 会报这个错&#xff1a;Bad attr wx <scroll-view class"scroll1" scroll-x enable-flex"true"><view wx:if"{{playlist.length>0}}" class"item" wx:for"…

Vue电商项目--订单和支付

提交订单 没有组件&#xff0c;先搬组件 配置路由 然后静态pay页面就有了 这里提交订单不是简单的直接进行路由的跳转&#xff0c;而且要拿你支付的数据向服务器发请求 提交订单 请求地址 /api/order/auth/submitOrder?tradeNo{tradeNo} 请求方式 POST 参数类型 参数名…

Kubernetes架构和工作流程

目录 一、kubernetes简介 1.k8s的由来 2.为什么用 k8s &#xff1f; 3.k8s主要功能 二、k8s集群架构与组件 1.Master 组件 1.1Kube-apiserver 1.2Kube-controller-manager 1.3Kube-scheduler 2.Node组件 2.1Kubelet 2.2Kube-Proxy 2.3docker 或 rocket 3.配置存储中…

刷题笔记 day8

1004 最大连续1的个数 III 这道题要求将原数组中的0翻转成1&#xff0c;求出最大元素全是1的子数组长度&#xff0c;看这道题第一感觉还要将里面的0变成1&#xff0c;感觉这道题解决起来很麻烦&#xff0c;但是我们可以转变思路&#xff0c;找出其最大子数组&#xff0c;使得子…

K8S系列文章 之 容器存储基础 Volume

Volume Volume是容器数据卷。我们经常创建删除一些容器&#xff0c;但有时候需要保留容器中的一些数据&#xff0c;这时候就用到了Volume。它也是容器之间数据共享的技术&#xff0c;可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人…

FANUC机器人SRVO-105和SRVO-067故障报警原因分析及处理方法

FANUC机器人SRVO-105和SRVO-067故障报警原因分析及处理方法 如下图所示,公司的一台机器人在正常工作时突然报警SRVO-105门打开或紧急停止,同时还有SRVO-067 OHAL2报警(G:1 A:2),按Reset键无法消除报警, 那么遇到这种情况,首先,我们来看一下报警说明书上的解释: 首先…

LeetCode 热题 100 JavaScript--206. 反转链表

/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} head* return {ListNode}*/1、逐个断键&#xff0c;将后一个节点放到前面 …

任务14、无缝衔接,MidJourney瓷砖(Tile)参数制作精良贴图

14.1 任务概述 在这个实验任务中,我们将深入探索《Midjourney Ai绘画》中的Tile技术和其在艺术创作中的具有挑战性的应用。此任务将通过理论学习与实践操作相结合的方式,让参与者更好地理解Tile的核心概念,熟练掌握如何在Midjourney平台上使用Tile参数,并实际运用到AI绘画…

初学者自学python哪本书好,python教程自学全套

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python怎么自学,可以达到什么程度&#xff0c;初学者自学python哪本书好&#xff0c;现在让我们一起来看看吧&#xff01; 前言 Python是一个非常适合自学&#xff0c;0基础的话从入门到精通也只需要花3-4个月PYTHON库“…

边写代码边学习之LSTM

1. 什么是LSTM 长短期记忆网络 LSTM&#xff08;long short-term memory&#xff09;是 RNN 的一种变体&#xff0c;其核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径&#xff0c;让信息能在序列连中传递下去。你可以将其看作网络的“记忆”。理论上讲&a…

Pytorch深度学习-----神经网络之线性层用法

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…