学习笔记
关于目标检测
接上一篇的卷积神经网络,目标检测是基于卷积神经网路实现的.目标检测是找出图像或视频中人们想要的物体,并同时检测出它们的位置和大小
目标检测构成了许多其它视觉任务的基础,
- 实例分割,图像标注&目标跟踪
如今的目标检测的算法主要有两类.
- 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上篇已经说过
简单的实现步骤就是
- 对图像生成1k-k个候选区域.(使用Selective Search进行,即通过对图像特征的分析生成的候选区域)
- 对于每一个候选区域使用深度网络进行特征提取
- 特征提取完毕后使用SVM支持向量机分类
- 使用回归器计算偏移量修正候选框与目标的位置偏移
其次是fast R-CNN是在R-CNN基础上发展而来的.
区别是
- 首先将图像进行卷积层的处理,形成特征图
- 在划分和特征图上进行SS处理,获取候选框.在池化层进行ROI(region of interest)统一化.
- 最后是全连接层的分类与回归的工作
最后是Faster-RCNN
在fast- RCNN的基础上,候选框的提取技术由SS技术改变为RPN技术
所谓的RPN技术就是
- 为输入特征图的每个像素点生成9个侯选框
- 对生成的基础侯选框做修正处理,就是删除不包含目标的候选框
- 对超出图像边界的侯选框做裁剪处理
- 忽略掉长或者宽太小的侯选框
- 对当前所有候选框做得分高低排序,选取前12000个侯选框
- 排除掉重叠的侯选框
- 选取前2000个做二次修正
概括来说就是对于特征图预先生成候选框,后期对于候选框中的情况做不同程度的处理
,排序进而选择出最终的候选框.
R-CNN系列框架
One stage算法
首先是SSD算法,对比于two stage算法,one stage 不再使用候选框框取+分类器分类的两步.而是将图像的特征图划分为N*N的块.在每一个块中若干预设默认的候选区域.
在候选区域中进行检测,在训练时,将生成的默认候选区域与实际标注区域做交并集合处理,从而得到目标的大致形状.
这里的多卷积层可以检测不同尺度的目标,解决了two-stage检测小目标不准确的缺点
如图:
yolo系列是当下使用最多的目标检测算法.相较于SSD.YOLO在检测时只使用了最高层的特征图,而SSD使用了多个辅助卷积层的特征图综合选取.