静态目标检测网络架构发展

图像中目标检测的任务是分类+定位,所以与CNN基础架构相比,有以下几个针对性改进:

  • 输出结构包含两部分:该目标属于某个类别的置信度,该目标的最小外接矩形
  • 输入不是全图,而是候选目标区域(object proposal)

深度目标检测算法(网络架构)的发展历程:
R-CNN -> Fast R-CNN -> Faster R-CNN -> FCN -> YOLO -> SSD -> FPN -> Mask R-CNN
某种角度上,本质可以看做是object proposal 提取方式的发展史。

R-CNN(2014)

预先计算object proposal(selective search)+ 传统分类深度网络。分类pre-training,检测fine-tuning。
静态目标检测网络架构发展_第1张图片
算法步骤:

  • 在图像上生成objective proposal
  • 在每个proposal上运行卷积神经网络,提取图像特征
  • 将提取的图像特征分别送入Bbox(线性回归器)和SVM进行边框修正和分类

优点:
简单,易理解
缺点:
各个步骤是分离的,非常耗时,太依赖objective proposal算法。

Fast R-CNN

预先object proposal + Spatial pyramid pooling network. 分类+定位联合优化。
静态目标检测网络架构发展_第2张图片
算法过程和R-CNN基本一致。但中间很多细节有所不同。
优点:

  • 只需要训练一次CNN进行特征提取
  • 使用softmax代替多个SVM
  • 对输入图像大小没有要求,不需要缩放操作
  • 分类,检测 loss同时进行优化,能够彼此影响

缺点:
仍然依赖object proposal算法

【Fast R-CNN中引入ROI pooling层的作用】
ROI pooling 也是一种pooling层,是将任意大小的输入经过pooling,得到固定大小的输出。自然地,在pooling过程中是按照输入输出比例,得到pooling窗口的大小,使用max pooling得到最终固定大小的输出。
相比于R-CNN, Fast R-CNN不再是已经提取好的proposal,而是原始图片。使用CNN网络提取到整个图片的feature map,然后在feature map上得到ROIs, 使用ROI pooling转化为固定大小的输出,然后在送入分类和检测网络中,共同优化。

Faster R-CNN

深度网络预测object proposal。分类,定位,检测联合优化。引入一个region proposal network, 该子网络和分类检测网络共享CNN提取的feature map。 RPN的原理如下:
静态目标检测网络架构发展_第3张图片

  • 为卷积特征图的每个3*3区域,生成k个固定比例的anchor boxes。即第一批候选目标区域

  • 将候选目标区域输入两个子网络:

    • 该区域是否是一个object?输出置信度
    • 该区域的精确边界。输出四个表征该区域的边界框坐标参数

整个Faster R-CNN的网络如下:
静态目标检测网络架构发展_第4张图片
算法步骤: RPN + Fast R-CNN
优点:
相比于Fast R-CNN,

  • 检测精度最高
  • 预测,分类,检测同时优化
  • 快速准确object proposal, 速度和精度的高平衡

缺点:
仍有提速空间,对于小目标容易失效(在feature map上进行提取)

SSD YOLO

SSD: 多尺度anchor boxes作为proposal直接进行分类和定位 + NMS。Faster R-CNN的减法。
YOLO 核心思想:
利用整张图作为输入,直接在输出层回归bounding box的位置和所属类别。整个网络是个回归函数。

你可能感兴趣的:(CV)