计算机视觉之目标检测算法系列

学习笔记

关于目标检测

接上一篇的卷积神经网络,目标检测是基于卷积神经网路实现的.目标检测是找出图像或视频中人们想要的物体,并同时检测出它们的位置和大小

目标检测构成了许多其它视觉任务的基础,

  • 实例分割,图像标注&目标跟踪

如今的目标检测的算法主要有两类.

  • two stage简单说就是两步走:定位+分类.通过专门模块去生成候选框,寻找前景以及调整边界框,之后进行分类.算法有Faster R-CNN
  • one stage相对于上面的算法.直接基于anchor直接进行分类以及调整边界框.算法有SSD,YOLO

两种方式各有各的特别,Two-Stage很明显检测的精度要高一点,但是检测速度慢;One-Stage放弃了高精度,但是换来了速度,速度比Two-Stage算法快很多

two-stage算法

所谓的Faster R-CNN其实就是*[fast]+[region]+[CNN]*
首先是R-CNN.就是框选+分类.卷积神经网络CNN上篇已经说过
简单的实现步骤就是

  1. 对图像生成1k-k个候选区域.(使用Selective Search进行,即通过对图像特征的分析生成的候选区域)
  2. 对于每一个候选区域使用深度网络进行特征提取
  3. 特征提取完毕后使用SVM支持向量机分类
  4. 使用回归器计算偏移量修正候选框与目标的位置偏移

其次是fast R-CNN是在R-CNN基础上发展而来的.
区别是

  • 首先将图像进行卷积层的处理,形成特征图
  • 在划分和特征图上进行SS处理,获取候选框.在池化层进行ROI(region of interest)统一化.
  • 最后是全连接层的分类与回归的工作
    计算机视觉之目标检测算法系列_第1张图片

最后是Faster-RCNN
在fast- RCNN的基础上,候选框的提取技术由SS技术改变为RPN技术
所谓的RPN技术就是

  • 为输入特征图的每个像素点生成9个侯选框
  • 对生成的基础侯选框做修正处理,就是删除不包含目标的候选框
  • 对超出图像边界的侯选框做裁剪处理
  • 忽略掉长或者宽太小的侯选框
  • 对当前所有候选框做得分高低排序,选取前12000个侯选框
  • 排除掉重叠的侯选框
  • 选取前2000个做二次修正
    概括来说就是对于特征图预先生成候选框,后期对于候选框中的情况做不同程度的处理
    ,排序进而选择出最终的候选框.
    计算机视觉之目标检测算法系列_第2张图片
    R-CNN系列框架
    计算机视觉之目标检测算法系列_第3张图片

One stage算法

首先是SSD算法,对比于two stage算法,one stage 不再使用候选框框取+分类器分类的两步.而是将图像的特征图划分为N*N的块.在每一个块中若干预设默认的候选区域.
在候选区域中进行检测,在训练时,将生成的默认候选区域与实际标注区域做交并集合处理,从而得到目标的大致形状.
这里的多卷积层可以检测不同尺度的目标,解决了two-stage检测小目标不准确的缺点
如图:
计算机视觉之目标检测算法系列_第4张图片
yolo系列是当下使用最多的目标检测算法.相较于SSD.YOLO在检测时只使用了最高层的特征图,而SSD使用了多个辅助卷积层的特征图综合选取.

参考:
知乎
思否

你可能感兴趣的:(计算机视觉,目标检测,深度学习)