目标检测——R-CNN、Fast R-CNN

R-CNN

R-CNN的结构图:
在这里插入图片描述

R-CNN的基本步骤:

  1. 输入图像,使用Selective Search提取大约2000个候选区域。在这里插入图片描述

  2. 将候选区域调整成固定大小分。在这里插入图片描述

  3. 将固定大小的候选区域输入神经网络。在这里插入图片描述

  4. 将CNN的输出输入SVM中进行类别判定和边框回归。
    在这里插入图片描述

详细步骤:

  1. 预训练模型。选择一个预训练神经网络(如AlexNet、VGG)。
  2. 重新训练全连接层。使用需要检测的目标重新训练最后全连接层。
  3. 提取proposals并计算CNN 特征。利用选择性搜索(Selective Search)算法提取所有proposals(大约2000幅images),调整(resize/warp)它们成固定大小,以满足CNN输入要求(因为全连接层的限制),然后将feature map 保存到本地磁盘。
  4. 训练SVM。利用feature map 训练SVM来对目标和背景进行分类(每个类一个二进制SVM)。
  5. 边界框回归(Bounding boxes Regression)。训练将输出一些校正因子的线性回归分类器。

R-CNN的缺点:

  1. 训练步骤繁琐(微调神经网络+训练SVM+训练bbox)。
  2. 计算量大,对每个区域都要计算feather。
  3. 训练、测试均速度慢。
  4. 训练占空间。

Fast R-CNN

Fast R-CNN的创新点:

  1. 只对整幅图像进行一次特征提取,避免R-CNN中的冗余特征提取。
  2. 用RoI pooling层替换最后一层的max pooling层,同时引入建议框数据,提取相应建议框特征。
  3. Fast R-CNN网络末尾采用并行的不同的全连接层,可同时输出分类结果和窗口回归结果,实现了end-to-end的多任务训练【建议框提取除外】,也不需要额外的特征存储空间【R-CNN中的特征需要保持到本地,来供SVM和Bounding-box regression进行训练】。
  4. 用SVD对Fast R-CNN网络末尾并行的全连接层进行分解,减少计算复杂度,加快检测速度。

Fast R-CNN的结构图:
在这里插入图片描述
Fast R-CNN的系统流程图:
在这里插入图片描述

Fast R-CNN基本步骤:

  1. 首先将图片输入到Deep ConvNet(卷积)获得Conv fecture map(特征图),同时在原图中使用selective search生成RoI/region proposals(提取的候选框)
  2. 根据原图中候选框到特征图映射关系,在特征图中找到每个建议框对应的特征框(深度和特征图一致),使用RoI池化层将不同大小的RoI转换为固定大小。
  3. 固定大小的特征框经过全连接层得到固定大小的特征向量。
  4. 所得特征向量经由各自的全连接层(由SVD分解实现),分别得到两个输出向量:一个是softmax的分类得分,一个是Bounding-box窗口回归。

Fast R-CNN的一个重要特点是,整个网络(特征提取器、分类器和边界盒回归器)可以在多任务损失(分类损失和定位损失)的情况下进行端到端的训练。这提高了准确性。


SPP

SPP:Spatial Pyramid Pooling(空间金字塔池化)
空间金字塔池化可以将任意尺度的图像卷积特征转化为相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失。一般的卷积神经网络都需要固定输入图像大小,这是因为全连接层的输入需要固定输入维度,但在卷积操作时并没有对图像大小有限制,所以作者提出了空间金字塔池化方法,先让图像进行卷积操作,然后使用SPP方法转化成维度相同的特征,最后输入到全连接层。
在这里插入图片描述


RoI Pooling

RoI就是使用Select Search获取到的候选框,RoI Pooling参考了SPP的想法。

因为Fast R-CNN 使用了全连接层,最后输入的特征图大小必须固定,RoI Pooling的作用就是将尺寸不同的特征图变成尺寸固定的。

具体操作:

  1. 根据输入image,将ROI映射到feature map对应位置
    注:映射规则比较简单,就是把各个坐标除以“输入图片与feature map的大小的比值”,得到了feature map上的box坐标
  2. 将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同)
  3. 对每个sections进行max pooling操作

在这里插入图片描述
Fast R-CNN的缺点:

  1. FastR-CNN依赖于外部区域的建议方法,如选择性搜索。
  2. 使用RoI Pooling出现The Misalignment Problem 精度丢失问题。

参考资料

https://github.com/scutan90/DeepLearning-500-questions/blob/master/ch08_%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/%E7%AC%AC%E5%85%AB%E7%AB%A0_%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值