Rcnn、FastRcnn、FasterRcnn理论合集

  • Post author:
  • Post category:其他





一、RCNN

RCNN(Region with CNN feature)

R-CNN是利用深度学习进行目标检测的开山之作。将目标检测识别率由30%提升到了60%

RCNN算法流程可以分为4个步骤

  • 对一张图片生成1k~2k个候选区域(使用ss算法)
  • 对每一个候选区域,使用深度网络提取特征
  • 特征送入每一类SVM分类器,并判断是否属于此类
  • 使用回归器精细修正候选框位置


详细步骤


1、候选区域生成

利用ss算法(Selective Search)通过图像分割的方法得到一些原始区域,然后使用一些方法将这些区域合并,得到一个层次化的区域结构,这些结构中包含着需要的物体。

2、使用深度网络提取特征

将2000候选区域缩放到227×227像素,接着讲候选区域输入事先训练好的AlexNet CNN网络,获得4096维的特征,最后得到2000×4096维矩阵

3、SVM分类器进行判别

将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘,最后获得的2000×20维矩阵表示每个建议框是某个目标类别的的分,对上述矩阵的每一列即每一类进行

非极大值抑制剔除重叠建议框

,得到得分最高的一些建议框。

在这里插入图片描述

注:非极大值抑制如何实现的?

IoU(Intersection over Union)

表示的是(A∩B)/(A∪B)

在这里插入图片描述

4、使用回归器精修候选框位置

对NMS处理后剩余的建议框进行进一步筛选,接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后得分最高的bounding box。

在这里插入图片描述

如上图所示,黄色框P表示建议框,绿色框G表示实际框(Ground Truth),红色框G表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。

总结RCNN框架如下所示

在这里插入图片描述

RCNN存在的问题:

  1. 测试速度慢
  2. 训练速度慢
  3. 训练所需空间大

为此,后面介绍的Fast RCNN解决了这些问题。




一、Fast R-CNN

Fast R-CNN是作者Ross Girshick在提出R-CNN后的又一力作,同样适用VGG16作为网络的backbone,比R-CNN的训练时间快9倍,测试推理时间快213倍,准确率提升到了%66(在Pascal VOC数据集上)

在这里插入图片描述

Fast R-CNN算法可以分为三个步骤

  • 对一张图生成1k~2k个候选区域(使用ss算法)。
  • 将图像输入网络中得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。
  • 将每一个特征矩阵通过ROI Pooling层缩放到7×7大小的特征图,接着将特征图展平,通过一系列全连接层得到预测结果。

与R-CNN相比,Fast R-CNN在第二步就已经全然不同,R-CNN是依次将候选框区域输入神经网络中得到特征,而Fast R-CNN是将一整幅图像送入网络,从特征图像上提取候选区域,这些候选区域的特征是不需要重复计算的。

在训练过程中,并不会去使用SS算法所提供的所有候选区域,训练时的数据采样我们会分为正样本与负样本(背景)。

对于ROI Pooling层如何实现的,如下图所示

在这里插入图片描述

对7×7的每一个区域执行Max Pooling下采样,得到一个特征矩阵,这样可以不用限制输入图像的尺寸(R-CNN要求输入必须是227×227的大小)。


Fast R-CNN分类器与边界回归器


将特征矩阵进行展平处理后,通过两个全连接层得到ROI feature vector,在此基础上并联两个全连接层,其中一个用于目标概率的预测,另外一个用来边界框回归参数的预测。

  • 分类器输出N+1个类别的概率(N为检测目标种类,1为背景)共N+1个节点。
  • 边界框回归器输出对应N+1个类别的候选边界框回归参数(



    d

    x

    d_x







    d










    x





















    ,



    d

    y

    d_y







    d










    y





















    ,



    d

    w

    d_w







    d










    w





















    ,



    d

    h

    d_h







    d










    h





















    ),共(N+1)×4个节点。

边界框回归参数的计算

在这里插入图片描述




P

x

P_x







P










x





















,



P

y

P_y







P










y





















,



P

w

P_w







P










w





















,



P

h

P_h







P










h





















分别为候选框的中心x,y坐标,以及宽高。




G

x

^

\hat{G_x}















G










x























^



















,



G

y

^

\hat{G_y}















G










y























^



















,



G

w

^

\hat{G_w}















G










w























^



















,



G

h

^

\hat{G_h}















G










h























^



















