您的位置:首页 > 其它

深度学习目标检测算法综述(Two-stage,One-stage)

2019-04-01 15:27 691 查看

two-stage

一 Two-stage基本介绍

         CNN卷积特征

         R.Girshick et al.,2014提出R-CNN到faster RCNN

         端到端的目标检测(RPN网络)

         准确率高,速度相对one-stage慢

                            

二 Two-stage常见算法

     RCNN

     Fast-RCNN

     Faster-RCNN

     Faster-RCNN变种

三 Two-stage核心组件

  • CNN网络:

    CNN网络设计原则:

        1.从简到繁再到简的卷积神经网

        2.多尺度特征融合的网络

        3.更轻量级的CNN网络

  • RPN网络(region proposal network) 

              

        1.区域推荐(Anchor机制)

                对于当前的feature map,它的大小为n * c * w * h,anchor是指对于feature map上一个w * h大小的一个feature map,选择其中的每一个点作为一个锚点,锚点就是候选区域的中心点。每一个点作为中心点去提取候选区域,每个点都称之为anchor。候选区域在提取出来之后,则会利用真值(GT)对候选区域进行筛选,筛选之后得到正样本和负样本,正样本是包含了候选目标的区域,负样本则是不包括的。包含还是不包含通常会通过iou来判定真值和候选区域的重叠面积。

        2.ROI Pooling

               输入:特征图,rois(1*5*1*1)以及roi参数

               输出:固定尺寸的feature map

        3.分类和回归

三 Two-stage改进方向

1.更好的网络特征

2.更精准的RPN

3.更完善的ROI分类

4.样本后处理

5.更大的mini-Batch

One-stage

一 One-stage基本介绍

1.使用CNN卷积特征

2.直接回归物体的类别概率和位置坐标值(无region proposal)

3.准确率低,速度相对two-stage快

One-stage基本流程:

              

由此流程图可以看出,one-stage和two stage最大的区别在于是否包含了候选区域目标推荐的过程

二 One-stage常见算法

1.YOLO V1/V2/V3

2.SSD/DSSD等

3.Retina-Net

等等

                

三 One-stage核心组件

1. CNN网络

    CNN网络设计原则:

        1.从简到繁再到简的卷积神经网

        2.多尺度特征融合的网络

        3.更轻量级的CNN网络

2. 回归网络

  •     区域回归(置信度,位置,类别)

区域回归实际上就是指通过回归网络直接输出最终目标的bounding box的位置信息

置信度表达了当前的bounding box中是否存在目标,如果存在目标,他就是一个目标区域;如果不存在目标就是一个背景区域

      

  •     anchor机制(SSD)

通过anchor机制去找到不同的推荐区域,anchor机制属于RPN网络的核心组件,由此可以看出,one-stage和two stage最大的区别在于是否存在RPN网络

如何利用回归网络来进行预测的过程(以yolo为例):

                 

对于SSD,Faster-RCNN这样的检测网络而言,最终输出的bounding box它本身预测出的概率分布就可以直接用于NMS算法所需要的类别置信度分数;在YOLO算法中我们需要额外处理的一步就是将图中中间两个结果进行融合,这里的融合其实就是将两个置信度相乘,得到最终的分数置信度,然后再将bounding box的位置信息和分数置信度作为NMS的输入,得到最终bounding box的输出。相比于Faster-RCNN这样的two-stage目标检测算法以及one-stage目标检测算法中的SSD算法,YOLO算法是一个纯粹的回归网络,整个算法的流程相对而言也是更加的简单。因此YOLO算法相比于SSD算法而言,它的整体检测效率会更高,但是在YOLO算法中,通常由于我们采用了格子划分的方式,认为每一个格子点都是目标检测区域的中心点,那有可能我们划分的格子都不是目标的中心点。因此我们基于中心点来预测目标区域,所对应的bounding box的信息这样一个前提假设,会导致我们最终预测出的检测框相比于SSD,Faster-RCNN而言,准确度会更低。在一个,在YOLO算法中,由于我们在划分格子的时候,可能会忽略掉其中的小物体,在检测的时候可能会产生漏检的情况。这也是YOLO算法比不上SSD,Faster-RCNN算法的一个主要原因。但是,YOLO算法的整体检测速度是非常快的,尤其是在一些实时任务中,YOLO算法具有它独特的优势。

总结:

              

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: