用于大型图像模型的 CNN 内核的最新内容

news2024/12/23 19:02:19

一、说明

        由于OpenAI的ChatGPT的巨大成功引发了大语言模型的繁荣,许多人预见到大图像模型的下一个突破。在这个领域,可以提示视觉模型分析甚至生成图像和视频,其方式类似于我们目前提示 ChatGPT 的方式。

        用于大型图像模型的最新深度学习方法已经分支到两个主要方向:基于卷积神经网络(CNN)的方法和基于变压器的方法。本文将重点介绍 CNN 端,并提供这些改进的 CNN 内核结构的高级概述。

二. 可变形卷积网络 (DCN)

2.1 关于感受野

        传统上,CNN内核已应用于每层中的固定位置,导致所有激活单元具有相同的感受野。

        如下图所示,要对输入特征映射 x 执行卷积,每个输出位置 p0 的值计算为核权重 w 和 x 上的滑动窗口之间的逐元素乘法和求和。 滑动窗口由网格 R 定义,它也是 p0 的感受野。 R 的大小在同一 y 层内的所有位置上保持不变。

使用 3x3 内核进行常规卷积操作。

每个输出值的计算方法如下:

从纸张开始的常规卷积操作函数。

其中 pn 枚举滑动窗口(网格 R)中的位置。

RoI(感兴趣区域)池化操作也在每层中具有固定大小的箱上运行。对于包含 nij 像素的 (i, j)-th bin,其池化结果计算如下:

来自纸张的常规平均 RoI 池函数。

同样,每层箱的形状和大小都相同。

使用 3x3 箱的常规平均 RoI 池操作。

因此,对于编码语义的高级层(例如,具有不同比例的对象)来说,这两种操作都变得特别成问题。

DCN提出了可变形卷积和可变形池化,它们更灵活地对这些几何结构进行建模。两者都在 2D 空间域上运行,即在整个通道维度上的操作保持不变。

2.2 可变形卷积

具有 3x3 内核的可变形卷积操作。

给定输入特征映射 x,对于输出特征映射 y 中的每个位置 p 0,DCN 在枚举常规网格 R 中的每个位置 p n 时添加 2D 偏移量 △pn

的可变形卷积函数。

这些偏移是从前面的特征图中学习的,通过特征图上的附加卷积层获得。由于这些偏移通常是分数,因此它们通过双线性插值实现。

2.3 可变形的投资回报池

        与卷积操作类似,池化偏移量 △pij 被添加到原始分档位置。

      论文 可变形RoI池化功能。

      如下图所示,这些偏移是在原始池化结果之后通过全连接 (FC) 层学习的。

 可变形平均 RoI 池化操作,带 3x3 箱。

2.4 可变形位置感知 (PS) 投资回报率池化

        如下图所示,当将可变形操作应用于PS RoI池化(Dai等人,n.d.)时,偏移量应用于每个分数图而不是输入特征图。这些偏移是通过卷积层而不是 FC 层学习的。

        位置敏感 RoI 池化(Dai 等人,N.D.):传统的 RoI 池化会丢失有关每个区域代表哪个对象部分的信息。PS RoI池化通过将输入特征图转换为每个对象类的k²分数图来保留此信息,其中每个得分图代表一个特定的空间部分。因此,对于 C 对象类,存在总 k² (C+1) 分数图。

3x3 可变形 PS RoI 池化图示 |来源于纸张

三、 DCNv2

        尽管DCN允许对感受野进行更灵活的建模,但它假设每个感受野内的像素对响应的贡献相等,但事实往往并非如此。为了更好地理解贡献行为,作者使用三种方法来可视化空间支持:

  1. 有效感受野:节点响应相对于每个图像像素的强度扰动的梯度
  2. 有效采样/箱位置:网络节点相对于采样/箱位置的梯度
  3. 误差边界显著区域:逐步屏蔽图像的各个部分,以找到产生与整个图像相同的响应的最小图像区域

        为了将可学习的特征幅度分配给感受野内的位置,DCNv2引入了调制的可变形模块:

          DCNv2卷积函数来自纸张,修改符号以匹配DCN论文中的符号。

        对于位置 p0,偏移量 △pn 及其振幅 △m可通过应用于同一输入特征图的单独卷积层来学习。

        DCNv2 通过为每个 (i,j) 个箱添加可学习幅度 △mij 来类似地修改可变形 RoI 池。

        DCNv2 从论文文章汇集功能,修改符号以匹配 DCN 纸张中的符号。

        DCNv2 还扩展了可变形卷积层的使用,以取代 ResNet-3 中 conv5 中的常规卷积层到 conv50 阶段。

