【AI】可变形卷积Deformable Conv

news2024/11/24 9:19:36

卷积对大家来说并不陌生了,这里主要描述Deformable Conv。其在论文中也是常见的一个术语,Deformable Convolutional Networks(DCN) 还可以细分成可变形卷积、对候选区域的池化等。

传统卷积操作

将特征图分成一个个与卷积核大小相同的部分,然后进行卷积操作,每部分在特征图上的位置都是固定的。但对形变比较复杂的物体,使用这种卷积的效果就可能不太好。
对于传统卷积,可提升效果的方法有丰富数据集、数据增强、人工设计特征和算法等。但过多的数据又会造成收敛慢或需要更复杂的网络结构。

Deformable Convolutional Networks(DCN)

对于复杂形变场景,可用Deformable Conv可变形卷积来解决。Deformable Conv 在感受野中引入了偏移量(可变形卷积则在传统卷积基础上为每个点引入了一个偏移量,偏移量是由输入特征图与另一个卷积生成的,通常是小数。),而且这偏移量是可学习的,使得感受野不再是死板的方形,而是与物体的实际形状贴近,无论物体如何形变之后的卷积区域便始终覆盖在物体形状周围,实现移动、缩放尺寸、旋转等。
如图所示,(a)图为传统卷积操作,(b)©(d)均将原先的各点施加一个offset,使感受野形状改变。
在这里插入图片描述
由于加入偏移量后的位置非整数,并不对应feature map上实际存在的像素点,因此需要使用插值来得到偏移后的像素值,通常可采用双线性插值。
在这里插入图片描述
图中绿色过程为卷积学习偏移的过程,其中offset field的通道大小为2N,表示卷积核分别学习x方向与y方向的偏移量。
在input feature map上普通卷积操作对应卷积采样区域是一个卷积核大小的正方形(绿框),而可变形卷积对应的卷积采样区域为一些蓝框表示的点,这就是可变形卷积与普通卷积的区别。

一个output feature map上的点对应到input feature map上的卷积采样区域大小为KK,按照可变形卷积的操作,这KK区域的每一个卷积采样点都要学习一个偏离量offset,而offset是用坐标表示的,所以一个output要学习2KK个参数。
假设一个output大小为HW,所以一共要学习2KKHW个参数。即上图的offset field(N=KK),其维度为B2KKHW,其中B代表batch_size;
假设input feature map的维度为B
CHW,一个batch内的特征图(一共C个)共用一个offset field,即一个batch内的每张特征图用到的偏移量是一样的;
可变形卷积不改变input feature map的尺寸,所以output feature map也为H x W;

参考公式

传统卷积在这里插入图片描述
其中,p_{n}代表卷积核中每一个点相对于中心点的偏移量,p_{0}是输入特征图上任意一点,x(p_{0}+p_{n})表示输入特征图上p_{0}+p_{n}位置处的元素值


DCN在这里插入图片描述
即输出特征图上每点(对应卷积核中心)加上其对应卷积核每个位置的相对(横、纵)坐标后再加上自学习的(横、纵坐标)偏移量。


双线性插值在这里插入图片描述
将插值点位置的像素值设为其4领域像素点的加权和,领域4个点是离其最近的在特征图上实际存在的像素点,每个点的权重则根据它与插值点横、纵坐标的距离来设置,公式最后一行的max(0, 1-…)就是限制了插值点与领域点不会超过1个像素的距离。
下图表示了如何通过p12,p22,p11,p21的加权来计算出p的像素值pixel
在这里插入图片描述

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

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

相关文章

k8s—部署dashboard可视化界面

1、下载recommended.yaml配置文件 1)根据自己安装的kubernetes版本安装适配的dashboard 我安装的kubernetes是1.24.2版本的,需要安装v:2.6.1版本的dashboard 2)下载地址:https://raw.githubusercontent.com/kubernetes/dashboa…

【机器学习】神经网络的无限可能:从基础到前沿

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 引言 在当今人工智能的浪潮中,神经网络作为其核心驱动力之一,正以前所未有的速度改变着我们的世界。从图像识别到自然语言处理,从自动驾驶到医疗诊断,神经网络的…

electron 配置、打包 -报错解决

目录 一、配置途中遇到的问题: 二、 make 配置好后开始打包 三、Electron-builder 打包报错 一、配置途中遇到的问题: 1. 安装 yarn add electron -D 一直卡在这里失败 一直卡可以使用下面这个,然后再重新装依赖 1. 采用新的镜像地址 npm …

proteus仿真c51单片机(二)中断控制流水灯(电路设计及代码)

实验要求 8路流水灯,K1和K2都未按下时,主程序执行LED流水灯程序,K1按下时,左右4只LED交替闪烁,K2按下时8只LED全部闪烁4次,设置外部中断1为高优先级。 实验步骤 1、打开PROTEUS软件选取元件&#xff0c…

