anchor_free and anchor_based的简单理解

anchor_free and anchor_based的简单理解

参考自(https://www.zhihu.com/people/AI_team-WSF)

anchor_based

目标检测中一般用到的就是anchor_based。那么什么是anchor_based呢?
在一张图片上放置大量的预先定义好的 anchor boxes,然后预测其类别,优化这些anchor boxes的坐标,最终将这些优化后的 anchor boxes作为检测结果输出。
anchor_based又分为单阶段检测和双阶段检测,我们熟知的faster-rcnn就是双阶段检测,SSD就是单阶段检测。

**双阶段方法。**Faster R-CNN 的出现确立了双阶段、anchor-based 检测器的主导地位。Faster R-CNN 由一个 RPN 网络和一个 region-wise 的预测网络(R-CNN)组成,然后预测目标。之后,人们又提出了许多的算法来提升其表现,包括结构重新设计、注意力机制、多尺度训练、训练策略和损失函数、特征融合和增强、候选框平衡等。目前在标准的检测基准上,SOTA的结果仍然被双阶段anchor-based方法统治。

**单阶段检测器。**随着SSD的出现,由于其计算效率高,单阶段检测器吸引了很多人的关注。SSD 在卷积网络的多尺度上展开 anchor boxes,直接预测物体的类别和 anchor box 偏移量。随后,人们又从多个方面进行大量的工作来提升其性能,如不同层之间上下文信息融合、从零开始训练、引入新的损失函数、anchor优化与匹配、结构重设计、特征增强和对齐等。现在,单阶段 anchor-based 方法已经可以取得与双阶段 anchor-based 方法类似的性能,而速度要更快。

anchor_free

由于FPN和 Focal Loss 的出现,最近学术领域又开始关注在 anchor-free 检测器上。Anchor-free 检测器以两种不同的方式来直接找到物体,无需预先定义 anchors。一种方式是首先定位到多个预定义或自学习的关键点,然后约束物体的空间范围。作者称这种 anchor-free 方法为 keypoint-based 方法。另一种就是利用中心点或中心目标区域来定义正样本,然后预测它到目标四个边的距离。这类 anchor-free 方法被称作为 center-based 方法。这些 anchor-free 方法降低了有关anchor的超参数,取得的效果与 anchor-based 方法类似,使它们更具泛化潜能。

基于关键点的方法:这类 anchor-free 方法首先定位到预先定义或自学习的关键点,然后生成边框来检测物体。CornerNet 通过一对关键点(左上角和右下角)来检测物体的边框,CornerNet-Lite 引入了 CornerNet-Saccade 和 CornerNet-Squeeze 来提升其速度。Grid R-CNN 的第二个阶段利用FCN的位置敏感的优点来预测网格点,然后再判断边框、定位物体。ExtremeNet 检测物体的4个点(最上面、最左面、最下面、最右面)以及一个中心点来生成物体的边框。Zhu 等人利用关键点估计来找到物体的中心点,然后回归出其他的属性,包括大小、三维位置、朝向、姿态等。CenterNet 扩展了CornerNet,通过三个点而不是两个点来提升精度和召回率。RepPoints 将物体表示为一个样本点的集合,通过约束物体的空间范围、强调语义重要的局部区域来学习。

**Center-based methods:**这类方法将物体的中心区域(中心点或区域)看作为前景,定义正样本,然后预测它到物体四个边的距离。YOLO 将图像分割为S×SS\times SS×S个网格,如果物体的中心点落在了某网格内,该网格就要负责检测该目标物体。DenseBox 利用物体中心位置的圆圈区域来定义正样本,然后预测该圆圈到物体边界的四个距离。GA-RPN 将物体中心区域的像素点定义为正样本,为 Faster R-CNN 预测物体候选框的位置、宽度和高度。FSAF 在 RetinaNet 之上加了一个 anchor-free 的分支和在线特征选取机制,这个分支将物体的中心区域定义为正样本,利用它到物体的四个边的距离来定位它。FCOS 将物体边框内的所有位置都定义为正样本,然后通过4个距离值和1个 centerness 分数来检测物体。CSP 只将物体的中心点定义为正样本,通过固定的 aspect ratio 来检测行人。FoveaBox 将物体的中间部分位置定义为正样本,每个位置有4个距离来进行检测。

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