一、Anchor based
1.1 Anchor的定义
Anchor也被称为锚框,预先设置目标的大概位置,然后再在这些预设框的基础上进行精细化的调整。调整过程被包括分类 判断预设框是属于正样本+ or 负样本-和回归调整预测框的位置。
1.2 Anchor的产生
Anchor box是指在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标的主要分布+长款尺度。在训练时,由这些Anchor在特征图上滑动提取n个候选框,再做进一步的分类+回归。
Anchor based类的算法的主要步骤有:
- 生成Anchor box
- 确定正负样本
- 回归相对偏移量
- 分类目标类别
1.3 Anchor based的优缺点
优点:
可以产生密集的anchor box,使得网络可以直接进行目标分类和边界框回归。提高了目标的召回能力。
缺点:
预定义anchor box时,需要设定很多超参数(如尺度、长宽比等参数)。这些超参数的设定会影响检测性能。另外anchor based 的方法也会产生很多冗余的框,增加了计算量和内存消耗。
二、Anchor Free
Anchor Free即它不需要预设的anchor box, 它将目标检测转化为关键点检测的问题。不需要在训练之前对训练数据聚类出多个anchor box。基于Anchor Free的目标检测算法有两种方式:通过关键点检测的方法 & 通过目标物体中心定位的方法。
2.1通过关键点检测方法
它是通过目标物体的几个关键点(如左上、右下)来限定它的搜索空间,然后通过角点组合预测中心到边界的距离,进而形成检测框。
应用举例:
CornerNet/CornerNet-lite:使用两个特征检测器检测左上角点+右下角点,然后对角点进行分类(角点匹配分类+角点类别分类),再通过Embedding将处于同一部分的点进行一个组合,从而形成检测框。
2.2 通过目标物体中心来定位
此类方法在构建模型时,将目标看做为一点点,即目标框的中心点。预测中心点到GT边界的距离。该方法将检测解耦为两个头。
通过目标物体中心来定位的方法会将中心点预测和分类任务结合在一起,就不需要进行关键点检测后的分组操作。
2.3 Anchor Free的优缺点
优点:
Anchor free的优点是不需要预设anchor, 只需要对不同尺度特征图的目标中心点和宽高进行回归,减少了计算量。
同时,anchor free也可以避免一些由于anchor设置不合理导致的漏检和重复检测的问题。
缺点:
由于每个位置只预测一个框,可能会导致一些重叠或遮挡区域无法被检测。另外,需要设置一些特殊的损失函数或结构来提高精度和稳定性。
三 Anchor Based和Anchor Free的区别
- 是否使用预定义的候选框
- 正负样本的选择方式不同:
Anchor based通常通过将预测框与GT做IoU来确定正负样本。大于IoU阈值的被作为正样本,小于IoU阈值的作为负样本。其余的忽略不计。
Anchor free通过判断特征图上的点是否落GT框来确定正负样本,即将落入GT框内的所有位置都定义为正样本;最后通过4个距离值和一个中心点来检测物体。 - 回归方式不同
Anchor based是通过回归anchor box的4个偏移量(x,y,w,h)。
Anchor free是通过回归中心点到目标框四条边的距离。
参考资料
深度学习系列之Anchor based 和 Anchor free 目标检测方法
Anchor based and Anchor free(无锚VS有锚)【总结】