车牌检测STN:Spatial Transformer Networks

参考文献:Max Jaderberg, Karen Simonyan, Andrew Zisserman, Koray Kavukcuoglu. Spatial Transformer Networks, 2016.link

Spatial Transformer Networks空间变换网络

Max Jaderberg, Karen Simonyan, Andrew Zisserman, Koray Kavukcuoglu

摘要

卷积神经网络定义了一类异常强大的模型,但仍然受到缺乏在计算和参数效率方面对输入数据具有空间不变性的能力的限制。在这项工作中,我们引入了一个新的可学习模块,即空间转换器,它明确地允许在网络中对数据进行空间操作。该可微模块可以插入到现有的卷积结构中,使神经网络能够主动地在特征映射本身上有条件地变换特征映射,而无需任何额外的训练监督或修改优化过程。我们表明,使用空间变换器会导致模型学习到对平移、缩放、旋转和更一般的扭曲不变性,从而在多个基准和多个变换类上获得最先进的性能。

1 引言

近年来,通过采用一种快速、可扩展、端到端的学习框架,即卷积神经网络(CNN)[21],计算机视觉的前景发生了巨大的变化并得到了推进。虽然不是最近的发明,但我们现在看到大量基于cnn的模型在分类[19、28、35]、本地化[31、37]、语义分割[24]和动作识别[12、32]任务等方面取得了最新的成果。

能够对图像进行推理系统的一个理想特性是从纹理和形状中分离出物体的姿态和部分变形。在CNNs中引入局部最大池化层,通过允许网络在空间上对特征的位置保持某种不变,有助于满足这一特性。然而,局部最大池化层的引入使得CNN在特征位置变换上具有一定的空间不变性。但是最大池化层max-pooling的窗口通常很小2*2,因此这种空间不变形仅仅在比较深的网络层次结构上才会被体现出来,并且对于比较大的空间变换是无效的。CNNs对较大空间变换不具有空间不变性的原因是因为只有一个有限的、预先定义的池化机制来处理空间变换。

在这项工作中,我们引入了一个空间转换模块,它可以包含在一个标准的神经网络架构中,以提供空间转换能力。空间转换器的动作取决于单个数据样本,并在训练期间学习相关任务的适当行为(无需额外监督)。与固定且局部的池化层不同,空间变换模块是一种动态机制,它可以通过为每个输入样本生成适当的变换来主动地在空间上变换图像(或特征映射)。然后对整个特征映射(非局部)执行变换,可以包括缩放、裁剪、旋转以及非刚性变形。这使得包括空间变换器的网络不仅可以选择图像中最相关(注意)的区域,而且可以将这些区域转换为规范的、期望的形状,以简化下一层中的识别。值得注意的是,空间变换器可以使用标准的反向传播进行训练,允许对注入的模型进行端到端的训练。
在这里插入图片描述
(a)输入层;(b)STN层;(c)空间变换矫正后的层;(d)输出的识别层。

空间变换器可以并入CNN中,以帮助完成各种任务,例如:(i)图像分类:假设CNN接受训练,根据图像是否包含特定的数字来执行图像的多方向分类,其中数字的位置和大小可能随每个样本而显著变化(并且与类无关),空间变换器将适当的区域简化以进行后续的分类任务,并具有更好的分类性能,参见图1;(ii)共同定位:给定一组包含相同(但未知)类的不同实例的图像,可以使用空间变换器在每个图像中定位它们;(iii)空间注意:空间变换器可以用于需要注意机制的任务,例如在[14, 39 ]中,但是更灵活,并且可以在没有强化学习的情况下纯粹通过反向传播来训练。使用注意力的一个关键好处是,转换了低分辨率输入为高分辨率原始输入,从而提高计算效率。

论文的其余部分安排如下:第二节讨论了相关工作,第三节介绍了空间变换器的设计和实现,第四节给出了最终实验结果。附录A给出了附加的实验和实现细节。

2 相关工作

