空间金字塔池化
1.提出的原因
下面这里是我们在网上反复可以看见的话(所以关键是理解这些内容):
提出的原因:
在SPP提出之前,传统的网络具有它有两大缺点:
1、通常需要输入固定大小的图片来进行训练和测试。对于大小不一的图片,需要经过裁剪,或者缩放等一系列操作,将其变为统一的尺寸。但是这样往往会降低识别检测的精度。**
2、计算量较大,严重影响速度R-CNN预设1000~2000个候选区域 (采用Selective Search 方法),并分别在每个候选区域进行特征提取。这个想想就害怕,因为图片上有些区域会被重复采样多次。
1.1两点不足是和什么比较?
这里我们要首先理解传统网络是什么意思?他是干什么的?
之前的模型是指R-CNN,这个模型大约就是用于从图片中提取出那些是一个特定的物体的区域,整个过程是:
1)首先,使用算法来找出各种候选的区域
2)之后,我们使用卷积网络来对这些区域进行特征提取
3)完成特征提取之后,我们要将其转化为全连接层进行处理(当时还没有FCN这种好东西)
4)最后,经过全连接层才得出我们的结果。
R-CNN就是后面的2)3)4)
1.2理解第一个不足
在R-CNN模型中最关键的一个问题是,在模型当中我们是对前面得出来的候选区域进行特征提取,这些候选区域大小可是并不一样啊。所以被迫全部的训练上一次。
那么这个原因里面说的其实和R-CNN没有太大联系,说的是秦始皇时代图像识别模型定义好之后,只能对某一种确定大小的内容进行识别,这个就要求我们更改图片,更改图片的话:首先,会降低精度;其次,这个更改的过程凭空增加了很多的工作量。所以,也期待着有一种可以处理不同大小图片的模型出现。
1.3理解第二个不足
因为R-CNN是对候选区域进行验证,每个大小又不一样,所以我们被迫全部重新训练一次,所以训练次数就会非常爆炸,每次forward过程中就相当于进行了1000-2000次forward。
当然这里的1000-2000是R-CNN自己规定的,但是你想精度差不多,这个数据也不能太小
2.金字塔池化
这个金字塔池化,一定可以找到下面的这个图片
我们前面说过这个模型提出非常早,在2014年,那时候还没有FCN这个东西,所以最后使用的是一个全连接,我们注意全连接这个东西最后必须是一个确定长度的输入,不可以是可以变化的,所以图片大小改变的话我们必须改变我们的模型。
这就要求我们必须是确定一种转换方式将不同大小的图片,转化成相同大小的输出,所以就有了金字塔法。这里论文当中提出的方法是,按照比例分别将得到的不同大小的特征图,分成相同个数的部分。
例如将一个图片分成四个部分,或者将一个图片分为两个部分,这就可以获得相同的长度的特征输出。
3.给我们的启发
1.再次使用当时的模型的可能性不大,但是我们可以使用用比例划分块,产生相同个数的特征。