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

一、说明

        由于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.hqwc.cn/news/53961.html

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

相关文章

Kubernetes详细概述

这里写目录标题 一:Kubernetes 概述1、K8S 是什么?2、为什么要用 K8S?2.1.nsenter 是k8s容器抓包工具 3、Kubernetes 集群架构与组件4.核心组件4.1 Master 组件4.1.1.Kube-apiserver4.1.2.Kube-controller-manager4.1.3.Kube-scheduler 4.2 配置存储中心…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前数据吞吐量(C#)

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

一起学算法(栈篇)

1.栈的概念 1.栈的定义 栈是仅限在表尾进行插入和删除的线性表,栈又被称为先进后出的线性表,简称“LIFO” 我们这次用数组作为我们栈的底层数据结构,代码会放到结尾供大家参考使用 2.栈顶的定义 栈是一个线性表,我们允许插入…

网络开发-IO模型

基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 用户进程空间<-->内核空间内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、网络I/O和磁盘…

[FlareOn6]FlareBear

前言 apk的逆向&#xff0c;没有壳&#xff0c;但可能做的不是太多&#xff0c;没能想到整个算法的运作原理 分析 搜索flag会发现存在这么一个函数&#xff0c;那么显示flag的时候应该是熊会跳舞显示flag,只要满足熊happy和ecsstatic就可以&#xff0c;happy只要一直存在点击…

MySQL 重置root 密码

5.7 版本 首先要把服务mysql57 关闭 net stop MySQL57 在安装的mysql57的程序的bin中 运行cmd&#xff08;管理员运行&#xff09; mysqld --defaults-file‘mysql存放数据的位置\my.ini’ --skip-grant-tables 上图 错误 注意&#xff1a;如果遇到mysqld: Can’t change dir…

echarts-pie---------3D曲状环形饼图实现!!!

示例&#xff08;参考此处饼图修改https://www.isqqw.com/viewer?id37497&#xff09; 话不多说直接上代码 此套代码可以直接再echarts官网中的此处运行 let selectedIndex ; let hoveredIndex ; option getPie3D([{name: 数学,value: 60,itemStyle: {color: #1890FF,},},{…

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统 ⭐前言&#x1f31c;Cloud Studio产品介绍1.登录2.创建工作空间3.工作空间界面简介4.环境的使用 ⭐实验实操&#x1f31c;Cloud Studio实现图书管理系统1.实验目的 2. 实验过程2.实验环境3.源码讲解3.1添加数据…

WebRTC 之音视频同步

在网络视频会议中&#xff0c; 我们常会遇到音视频不同步的问题&#xff0c; 我们有一个专有名词 lip-sync 唇同步来描述这类问题&#xff0c;当我们看到人的嘴唇动作与听到的声音对不上的时候&#xff0c;不同步的问题就出现了 而在线会议中&#xff0c; 听见清晰的声音是优先…

EditPlus连接Linux系统远程操作文件

EditPlus是一套功能强大的文本编辑器&#xff01; 1.File ->FTP->FTP Settings&#xff1b; 2.Add->Description->FTP server->Username->Password->Subdirectory->Advanced Options 注意&#xff1a;这里的Subdirectory设置的是以后上传文件的默认…

使用uni-app的uniCloud 云数据库入门:实现一个简单的增删改查

官方云数据库文档 前置步骤使用uni-app新建一个uniCloud项目 [外链图片转存失败,源站可能有防盗官方云数据库文档]!链机制,建议将()https://uniapp.dcloud.net.cn/uniCloud/hellodb.html)] 新建表 这里我加了几个测试字段 createTime、remark、money // 文档教程: https://un…

Qt 6. 其他类调用Ui中的控件

1. 把主类指针this传给其他类&#xff0c;tcpClientSocket new TcpClient(this); //ex2.cpp #include "ex2.h" #include "ui_ex2.h"Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi(this);tcpClientSocket new TcpClient…