Faster R-CNN理论

前言

本文参考来源于b站up主霹雳吧啦Wz. 原视频.

Faster R-CNN是作者作者Ross Girshick继Fast R-NN之后的又一力作。同样使用VGG16作为网络的backbone,推理速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在2015年的ILSVRC以及COCO竞赛中获得多个项目的第一名。

Faster R-CNN理论

文章目录

; 理论部分

1.Fast R-CNN简介

在讲Faster R-CNN之前我们先来简单的看一下它的上一代算法:Fast R-CNN

Faster R-CNN理论
Fast R-CNN算法的流程可以分为三个步骤:
  • 通过使用Selective Search方法在一张图片上生成1000~2000个候选区域(这种方法在Faster R-CNN中RPN网络被替代)
  • 将图像输入卷积网络生成相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。(也就是相当于有了一张特征图,然后在特征图上将ss算法扫到的区域框出来)
  • 将每个特征矩阵通过ROI pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果

; 2.Faster R-CNN简介

Faster R-CNN算法的流程可分为三个步骤:

  • 将图像输入网络得到相应的特征图
  • 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵
  • 将每个特征矩阵通过ROI pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果
    Faster R-CNN理论
    实际上我们的Faster R-CNN可以看作是 RPN+Fast R-CNN这个形式。Faster R-CNN和Fast R-CNN最主要的区别就在于:Faster R-CNN将候选框的推举交给RPN网络来实现(替代了SS算法)。
    因此我们的研究重点就在于RPN网络。

3. RPN网络

Faster R-CNN理论

; 参数解释

首先,由上一步的conv layers生成了conv feature map。在这张特征图上,我们使用一个滑动窗口进行滑动。每滑动到一个位置上时候,我们就生成一个1-dim向量。在这个向量基础上再通过两个全连接层,分别输出目标概率和边界框回归参数。其中:

  • 256-d:因为我们前面的backbone网络使用的是 ZF网络,它所输出的特征图是 256-d。如果使用 VGG-16,生成的特征图就是 512-d
  • 2k:是指k个anchor boxes,每个anchor boxes生成两个概率(前景和背景)。所以k个anchor boxes会生成2k个scores。
  • 4k:对每个anchor boxes我们会生成4个边界框回归参数。所以k个anchor boxes会生成4k个coordinates。

anchor boxes解释

Faster R-CNN理论

首先明确上图的含义,左边是原图,右边是相应的特征图,我们使用一个3*3滑动窗口在特征图上进行滑动的时候,特征图会存在一个中心点,通过推算出该中心点在原图上的对应位置,在原图上以这个中心点为中心,生成一系列anchor boxes。举个例子,就是如下这种效果:

Faster R-CNN理论
对于k个anchor boxes,存在2k个scores。两个两个为一组(前景和背景的概率),一共k组。比如第一组:
  • 0.1代表其中一个anchor boxes框选(比如是图中的正方形框)的内容是背景的概率是0.1;
  • 0.9代表其中一个anchor boxes框选(比如是图中的正方形框)的内容是前景的概率是0.9;

这里只是对它进行背景还是前景的预测,并没有进行分类!

对于k个anchor boxes,存在4k个coordinates。每四个为一组,共k组。

  • d x , d y d_x,d_y d x ​,d y ​是anchor中心点的坐标;
  • d w , d h d_w,d_h d w ​,d h ​是anchor的宽和高的调整参数;
    Faster R-CNN理论
    论文里面给出了三种尺度(面积)的anchor(12 8 2 , 25 6 2 , 51 2 2 128^2,256^2 ,512^2 1 2 8 2 ,2 5 6 2 ,5 1 2 2),三种比例(1:1,1:2,3:1),每个位置(每个滑动窗口)在原图上都对应3 ∗ 3 3*3 3 ∗3,9个anchor。
    Faster R-CNN理论

这里有个点需要注意:

对于ZF感受野为171;对于VGG感受野为228。可是我们从上面可以知道,生成的anchor有256和512的,那么感受野还没有这个anchor大,我们能进行判断嘛?
如上图:作者给出了相应的解释,作者认为一个比较小的感受野(也就是看见一个物体的一部分),我们也可以大概的知道这个物体是什么。(有种窥一斑也可以知全豹的感觉)。实际使用的时候也证明这样是有效的。

对于一张1000x600x3的图像,大约有 60x40x9(20k)个anchor,忽略跨越边界的 anchor以后,剩下约6k个anchor。对于RPN 生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU 设为0.7,这样每张图片只剩2k个候选框。

; RPN训练过程中正负样本的选择标准

Faster R-CNN理论

通过滑动窗口在特征图上进行滑动,我们得到了上万个anchor,这些anchor不能都用来训练RPN网络。在原论文中作者说每张图片我们随机的采样256个anchor。这256个anchor是由正样本和负样本组成。正负样本的比例为1:1。如果正样本不足一半,我们就用负样本来填充。
下面是正负样本的选择标准:

Faster R-CNN理论
Faster R-CNN理论
正样本的选择标准:
  1. an anchor that has an IoU overlap higher than 0.7 with any ground-truth box.

  2. the anchor/anchors with the highest Intersection-overUnion (IoU) overlap with a ground-truth box

负样本的选择标准:
We assign a negative label to a non-positive anchor if its IoU ratio is lower than 0.3 for all ground-truth boxes.

丢弃掉的anchor:
Anchors that are neither positive nor negative do not contribute to the training objective.

RPN Multi-task loss

Faster R-CNN理论
其中:
i: the index of an anchor in a mini-batch
p i p_i p i ​:第i个anchor预测为object的概率
p i ∗ : p_i^:p i ∗​:当为正样本时候为1,当为负样本时候为0
t i t_i t i ​: 表示预测第i个anchor的边界框回归参数
t i ∗ t_i^
t i ∗​:表示第i个anchor对应的GT Box的边界框回归参数
N c l s N_{cls}N c l s ​:表示一个mini-batch中的所有样本数量256
N r e g N_{reg}N r e g ​:表示anchor位置的个数(不是anchor个数)约2400(60*40)
λ \lambda λ=10

; 分类损失

按多类别交叉熵损失来理解:

Faster R-CNN理论
按二值交叉熵损失理解:
Faster R-CNN理论

Faster R-CNN理论

Fast R-CNN Multi-task loss

Faster R-CNN理论

Faster R-CNN理论
Faster R-CNN理论

; 4.Faster R-CNN训练

直接采用RPN Loss+ Fast R-CNN Loss的联合训练方法

原论文中采用分别训练RPN以及Fast R-CNN的方法:

  1. 利用ImageNet预训练分类模型初始化前置卷积网络层参数,并开始单独训练RPN网络参数;
  2. 固定RPN网络独有的卷积层以及全连接层参数,再利用 ImageNet预训练分类模型初始化前置卷积网络参数,并利用RPN 网络生成的目标建议框去训练Fast RCNN网络参数。
  3. 固定利用Fast RCNN训练好的前置卷积网络层参数,去微调RPN 网络独有的卷积层以及全连接层参数。
  4. 同样保持固定前置卷积网络层参数,去微调Fast RCNN网络的全 连接层参数。最后RPN网络与Fast RCNN网络共享前置卷积网络层 参数,构成一个统一网络。

5.Faster R-CNN框架

Faster R-CNN应用了端对端的思想,将Region proposal;Feature extraction;Classification;Bounding-box regression都融合进了CNN网络。
Faster R-CNN与前代算法框架的比较:

Faster R-CNN理论

Original: https://blog.csdn.net/weixin_45042017/article/details/123446121
Author: coder_sure
Title: Faster R-CNN理论

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/682563/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球