2 anchor-base和anchor_free两者的优缺点

article/2025/9/15 7:20:30

anchor-base和anchor_free两者的优缺点

  • anchor-base和anchor_free两者的优缺点
    • 一、什么是anchor
    • 二、anchor-base和anchor-free的区别
    • 三、anchor-free和single anchor
    • 三、anchor-base和anchor-free的优缺点
  • 参考

一、什么是anchor

从字面的意思解释,anchor就是船锚,用来固定船的位置。

而在计算机视觉中的anchor和字面意思很相近,被称为锚点或者锚框,进而在目标检测中经常出现的anchor box就是锚框,表示固定的参考框。

目标检测是"在哪里有什么"的任务,在这个任务中,目标的类别不确定、数量不确定、位置不确定、尺度不确定,传统非深度学习方法如VJ和DPM,和早期深度学习方法如OverFeat,都要金字塔多尺度+遍历滑窗的方式,逐尺度逐位置判断"这个尺度的这个位置处有没有认识的目标",非常笨重耗时。

anchor的概念最早出现在FasterRCNN的论文中,首先预设一组不同尺度不同位置的固定参考框,覆盖几乎所有位置和尺度,每个参考框负责检测与其交并比大于阈值 (训练预设值,常用0.5或0.7) 的目标,anchor技术将问题转换为"这个固定参考框中有没有认识的目标,目标框偏离参考框多远",不再需要多尺度遍历滑窗,极大的提升了速度。同时anchor的存在,也解决不同物体的中心点落到一个grid cell中的问题。

RPN的运动机制

二、anchor-base和anchor-free的区别

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

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

anchor-free的方法能够在精度上媲美 anchor-based的方法,最大的功劳应该归于 FPN,其次归于Focal Loss。在每个位置只预测一个框的情况下,FPN 的结构对尺度起到了很好的弥补,FocalLoss则是对中心区域的预测有很大帮助。

三、anchor-free和single anchor

上面提到的anchor-free和每个位置有一个正方形anchor在形式上可以是等价的,也就是利用FCN的结构对feature map的每个位置预测一个框(包括位置和类别)。但anchor-free仍然是有意义的,我们也可以称之为anchor-prior-free。另外这两者虽然形式上等价,但是实际操作中还是有区别的。在anchor-based的方法中,虽然每个位置可能只有一个anchor,但预测的对象是基于这个 anchor来匹配的,而在anchor-free的方法中,通常是基于这个点来匹配的。

三、anchor-base和anchor-free的优缺点

anchor-base的优点在于有着更高的精度,所提取到的特征更丰富。但是two stage阶段产生预选框所需要的耗时和算力大大增大,尽管one stage阶段在一定程度上解决了这个问题,将检测器整合成end-to-end的形式,通过不同特征尺度的每个特征点都进行预设不同尺度不同大小的三个anchor,缩减了RPN的步骤,提升了检测速度,尽管近几年one stage发展迅速,但精度达不到two stage的SOTA程度。

和anchor-base进行比较,anchor-free最大的优势就在于其检测器的检测速度,因为不需要预设anchor,只需要对不同尺度的特征图的目标中心点和宽高进行回归,极大的减少了耗时和需要的算力。其缺点则是在于它的精度并不能达到anchor-base方法的SOTA。近两年还提出了一些结合anchor-base和anchor-free的检测器。

我觉得目标检测就是这样一个发展过程,从最初的RCNN到现在各种方法百花齐放,但最终目的如果没法落地的话,也仅仅是实验室的数据,anchor-free作为一个未来的发展方向,更偏向于实际落地,在保证精度的同时,提升速度,这是未来目标检测发展所需要的。


参考

1、anchor_based-anchor_free object detectors

2、一文读懂anchor-base和anchor-free

3、物体检测的轮回: anchor-based 与 anchor-free


http://chatgpt.dhexx.cn/article/qpToIZ9P.shtml

相关文章

Anchor-Free总结

目录 Anchor-Free综述 一. CornerNet 1.1 概述1.2 模块介绍 1.2.1 Heatmap1.2.2 Offset1.2.3 Grouping Corners1.2.4 Corner Pooling1.3 总结二. CenterNet 2.1 概述2.2 Center-Regression三. FCOS 3.1. 概述3.2. 模块介绍 3.2.1 论文思路简介3.3.2 回归形式3.3 参考文献四 ATS…

【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

