Deformable Convolutional Network的原理与实现

可变形卷积(Deformable Conv)原理解析与torch代码实现 图6为可变形卷积示意图。图1所示为普通卷积在输入特征图上进行卷积计算的过程,卷积核大小为3*3,在输入特征图尺寸为7*7上进行卷积,将卷积核权重与输入特征图对应位置元素相乘并求和得到输出特征图元素,按一定方式滑动窗口就能计算得到整张输出特征图。图6所示,在input feature map上普通卷积操作对应卷积采样区域是一个卷积核大小的正方形(绿框),而可变形卷积对应的卷积采样区域为一些蓝框表示的点,这就是可变形卷积与普通卷积的区别。先来一张图感受一下,图3为标准卷积与可变形卷积的卷积示例。 阅读详情

Deformable Convolutional Network的原理与实现

Deformable Convolutional Network(简称Deform-conv)是微软亚洲研究院(MSRA)2017年的作品,它赋予了CNN位置变换的能力,它与STN(Spatial Transform Network)颇有渊源,或者说是灵感来自于此,但它们有着巨大的差别:

  • STN得到的是全局(global)的变换,也就是说所得的的变换(旋转、缩放等)都是对整幅图片有效的,因而一幅图片只有一个变换。但许多图片是复杂的,有多个目标,不同目标的变换方式不同,一个变换包打天下不成。因而出现了Recurrent STN,由递归产生不同的变换,作用在图中不同的目标。这种思想的效率不高,只能用于简单的情况。
  • Deform-conv则不同,它产生的是稠密的(dense)偏移,每一个输入特征点(Feature_map point)均会得到一个偏移,如图
    这里写图片描述
    这个偏移量,来自一个称为offset network(其实际上是一个convolutional network)的网络输出,该网络输入同一般的CNN,输出的却是基于正规grid的偏移量,如图:
    这里写图片描述
    上图的“卷积操作”就是offset network,它得到的是一个与输入h、w相同的offset field,通过该偏移映射,从源输入特征图(input feature map)抽取点值,从而得到output feature map。由于正规点加偏移得到的位置不一定都是整数,因而需要借助双线性插值来实现样本点的提取。
    在得到output feature map后,后续可以接普通的CNN。以下是一段摘自https://github.com/oeway/pytorch-deform-conv/blob/master/torch_deform_conv/layers.py 的片段:
class Net_Deform(nn.Module):
    def __init__(self):
        super(Net_Deform, self).__init__()
        self.conv1 = nn.Sequential(         # input shape (1, 28, 28)
            ConvOffset2D(filters=1),
            nn.Conv2d(1, 16, 5, 1, 2),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2),
        )
        self.conv2 = nn.Sequential(
            ConvOffset2D(filters=16),
            nn.Conv2d(16, 32, 5, 1, 2),
            nn.ReLU(),
            nn.MaxPool2d(2),
        )
        self.out = nn.Linear(32 * 7 * 7, 10)

    def forward(self, x):
        x = self.conv1(x)
        x = self.conv2(x)
        x = x.view(x.size(0), -1)           # flatten the output of conv2 to (batch_size, 32 * 7 * 7)
        # print(x.size())

        output = self.out(x)
        return output

代码中的ConvOffset2D完成的就是Figure 2所描述的功能。具体实现可以在上述github中找到。可以看到,简单地可以将Deform-conv概括为位移加卷积,位移有另一个CNN网络和双线性插值构成。

从STN网络到deformable convolution 1    STN (Spatial Transformer Network)1.1    来源论文来源:https://arxiv.org/pdf/1506.02025.pdf    参考博客:    1. https://blog.youkuaiyun.com/ly244855983/article/details/80033788(论文解读)    2. https://blog.youkuaiyun.com/xbi... 阅读详情

相关推荐

tf-deformable-conv-layer:可变形卷积层的TensorFlow实现