未授权访问漏洞(重点版─=≡Σ(((つ•̀ω•́)つ)

1.* Redis 搭建靶场环境: 进入目录:cd/vulhub-master/redis/4-unacc 启动:docker-compose up-d 检查:docker-compose ps vi docker-compose.yml //查看端口和版本号 安装redis工具 在kali上安装redis进行服务链接 #安装redis apt-get install redis #redi…

GD 32 IIC 驱动代码

前言: 学会IIC驱动的原理,时序和代码实现 1.0 GPIO初始化 从原理图中可以看出IIC对应的时钟线和数据线在PB端口,因此需要初始化GPIOB的时钟,同时初始化GPIOB_PIN_6 | 7,的引脚,设置为开漏输出模式。 什么事开漏&…

构建二叉树并后序遍历

题目来源&#xff1a;牛客网清华考研oj题 http://www.nowcoder.com/questionTerminal/4b91205483694f449f94c179883c1fef 题目&#xff1a;如下图 答案&#xff1a;如下图 #include<stdio.h> #include<stdlib.h>typedef struct TreeNode{char val;struct TreeNod…

java之IO篇高级流——缓冲流、转化流、序列化流、打印流、压缩流

前言 上一篇IO流就介绍了File和基本流&#xff0c;这节介绍好用的高级流。 还有IO流的心得&#xff1a;随用随创建&#xff0c;什么时候不用什么时候关闭 目录 前言 一、缓冲流 1.体系图 2.字节缓冲流 &#xff08;1&#xff09;用法 &#xff08;2&#xff09;底层原理 …

JavaSE之常用API(前一部分)

一、String 1.1 是什么 String字符串类,底层就是一个字符数组,所以字符串很多特性就是数组的特征 1 字符串一旦创建,不能修改 2 为了提高字符串的访问效率,Java提供了一种缓存技术,字符串常量池 3 如果是用" " 就不会再堆内存创建对象,而是直接再常量池进行搜索,如果…

Java反序列化漏洞实战:原理剖析与复现步骤

文章目录 java反序列化概念数据示例Ysoserial工具使用概念原生态api第三方组件概念复现 反序列化示例靶场过程 在现代应用程序开发中&#xff0c;Java反序列化漏洞已成为一个备受关注的安全问题。反序列化是Java中用于将字节流转换回对象的过程&#xff0c;但如果没有妥善处理&…

搭建PXE实现服务器自动部署

PXE&#xff08;Preboot Execution Environment&#xff09;是一种计算机启动技术&#xff0c;它允许计算机从网络上的服务器而不是从本地硬盘或光盘等存储介质上启动。这种技术主要应用在无盘工作站、网络安装操作系统、远程维护等方面。 环境&#xff1a;一台rhel7.9作为PXE…

Java学习十五—异常处理

一、关于异常 1.1 简介 在Java中&#xff0c;异常&#xff08;Exception&#xff09;是指程序执行过程中可能遇到的意外或错误情况。 Java异常处理是Java语言中一个重要的机制&#xff0c;用于处理程序运行时发生的异常情况。 ​​ 1.2 分类 Java异常分为两大类&#xff1…

STM32 驱动直流无刷电机(BLDC)发声

STM32驱动直流无刷电机(BLDC)发声 ✨需要注意&#xff0c;这是驱动直流无刷电机(BLDC)发出声音&#xff0c;不是直接驱动无刷电机转动。 &#x1f4cd;内容移植参考&#xff1a;ttps://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware&#x1f4cd;Arduino平台BLDC Music开…

小程序开发入门:第一天的学习和实践指南

目录 一. 理解小程序的基本概念 1. 无需安装 2. 快速启动 3. 界面简洁 4. 独立性和封闭性 5. 数据安全 6. 框架结构 7. 生命周期 8. 全局配置 9. API支持 10. 发布和更新 二、选择合适的开发工具 1. 微信开发者工具 2. Visual Studio Code 3. Sublime Text 4. …

荣耀手机怎么录屏?荣耀手机录屏功能全解析

荣耀手机作为一款受欢迎的智能手机品牌&#xff0c;拥有丰富的功能和实用的工具&#xff0c;其中包括强大的录屏功能。然而&#xff0c;对于一些荣耀手机用户来说&#xff0c;如何利用这一功能可能会感到困惑。 在数字化时代&#xff0c;录制屏幕上的内容已成为许多用户分享、…

AOE网及其求解关键路径

全称 Activity on Edge Network 边活动网 特点 仅存在 有向无环图 作用 用于记录完成整个工程至少花费的时间 > 哪条路径最耗时&#xff1f;也就是“ 关键路径 ” AOE网元素介绍 关键活动 关键路径上的活动称为关键活动 &#xff0c; 关键活动是不允许拖延的&#x…

ctfshow-web入门-sql注入(web186-web190)

目录 1、web186 2、web187 3、web188 4、web189 5、web190 1、web186 新增过滤 \%|\<|\>|\^ 采用 regexp 正则表达式的方法来匹配&#xff0c;payload&#xff1a; ^ 表示匹配开头&#xff0c;也就是说我们猜测 flag 的第一个字符是 c tableNamectfshow_user gro…

sql注入——环境搭建以及sqli-labs闯关

1.简介 本文将详细介绍如何在Windows系统中使用PHPStudy搭建SQLi-Labs环境&#xff0c;在刚学习SQL注入的时候&#xff0c;都需要拥有一个能SQL注入的网站。因此我们一般都是在本地搭建一个能SQL注入测试的网站&#xff0c;而SQLi-Labs是一个精心设计的SQL注入学习平台。 2. …

无心剑七律《悼李政道先生》

七律悼李政道先生 苏州才俊志凌云&#xff0c;联大求知岁月勤 异域扬名赢诺奖&#xff0c;前沿探秘破迷群 基金倡导根基固&#xff0c;学子栽培事业殷 科教倾心功绩著&#xff0c;英名不朽铸奇文 2024年8月5日 平水韵十二文平韵 这首诗是一首悼念李政道先生的七律&#xff0c;无…

【隐私计算篇】混淆电路之深入浅出

入门隐私计算的阶段&#xff0c;一般都会涉及对于混淆电路的学习&#xff0c;这是因为混淆电路是多方安全计算中的基础密码原语&#xff0c;也是隐私保护中重要的技术。为了帮助更好地理解混淆电路的原理&#xff0c;今天对其进行原理以及相关优化手段进行解析和分享。 1. 混淆…