目录
1. Fast R-CNN的不足
2. Faster R-CNN
3. RPN(Region Proposal Network)
3.1 anchor
3.2 RPN 网络
3.3 RPN 网络的损失
4. Faster R-CNN 损失
5. Faster R-CNN 训练
6. 对比
1. Fast R-CNN的不足
Fast R-CNN 的算法流程
Fast R-CNN网络运行速度慢的最主要原因,SS生成候选框的效率较低
所以Faster R-CNN主要对生成候选框进行了优化
2. Faster R-CNN
Faster R-CNN 的算法流程
Faster R-CNN可以看成:RPN + Fast R-CNN
其中RPN通过卷积网络生成候选框,抛弃了SS算法,这里RPN和Fast R-CNN里面提取特征的卷积层参数共享
3. RPN(Region Proposal Network)
Faster R-CNN的重点就是RPN代替了SS算法,所以最重要的就是RPN网络的实现 。后面的部分就是Fast R-CNN
生成的2k分类类别,这里的2只是前景and背景的概率,不做具体的分类
生成的4k个边界框回归器,4个参数对候选框的调整
3.1 anchor
窗口在卷积网络输出的特征提取进行滑动,在每个滑动窗口生成9个anchor
anchor 和 PRN 都会产生候选框,两者不一样
虽然对于VGG来说,原始的输入图像经过几层的卷积和池化,最后输出特征图的像素点,映射到原图的感受野是228。虽然这里生成的anchor比228*228大,是不影响的。论文的作者是这样解释的,通过观察物体的一部分,也可以大概估计目标的大小。
关于感受野的计算
例如,原始输入的图片是1000*600*3,经过特征提取层,空间分辨率大概变成60*40,每个像素点生成9个,就会生成60*40*9(20k)个anchor。去除越过边界的anchor,大概剩余6k个。利用RPN网络生成的回归器对anchor进行微调,得到需要的候选框,基于RPN生成的分类器,对候选框得分进行非极大值抑制,这样最后大概还剩2000个候选框
边界框参考anchors产生固定尺寸的,分类判断产生的边界框是背景还是前景,即产生的边界框是否正确
3.2 RPN 网络
理论上,RPN网络不仅仅只包含下面的部分,还有CNN特征提取的部分,因为CNN那块参数共享了,所以只介绍剩余的生成分类器+回归器的小网络
VGG最后特征提取的输出为512*n*n(512为channel),通过3*3的same 卷积,输入输出维度都是VGG最后的输出channel 512。这样3*3卷积后输出的shape和VGG特征提取的shape是一致的
然后并联两个1*1卷积或者fc层实现类别的分类+边界框回归器的预测
例如,采用 输入chanel为512,输出为2k个,1*1卷积核就能产生2k个类别的分类
3.3 RPN 网络的损失
RPN 的损失,λ为平衡参数,尽量让1/N(cls) = λ * 1/N(reg)
其中分类的损失,是多类别的交叉熵
边界框回归器损失:
4. Faster R-CNN 损失
就是Fast R-CNN的损失
5. Faster R-CNN 训练
论文中采用4步的分步训练方法
6. 对比
框架的步骤逐渐合为一体