Deformable Convolutional Networks论文阅读

2024-04-09 05:04

本文主要是介绍Deformable Convolutional Networks论文阅读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Deformable Convolutional Networks论文阅读

  • Abstract
  • 1. Introduction
  • 2. Deformable Convolutional Networks
    • 2.1. Deformable Convolution
    • 2.2. Deformable RoI Pooling
  • 总结

文章信息:

在这里插入图片描述

原文链接:https://arxiv.org/abs/1703.06211
源代码:https://github.com/msracver/Deformable-ConvNets

Abstract

这项工作介绍了两个新模块,以增强卷积神经网络(CNNs)的变换建模能力,分别是可变形卷积(deformable convolution)和可变形RoI池化(deformable RoI pooling)。这两个模块的基本思想是在模块中增加额外的偏移量,从而增强空间采样位置的变换能力,并从目标任务中学习这些偏移量,无需额外的监督。这些新模块可以直接替换现有CNNs中的普通模块,并且可以通过标准的反向传播方法轻松进行端到端的训练,从而产生可变形卷积网络(deformable convolutional networks)。大量实验证实了我们方法的性能。我们首次展示,在深度CNNs中学习密集空间变换对于复杂的视觉任务,如目标检测和语义分割,是有效的。该代码已发布在https://github.com/msracver/Deformable-ConvNets。

1. Introduction

视觉识别中的一个关键挑战是如何适应对象尺度、姿态、视点和部分变形的几何变化,或者模拟几何变换。一般来说,有两种方法。第一种方法是构建具有足够所需变化的训练数据集。这通常通过对现有数据样本进行增广来实现,例如通过仿射变换。可以从数据中学习到稳健的表示,但通常以昂贵的训练成本和复杂的模型参数为代价。第二种方法是使用具有变换不变性的特征和算法。这一类别涵盖了许多众所周知的技术,例如SIFT(尺度不变特征变换)[42]和基于滑动窗口的对象检测范式。

上述方法存在两个缺点。首先,假设几何变换是固定且已知的。这种先验知识被用来增广数据,并设计特征和算法。这种假设阻止了对具有未知几何变换的新任务的泛化,因为这些未知变换没有得到合适的建模。其次,手工设计不变特征和算法可能会对过于复杂的变换变得困难或不可行,即使这些变换是已知的。

最近,卷积神经网络(CNNs)[35] 在视觉识别任务中取得了显著的成功,例如图像分类[31]、语义分割[41]和目标检测[16]。然而,它们仍然具有上述两个缺点。它们对于建模几何变换的能力主要来自于大量的数据增强、大模型容量以及一些简单的手工设计模块(例如,用于小平移不变性的最大池化[1])。

简而言之,卷积神经网络(CNNs)固有地受限于对大型、未知变换的建模能力。这种限制源于CNN模块的固定几何结构:卷积单元在固定位置对输入特征图进行采样;池化层以固定比例减少空间分辨率;RoI(感兴趣区域)池化层将感兴趣区域分割成固定的空间区域,等等。缺乏内部机制来处理几何变换。这导致了明显的问题。举一个例子,同一CNN层中所有激活单元的感受野大小都相同。这对于编码空间位置上的语义的高级CNN层来说是不可取的。因为不同位置可能对应着具有不同尺度或变形的对象,因此在需要进行精细定位的视觉识别中,例如使用全卷积网络进行语义分割[41],适应性地确定尺度或感受野大小是可取的。举另一个例子,尽管目标检测最近取得了显著而迅速的进展[16, 52, 15, 47, 46, 40, 7],但所有方法仍然依赖于基于原始边界框的特征提取。这显然是次优的,尤其是对于非刚性对象。

在这项工作中,我们引入了两个新模块,大大增强了CNNs对建模几何变换的能力。
第一个是可变形卷积。它在标准卷积中的常规网格采样位置上添加了2D偏移量。这样可以自由地对采样网格进行形变。如图1所示。这些偏移量是通过额外的卷积层从前面的特征图中学习到的。因此,变形是根据输入特征以局部、密集和自适应的方式进行条件化的。

第二个模块是可变形RoI池化。它在前一个RoI池化[15, 7]的常规bin分区中为每个bin位置添加了一个偏移量。类似地,这些偏移量是通过前面的特征图和RoIs学习到的,从而实现了对具有不同形状的对象进行自适应的部分定位。

这两个模块都是轻量级的。它们只添加了少量的参数和计算用于偏移量的学习。它们可以轻松地替换深度CNNs中的普通模块,并且可以通过标准的反向传播方法进行端到端的训练。由此产生的CNNs被称为可变形卷积网络,或称为可变形ConvNets。