四、 DCNv3

        为了降低DCNv2的参数大小和内存复杂度,DCNv3对内核结构进行了以下调整。

  1. 灵感来自深度可分卷积(Chollet,2017)

        深度可分离卷积将传统卷积解耦为:1.深度卷积:输入特征的每个通道分别用滤波器卷积;2. 逐点卷积:跨通道应用的 1x1 卷积。

        作者建议将特征振幅m作为深度部分,并将格网中位置之间共享的投影权重w作为逐点部分。

        2. 受群卷积启发(Krizhevsky, Sutskever and Hinton, 2012)

        组卷积:将输入通道和输出通道拆分为组,并对每个组应用单独的卷积。

DCNv3(Wang 等人,2023 年)建议将卷积分成 G 组,每个组具有单独的偏移量 △p gn 和特征振幅 △mgn

        因此,DCNv3的表述为:

        DCNv3卷积函数来自纸张,修改符号以匹配DCN论文中的符号。

        其中 G 是卷积群的总数,wg 是位置无关紧要的,△mgn 由 softmax 函数归一化,因此网格 R 上的和为 1。

五、性能

        到目前为止,基于 DCNv3 的 InternImage 在检测和分割等多个下游任务中表现出卓越的性能,如下表所示,以及带有代码的论文的排行榜。有关更详细的比较,请参阅原始论文。

COCO val2017 上的对象检测和实例分段性能。FLOP 使用 1280×800 个输入进行测量。AP' 和 AP' 分别表示框 AP 和掩码 AP。“MS”是指多尺度培训。来源于纸张

来自 paperswithcode.com 的对象检测的排行榜屏幕截图。

paperswithcode.com 语义分割的排行榜屏幕截图。

六、总结

        在本文中,我们回顾了常规卷积网络的核结构,以及它们的最新改进,包括可变形卷积网络(DCN)和两个较新版本:DCNv2和DCNv3。我们讨论了传统结构的局限性,并强调了基于先前版本的创新进步。要更深入地了解这些模型,请参阅参考文献部分中的论文。

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

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

相关文章

Pytohn将matplotlib嵌入到tkinter中

文章目录 matplotlib窗口组成tkinter布局嵌入图像 matplotlib窗口组成 tkinter是Python标准库中自带的GUI工具,使用十分方便,如能将matplotlib嵌入到tkinter中,就可以做出相对专业的数据展示系统,很有竞争力。 在具体实现之前&a…

FTP使用教程

FTP使用教程 目录 一.FTP简介二.FTP搭建三.FTP使用 一.FTP简介 FTP中文为文件传输协议,简称为文传协议。它也是一个应用程序,不同的操作系统有不同的FTP应用程序,这些应用程序都遵守同一种协议以…

六寸相纸打印拼图 - opencv

准备自己打印一些照片,三寸相纸性价比低,只好买六寸来拼四张然后裁剪,不过并没有搜到提供了这个功能的工具,想想代码应该很简单,所以就造轮子了。可能其实有但是我没搜到。 轮子在这里: https://github.co…

ArraySetter

