一、背景
Faster R-CNN是受Fast R-CNN的启发,而Fast R-CNN是受R-CNN启发。
R-CNN是采用 Selective Search 算法来提取(propose)可能的 RoIs(regions of interest) 区域,然后对每个提取区域采用标准 CNN 进行分类。
Fast R-CNN 是 R-CNN 的改进,其采用兴趣区域池化(Region of Interest Pooling,RoI Pooling) 来共享计算量较大的部分,提高模型的效率。
Faster R-CNN 随后被提出,其是第一个完全可微分的模型. Faster R-CNN 是 R-CNN 论文的第三个版本.
Faster R-CNN主要提出使用RPN网络进行区域提取,替代SS算法。
二、网络结构
Faster R-CNN 的结构是复杂的,因为其有几个移动部件. 这里先对整体框架宏观介绍,然后再对每个部分的细节分析.
1)、Conv layers
Faster RCNN首先是支持输入任意大小的图片的,比如上图中输入的PQ,进入网络之前对图片进行了规整化尺度的设定,如可设定图像短边不超过600,图像长边不超过1000,我们可以假定MN=1000*600(如果图片少于该尺寸,可以边缘补0,即图像会有黑色边缘)。
- 13个conv层:kernel_size=3,pad=1,stride=1;由于pad的原因,conv层不会改变图片大小(即:输入的图片大小=输出的图片大小)
- 13个relu层:激活函数,不改变图片大小
- 4个pooling层:kernel_size=2,stride=2;pooling层会让输出图片是输入图片的1/2
经过Conv layers,图片大小变成(M/16)(N/16),即:6040(1000/16≈60,600/16≈40);则&