可变形卷积的TensorFlow实现 这是以下论文的TensorFlow实现: 戴继峰,齐浩志,熊玉文,李毅,张国栋,韩寒,魏一辰。 2017。可变形卷积网络。 arXiv [cs.CV]。 arXiv。 该代码只能在。 旋转训练图 采样地点 基本用法 DeformableConvLayer是自定义的Keras图层,因此您可以像其他任何标准图层(例如Dense , Conv2D一样使用它。 这是一个简单的示例: inputs = tf . zeros ([ 16 , 28 , 28 , 3 ]) model = tf . keras . Sequential () model . add ( DeformableConvLayer ( filters = 6 , kernel_size = 3 , strides = 1 , padding = 'valid' , dilat

docker环境中实现可变卷积(deformable conv)遇到的问题

解决docker环境中实现可变卷积(deformableconv)遇到的问题。

allen_hai的博客 734

DCNv2-master.zip

支持pytorch1.7版本,不用做较大修改即可运行

deformable convolution(可变形卷积)算法解析及代码分析

可变形卷积是指卷积核在每一个元素上额外增加了一个参数方向参数,这样卷积核就能在训练过程中扩展到很大的范围。 可变形卷积的论文为:Deformable Convolutional Networks【1】 而之前google一篇论文对这篇论文有指导意义:Spatial Transformer Networks【2】 论文【1】的github代码地址为https://github.com/feli

mykeylock的博客 2万+

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7238

Debian 12 安装nodejs(包括node、npm、npx、yarn、pnpm、cnpm、bun)

【代码】Debian 12 安装nodejs。

mirana的专栏 8013

理解Deformable Convolution网络

偶然了解到了可形变卷积这篇文章,看了几篇博文后大致了解的差不多了,但是有些细节还是看了代码之后才理解。这里想自己写一下关于这篇论文的了解,希望自己能够讲清楚。这里放一篇写的很好地博文链接,想更深入了解代码的可以去看一下。这里先放一下原文的摘要:卷积神经网络(cnn)由于其构建模块中固定的几何结构,固有地局限于模拟几何变换。在这项工作中,我们引入了两个新的模块来增强cnn的变换建模能力,即形变卷积和形变RoI池。

Orange_sparkle的博客 704

Python开发者必看:5分钟搞定Gemini API的3种调用方式(含代码示例)

本文为Python开发者详细介绍了三种高效调用Gemini API的核心方式:基础同步调用、流式调用和聊天模式,并涵盖多模态应用等高级特性。通过清晰的代码示例和实战场景分析,帮助开发者快速掌握Gemini API的集成与优化,提升AI应用开发效率。

g8f9d0s1a2的博客 1122

Deformable Convolutional Network论文解读

卷积神经网络由于固定的几何结构一直受限于对几何形变的建模,这篇工作引入了两个新模块——deformable convolution和deformable RoI pooling。deformable convolution 和deformable RoI pooling都是基于一个平行网络分支学习offset(偏移),使卷积核在input map的采样点发生偏移,集中于我们感兴趣的区域或目标。同时...

h__ang的博客 1084

①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网

MS-A1-50X1系列作为MODBUS TCP通信的服务器进行动作。可通过MODBUS TCP 通信,将 MS-A1-50X1 系列产品通过 RS485 采集的仪器仪表之类的值作为通信数 据输出到 PLC,上位机等。

2401_89571741的博客 1398

CUPED (Controlled-experiment using Pre-Experiment Data) 论文学习笔记

CUPED是一种用于提升A/B测试灵敏度的方差缩减技术。它通过利用实验前用户行为数据(协变量X)构建调整后的指标Y_cuped=Y-θ(X-E[X]),其中θ=Cov(Y,X)/Var(X)。这种方法能在保持处理效应估计无偏的前提下,将方差降低1-ρ²倍(ρ为前后指标相关性)。CUPED的核心优势在于:不改变平均处理效应的估计,但能显著提升统计功效,使得实验更容易检测到微小但真实的效应,同时减少所需样本量或实验周期。该技术特别适用于用户异质性大、指标方差高的场景。

pursuit的博客 2148

Deformable Convolutional Networks 可变形卷积网络解析

Deformable Convolutional Networks 文章目录Deformable Convolutional Networks1. 什么是可变形卷积?2. 可形变卷积解决了什么问题?3. 可变形卷积的具体实现细节3.1 双线性插值3.2 可变形卷积 Deformable Convolution3.3 可变形的ROI Pooling 1. 什么是可变形卷积? Deformable Convolutional Networks 中提出了一种可以变形的卷积核和池化核,也就是不使用原来的正方形卷积核

python_LC_nohtyp的博客 2583

手把手教你学Simulink——基础储能管理场景实例:基于Simulink的压缩空气储能(CAES)系统简化模型仿真

本文介绍了基于Simulink的压缩空气储能(CAES)系统简化模型仿真方法。CAES作为大规模长时储能方案,相比锂电池具有成本低、寿命长等优势。文章详细讲解了AA-CAES系统组成、热力学建模理论,以及Simulink实现流程,包括储气室、压缩机、膨胀机等核心模块的建模方法。通过8小时充电(50MW)和6小时放电(40MW)的仿真,验证了系统可实现60%往返效率。该模型为理解CAES系统运行机制提供了实用工具,并指出热管理、储气室特性等工程实践要点,为新型电力系统储能规划提供了仿真基础。

MHD0815的博客 171

Deformable Convolutional Networks

1 空洞卷积 1.1 理解空洞卷积 在图像分割领域,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测,之前的pooling操作使得每个pixel预测都能看到较大感受野信息。因此图像分割FCN中有两个关键,一个是pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先

bbbeoy的专栏 1231

AMD机密计算虚拟机介绍

AMD机密计算虚拟机介绍

木简熙的博客 525

Lammps实现结冰匀相成核

Lammps实现结冰匀相成核

Rockyoung 3848

《Deformable Convolutional Network》笔记

Introduction Deformable Convolutional Network 对卷积或池化的核的每个位置增加一个偏移量,与图片在非常规的滑动窗口中进行卷积或池化操作,以有效地对对象的空间形变进行建模。 Deformable Convolution Deformable Convolution 首先通过一个卷积分支计算出卷积核的偏移量offsets。先对input feature ma...

qq_24548569的博客 260

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Deformable Convolution Network

2. Deformable Convolutional Networks 2.1. Deformable Convolution 二维卷积由两个步骤组成,1)在输入特征映射上采用规则网格R采样,2)采样值按w加权求和,网格R定义感受野大小和dilation。 对于输出feature map上的每个位置p0有,pn为R中的位置。 在可变形卷积中,规则网格R用以下偏移集进行增广,其中N=|R|: ...

qq_43152949的博客 303

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Deformable Convlolutional Networks

转载自:https://blog.youkuaiyun.com/u014380165/article/details/84894089 论文:Deformable Convolutional Networks 论文链接:https://arxiv.org/abs/1703.06211 这一篇是ICCV2017关于目标检测的文章,出发点在于图像任务中目标的尺寸、形状变化不一,虽然现有的深度网络对此有一定的...

weixin_41172694的博客 309

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Deformable Convolutional Networks(可变性卷积)

Deformable Convolutional Networks (可变性卷积) 原文链接 GITHUB 大致介绍 作者在文章中提出了两个东西,第一个是可变性卷积,这个卷积结构可以根据物体的现状来改变卷积核,从而实现有针对性的卷积采样。第二个是可变性的ROI的池化层,这个也是利用改变采样形状的思想来完成的。本文的重点是可变性卷积,因为它的适用范围更为广阔。 可变性卷积 首先需要把握一个东西的概念,才能更好地把握重点。 可变性卷积中的可变性指的是卷积核的采样位置是可变性。就好比空洞卷积与普通卷积相比实在每个

qq_26024067的博客 1552

目标检测论文阅读:Deformable Convolutional Networks

这篇论文其实读起来还是比较难懂的,主要是细节部分很需要推敲,尤其是deformable的卷积如何实现的一步上,在写这篇博客之前,我也查阅了很多其他人的分享或者去github找代码,当然也不敢说完全了解了这种特殊的卷积……仅仅做一点自己的阅读心得与体会吧。这是一篇很有意义的工作,但是和深度学习很多论文一样,在读完之后内心也不免有着种种疑云。 Deformable Convolutional Net...

思矣远矣 3188

【AI】可变形卷积Deformable Conv

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

你的每一个关注每一次观看都会支持我越来越好,关注能加快我的更新速度~ 1227

Deformable ConvNet 论文学习笔记

原论文:《J. Dai et al., Deformable Convolutional Networks[C]. 2017 IEEE International Conference on Computer Vision (ICCV), Venice, 2017, pp. 764-773.》 代码:https://github.com/msracver/Deformable-ConvNets ...

Learning 637

Deformable Convolution Networks

Deformable Convolution Networks 论文链接 1.双线性插值原理 由于可形变卷积在获取偏移位置像素点时候,需要用到双线性插值,所以我就把它先放到上面,并附上参考链接: 参考链接 线性插值 线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。也就是连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的办法。 转换为公式计算: 双线性插值 既然单个维度的线性插值误差较大,那么很自然的会想到从多维度的角度去减小误差,这就是双线性插值,其核心思想

m0_47135641的博客 592
下一篇: CUDA on Ubuntu: unsupported GNU version! gcc versions later than 5 are not supported!
田神
博客等级 码龄17年 217粉丝 33原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值