深度学习的目标检测算法,通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整(回归)区域边界,从而更准确地预测目标的真实边界框(ground-truth bounding box)。 目标检测算法会需要做两个事情: 推荐区域框是否有目标(positive or …

一文读懂anchor-base和anchor-free

1. 从Faster-RCNN看Anchor Faster-RCNN相对于Fast-RCNN的一个改进是引入了RPN网络,RPN用于区域推荐,替换了此前的SS算法使得网络在整体上更加的CNN化。那么RPN是怎么进行区域推荐的? 简单来说RPN先列举出数万个矩形框,然后用卷积…

目标检测3--AnchorFree的FCOS

文章目录 1.介绍2.FCOS中使用的方法2.1 网络结构2.2FCOS中使用FPN的多级预测2.3FCOS中的中心度 3.mmdetection中FCOS源码参考资料 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 1.介绍 论文:《FCOS: Fully Convolutional One-Stage Obj…

浅谈Anchor-Free发展历程

1.早期探索: DenseBox: https://arxiv.org/abs/1509.04874 YOLO: https://arxiv.org/abs/1506.02640 2.基于关键点: CornerNet: https://arxiv.org/abs/1808.01244 ExtremeNet: https://arxiv.org/abs/1901.08043 3.密集预测: FSAF: https://arxiv.org/a…

Anchor-Free系列之FCOS:A Simple and Strong Anchor-free Object Detector

Anchor-Free系列之CornerNet: Detecting Objects as Paired Keypoints_程大海的博客-CSDN博客 Anchor-Free系列之CenterNet:Objects as Points_程大海的博客-CSDN博客 Anchor-Free系列之FCOS:A Simple and Strong Anchor-free Object Detector_程大海的…

Anchor Based和Anchor Free

Anchor Based和Anchor Free之间区别主要有以下两点:1.分类差异(关键正负样本定义)2.回归差异 1.分类差异: 现阶段的算法多尺度预测,即GT是由哪一个特征层和位置Anchor预测。 Anchor Based是由IoU来确定哪层和哪个位置…

解读《Bridging the Gap Between Anchor-based and Anchor-free Detection》

张士峰大佬近期发了一篇论文解读Anchor-base和Anchor-free方法间的差别,其本质在于正负样本的选取方式不同。 论文:《Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection》 链接:ht…

anchor-free方法总结

cornernet,centernet,onenet,fcos 这几篇论文的引用关系(提出先后顺序): 将按照上面的顺序,从背景、标签分配等方面说明区别于联系。 一、背景: Cornernet:认为使用a…

anchor free和anchor base

仅供个人学习使用 1、anchor base anchor base的方法需要先在图片上生成候选框,无论是RPN生成还是通过k-means生成的先验框,都需要在分类回归之前有存在的框可使用。在框的基础上进行之后的操作。 超参数较为难调,正负样本不平衡&#xff…

Anchor free的心得

问题: 没有了Anchor框的监督信息,我们怎么针对检测任务做到正确回归? 本质:样本与ground truth的对应,如何选择合适样本与真实场景对应 Anchor: 其加入降低了回归问题难度,为分类问题提供选择…

Anchor-based 与 Anchor-free

参考 Anchor-based 与 Anchor-free - 云社区 - 腾讯云 1. Feature Selective Anchor-Free Module for Single-Shot Object Detection 参考:CVPR2019 | CMU提出Single-Shot目标检测最强算法:FSAF 2. FCOS: Fully Convolutional One-Stage Object Det…

Anchor-free

找到了一个说在工业领域很好的 目标检测 下面几篇paper有异曲同工之妙,开启了anchor-based和anchor-free的轮回。 1. Feature Selective Anchor-Free Module for Single-Shot Object Detection 2. FCOS: Fully Convolutional One-Stage Object Detection 3. Fo…

AnchorFree系列算法详解

目录 前言一、Anchor-Based方法回顾二、Anchor Free系列方法简介1. Anchor Free系列算法历史2. Anchor free经典算法详解2.1. 基于关键点的Anchor Free检测算法1. CornerNet 2. 2 基于中心的Anchor Free检测算法1. FCOS2. CenterNet3. TTFNet -- CenterNet的改进版 3. AnchorFr…

目标检测算法——anchor free

一、anchor free 概述 1 、 先要知道anchor 是什么(这需要先了解二阶段如faster rcnn,一阶检测器如YOLO V2以后或SSD等)。 在过去,目标检测通常被建模为对候选框的分类和回归,不过,按照候选区域的产生方式不…

Scala解释器

Scala解释器 后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。 启动scala解释器 要启动scala解释器,只需要以下几步&…

Pycharm修改python解释器

Pycharm修改python解释器 在python学习过程中,遇到了这样的一个问题,早先通过pip安装的库在pycharm中无法使用,例如之前学习的numpy库在pycharm中无法调用: 下面给出两个解决办法 1.通过pycharm自带的方式再次进行安装 具体操作…

【jvm系列-07】深入理解执行引擎,解释器、JIT即时编译器

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…

java的解释器是什么_java编译器和java解释器、JVM

作用: JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Ja…

【详解】JVM中,编译器和解释器的作用和区别

一、前言 随着互联网的发展,现在虚拟机地表最稳定,最强的默认是Hotspot虚拟机。先查看下: 查看方式:cmd进行黑框框,然后输入:java -version 会出现以下参数: java version:当前jav…