我们的方法与空间变换网络[26]和可变形部件模型[11]在高层次上有类似的精神。它们都具有内部的变换参数,并且纯粹从数据中学习这些参数。可变形ConvNets的一个关键区别在于,它们以简单、高效、深度和端到端的方式处理密集空间变换。在第3.1节中,我们详细讨论了我们的工作与之前工作的关系,并分析了可变形ConvNets的优越性。

2. Deformable Convolutional Networks

CNNs中的特征图和卷积是3D的。可变形卷积和RoI池化模块都在2D空间域上操作。在通道维度上,操作保持不变。为了符号清晰,这里对模块进行了2D描述,但可以轻松地扩展到3D。

2.1. Deformable Convolution

2D卷积由两个步骤组成:
1)使用规则网格 R \mathcal{R} R在输入特征图 x x x上进行采样;
2)对采样值按权重 w w w进行求和。网格 R \mathcal{R} R定义了感受野大小和膨胀率。例如,
在这里插入图片描述

定义了一个具有膨胀率为1的3 × 3内核。

对于输出特征图 y y y上的每个位置 p 0 p_0 p0,我们有
在这里插入图片描述
其中 p n p_n pn枚举 R \mathcal{R} R中的位置。

在可变形卷积中,常规网格 R \mathcal{R} R被增加了偏移量 { Δ p n ∣ n = 1 , . . . , N } \{\Delta\mathbf{p}_n|n=1,...,N\} {Δpnn=1,...,N},其中 N = ∣ R ∣ N=|\mathcal{R}| N=R。方程(1)变为

在这里插入图片描述
现在,采样是在不规则和偏移位置 p n + Δ p n \mathbf{p}_n+\Delta\mathbf{p}_n pn+Δpn上进行的。由于偏移 Δ p n \Delta\mathbf{p}_n Δpn通常是分数,因此方程(2)是通过双线性插值来实现的,如下所示:
在这里插入图片描述
其中,p表示任意(分数)位置(对于方程(2),p = p 0 + p n + Δ p n \mathbf{p}_0+\mathbf{p}_n+\Delta\mathbf{p}_n p0+pn+Δpn),q枚举特征图x中的所有整数空间位置,而 G ( ⋅ , ⋅ ) G(\cdot,\cdot) G(,)是双线性插值核函数。请注意, G G G是二维的。它被分解为两个一维核函数,如下所示:
在这里插入图片描述
其中  g ( a , b ) = max ⁡ ( 0 , 1 − ∣ a − b ∣ ) 。 方程  ( 3 ) 的计算速度 较快,因为只有少数 q s 的 G ( q , p ) 非零。 \begin{aligned}&\mathrm{其中~}g(a,b) = \max(0,1 - |a - b|)。 \mathrm{方程~(3)~的计算速度}\\&\mathrm{较快,因为只有少数\mathbf{qs}的}G(\mathbf{q},\mathbf{p})\mathrm{非零。}\end{aligned} 其中 g(a,b)=max(0,1ab)方程 (3) 的计算速度较快,因为只有少数qsG(q,p)非零。

如图2所示,偏移量是通过对同一输入特征图应用卷积层获得的。卷积核的空间分辨率和膨胀率与当前卷积层相同(例如,图2中也是3×3膨胀率为1的卷积核)。输出偏移场具有与输入特征图相同的空间分辨率。通道维度2N对应于N个二维偏移量。在训练期间,用于生成输出特征和偏移量的卷积核都同时进行学习。为了学习偏移量,梯度通过方程(3)和方程(4)中的双线性操作进行反向传播。详情请参见附录A。
在这里插入图片描述

2.2. Deformable RoI Pooling

RoI池化在所有基于区域提议的目标检测方法中都被使用[16, 15, 47, 7]。它将任意大小的输入矩形区域转换为固定大小的特征。
RoI池化[15]:给定输入特征图 x x x和大小为 w × h w\times h w×h且左上角为 p 0 p_0 p0的RoI,RoI池化将RoI划分为 k × k k\times k k×k k k k是一个自由参数)个bin,并输出一个 k × k k\times k k×k的特征图 y y y。对于第 ( i , j ) (i, j) (i,j)个bin( 0 ≤ i , j < k 0 \leq i, j < k 0i,j<k),我们有
在这里插入图片描述
其中  n i j 是该bin中像素的数量。第 ( i , j ) -个 bin跨越的范围为  ⌊ i w k ⌋ ≤ p x < ⌈ ( i + 1 ) w k ⌉ 和  ⌊ j h k ⌋ ≤ p y < ⌈ ( j + 1 ) h k ⌉ 。 \begin{aligned}&\text{其中 }n_{ij}\text{ 是该bin中像素的数量。第}(i,j)\text{-个}\\&\text{bin跨越的范围为 }\lfloor i\frac wk\rfloor \leq p_x < \lceil(i + 1)\frac wk\rceil\text{ 和 }\lfloor j\frac hk\rfloor \leq p_y <\\&\lceil(j+1)\frac hk\rceil。\end{aligned} 其中 nij 是该bin中像素的数量。第(i,j)-bin跨越的范围为 ikwpx<⌈(i+1)kw  jkhpy<⌈(j+1)kh

