传统的目标检测流水线
1.候选区域生成
通过滑动窗口选择感兴趣区域Rol;使用多尺寸的输入图像和多尺度的滑动窗口识别多尺度和不同比例的目标。
⒉特征向量抽取
常用SIFT、 Harr、HOG、SURF。
3.区域分类
常用支持向量机。
结合集成、串联学习、梯度提升的方法提高准确率。
卷积神经网络(CNN)应用于目标检测
1.两阶段方法Two-Stage Detectors
先生成候选区域,再对区域做预测。精度高,速度慢。如:R-CNN、SPP-net、fast R-CNN、faster R-CNN、
R-FCN、FPN、 Mask R-CNN
⒉.单阶段方法One-Stage Detectors
把图像的每个区域看作候选区域。精度低,速度快。如: OverFeat、YOLO、SSD、RetinaNet、YOLOv2、
YOLOv3、CornerNet、YOLOv4
R-CNN的主要结构
1.选择候选区域
2.缩放区域尺寸
3.训练CNN计算特征
4.训练SVM进行分类
5.边界框回归修正模型
SPPNet
SPP层的实现
1.输入图像经过卷积层得到特征图像
2.对于特征图像按照预先给定的(s x s)划分成子区域,分通道进行最大池化;若s取1、2、4,共21个池化箱;
每个池化箱的维度为输出通道数。
3.若进行目标检测,上述操作对Rol映射区域进行。
4.得到固定长度的输出张量,输入FC层。
Fast R-CNN
Fast R-CNN的主要结构
1.选择候选区域
2.CNN特征映射
3.Rol池化
4.FC网络多任务评估
Faster R-CNN
【【精读RCNN】03选择性搜索,selective search】 https://www.bilibili.com/video/BV1wN4y1w7zF/?share_source=copy_web&vd_source=9ee2521627a11b87c06e3907e194e1ab
Anchor-Based方法
在卷积特征图像上,用NxN的滑动窗口处理,每次窗口滑动时为其中心像素设置k个anchor。
每个anchor包含两类参数:第一类用来区分其是目标还是背景,共产生2k个参数,用于分类;第二类用来对边界框进行预测,共产生4k个参数,用于回归。
Feature Pyramid Networks
FPN主要有三个部分:①自底向上的通路
实现前向传播,生成不同程度的分辨率和语义信息。
②自顶向下的通路
生成多尺度的特征映射。③平衡连接
连接卷积特征与构造特征。为特征映射增加图像信息。
Cascade R-CNN
1.cascade不断改变了proposal的分布,并且通过调整阈值的方式重采样;
2.cascade在train和inference时都会使用,并没有偏差问题;
3.cascade重采样后的每个检测器,都对重采样后的样本是最优的,没有mismatch的问题
YOLO
YOLO将目标图像划分成S×S个栅格,每个格子预测B个边界框和C个目标的置信度,每个边界框参数包含坐标的偏移、(相对于整体归—化的)高度和宽度以及边界框的置信度。最终形成S×Sx(B×5+C)维张量。
SSD
单阶段,作者提出了一种目标检测框架: SSD。这种方法选取多个卷积层的特征映射配置预设的anchor,综合获得检测结果,从而提高精度。
目标检测的未来..
- 基于anchor的方法引入了很强的先验知识;【人为引入一些目标边界框的先验尺寸,然后对目标的偏差进行修正】
- anchor-free的方法需要找到有效的区域生成策略;
- 如何使用更多的语境信息;
- 寻找更大的benchmarks;
- low-shot目标检测,即样本很少的情况下如何检测;
- 基于AutoML的检测,找到低消耗的方法;
- 设计检测的backbone网络
- 如何增加检测训练时的batch size