在本节中,我们讨论本文的相关工作,包括用神经网络建模变换的中心思想[15,16,36]、学习和分析变换不变量表示[4,6,10,20,22,33]以及用于特征选择的注意和检测机制[1,7,11,14,27,29]。

Hinton[15]的早期工作着眼于为对象组件分配标准参照系,这一主题在[16]中重复出现,其中对二维仿射变换进行建模,以创建由变换组件组成的生成模型。生成训练方案的目标是转换后的输入图像,输入图像和目标之间的转换作为网络的附加输入。其结果是一个生成模型,它可以通过学习生成对象的变换图像。tieleman[36]进一步提出了变换部分的组合概念,显式仿射变换由网络预测得到,这样生成的模型能够从转换监督中学习用于分类的判别特征。

文献[22]通过估计原始图像和变换图像表示之间的线性关系,研究了CNN对输入图像变换的不变性和等变性。cohen&welling[6]分析了对称群的这种行为,gens&domingos[10]提出的体系结构也利用了对称群,从而得到了对对称群更为不变性的特征映射。设计变换不变量表示的其他尝试包括散射网络[4]和构造变换滤波器组的CNN[20,33]。Stollenga等人[34]使用基于网络激活的策略,为同一图像的后续转发过程设置网络过滤器的响应门,从而允许对特定特征的注意。在这项工作中,我们的目标是通过操作数据而不是特征提取器来实现不变量表示,这是在[9]中为聚类所做的。

具有选择性注意的神经网络通过take crops对数据进行操作,从而能够学习转换的不变性。[1,29]通过强化学习使用可微注意机制,而[14]通过在生成模型中使用高斯核来使用可微注意机制。Girshick等人的工作[11]使用区域建议算法作为注意的一种形式,并且[7]表明用CNN回归显著区域是可能的。我们在这篇文章中提出的框架可以看作是对任何空间变换的可微注意力机制的一个推广

3 空间变换

在本节中,我们将描述空间变换器的公式。这是一个可微模块,它在一次前向过程中将空间变换应用于一个特征映射,其中变换以特定输入为条件,生成一个输出特征映射。对于多通道输入,对每个通道应用相同的变换。为了简单起见,在本节中,我们考虑单个变换和每个变换的单个输出,但是在实验中我们可以推广到多个变换。
在这里插入图片描述
U是STN的输入特征图;localisation net是局部化网络, θ \theta θ是输入经过localisation net后得到的变换参数;G是空间网格(V的坐标), τ θ ( G ) \tau_{\theta } (G) τθ(G)是以 θ \theta θ为参数,对所V中所有坐标点G做采样操作的参数化采样网格;Sampler是采样,对V做填充;V是输出的warp特征图。

空间变换器的结构分为三部分,如图2所示。
Localisation net:是一个自己定义的网络,它输入U,输出变化参数Θ,这个参数用来映射U和V的坐标关系。
Grid generator:根据V中的坐标点和变化参数Θ,计算出V相对于U中的坐标点(理解:比如V中的坐标(1,1),与变化参数Θ相乘后,得到坐标(1.2,1.6),即V中坐标(1,1)的像素值等于U中坐标(1.2,1.6)的像素值)。这里是因为V的大小是自己先定义好的,当然可以得到V的所有坐标点,而填充V中每个坐标点的像素值的时候,要从U中去取,所以根据V中每个坐标点和变化参数Θ进行运算,得到一个相对于U的坐标。
Sampler:要做的是填充V,根据Grid generator得到的一系列坐标和原图U(因为像素值要从U中取)来填充,因为计算出来的坐标可能为小数,要用另外的方法来填充,比如双线性插值。

3.1 Localisation Network

局部化网络localisation Network的输入是 U ∈ R H × W × C U\in R^{^{H\times W\times C}} URH×W×C,其中 W W W是宽width, H H H是高height, C C C是通道数channels,输出是 θ \theta θ θ = f l o c ( U ) \theta =f_{loc}(U) θ=floc(U),参数 θ \theta θ的尺寸非常依赖于变换类型,例如仿射变换的参数就是6个维度。

