论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)

简介: 论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)

paper:Deformable Convolutional Networks


摘要:

卷积神经网络由于其构建模块中固定的几何结构,本质上受限于模型几何变换。为了提高卷积神经网络的转换建模能力,作者提出了两个模块:可变形卷积(deformable convolution)和可变形RoI池(deformable RoI pooling)。这两个模块均基于用额外的偏移来增加模块中的空间采样位置以及从目标任务中学习偏移的思想,而不需要额外的监督。


第一次证明了在深度神经网络中学习密集空间变换(dense spatial transformation)对于复杂的视觉任务是有效的


1. Introduction


视觉识别中的一个关键挑战是如何适应对象比例、姿态、视点和零件变形中的几何变化或模型几何变换。一般有两种方法实现:

1)建立具有足够期望变化的训练数据集。这通常通过增加现有的数据样本来实现,例如通过仿射变换。但是训练成本昂贵而且模型参数庞大。

2)使用变换不变(transformation-invariant)的特征和算法。比如比较有名的SIFT(尺度不变特征变换)便是这一类的代表算法。


但以上的方法有两个缺点:

1)几何变换被假定为固定的和已知的,这些先验知识被用来扩充数据,设计特征和算法。为此,这个假设阻止了对具有未知几何变换的新任务的推广,从而导致这些几何变换可能没有被正确建模。

2)对于不变特征和算法进行手动设计,对于过于复杂的变换可能是困难的或不可行的。


卷积神经网络本质上局限于模拟大型未知转换。局限性源于CNN模块的固定几何结构:卷积单元在固定位置对输入特征图进行采样;池化层以固定比率降低特征矩阵分辨率;RoI(感兴趣区域)池化层将RoI分成固定的空间箱(spatial bins)等。缺乏处理几何变换的内部机制。


这种内部机制的缺乏会导致一些问题,举个例子。同一个CNN层中所有激活单元的感受野大小是相同的,但是这是不可取的。因为不同的位置可能对应于具有不同尺度或变形的对象,所以尺度或感受野大小的自适应确定对于具有精细定位的视觉识别是渴望的。


对于这些问题,作者提出了两个模块提高CNNs对几何变换建模的能力。


  • deformable convolution(可变形卷积)

将2D偏移量添加到标准卷积中的常规网格采样位置,使得采样网格能够自由变形。通过额外的卷积层,从前面的特征映射中学习偏移。因此,变形采用局部、密集和自适应的方式取决于输入特征。

image.png


  • deformable RoI pooling(可变形RoI池化)

为先前RoI池化的常规库(bin)分区中的每个库位置(bin partition)增加了一个偏移量。类似地,偏移是从前面的特征图和感兴趣区域中学习的,从而能够对具有不同形状的对象进行自适应部件定位(adaptive part localization)。


2. Deformable Convolutional Networks


2.1 Deformable Convolution

2D卷积由两个步骤组成:

1)在输入特征图x xx上使用规则网格R RR进行采样。

2)把这些采样点乘不同权重w ww后相加。


网格R定义感受野大小和扩张程度,比如内核大小为3x3,扩张程度为1的网格R可以表示为:

image.png

首先对输入特征层进行一个普通的3x3卷积处理得到偏移域(offset field)。偏移域特征图具有与输入特征图相同的空间分辨率,channels维度2N对应于N个2D(xy两个方向)偏移。其中的N是原输入特征图上所具有的N个channels,也就是输入输出channels保持不变,这里xy两个channels分别对输出特征图上的一个channels进行偏移。确定采样点后就通过与相对应的权重w点乘相加得到输出特征图上该点最终值。


前面也提到过,由于这里xy两个方向所训练出来的偏移量一般来说是一个小数,那么为了得到这个点所对应的数值,会采用双线性插值的方法,从最近的四个邻近坐标点中计算得到该偏移点的数值,公式如下:

image.png

具体推理过程见:双线性插值原理


2.2 Deformable RoI Poolingb

image.png

image.png


2.3 Postion﹣Sensitive RoI Pooling

除此之外,论文还提出一种PS RoI池化(Postion﹣Sensitive RoI Pooling)。不同于上述可变形RoI池化中的全连接过程,这里使用全卷积替换。


具体操作如图所示:

image.png

原文论述为:

image.png


3. Understanding Deformable ConvNets


当可变形卷积叠加时,复合变形的效果是深远的。如图所示:

image.png

ps:a是标准卷积的固定感受野,b是可变形卷积的适应性感受野。


感受野和标准卷积中的采样位置在整个顶部特征图上是固定的(左)。在可变形卷积中,它们根据对象的比例和形状进行自适应调整(右)。

image.png


4. Result


  • 实验证明使用3层可变型卷积层的效果最好:

image.png

  • 两个可变形模块的效果评估:

image.png

  • 结合经典模型带来的提升对比:

image.png

总结:


创新性得提出了两种可变形模块——可变形卷积与RoI池化操作,证明了在CNNs中学习密集空间变换对于复杂的视觉任务是可行有效的。


目录
相关文章
|
4天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】32. 卷积神经网络之稠密连接网络(DenseNet)介绍及其Pytorch实现
【从零开始学习深度学习】32. 卷积神经网络之稠密连接网络(DenseNet)介绍及其Pytorch实现
|
3天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络(CNN)的工作原理深度解析
【6月更文挑战第14天】本文深度解析卷积神经网络(CNN)的工作原理。CNN由输入层、卷积层、激活函数、池化层、全连接层和输出层构成。卷积层通过滤波器提取特征,激活函数增加非线性,池化层降低维度。全连接层整合特征,输出层根据任务产生预测。CNN通过特征提取、整合、反向传播和优化进行学习。尽管存在计算量大、参数多等问题,但随着技术发展,CNN在计算机视觉领域的潜力将持续增长。
|
4天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
|
4天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
4天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
1天前
|
算法 JavaScript 前端开发
在JavaScript中实现基本的碰撞检测算法,我们通常会用到矩形碰撞检测,也就是AABB(Axis-Aligned Bounding Box)碰撞检测
【6月更文挑战第16天】JavaScript中的基本碰撞检测涉及AABB(轴对齐边界框)方法,常用于2D游戏。`Rectangle`类定义了矩形的属性,并包含一个`collidesWith`方法,通过比较边界来检测碰撞。若两矩形无重叠部分,四个条件(关于边界相对位置)均需满足。此基础算法适用于简单场景,复杂情况可能需采用更高级的检测技术或物理引擎库。
17 6
|
3天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
3天前
|
机器学习/深度学习 自然语言处理 前端开发
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
|
4天前
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
12 0
|
4天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】50.Pytorch_NLP项目实战:卷积神经网络textCNN在文本情感分类的运用
【从零开始学习深度学习】50.Pytorch_NLP项目实战:卷积神经网络textCNN在文本情感分类的运用

热门文章

最新文章