分别为最终预测的边界框中心x,y坐标,以及宽高。


Fast R-CNN损失的计算


在这里插入图片描述




p

p






p





是分类器预测的softmax概率分布



p

=

(

p

0

.

.

.

.

.

.

.

p

k

)

p=(p_0…….p_k)






p




=








(



p










0


















.


.


.


.


.


.


.



p










k


















)









u

u






u





对应目标真实类别标签




t

u

t^u







t










u












对应边界框回归器预测的对应类别



u

u






u





的回归参数




v

v






v





对应真实的目标边界框回归参数(计算时只需将回归参数计算公式要么移项再除以



P

w

P_w







P










w

























P

h

P_h







P










h





















,要么取对数)

注:

  • 分类损失(多分类问题):




    L

    c

    l

    s

    (

    p

    ,

    u

    )

    =

    log

    (

    p

    u

    )

    L_{cls}(p,u)=-\log(p_u)







    L











    c


    l


    s



















    (


    p


    ,




    u


    )




    =













    lo

    g



    (



    p










    u


















    )







    假设真实标签的one-hot编码是[0,0,…,1,…,0]

    预测的softmax概率为[0.1,0.3,…,0.4,…,0.1]

    那么Loss=-



    log

    (

    0.4

    )

    \log(0.4)






    lo

    g



    (


    0


    .


    4


    )




  • 边界框回归损失

    在这里插入图片描述

[u≥1]是艾弗森括号(大于等于1为1,否则为0)

边界框回归损失可以参考

回归损失函数

Fast R-CNN框架

在这里插入图片描述




三、Faster R-CNN

Faster R-CNN同样使用VGG16作为backbone,推理速度在GPU上达到5fps,准确率也有进一步的提升。

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

  • 将图像输入网络得到相应的特征图。
  • 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵。
  • 将每个特征矩阵通过ROI pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

Faster R-CNN可以认为是RPN+Fast R-CNN的组合。

在这里插入图片描述



RPN结构

在这里插入图片描述

上图右半部分,feature map通过一个滑动窗口进行滑动,每滑动到一个位置生成一个1维的向量,此向量通过两个全连接层,生成目标概率与边界框回归参数。

对于特征图上每个3×3的滑动窗口,计算出滑动窗口中心点对应原始图像上的中心点,并计算出k个anchor boxes(和proposal不同)。

生成的2k个scores,每两个参数对应一个anchor,两个参数分别是判断该物体是

背景的概率

和该物体是

我们所需要辨别物体的概率

。4k个回归参数用于将所选边框进行修正。

在这里插入图片描述

在Faster R-CNN论文中,给定了三种尺度和三种比例,这些都是根据经验所得,三种尺度是{



12

8

2

128^2






1


2



8










2
















25

6

2

256^2






2


5



6










2
















51

2

2

512^2






5


1



2










2












};三种比例是{1:1,1:2,2:1}。每个位置在原图上都对应有3×3=9个anchor。

面积为128的三个anchor框

注:对于ZF感受野为171,对于VGG感受野为228

为什么VGG感受野是228,还能预测比228还大的目标边界框?

原论文中说,通过一个小的感受野来预测一个大的目标是有可能的,比如我们看到一个物体的一部分,就能判断出物体是什么。

训练RPN时,需要考虑采样正负样本的问题,中我们从样本中选出256个样本,正样本和负样本比例大概在1:1左右,如果正样本的个数不足128个,我们就用负样本进行填充。

如何定义正样本与负样本,论文规定两个条件,一是只要我们确定的anchor与ground truth的IOU大于0.7,那么该anchor就为一个正样本。二是anchors与某一个gtound truth有最大的IOU值,那么也将其定义为正样本。(第二个条件在极少数情况下有用)。负样本是IOU小于0.3的。对于这两种样本情况之外的,全部丢弃。


RPN损失计算


在这里插入图片描述




p

i

p_i







p










i





















表示第i个anchor预测为真实标签的概率




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-banch中的所有样本数256




N

r

e

g

N_{reg}







N











r


e


g






















表示anchor位置的个数(不是anchor个数)约为2400

分类损失为多分类损失




L

c

l

s

=

log

(

p

i

)

L_{cls}=-\log(p_i)







L











c


l


s





















=













lo

g



(



p










i


















)






Faster R-CNN训练


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

Faster R-CNN框架

在这里插入图片描述



版权声明:本文为shmilyluxinyao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。