目标检测之RCNN与它的变种

44 阅读4分钟

二步走

R-CNN系列算法精讲:R-CNN —》Fast R-CNN —》Faster R-CNN 进阶之路_r-cnn的发展-CSDN博客

含义:“二步走”在R-CNN中指的是先生成候选区域,再对每个区域进行特征提取和分类的两个独立步骤。

1.R-CNN

开山之作RCNN原理详解 (三十)通俗易懂理解——R-CNN - 知乎

R-CNN目标检测实现的大致原理:

第一步:

通过selective search 方法生成大量候选区域(框选了目标的区域),这些区域存在大量重叠,候选区域作为下一步网络的输入

第二步:

  1. 将候选区域输入卷积神经网络进行特征提取,每个候选框都能获得对应的特征向量;
  2. 将全部候选框组合成的矩阵使用svm分类器,获得概率权重矩阵;
  3. 对概率权重矩阵做非极大值抑制(nms),获得减少后的候选区域数量;
  4. 对剩余候选区域做回归操作,得到最后的结果区域即目标。

2.Fast-R-CNN:

Fast R-CNN原理详解

改进点:只将原始的图像输入到卷积神经网络中,使得特征提取更快速

Fast-R-CNN目标检测实现的大致原理:

第一步:通过selective search 方法对图像生成大量候选区域,并记录候选区域坐标

第二步:

  1. 将原始图像输入卷积神经网络进行特征提取,获取原始图像的特征图P1
  2. 通过候选区域坐标在原始图像特征图的映射,获取候选区域特征图P2[ ]
  3. 将每个候选区域特征图通过ROI-polling层,获得固定大小的候选区域特征图P3[ ]
  4. 将固定大小的特征图展平并输入到全连接层进行特征提取,获得特征向量
  5. 全连接层的输出分别输入到两个不同的层:分类层;边界框回归层

ROI-Pooling:如果在链接文章中没看懂该操作可以看这张图 感兴趣区域池化(动画),

3.Faster-R-CNN:

Faster R-CNN原理详解目标检测系列 (三十五)通俗易懂理解——Faster R-CNN及Mask R-CNN - 知乎

改进点:不在使用selective search 方法获取候选区域,改为使用神经网络获取RPN(Region Proposal Network)获取候选网络

Faster-R-CNN目标检测实现大致原理:

  1. 将原始图像输入卷积神经网络进行特征提取,获取原始图像的特征图P1
  2. 将P1输入RPN网络,获得候选区域
  3. 通过候选区域坐标在原始图像特征图的映射,获取候选区域特征图P2[ ]
  4. 将每个候选区域特征图通过ROI-polling层,获得固定大小的候选区域特征图P3[ ]
  5. 将固定大小的特征图展平并输入到全连接层进行特征提取,获得特征向量
  6. 全连接层的输出分别输入到两个不同的层:分类层;边界框回归层

4.Mask-R-CNN:

深度学习实例分割篇——Mask RCNN原理详解篇_maskrcnn实例分割-CSDN博客 图解 RoIAlign CSDN博客 深度学习语义分割篇——FCN原理详解篇

改进点:使用了ROI-Align(升级版ROI-pooling)来获取候选区域特征图;添加了mask(以FCN网络为基)分支

Mask-R-CNN目标检测实现大致原理:

  1. 将原始图像输入卷积神经网络进行特征提取,获取原始图像的特征图P1
  2. 将P1输入RPN网络,获得候选区域
  3. 通过候选区域坐标在原始图像特征图的映射,获取候选区域特征图P2[ ]
  4. 将每个候选区域特征图通过ROI-polling层,获得固定大小的候选区域特征图P3[ ]
  5. P3进入分支1: 将固定大小的特征图展平并输入到全连接层进行特征提取,获得特征向量
  6. 全连接层的输出分别输入到两个不同的层:分类层;边界框回归层
  7. P3进入分支2: 将固定大小的特征图下采样再上采样,得到语义分割图