SPP Net
本文为根据大家的内容的摘取。
一、SPP Net
论文地址:https://arxiv.org/pdf/1406.4729.pdf
1.固定输入图片的尺寸
①取决于全连接层的结构特点
Full Conneted Layer的理解可以看这篇文章https://blog.****.net/goodshot/article/details/79330545
因而全连接层输入神经元与输出神经元的个数都是确定的。
②为什么要选择fc,而不直接使用CONV5的数据?
对比Pool5层以及FC层,可以看出fc层相对的MAP要高很多,尤其是经过预训练后的网络。一方面原因是Pool5层的特征尺寸比较大,另一方面是全连接层特征更加符合类别信息。没有fine-tuning选用Fc6还是Fc7差距并不明显,使用fine-tuning后,Fc7的MAP相较于Fc6有明显的提升。
★2.什么是金字塔池化层?
利用4X4,2x2, 1x1对conv5提取出的feature maps(chanels = 256)进行了划分(不一定是均分),可以得到21个特征块,再对这21个特征快进行maxpooling得到21个特征向量,因而输入图像的尺寸可以是任意的。
来源于:https://www.cnblogs.com/marsggbo/p/8572846.html
★3.RCNN、SPP-Net特征提取的对比
RCNN中对提取的region proposal的进行crop、warp处理,损坏图像精度或图像发生变形
具体如下
RCNN 是先将2k个region proposal转换成固定尺寸,后输入到CNN中提取特征向量
SPP-Net 是先用CNN进行一次性特征提取,在feature map中找到region proposal,再对region proposal进行SPP提取特征向量
因而避免了对region proposal进行缩放带来的问题。
4.feature map中的region proposal与原图进行对应
作者位于论文后面的公式说明:
https://zhuanlan.zhihu.com/p/24780433
在以上链接中,有对这一部分做了较为详细的讲解。
5.网络的训练方式
①Single-Size-training
②Multi-Size-training
这部分写的不错的文章:http://sinb.github.io/Whatyouknowabout/spp-net-1/
6.SPP-Net的优点
SPP是词袋模型(Bag-of-Words)的扩展.为什么说是扩展?词袋模型没有特征的空间信息(就像它只能统计一个句子中每个单词的词频,而不能记录词的位置信息一样).
在深层CNN里加入SPP会有3个优势:
1) 相比之前的滑动窗池化(sliding window pooling),SPP可以对不同维度输入得到固定长度输出.
2) SPP使用了多维的spatial bins(我的理解就是多个不同大小的窗),而滑动窗池化只用了一个窗.
3) 因为输入图片尺度可以是任意的,SPP就提取出了不同尺度的特征.
这3点可以提高深度网络的识别准确率.
SPP-net既然只在网络的最后几层(深层网络)中加入,而本质上就是池化,所以它可以加入到其他CNN模型中,比如AlexNet.作者的实验表明,加入了SPP的AlexNet效果确实提升了.作者认为SPP应该能提升更复杂的网络的能力.
来源于:http://sinb.github.io/Whatyouknowabout/spp-net-1/