简介​ 用来展示属性类型为数组的 setter 展示​ 配置示例​ "setter": {"componentName": "ArraySetter","props": {"itemSetter": {"componentName": "ObjectSetter","props": {"c…

React 论文《ReAct: Synergizing Reasoning and Acting in Language Models》阅读笔记

文章目录 1. 简介论文摘要翻译动机和主要贡献 2. REACT : SYNERGIZING *RE*ASONING *ACT*ING3. KNOWLEDGE-INTENSIVE REASONING TASKS3.1 设置3.2 方法3.3 结果和观察 4. 决策任务5. 参考资料 1. 简介 论文摘要翻译 虽然大型语言模型(LLM)在自然语言理…

医疗实施-集成平台下门诊就诊流程详解

目录 集成平台下门诊就诊流程详解1.患者建档2. 门诊挂号3. 医生就诊4.处方开立5.费用收取、6、科室执行医嘱集成平台下门诊就诊流程详解 这篇文章是考虑医院使用了集成平台之后,门诊就诊流程详解。与我的文章《医疗实施-门诊就诊流程详解》的大致一样,供学有余力的人阅读。 …

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官 ReentrantLock是什么,有什么作用ReentrantLock的使用ReentrantLock源码解析ReentrantLock#lock方法FairSync#tryAcquire方法NonfairSync#tryAcquire方法 Reentrant…

SpringBoot笔记:SpringBoot 集成 Dataway

文章目录 1、什么是 Dataway?2、主打场景3、技术架构4、整合SpringBoot4.1、maven 依赖4.2、初始化脚本4.3、整合 SpringBoot 5、Dataway 接口管理6、Mybatis 语法支持7、小结 1、什么是 Dataway? 官网地址:https://www.hasor.net/docs/guides/quickstart Da…

连通块是什么

刷题的时候遇到一个名词概念,连通块是什么? 在图论中,无向图中的连通块(也叫作连通分量)是指原图的一个子图(即该子图只包含原图中的部分或全部顶点及边),该子图任意两个顶点都能通…

Swift 环境搭建

Swift是一门开源的编程语言,该语言用于开发OS X和iOS应用程序。 在正式开发应用程序前,我们需要搭建Swift开发环境,以便更好友好的使用各种开发工具和语言进行快速应用开发。由于Swift开发环境需要在OS X系统中运行,因此其环境的…

智能指针shared_ptr:自定义删除器

重点&#xff1a; 1.普通指针转化成智能指针。 2.智能指针创建的时候&#xff0c;第二个参数是自定义删除器&#xff0c;默认情况下&#xff0c;shared_ptr调用delete()函数。 class A { public:void Get() { cout << b << endl; }; private:int b{ 10 }; };clas…

Java 与其他编程语言:比较分析

Java 擅长可移植性和可靠性&#xff0c;Python 擅长通用性和简单性&#xff0c;JavaScript 擅长 Web 开发&#xff0c;C 擅长性能&#xff0c;Go 擅长效率。 在广阔的软件开发世界中&#xff0c;选择正确的编程语言对于任何项目的成功都至关重要。Java 是一种以其多功能性和可移…

交换机Vlan实验

介绍 Vlan表示虚拟局域网。 常见的网络安全技术 VlanACL Vlan的作用 Vlan隔离了广播域&#xff0c;增加了网络的安全性。 知识点 默认vlan vlan1 是默认vlan&#xff0c;主要机器开机了&#xff0c;默认所有的接口都属于Vlan1 交换机的接口模式 Access : 这个模式用来…

RK3588平台开发系列讲解(文件系统篇)什么是 VFS

文章目录 一、什么是 VFS二、VFS 数据结构2.1、超级块结构2.2、目录结构2.3、文件索引结点2.4、打开的文件2.5、四大对象结构的关系沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 今天我们一起来瞧一瞧 Linux 是如何管理文件,也验证一下 Linux 那句口号:一切皆为文…

卡尔曼滤波 | Matlab实现无迹kalman滤波仿真

文章目录 效果一览文章概述研究内容程序设计参考资料效果一览 文章概述 卡尔曼滤波 | Matlab实现无迹kalman滤波仿真 研究内容 无迹kalman滤波(UKF)不是采用的将非线性函数线性化的做法。无迹kalman仍然采用的是线性kalman滤波的架构,对于一步预测方程,使用无迹变换(UT)来…

Baumer工业相机堡盟工业相机如何通过BGAPISDK获取相机接口数据吞吐量(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取数…

【技能实训】DMS数据挖掘项目(完整程序)

文章目录 1. 系统需求分析1.1 需求概述1.2 需求说明 2. 系统总体设计2.1 编写目的2.2 总体设计2.2.1 功能划分2.2.2 数据库及表2.2.3 主要业务流程 3. 详细设计与实现3.1 表设计3.2 数据库访问工具类设计3.3 配置文件3.4 实体类及设计3.5 业务类及设计3.6 异常处理3.7 界面设计…

优雅记录与保留:探秘Spring Boot与Logback的高级日志输出与存储

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; 优雅记录与保留&#xff1a;探秘Spring Boot与Logback的高级日志输出与…

Java中运算符要注意的一些点

目录 1. 算术运算符 1. 1 基本四则运算符&#xff1a;加减乘除模( - * / %) 1.2. 增量运算符 - * % 2. 关系运算符 3. 逻辑运算符 3.1. 逻辑与 && 3.2. 逻辑 || 3.3. 逻辑非 ! 3.4. 短路求值 4. 位运算符 4.1. 按位与 &: 如果两个二进制位都是 …

WebGL: 几个入门小例子

本文罗列几个WebGL入门例子&#xff0c;用于帮助WebGL学习。 一、概述 WebGL (Web Graphics Library)是一组基于Open ES、在Web内渲染3D图形的Javascript APIs。 Ref. from Khronos Group: WebGL WebGL™ is a cross-platform, royalty-free open web standard for a low-lev…