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

5 篇文章 0 订阅
5 篇文章 0 订阅

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

  • 13
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Anchor-based和Anchor-free是两种不同的目标检测方法。Anchor-based方法使用预定义的anchor框来匹配真实的目标框,通过回归和分类来检测目标。这种方法包括Faster R-CNN、RetinaNet和YOLO等。而Anchor-free方法则不使用预定义的anchor框,而是通过回归目标的中心点和宽高来检测目标。这种方法包括FCOS、ATSS和CornerNet等。Anchor-free方法相比于Anchor-based方法更简单和灵活,但可能存在召回率或定位精度低的问题。Anchor-free方法的优点是不需要预设anchor,只需要对不同尺度的特征图的目标中心点和宽高进行回归,减少了耗时和算力,并且可以避免一些由于anchor设置不合理导致的漏检或重复检测问题。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Anchor based and Anchor free(无锚VS有锚)【总结】](https://blog.csdn.net/qq_44029998/article/details/129561783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Anchor Base 和 Anchor Free](https://blog.csdn.net/Lc_001/article/details/129436513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值