深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)

 

基于深度学习的目标检测算法

基于深度学习的目标检测算法主要分为两大类:Two-stage和One-stage

 

基于Two-stage的目标检测算法基本介绍

通过一个完整的卷积神经网络CNN来完成目标检测的过程

是通过CNN来提取对候选区域目标的特征的描述

 

准确度和精度高,速度相对one-stage慢些

 

Two-stage基本流程

two-stage检测算法将检测问题划分为两个阶段,首先产生候选区域(region proposals),然后对候选区域分类(一般还需要对位置精修)

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第1张图片

RPN网络 叫做 区域候选网络/区域生成网络

roi_pooling层可以理解为抠图

Lcls和Lreg是分类和回归两个分支

回归损失函数  lreg
分类损失很熟  lcls
 

 

Two-stage常见算法

  • RCNN
  • Fast RCNN
  • Faster RCNN
  • Faster RCNN变种

 

Two-stage 核心组件

  • CNN网络
  • RPN网络

 

CNN网络设计原则

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第2张图片

 

 

基于One-stage的目标检测算法基本介绍

One-stage目标检测算法也是使用CNN网络来进行特征抽取,但与Two-stage的区别是One-stage算法会直接回归物体的类别概率和位置坐标值,无RPN网络

One-stage目标检测算法速度相对于Two-stage快,但准确度低

 

One-stage基本流程

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第3张图片

 

One-stage常见算法

  • Yolo V1/V2/V3
  • SSD / DSSD
  • Retina-Net

 

One-stage核心组件

  • CNN网络
  • 回归网络

 

CNN网络设计原则

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第4张图片

 

回归网络

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第5张图片

区域回归就是指通过回归网络直接输出最终目标的bounding box的位置信息(bounding box就是矩形框

GT就是Ground Truth

置信度的值表达了当前这个格子中是否包含目标区域的可能性,置信度的值约趋近于0,就越偏向于不包含

 

回归网络预测过程

以Yolo为例

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第6张图片

这是整个网络预测的一个过程

首先会针对于整张图片进行划分,划分成s*s的格子,然后对于每个网格来分别预测以当前这个网格为中心的目标区域的位置信息,对每个格子还会预测一个置信度,描述当前这个格子中是否存在目标的概率值

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第7张图片

还会预测出当前这个格子所属的目标的类别的概率值(class probability map)

因为Yolo算法在划分格子的时候可能会忽略掉其中的小物体,比如在检测鸟群的时候,一个格子可能会包含两只鸟,这时我们在进行检测的时候可能会产生漏检的情况,这也是Yolo算法性能比不上SSD/FastRCN算法的一个主要原因

 

One-stage VS Two-stage

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第8张图片

深度学习之目标检测(三)—— 基于深度学习的目标检测算法(Two-stage & One-stage)_第9张图片

在云端的应用可能用Two-stage的多

在终端、嵌入式上可能用One-stage的多

 

 

 

你可能感兴趣的:(深度学习,目标检测)