类似于方程(2),在可变形RoI池化中,将偏移量 { Δ p i j ∣ 0 ≤ i , j < k } \{\Delta\mathbf{p}_{ij}|0\leq i,j<k\} {Δpij∣0i,j<k}添加到空间分bin的位置上。方程(5)变为:
在这里插入图片描述

通常, Δ p i j \Delta\mathbf{p}_{ij} Δpij是分数。方程(6)通过方程(3)和(4)通过双线性插值来实现。

3 \color{red}{3} 3说明了如何获取偏移量。首先,RoI池化(方程(5))生成池化的特征图。从这些特征图中,一个全连接层生成了归一化的偏移量 Δ p ^ i j \Delta\widehat{\mathbf{p}}_{ij} Δp ij,然后通过逐元素乘积与RoI的宽度和高度,将其转换为方程(6)中的偏移量 Δ p i j \Delta\mathbf{p}_{ij} Δpij,即 Δ p i j = γ ⋅ Δ p ^ i j ∘ ( w , h ) \Delta\mathbf{p}_{ij}=\gamma\cdot\Delta\widehat{\mathbf{p}}_{ij}\circ(w,h) Δpij=γΔp ij(w,h)。这里 γ \gamma γ是一个预定义的标量,用于调节偏移量的大小。经验上设定 γ = 0.1 \gamma=0.1 γ=0.1。偏移量的归一化是必要的,以使偏移量学习对RoI大小不变。全连接层通过反向传播进行学习,详细内容请参见附录A。

在这里插入图片描述

位置敏感(PS)RoI池化[7]是完全卷积的,与RoI池化不同。通过一个卷积层,所有输入特征图首先被转换为每个对象类别(总共 C + 1 C+1 C+1个,其中 C C C个是对象类别)的 k 2 k^2 k2个得分图,如图 4 \color{red}{4} 4底部分支所示。不需要区分类别,这些得分图被表示为 { x i , j } \{\mathbf{x}_{i,j}\} {xi,j},其中 ( i , j ) (i,j) (i,j)枚举所有的bin。在这些得分图上进行池化。 ( i , j ) (i,j) (i,j)-th bin的输出值通过从对应于该bin的一个得分图 x i , j \mathbf{x}_{i,j} xi,j中进行求和而获得。简而言之,与方程(5)中的RoI池化的不同之处在于,通用特征图 x x x被替换为特定的位置敏感得分图 x i , j \mathbf{x}_{i,j} xi,j

在可变形PS RoI池化中,方程(6)中唯一的改变是 x x x也被修改为 x i , j \mathrm{x}_{i,j} xi,j。然而,偏移量的学习是不同的。它遵循[7]中的“完全卷积”精神,如图 4 \color{red}{4} 4所示。在顶部分支中,一个卷积层生成全空间分辨率的偏移场。对于每个RoI(也是每个类别),PS RoI池化被应用在这些字段上以获得 n o r m a l i z e d normalized normalized偏移量 Δ p ^ i j \Delta\widehat{\mathbf{p}}_{ij} Δp ij,然后将它们以与上述描述的可变形RoI池化相同的方式转换为真实的偏移量 Δ p i j \Delta\mathbf{p}_{ij} Δpij

在这里插入图片描述

总结

在这里插入图片描述

卷积不是固定的,由上图可知,每个点的感受范围不再是一个正方形的3x3的范围,而是“不规则”的卷积,当然,这个不规则是通过训练而学习得到的,在原来的基础上学习到了偏移量,就使卷积变成可形变的卷积了。

这篇关于Deformable Convolutional Networks论文阅读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887240

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

【阅读文献】一个使用大语言模型的端到端语音概要

摘要 ssum框架(Speech Summarization)为了 从说话人的语音提出对应的文本二题出。 ssum面临的挑战: 控制长语音的输入捕捉 the intricate cross-mdoel mapping 在长语音输入和短文本之间。 ssum端到端模型框架 使用 Q-Former 作为 语音和文本的中介连接 ,并且使用LLMs去从语音特征正确地产生文本。 采取 multi-st