对 SPP-net 论文的一个大致翻译

来源:互联网 发布:php foreach取不出数据 编辑:程序博客网 时间:2024/06/06 03:22

SPP-net
论文翻译:

摘要:
现存的深度卷积神经网络需要一个固定大小的输入图像。这种要求是人为的,而且可能对任意尺度和大小的图片的识别精度造成影响。在我们的工作中,我们给CNN加入一个空间金字塔池化层(spatial pyramid pooling layer),为了消除上述那种对图像固定大小的要求。新的网络结构叫做SPP-net,这个网络不管图像的尺度和大小如何,都可以生成一个固定长度的向量来表示图片。通过消除了固定大小的限制,我们可以改善所有的基于CNN的图像分类方法。
在目标检测中,SPP-net的作用更加明显,使用SPP-net,我们对整幅图像只需要进行一次特征图计算,然后将任意区域的特征向量池化,生成一个固定长度的表示,然后再训练检测器。我们的方法避免了重复计算特征图。
1. 引言
CNN主要包括两部分:卷积层和全连接层。实际上,卷积层不需要固定尺寸的图像,可以生成任意尺寸的特征图,而全连接层需要输入固定尺寸。这样,固定尺寸的约束只来自于全连接层,而全连接层处于网络比较深的层级。
在本文中,我们在最后一个卷积层的后面加了一个SPP layer ,这个SPP layer 将特征转化成特定长度的输出,然后将它们输入全连接层。
我们注意到SPP对于深度CNN有一些值得一提的性能:1.SPP不管输入尺寸如何,它都可以产生一个固定长度的输出,但是之前深度CNN中的滑动窗口池化不行。2.SPP使用多级空间bins,而滑动窗口只使用一个单窗口尺寸。众所周知,多级池化对目标变形具有鲁棒性。3.SPP可以在任意尺度提取特征,因为输入特征尺度的灵活性。
SPP-net在目标检测领域也显示了强大的力量。在R-CNN中,提取特征非常费时,因为它是将每幅图像产生的上千个区域重复的送入CNN中提取特征。在本论文中,不管将这个图像分成了多少个区域,对于一整幅图像我们只运行一次卷积神经网络,然后对得到的特征图用SPP-net提取特征。这种方法对CNN加速超过了100多倍。

2. 带有spatial pyramid pooling 的深度网络
2.1 卷积层和特征图
2.2 空间金字塔池化层 spatial pyramid pooling layer
为了使深度网络适应于任意大小的图像,我们将第五层池化层换成了spatial pyramid pooling layer,对于每一个滤波器得到的特征图,我们分别对其进行不同尺度的池化,(采用的是最大池化,最大池化就是求每一个块中的最大值)(采用几种不同的spatial bins 对每一个特征图进行最大池化)。

3. 训练
3.1 单尺寸训练
对加入SPP层的固定大小的CNN网络训练。在单尺寸训练时,实现了一个224x224固定大小的含SPP层的CNN的训练。
3.2 多尺寸训练
将224x224大小的图像croping 成180x180大小,然后我们又实现了一个180x180大小的固定尺寸的含SPP层的CNN,该网络与之前的224x224固定尺寸的CNN网络的参数都相同。即通过两个固定尺寸输入的网络共享参数实现了一个变尺寸输入的SPP-net。
我们在一个网络上训练一个周期,然后转换到另一个网络,同时把上一个网络的所有参数复制到这个网络,然后再对这个网络训练一个周期,依次交替迭代。
多尺寸训练的目的是在利用现存的已经优化好的固定尺寸的CNN网络的情况下,仿真变换输入尺寸的情况。理论上,我们可以使用更多尺度和长宽比的图像,每一个网络对应每一个尺寸或每一个长宽比,所有的网络共享参数。

参考:
http://blog.csdn.net/u011534057/article/details/51219959

0 0
原创粉丝点击