目标检测算法之RCNN|Fast R-CNN|Faster R-CNN

该文来自于教程:https://www.bilibili.com/video/BV1af4y1m7iL?p=3&spm_id_from=pageDriver

RCNN

算法流程

1. 使用select search方法生成1K-2K个候选区域

使用select search算法通过图像分割方法得到一些原始区域,然后使用合并策略将这些区域合并,得到一个层次化的区域结构,其中可能包含对应的物体。
在这里插入图片描述

2. 对每个候选区域,使用深度网络提取特征(图片分类网络)

将2000个候选区域缩放到227×227像素,接着将候选区域输入到CNN网络中获取4096维特征得到2000(候选框的个数)*4096维矩阵。
在这里插入图片描述

3. 将特征送到每一类的SVM分类器,判断是否属于该类(以pascal VOC数据集为例)分类

将2000×4096维特征与20个SVM 组成的权值矩阵4096×20相乘,就能得到2000×20维的矩阵表示每个建议框对每个类别的得分(该建议框归属于每个类别的概率,每一行表示一个候选框针对每个类别得到的分数),分别对2000*20矩阵的每一列进行非极大值抑制除去重叠的框,得到该类中得分最高的一些建议框。
在这里插入图片描述

IOU
在这里插入图片描述非极大值抑制
寻找得分最高的目标——》计算其他目标与该目标的iou值——》删除所有IOU 大于给定阈值的目标(当大于一定的阈值时,我们就认为这两个目标是同一个目标,将概率低的删掉)
接下来按照同样的流程遍历完所有的边界框。

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

对NMS处理后剩下的建议框进一步筛选,接下来分别使用20个回归器对20个类别中剩下的建议框进行回归操作,最终会得到每个类别修正后得分最高的边界框(bounding box)
在这里插入图片描述缺点:
测试速度比较慢、一个图像的候选框直接存在大量重叠,提取特征操作冗余
训练速度慢、过程繁琐
训练所需的空间大(提取的多个建议框都会送入到卷积网络中提取特征,并写入磁盘)
在这里插入图片描述

Fast R-CNN

在这里插入图片描述
1 使用select search方法生成1K-2K个候选区域

2 将图像输入到网络得到相应的特征图,将ss生成的候选框投影到特征图上获得相应的特征矩阵。
正样本:候选框与真实的目标边界框的IoU大于0.5
负样本:候选框与所有真实目标的边界框的IOU 值为0.1-0.5
这里是从2000个候选框中采集64个候选框,一部分是正样本,一部分是负样本。

3 将每个特征矩阵通过ROI(感兴趣区域) pooling层缩放到7×7大小的特征图。
对每个候选区域划分成7×7的块,对每个块执行最大池化采样,就能得到7×7的特征矩阵。
在这里插入图片描述
4 接着将特征图展平通过一系列的全连接层得到预测结果。

分类器
输出N+1个类别的概率,第一个概率表示类别为背景的概率

边界框回归器
输出对应N+1个类别的候选边界框的回归参数(dx,dy,dw,dh)共有(N+1)*4个节点。
在这里插入图片描述
损失
[u>=1]是艾弗森括号当满足条件时为1,不满足条件时为0

分类损失
在这里插入图片描述
边界框回归损失
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Faster R-CNN(RPN+Fast R-CNN)

在这里插入图片描述

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

RPN的结构
在这里插入图片描述
首先使用滑动窗口在特征图上滑动,每滑动到一个位置就生成一个向量,再通过两个全连接层输出目标概率(2K表示k个anchor box中分别为前景与背景的概率)与边界框回归参数(4k表示k个anchor的4个回归参数),图中的256表示使用ZF作为主干,其深度为256。

anchor box:特征图中的每个滑动窗口的中心点对应原图上对应的位置,在该根据不同的尺度和比例计算出9个anchor box,因此每个点处会生成18个概率分数,36个回归参数。

文中给出的尺度(面积)为:(1282,2562,5122)
比例:(1:1,1:2,2:1)

感受野计算
在这里插入图片描述
注意:anchor与候选框不是同一个,候选框是anchor经过RPN的回归参数调整之后得到的。

对于RPN的训练,是从k个anchor中采样256个anchor,其中包含正样本与负样本,比例约为1:1。并将正负样本之外的anchor全部丢掉。
正样本:anchor与真实的目标边界框的IoU大于0.7或者是anchor与某一个ground truth的IOU是与该groud truth 相交的anchor中IOU最大的。
负样本:候选框与所有的ground-truth的IOU 值都小于0.3

损失计算
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
faster R-CNN训练:现在一般采用联合训练,将RPN 与fast R-CNN的损失加在一起进行联合训练。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RCNNFast R-CNNFaster R-CNN、SSD都是经典的目标检测算法,它们的主要思想是通过深度学习的方法来实现对图像中目标的检测和识别。 RCNN全称Region-based Convolutional Neural Network,它是第一个将深度学习应用到目标检测中的算法RCNN目标检测问题分解为两步:1. 生成候选区域;2. 对候选区域进行分类。具体来说,RCNN首先使用一种称为Selective Search的算法来生成候选区域,然后使用卷积神经网络(CNN)对每个候选区域进行特征提取,并使用支持向量机(SVM)进行分类。RCNN的缺点是速度慢,需要对每个候选区域进行卷积和分类。 Fast R-CNN相比RCNN有了较大的性能提升。Fast R-CNN不再对每个候选区域进行卷积和分类,而是在整张图像上进行卷积和池化操作得到一个特征图,然后将每个候选区域映射到特征图上,从特征图中提取对应区域的特征,并输入到全连接层进行分类。这种方式使得Fast R-CNN在速度上有了明显的提升。 Faster R-CNN进一步提高了检测速度。Faster R-CNN引入了一个称为Region Proposal Network(RPN)的网络,用于生成候选区域。RPN与Fast R-CNN共享卷积层,这样可以避免重复计算。在RPN中,每个候选区域由一个框和一个分数表示,这些框被传递给Fast R-CNN进行分类。 SSD(Single Shot MultiBox Detector)也是一种经典的目标检测算法,它也是基于深度学习的方法。SSD与前面介绍的算法不同之处在于,它在一张图像上直接预测出所有目标的位置和类别,而不需要生成候选区域。具体来说,SSD在网络中引入了多个不同分辨率的特征图,并对每个特征图进行不同大小和宽高比的锚框(anchor box)预测。这种方式使得SSD具有较高的检测速度和较好的检测精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值