霹雳吧啦Faster R-CNN理论合集 学习笔记

文章详细介绍了R-CNN、FastR-CNN和FasterR-CNN三种目标检测算法的工作原理,包括候选区域生成、特征提取、分类和边界框回归步骤。R-CNN的缺点在于测试和训练速度慢,而FastR-CNN通过共享特征计算提高了效率。FasterR-CNN引入了区域提议网络(RPN),进一步优化了候选框生成,实现了端到端的训练。
摘要由CSDN通过智能技术生成

本文源自b站博主霹雳吧啦Wz的学习视频:

1.1Faster RCNN理论合集_哔哩哔哩_bilibili

R-CNN

R-CNN算法流程:

1.一张图像生成1k~2k个候选区域(使用Selective Search方法)

2.对每个候选区域,使用深度网络提取特征

3.特征送入每一类SVM分类器,判别是否属于该类

4.使用回归器精细修正候选框位置

1.候选区域的生成

利用Selective  Search算法通过图像分割的方法得到一些原始区域

2.对每个候选区域,使用深度网络提取特征

      将2000候选区域缩放到227x227pixel,接着奖候选区域输入实现训练好的AlexNet CNN网络获取4096维的特征得到2000x4096维矩阵

3.特征送入每一类的SVM分类器,判定类别

         将2000x4096维特征与20个SVM(二分类分类器yes/no)组成的权值矩阵4096x20相乘,获得2000x20维矩阵表示每个建议框是某个目标类别的得分。分别对上述2000x20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该分类中得分最高的一些建议框。

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

 

解释一下:当得分最高目标与其他目标得到IoU值后,如果IoU大于给定阈值,则说明两者为同一物体,则可删除得分较低的目标,进而获得更加完美的目边界测框

4.使用回归器精细修正候选框位置 

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

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

R-CNN框架 

 R-CNN存在的问题:

1.测试速度慢:

        测试一张图片约53s(GPU).用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征操作冗余。

2.训练速度慢:

        过程及其繁杂

3.训练所需空间大:

        对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。

Fast R-CNN 

1.一张图像生成1k~2k个候选区域(使用Selective Search方法)

2.将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵

3.将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果 

1.一次性计算整张图像特征

        与R-CNN依次将候选框区域输入卷积神经网络得到特征不同,Faster-RCNN将整张图像送入网络,紧接着从特征图像上提取相应的候选区域。这些候选区域的特征不需要再重复计算。

2.RoI Pooling Layer

         将得到的特征矩阵(这里用图片表示,易于理解)划分为7x7(49)等份,划分完后对每个等份进行最大池化下采样(Maxpooling)

3.分类器

        进行Maxpooling操作后再通过全连接层提取特征得到RoI feature vector,接着并联一个全连接层用于目标概率的预测,也就是我们所说的分类器。该分类器输出N+1个类别的概率(N为检测目标的种类,1为背景)共N+1个节点

4.边界框回归器 

        与分类器类似,边界框回归器也是作为一个全连接层并联在RoI feature vector上,输出对应N+1个类别的候选边界框回归参数(dx,dy,dw,dh),共(N+1)x4个节点

 

边界框坐标计算公式

                                                          G_{x}=P_{w}d_{x}\left ( P \right )+P_{x}

G_{y}=P_{h}d_{y}\left ( P \right )+P_{y}

G_{w}=P_{w}exp\left (d_{w}\left ( P \right ) \right )

G_{h}=P_{h}exp\left (d_{h}\left ( P \right ) \right )

Px,Py,Pw,Ph分别为候选框的中心x,y坐标,以及宽高

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

Fast R-CNN框架

 Fast R-CNN相较于R-CNN,将SVM分类器和边界框回归都并联到一个全连接网络中,极大的提升了网络的速度,但是针对Selective Search算法Fast R-CNN还是没有做到最优化。

Faster R-CNN

1.将图像输入网络得到相应的特征图

2.使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵

3.将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果 

        观察上面的框架我们不难得出,Faster R-CNN相较于Fast R-CNN事实上就是将用Selective Search算法来生成候选框这一步骤替换成了用RPN来生成候选框,因此,想要弄明白Faster R-CNN,只需要在了解Fast R-CNN的基础上将RPN结构学会即可。

1.RPN

         特征图上位置对于原图,用原图的长宽除以特征图的长宽得到步距,再用滑动窗口在特征图中的坐标乘以步距即可得到在原图中的定位。

        在RPN中,是用anchor boxes来代替候选框,anchor boxes也被用来预测物体类别和边界框。其中cls有两个类别,背景和前景,分别计算出概率来做出判断,以及边界框的位置大小参数reg。

        在Faster R-CNN中给出了一些anchor boxes的尺度和比例,如图所示结合大小和比例一共有9个anchor boxes,也就是18个类别分数,36个边界框参数。

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

2.Faster R-CNN框架

        相对与R-CNN和Fast R-CNN,Faster R-CNN的网络框架更加一体化,实现了端对端的训练过程。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值