目录
- 简述
- One-Stage 算法
- Two-Stage 算法
- 检测的方法分析
- 后续
- 总结
简述
目标检测(Object Detection),在计算机视觉领域的任务就是给定一张图片,将图片中的物体识别并且框定出来。随着近年来的发展,其主要分成了两大类别,Two-Stage检测算法(以Faster R-CNN为代表)和以及One-Stage检测算法(以YOLO为代表)。
PS:Multi-Stage检测算法的Selective Search、Feature extraction、Location regression、Class SVM等环节都是分开训练,操作繁杂而且效果不好,所以这里默认忽视。
Two-Stage检测算法可以通过ROI pooling layer(以Faster R-CNN为例)进行结构划分,前部分提出可能存在目标的区域,后部分即目标分类和定位回归。结构如下
上图中two-stage主要处理的几个问题是:backbone进行特征提取、proposal建议区域的生成、分类和定位回归。
PS:简单说一下ROI pooling,它能接收不同尺寸的图像特征输出固定尺寸的图像特征一遍后续传入卷积网络
One-Stage检测算法的初衷是提升速度,而Two-Stage中比较耗时就是proposal建议区域生成,所以索性One-Stage方法就是直接从图像建议区域提取特征进行分类和定位回归。
注意这里的图像建议区域是直接从backbone的特征层中进行密集选取,所以一些one-stage算法也称为密集检测器。同时可以看出,one-stage主要处理的问题是:特征提取、分类和定位回归。即关键点全部在特征提取这一块上。
后面主要是按照时间顺序分类简单介绍著名的Baselines,然后分析综合一下目标检测的方法以及后续扩展。
Two-Stage 算法
R-CNN
R-CNN算是鼻祖了,虽然它不能算是Two-Stage算法,但这里还是将其简单提一下
R-CNN检测器包含4个模块:
- 使用选择性搜索方法(Selective Search)生成类别独立的区域建议
- 从每一个建议区域中提取固定长度的特征向量
- 一系列特定类别的SVMs来对目标进行分类
- Bounding Box Regression(定位回归预测)使得定位更加准确
Fast R-CNN
Fast R-CNN对R-CNN进行了许多改进:
- 从建议区域提取特征是不再是包裹的操作而是提出了ROI Pooling层并且直接输送到下一步分类和定位回归预测中
- 直接在标记的ROI上计算多任务损失化简