- 1/2 stages: 单步法的历史中从SSD和YOLO-2开始引入锚框(anchor box),而两步法直到Faster RCNN才开始采用“锚”的想法。
- Anchor: 固定的参考框,使得训练时可以预设一组不同尺度不同位置的锚框,覆盖几乎所有位置和尺度, 每个锚框负责检测与其区域交叉比(intersection over union, IOU)大于阈值的目标,这样问题就转换为"这个锚框中有没有认识的目标,目标框偏离锚框多远"的问题。
UnitBox: An Advanced Object Detection Network
- 2016 's
- Key PTs: IoU loss function for bbox prediction
DenseBox: Unifying Landmark Localization and Object Detection
- 2015’s
- 直接预测目标框和目标类
- 系统流水线:
1 图像金字塔.
2 类似编码器-解码器.
3 feature map 转换成 bounding boxes,加NMS处理。
You Only Look Once (YOLO) for Object Detection
- 2015’s ~
- 检测定义为一个张量的回归问题,直接通过张量的估计得到目标框位置和类别概率。
- 注:之后YOLO-2/3版采用了anchor方法,这里也加在一起参考
YOLO9000: Better, Faster, Stronger
Darknet-19: 19 convolutional layers and 5 max-pooling layers
WordTree with 9418 classes, Combining datasets using WordTree hierarchy
YOLOv3: An Incremental Improvement
- Darknet-53
CornerNet: Detecting Objects as Paired Keypoints
- 2018 's
- 把检测目标框变成一对关键点的问题,即左上角和右下角,这样就消除了锚框的设计麻烦。另外,采用的角点池化(corner pooling)技术帮助CNN更好地定位角点位置。 下图给出了系统流程图:CNN模型输出两个关键点的各自热图(heatmap),同时各跟一个嵌入向量。同一个目标的角点,训练后的神经网络会预测类似的嵌入。
- 下图是定位的角点池化技术:每个特征图通道沿着两个方向取最大值,然后求和。
- 测试流程图:沙漏型的核心网络的后面跟着两个预测模块定位和聚类焦点。
- 定义loss函数聚类corner:push和pull
ExtremeNet: Bottom-up Object Detection by Grouping Extreme and Center Points
- 主要思想:也是将目标检测变成了纯粹关键点估计问题,包括目标的4个extreme points 和1个中心点,将这几何校准的5个点组成一个目标框。
- 下图是系统流程图:类似CornerNet,对每个目标类,CNN网络预测5个热图,只有几何中心的热图响应足够大才会生成目标框。
FSAF: Feature Selective Anchor-Free Module
- 主要思想:基于特征金字塔网络(feature pyramid structure,FPN)的在线特征选择能力, 在训练时可以动态分配每个实例到最适合的特征层,在推理时能够和带锚的模块分支一起工作,最后并行地输出预测。
FCOS: Fully Convolutional One-Stage Object Detection
- 主要思想:是分割,不需要锚框也不需要区域提议。 这样,避免了锚框在模型训练中涉及的重叠计算和性能敏感的参数设计环。
FoveaBox: Beyond Anchor-based Object Detector
- 主要思想:直接学习目标存在的概率和目标框的坐标位置,其中包括预测类别相关的语义图和生成类别无关的候选目标框,目标框的大小和特征金字塔的表示相关(如图所示)。
Region Proposal by Guided Anchoring (GA-RPN)
- 利用语义特征指导抛锚,称为指导性的抛锚。一起预测感兴趣目标的中心位置以及不同位置的尺度和长宽比。有代码: //github.com/open-mmlab/m.
CenterNet: Objects as Points.
- 把目标定义成一个单点,即目标框的中心点(下图),检测器采用关键点估计找到中心点并从其关键点的特征回归其他目标特性,如大小,3D位置,朝向和姿势。
CenterNet: Object Detection with Keypoint Triplets
- 主要思想:基于前面提到的CornerNet,检测目标变成三个关键点的估计(a triplet of keypoints)。
- 架构图:一个核心网络执行级联角点池化(cascade corner pooling)和中心点池化(center pooling ),输出两个角点热图和一个中心关键点热图;和CornerNet类似,一对检测的角点和嵌入用来检测潜在目标框;然后检测的中心关键点确定最终的框位置。
CornerNet-Lite: Efficient Keypoint Based Object Detection
- CornerNet-Saccade:缩小的图像中产生的目标框,加上attention map,预测一组可能的目标位置。在每个位置附近取一个小区域,检测目标。对检测的目标位置排序,取前k个,运行NMS。
- CornerNet-Lite:CornerNet-Saccade(attention mechanism)+ CornerNet-Squeeze
Center and Scale Prediction: A Box-free Approach for Object Detection
- 主要思想是:目标中心点,语义抽象。
- 目标检测变成一个直接的中心和尺度预测。最后卷积有两个通道,一个是关于中心位置的热图,另一个是中心的尺度图。
- CSP (Center and Scale Prediction) detector