localisation network函数 f l o c ( ) f_{loc}() floc()可以是任意的网络形式,既可以是全连接网络fully-connected network也可以是卷积网络convolutional network,但是应该包含一个最后的回归层final regression layer产生变换参数transformation parameters θ \theta θ

理解无约束车牌检测:把空间变换网络用到了最后一层,学习了6个仿射变换参数。

3.2 Parameterised Sampling Grid

输出特征图 V ∈ R H ′ × W ′ × C V\in R^{^{ {H}'\times {W}'\times C}} VRH×W×C H ′ {H}' H W ′ {W}' W分别是采样网格的高和宽,C通道数(与V通道数一致)。 G G G为V的坐标网格, G = { G i } G=\{G_{i}\} G={ Gi}其中 G i = ( x i t , y i t ) G_{i} =(x_{i}^{t},y_{i}^{t}) Gi=(xit,yit)为了得到V的像素值,必须计算V的各个坐标点对应U的坐标点,即参数化采样网格 τ θ ( G ) \tau_\theta(G) τθ(G)
在这里插入图片描述
图3:图像U利用参数化采样网格输出V的两个示例
(a)参数化采样网格是一个规则的 G = τ I ( G ) G=\tau_I(G) G=τI(G),其中 I I I是一个恒等变换参数。(b)参数化采样网格 τ θ ( G ) \tau_\theta(G) τθ(G)采用了仿射变换。

为了简化理解,假定 τ θ \tau_{\theta } τθ是2D仿射空间变换 A θ A_{\theta } Aθ,则V的逐点仿射变换如下:
( x i s y i s ) = τ θ ( G i ) = A θ ( x i t y i t 1 ) = [ θ 11 θ 12 θ 13 θ 21 θ 22 θ 23 ] ( x i t y i t 1 ) \left ( \begin{matrix} x_i^s \\ y_i^s \\ \end{matrix} \right )=\tau_\theta(G_i)=A_\theta \left(\begin{matrix} x_i^t \\ y_i^t \\ 1 \end{matrix} \right ) =\left[ \begin{matrix} \theta_{11} & \theta_{12} & \theta_{13} \\ \theta_{21} & \theta_{22} & \theta_{23} \end{matrix} \right]\left(\begin{matrix} x_i^t \\ y_i^t \\ 1 \end{matrix} \right ) (<

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
空间变换网络(Spatial Transformer NetworksSTN)是一种神经网络结构,用于改善卷积神经网络(CNN)的空间不变性。STN可以对经过平移、旋转、缩放和裁剪等操作的图像进行变换,使得网络在变换后的图像上得到与原始图像相同的检测结果,从而提高分类的准确性。STN由三个主要部分组成:局部化网络(Localisation Network)、参数化采样网格(Parameterised Sampling Grid)和可微分图像采样(Differentiable Image Sampling)。 局部化网络是STN的关键组件,它负责从输入图像中学习如何进行变换。局部化网络通常由卷积和全连接层组成,用于估计变换参数。参数化采样网格是一个由坐标映射函数生成的二维网格,它用于定义变换后每个像素在原始图像中的位置。可微分图像采样则是通过应用参数化采样网格来执行图像的变换,并在变换后的图像上进行采样。 使用STN的主要优点是它能够在不改变网络结构的情况下增加空间不变性。这使得网络能够处理更广泛的变换,包括平移、旋转、缩放和裁剪等。通过引入STN层,CNN可以学习到更鲁棒的特征表示,从而提高分类准确性。 关于STN的代码实现,您可以在GitHub上找到一个示例实现。这个实现使用TensorFlow框架,提供了STN网络的完整代码和示例。您可以通过查看该代码来了解如何在您的项目中使用STN。 综上所述,spatial transformer networks(空间变换网络)是一种神经网络结构,用于增加CNN的空间不变性。它包括局部化网络、参数化采样网格和可微分图像采样三个部分。通过引入STN层,CNN可以学习到更鲁棒的特征表示,从而提高分类准确性。在GitHub上有一个使用TensorFlow实现的STN示例代码供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值