理解目标检测里的Anchor-based和Anchor-free

导读

目标检测模型按照anchor划分可分为两类:anchor-based、anchor-free
其中,anchor-based的代表算法有:faster r-cnn、ssd、retinaNet、yolo v2、yolo v3…
anchor-free的代表算法有:yolo v1、CornerNet、CenterNet…

anchor based

目前主流的目标检测算法多是anchor-based这一类,其中有two-stage也有one-stage。所谓的anchor是什么?说白了就是事先通过手工或聚类方法设定好的具有不同尺寸、宽高比的方框。这些方框覆盖了整张图像,目的是为了防止漏检。在模型训练过程中,根据anchor与ground truth的IoU(交并比)损失对anchor的长宽以及位置进行回归,使其越来越接近ground truth,在回归的同时预测anchor的类别,最终输出这些回归分类好的anchors。two-stage方法要筛选和优化的anchors数量要远超one-stage方法,筛选步骤较为严谨,所以耗费时间要久一些,但是精度要高一些。在常用的检测基准上,SOTA的方法一般都是anchor-based的。

  • One-Stage
    One-Stage的思想是将图像划分为S×S的小格子,即直接在特征图上对anchor进行回归以及类别预测。这样的做法避免了随机搜索得到region proposal,也避免了重复卷积运算,所以计算效率很高,检测速度非常快,但是由于缺乏搜索region proposal(即背景筛选),导致精度不是很高,还有一个原因就是图像中的小物体或者图像中挨得很近的多个物体会造成漏检。随着one-stage方法的不断优化迭代,很多性能优异的Backbone和Tricks被提出,比如CSPDarknet、各种数据增强(Mosaic…)、FPN、SPP等等,他们都可以在牺牲些许检测速度的同时(甚至不牺牲)提升检测精度。现在one-stage方法的精度已经达到了与two-stage具有竞争性的结果。
  • Two-Stage
    Faster r-cnn 的出现确立了two-stage、anchor-based 检测器的主导地位。Faster r-cnn由一个 rpn 网络和一个 region-wise 的预测网络(R-CNN)组成,然后预测目标。之后,人们又提出了许多的算法来提升其表现,包括结构重新设计、注意力机制、多尺度训练、训练策略和损失函数、特征融合和增强、候选框平衡等。目前在标准的检测基准上,SOTA的结果仍然被双阶段anchor-based方法统治。

anchor free

由于FPN和Focal Loss的出现,有效解决了特征语义信息不足和正负样本不均衡的问题,又涌现出了一批anchor-free的算法。anchor-free检测器以两种不同的方式检测物体,一种是首先定位到多个预定义或自学习的关键点,然后约束物体的空间范围,称为Keypoint-based方法;另一种是利用中心点或中心目标区域来定义正样本,然后预测其到目标四个边的距离,称为Center-based方法。anchor-free的方法使得目标检测的流程进一步精简,减少了相关超参数,使得网络搭建训练更简便,泛化能力也更强。

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

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

总结

以上总结了当前目标检测算法的分类情况(根据有无anchor以及检测阶段),分析了anchor-based方法中two-stage和one-stage的优势以及劣势,和anchor-free目前主流的方法,希望大家看后能偶有所收获,觉得有收获可以收藏点赞,同时欢迎大家评论区交流。

参考引用

https://zhuanlan.zhihu.com/p/139476476

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Anchor-basedAnchor-free目标检测中两种不同的方法。 Anchor-based方法是指在图像中使用一组预定义的锚点(anchors),通过对这些锚点进行分类和回归来检测目标。这种方法通常使用卷积神经网络(CNN)来提取特征,并在每个锚点处预测目标的类别和位置。 Anchor-free方法则不需要使用预定义的锚点,而是直接在图像中预测目标的位置和大小。这种方法通常使用一些特殊的网络结构,如CornerNet和CenterNet,来实现目标检测。 两种方法各有优缺点,选择哪种方法取决于具体的应用场景和需求。 ### 回答2: anchor-basedanchor-free是两种目标检测算法的方法。 传统的目标检测算法中,anchor-based是一种常见的方法。它通过事先定义一组候选框(即anchors),并在图像中对这些候选框进行分类和回归。这些anchors通常根据目标的大小和长宽比进行选取。在训练过程中,候选框与真实目标框进行匹配,并计算分类和回归损失。通过这种方式,anchor-based可以有效地检测目标,并确定它们的位置。 相比之下,anchor-free是一种较新的目标检测算法方法。它不需要使用事先定义的候选框,而是直接在图像中无缝地检测目标。anchor-free方法通常通过将目标检测任务转化为像素级分类问题来实现。在训练过程中,模型会学习到每个像素点是否属于目标,并对目标的位置进行回归。由于不依赖于候选框,anchor-free方法可以更灵活地检测各种大小和形状的目标。 总的来说,anchor-based方法在目标检测中具有广泛的应用,并且在经典的目标检测算法中取得了很好的效果。而anchor-free方法则是一种相对较新的方法,具有更大的灵活性和对各种目标形状和大小的适应性。这些方法各有优势和劣势,选择哪种方法要根据具体的应用场景和需求来决定。 ### 回答3: anchor-basedanchor-free是一种用于目标检测的两种不同的方法。 首先,anchor-based方法是一种使用预定义的尺寸和比例的框架来检测目标的方法。这些框架通常称为锚点或锚框,它们在图像中按照一定的规律分布。然后,在每个锚点上,使用CNN(卷积神经网络)模型进行分类和回归,确定目标是否存在以及目标的准确位置。这些锚点作为参考点帮助模型更好地理解目标的不同尺度和形状,并提高目标检测的准确性。常见的anchor-based方法包括Faster R-CNN、SSD和YOLO。 另一方面,anchor-free方法则不使用预定义的锚点来检测目标。相反,它们通过在整个图像中直接回归目标的位置和大小来进行目标检测。这些方法通常需要更加复杂和精细的网络设计,以提供对目标位置的准确预测。由于不需要预定义的锚点,anchor-free方法能够更好地适应任意大小和形状的目标。例如,CornerNet和CenterNet就是常见的anchor-free方法。 总的来说,anchor-based方法将目标检测问题划分为锚点分类和回归问题,而anchor-free方法则通过直接回归目标位置和大小来解决目标检测问题。两种方法各有优劣,并根据不同的应用场景和需求选择合适的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值