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

  • Two-stage(Faster RCNN系列)
  • One-stage(YOLO和SSD系列)

1. Two-stage基本介绍

  • CNN卷积特征
  • R.Girshick et al.,2014年提出R-CNN到Faster RCNN
  • 端到端的目标检测(RPN网络)
  • 准确度高、速度相较于one-stage慢

1.1 基本流程

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

1.2 核心组件

1.2.1 CNN卷积神经网络

一般CNN设计原则:

  • 一是从简到繁再到简的卷积神经网络。最开始的卷积神经网络是比较简单的,最经典的是Lenet,但是它的性能就相对较差,在大规模的任务中就会到达瓶颈,在网络中的表达能力就相对弱一些。之后又提出了Alexnet,VGGnet,Resnet,Goolenet,Densenet等等一些复杂的网络。这些网络发展主要是分为两个方向,一是增加网络的深度,尽可能的去增加网络深度,因为网络越深,它的非线性表达能力越强,在现实生活中,我们遇到的问题一般都是非线性的,因此这样可以得到物体更抽象的表达,而且网络越深,它对于图像 最初的一些变化更加不敏感,即鲁棒性更好,但是这样会出现两种问题,增加网络的规模,也会导致梯度消失或者说是梯度弥散的问题。二是增加网络的宽度,通过加大网络的宽度来增强网络的表达能力,比较有代表性的就是谷歌提出来的一系列 Inception 结构。
  • 更轻量级的CNN网络。之后在设计网络时考虑性能和网络模型大小的平衡,其中比较具有代表性的就包括了Mobilenet,ShuffleNet等。
  • 多尺度融合网络。通过融合不同尺度下的特征来提高网络的表达能力。

1.2.2 RPN 网络

  • 区域推荐(Anchor机制)
    基于深度学习的目标检测算法(一)
  • ROI Pooling
    输入:特征图、rois以及ROI参数; 输出:固定尺寸的的feature map
  • 分类和回归

1.3 改进方向

  1. 更好的网络特征;
  2. 更精准的RPN;
  3. 更完善对的ROI分类
  4. 样本后处理
  5. 更大的mini-Batch

2. Two-stage 常见算法

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