基于Two-stage的目标检测算法综述

主要是通过完整的卷积神经网络来完成目标检测的过程。

  • CNN卷积特征
  • R-CNN到faster RCNN
  • 端到端的目标检测(RPN网络)
  • 精确度高、速度相对One-stage慢

基本流程:
目标检测算法基础介绍----(3)Two-stage介绍(笔记)
输入图片------对图片进行深度特征的提取(主干神经网络)------RPN网络完成滑动窗口所完成的任务,也就是产生候选区域,完成候选区域分类(背景和目标)对目标的位置进行初步定位-------为了不重复的计算CNN特征,通过roi_pooling完成抠图操作-----fc全连接层对候选区域进行表示----分类和回归对候选目标的类别判定和位置精修(得到物体的真实类别)

Two-stage常见算法

  • RCNN
  • Fast RCNN
  • Faster RCNN
  • Faster RCNN变种
    目标检测算法基础介绍----(3)Two-stage介绍(笔记)

Two-stage核心组件

  • CNN网络
  • RPN网络

CNN网络设计原则

  • 从简到繁再到简的卷积神经网
  • 多尺度特征融合的网络
  • 更轻量级的CNN网络

RPN网络

  • 区域推荐(Anchor机制)
  • ROI Pooling
  • 分类和回归

目标检测算法基础介绍----(3)Two-stage介绍(笔记)
RPN网络

  • 区域推荐(Anchor机制)
    目标检测算法基础介绍----(3)Two-stage介绍(笔记)
    对当前的feature map的大小是n * c * w * h
  • n是batch size处理样本的数量
  • c是feature map的个数,也就是channel数量
  • w、h是当前feature map的宽高。
    Anchor就是对于feature map上,也就是w * h这样大小的的feature map选取每一个点作为锚点(也就是候选区域的中心点),利用每一个点提取候选区域,这样的每一个点都称之为一个Anchor。选取候选区域是会按照一定的比例。在利用真值对候选区域进行筛选正负样本,正样本就是包含了候选区域的样本,负样本就是不包含的,包不包含通常会用IOU判别。

如何判断在当前的feature map( w × h的)的候选区域同真值的候选区域的重叠面积呢?
需要用到对神经网络进行特征提取时候的pooling层,在使用pooling层对图像进行下采样的时候,图像也是按照一定的倍数在进行下采样,也就是相对位置,原比例也是下采样的比例。

RPN网络

  • ROI Pooling
  • 输入:特征图、rois(1 × 5 × 1 × 1)以及ROI参数(下采样尺度)
  • 输出L固定尺寸的feature map
    ROI Pooling实际上是RPN网络上的一个层,对于当前的层,它的输入包括当前的特征图、rois也就是区域的坐标, 最后欧是ROI参数,如果当前区域下采样8倍,参数就是八分之一,也就是按照八分之一的比例进行抠图。rois区域是五个值,x,y,w,h,当前ROI信息(索引i,表示当前ROI对当前输入图的第几个图片)。

Two-stage改进方向

  • 更好的网络特征
  • 更精准的RPN
  • 更完善的ROI分类
  • 样本后处理
  • 更大的mini-Batch

相关文章: