目标检测Anchor-based 与 Anchor-free

一.二者对比

anchor-free和anchor-based是两种不同的目标检测方法,区别在于是否使用预定义的anchor框来匹配真实的目标框。 anchor-based方法使用不同大小和形状的anchor框来回归和分类目标,例如faster rcnn、retinanet和yolo等。anchor-free,例如fcos、atss和cornernet等。anchor-free方法比anchor-based方法更简单和灵活,但可能存在召回率或定位精度低的问题。

anchor-based

深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题。在单阶段检测器中,这些候选区域就是通过滑窗方式产生的 anchor;在两阶段检测器中,候选区域是 RPN 生成的 proposal,但是 RPN 本身仍然是对滑窗方式产生的 anchor 进行分类和回归。

anchor-free

anchor-free是通过另外一种手段来解决检测问题的。同样分为两个子问题,即确定物体中心和对四条边框的预测。预测物体中心时,将中心预测融入到类别预测的 target 里面,也可以预测一个 soft 的 centerness score。对于四条边框的预测,则比较一致,都是预测该像素点到 ground truth 框的四条边距离,不过会使用一些 trick 来限制 regress 的范围。

优缺点

anchor-based

anchor based的优点是可以产生密集的anchor box,使得网络可以直接进行目标分类和边界框回归,提高了目标召回能力,尤其对小目标检测有明显的提升。

anchor based的缺点是需要设定很多超参数,如尺度、长宽比等,这些参数很难设计,并且会影响检测性能。另外,anchor based的方法也会产生很多冗余的框,增加了计算量和内存消耗。

anchor-free

anchor free的优点是不需要预设anchor,只需要对不同尺度的特征图的目标中心点和宽高进行回归,减少了耗时和算力。同时,anchor free的方法也可以避免一些由于anchor设置不合理导致的漏检或重复检测问题。

anchor free的缺点是由于每个位置只预测一个框,可能会导致一些重叠或遮挡区域无法被检测到。另外,anchor free的方法也需要一些特殊的损失函数或结构来提高精度和稳定性。

二.基于FCOS的anchor-free目标检测方法

文章上来首先介绍了anchor-based类算法所存在的一些固有的不足:

  • anchor-based类算法的检测性能受到框的尺度、宽高比以及数量的影响比较大,例如使用RetinaNet通过精细的调整这些超参数在COCO上可以得到4%AP的提升。
  • 在不同的检测任务中,由于数据集的不同,这些与anchor相关的超参数均需要重新设计,普适性较差。
  • 为了尽可能精确的匹配图像中的物体,需要成千上万预设的anchor,导致正负样本的极度不均衡。
  • 训练过程中,对于box的匹配需要计算所有的IOU值,计算复杂度较高。

针对以上提到的anchor-based算法的一些问题,anchor-free系列算法不使用预设的anchor来完成目标检测。其中cornernet系列的算法(cornernet,centernetextremenet)使用关键点检测的方案完成目标检测,但是这种方法需要较为复杂的后处理;DenseBox算法在通用的目标检测中适应性不好。本文的FCOS算法使用语义分割的思想,逐像素点来完成目标检测。

三.方法详解

FCOS算法的网络架构如下图所示,使用FPN实现多层特征图的融合。

最终每个检测头依旧包含类别分类以及边界框回归分支。其中分类分支包含CenterNess的分支主要用来解决大量低质量预测框的问题,具体的原因以及操作方式,下边再说。

正负样本确定

如果一个像素点落入了GT中,那么其就是正样本,其类别为此GT的类别。否则就是负样本。(这里就可以看出,对于一个GT会有大量预测框的中心点远离GT中心点的低质量预测框,这也就是centerness需要解决的问题)

针对一个落入GT中的像素点(x, y),其回归分支的预测值是什么呢?

正如公式所示,其回归分支的预测值,就是回归(x, y)与GT的左、上、右、下的距离。这里为了保证回归目标的非负,依然使用指数函数exp()进行处理。

在匹配的过程中,会遇到如下图所示的一种情况,就是一个像素点同时落在多个GT中该如何处理呢?

大部分重叠都是发生在目标大小差别比较大的情况,FCOS通过限定对于不同尺度特征图的检测框的大小来避免这种重复区域的出现。

从FCOS网络结构图中,我么们可以看出FCOS使用$P_3, P_4, P_5, P_6, P_7$ 这几个特征层来进行预测,因此为了解决目标大小差别较大的情况下重叠区域的出现。根据下边的公式,如果某个像素点满足如下的条件,那么这个像素点在第i层特征层中就会被作认为是负样本,不参与回归计算。 $$ max(l; t; r; b) > m_i $$

$$ 或者max(l; t; r; b) < m_{i-1} $$

其中,$m_i$作为第i层特征图的最大检测尺寸。

如果在同一层中依然出现重叠的区域怎么办呢?这是FCOS简单的会使用最小区域来作为回归目标。

CenterNess

上文提到预测结果会出现很多的低质量预测框(其中心点离GT的中心点较远),因此为解决这个问题,使用centerness,其公式如下:

从公式可以看出,当预测的框,离中心点越近时,centerness趋近于1,越远趋近于0。因此centerness使用bce损失来进行优化。

<think>好的,我现在需要回答用户关于Anchor-FreeAnchor-Based目标检测方法的比较,包括优缺点结构图的问题。首先,我得回忆一下这两种方法的基本概念区别。 根据用户提供的引用内容,特别是引用[2],提到anchor-based方法使用预设的固定尺度长宽比的anchor生成预测框,而anchor-free则基于点生成预测框。比如CornerNet使用左上角右下角点,CenterNet用中心点,ExtremeNet用四个极值点中心点,如引用[4]所述。我需要先整理这两种方法的核心思想。 接下来要比较优缺点。Anchor-based方法,比如Faster R-CNN,因为预设了多种anchor,可能在不同尺度长宽比的物体检测上表现更好,但需要更多的计算资源,并且参数调整复杂。而anchor-free方法减少了参数计算量,可能更高效,但可能在定位精度或小物体检测上有挑战。比如CornerNet-Lite提升了速度,如引用[1][4]提到的优化。 结构图部分,用户可能需要示意图,但文字描述的话,可以分别说明两种方法的流程。例如,anchor-based包括生成anchor、分类回归,而anchor-free可能先检测关键点再组合成框。引用[3][4]中的各种方法的结构可以作为例子。 还需要注意引用中的具体技术,比如CenterNet使用三个点提升精度,RepPoints用样本点集合等,这些可以补充到优缺点中。可能还要提到训练难度,比如anchor-free是否需要更多的数据增强或训练技巧。 用户可能关心应用场景,比如实时系统适合anchor-free,而高精度需求场景可能倾向anchor-based。不过随着技术发展,anchor-free的性能也在提升,如引用[4]中的改进方法。 最后,生成相关问题时,需要覆盖比较、结构图、优缺点、应用场景最新进展,确保问题有针对性,帮助用户深入理解。</think>### Anchor-Free vs Anchor-Based 目标检测方法比较 #### 一、核心思想对比 1. **Anchor-Based** - 基于预设的若干固定尺度长宽比的anchor生成预测框(如Faster R-CNN、SSD)[^2] - 流程: $$ \text{输入图像} \rightarrow \text{生成anchor} \rightarrow \text{分类+回归修正} \rightarrow \text{输出预测框} $$ - 示例结构图: ``` Backbone → RPN生成anchor → ROI Align → 分类/回归头 ``` 2. **Anchor-Free** - 直接基于关键点或中心点生成预测框(如CornerNet、CenterNet)[^3][^4] - 流程: $$ \text{输入图像} \rightarrow \text{定位关键点} \rightarrow \text{组合成框} \rightarrow \text{输出预测框} $$ - 示例结构图: ``` Backbone → 关键点热力图 → 后处理(组合点/中心点扩展)→ 输出预测框 ``` --- #### 二、优缺点对比 | **特性** | **Anchor-Based** | **Anchor-Free** | |-------------------|-------------------------------------------|------------------------------------------| | **计算复杂度** | 高(需计算大量anchor) | 低(无需anchor生成)[^1] | | **参数调整难度** | 复杂(需预设anchor尺寸/长宽比) | 简单(仅需定义关键点生成规则) | | **小物体检测** | 较差(依赖anchor匹配质量) | 较好(直接定位关键点) | | **定位精度** | 高(通过精细回归修正) | 中等(依赖关键点组合的准确性) | | **训练效率** | 较慢(需优化大量anchor) | 较快(直接优化关键点预测)[^1] | | **典型应用** | 通用物体检测(Faster R-CNN、RetinaNet) | 实时检测(CornerNet-Lite)、3D检测[^5] | --- #### 三、结构差异示意图 ``` Anchor-Based 结构: +-------------------+ +-------------------+ +-------------------+ | Backbone特征提取 | → | RPN生成候选anchor | → | 分类/回归头优化 | +-------------------+ +-------------------+ +-------------------+ Anchor-Free 结构(以CenterNet为例): +-------------------+ +-------------------+ +-------------------+ | Backbone特征提取 | → | 中心点热力图预测 | → | 中心点扩展为边界框 | +-------------------+ +-------------------+ +-------------------+ ``` --- #### 四、典型算法演进 1. **Anchor-Based优化**:从Faster R-CNN到动态anchor生成(如MetaAnchor) 2. **Anchor-Free创新**: - **CornerNet**:双关键点检测(左上角+右下角) - **CenterNet**:引入中心点提升召回率[^3] - **ExtremeNet**:四极值点+中心点组合[^4] - **RepPoints**:通过样本点集合描述物体 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值