arxiv:1504.08083
参考
44 物体检测算法:R-CNN,SSD,YOLO【动手学深度学习v2】_哔哩哔哩_bilibili
初读
R-CNN首次提出将CNN应用于目标检测领域,SPPNet提出SPP layer,提升了R-CNN的速度。但两者有共同的不足之处,都需要多阶段的处理
- 选取候选框(proposals)
- 将候选框送入CNN提取特征
- 将提取的特征送入SVMs进行分类
- 进行Bounding-box regression,微调定位框
Fast R-CNN在运行速度上实现了对R-CNN和SPPNet的超越,模型准确率也有所提升,同时是单阶段的处理。
再读
Fast R-CNN架构如下图所示
![image-20230212074400419](https://gitee.com/dctwan/blog-image/raw/master/image-20230212074400419.png)
提出了RoI池化层(region of interest pooling layer)
什么是RoI pooling?
给定一个锚框,将其均匀(近似,可能不能严格均匀)的分成nxm块,在每一块取一个最大值(max pooling)
,接受任意尺寸的输入,输出总是nxm
![image-20230212090930006](https://gitee.com/dctwan/blog-image/raw/master/image-20230212090930006.png)
和SSP layer的区别,空间金字塔池化使用了多个尺寸分割,包括1x1,2x2,4x4,然后拼接起来。而RoI pooling只使用了一个尺寸nxm,相当于SPP layer的精简版本
框架
- 使用SS(Selective Search)算法生成候选框(proposals)
- 将原始图片输入CNN提取特征图,将候选框投影到特征图上获得特征矩阵
- 将特征矩阵输入RoI pooling得到7x7的输出
- 将7x7输出通过一系列全连接进行分类和bbox
![image-20230212084110547](https://gitee.com/dctwan/blog-image/raw/master/image-20230212084110547.png)
与R-CNN和SSPNet的区别
- 将特征提取、分类、bbox作为一个整体(子网络),对应论文中提到的单阶段(single-stage)
- 相比于SPPNet,精简了空间金字塔池化层为RoI pooling层
- 使用全连接层和softmax进行后序分类和bbox,而之前使用的是SVMs