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

YOLOv2 摸着 Faster R-CNN 的宝贝 anchor 道,真香。

RetinaNet 对 DenseBox 说,长大后我就成了你。

—— 瞎扯之题记

正文

随着 CVPR camera ready 和 ICCV submission deadline 的结束,一大批物体检测的论文在 arXiv 上争先恐后地露面。历史的车轮滚滚向前,这里有几篇 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. FoveaBox: Beyond Anchor-based Object Detector

4. High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection

这几篇论文不约而同地将矛头对准了 anchor 这个检测里面的基础模块,采用 anchor-free 的方法在单阶段检测器上达到了和 anchor-based 方法类似或者更好的效果。这里不打算详细讨论每一篇论文的方法,主要分享一下个人的想法。

 

我们首先看一下这几篇论文的框架图。

 

 

 

 

抛开 backbone 不说,可以发现这几种方法的 detection head 十分地相似。基本都是 2 个分支,一个预测类别,输出 HxWxK,另一个预测边框的相对坐标,输出大小为 HxWx4。方法 2 除了这两个分支之外,还增加了一个 regression branch 来预测每个点到 ground truth 中心的远近程度。方法 4 由于是二分类,所以类别预测分支只需要预测一个 heatmap 就可以。

anchor-free 和 anchor-based 区别几何

这个问题首先需要回答为什么要有 anchor。在深度学习时代,物体检测问题通常都被建模成对一些候选区域进行分类和回归的问题。在单阶段检测器中,这些候选区域就是通过滑窗方式产生的 anchor;在两阶段检测器中,候选区域是 RPN 生成的 proposal,但是 RPN 本身仍然是对滑窗方式产生的 anchor 进行分类和回归。

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

为什么 anchor-free 能卷土重来

anchor-free 的方法能够在精度上媲美 anchor-based 的方法,最大的功劳我觉得应该归于 FPN,其次归于 Focal Loss。(内心OS:RetinaNet 赛高)。在每个位置只预测一个框的情况下,FPN 的结构对尺度起到了很好的弥补,FocalLoss 则是对中心区域的预测有很大帮助。当然把方法调 work 并不是这么容易的事情,相信有些细节会有很大影响,例如对重叠区域的处理,对回归范围的限制,如何将 target assign 给不同的 FPN level,head 是否 share 参数等等。

anchor-free 和 single anchor

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

anchor-free 的局限性

虽然上面几种方法的精度都能够与 RetinaNet 相媲美,但也没有明显优势(或许速度上有),离两阶段和级联方法相差仍然较远。和 anchor-based 的单阶段检测器一样,instance-level 的 feature representation 是不如两阶段检测器的,在 head 上面的花样也会比较少一些。顺便吐槽一下,上面的少数 paper 为了达到更好看的结果,在实验上隐藏了一些细节或者有一些不公平的比较。

anchor-free 的其他套路

anchor-free 除了上面说的分别确定中心点和边框之外,还有另一种 bottom-up 的套路,以 CornerNet 为代表。如果说上面的 anchor-free 的方法还残存着区域分类回归的思想的话,这种套路已经跳出了这个思路,转而解决关键点定位组合的问题。

anchor-free 和 anchor-based 的结合

这时候就要祭出(植入)Guided Anchoring 了,详细介绍见 https://zhuanlan.zhihu.com/p/55854246

这篇论文 release 稍微早一些,但也可以算同期工作。是不是感觉和上面的方法有些神似?如果只看 anchor 预测的部分,将其直接用于预测最终结果,同时不固定 anchor 的中心点,就和上述的一些方法比较像了。Guided Anchoring 可以看做是 anchor-prior-free,但是整体框架保持与 anchor-based 一致,所以可以插入到现有的 anchor-based 的方法里面,性能提升也会稍微明显一点。类似于在首先进行 anchor-free 的预测,然后以预测结果作为 anchor 进行进一步地修正。

展望

anchor-free 的方法由于网络结构简单,对于工业应用来说可能更加友好。对于方法本身的发展,我感觉一个是新的 instance segmentation pipeline,因为 anchor-free 天生和 segmentation 更加接近。一个是向两阶段或者级联检测器靠拢,进一步提高性能,如果能在不使用 RoI Pooling 的情况下解决 feature align 问题的话,还是比较有看头的。另外还有一个是新的后处理方法,同时也期待看到 anchor-free 的灵活性带来新的方法和思路。

 

Reference

[1] Zhu, Chenchen, Yihui He, and Marios Savvides. "Feature Selective Anchor-Free Module for Single-Shot Object Detection."arXiv preprint arXiv:1903.00621(2019).

[2] Tian, Zhi, Chunhua Shen, Hao Chen, and Tong He. "FCOS: Fully Convolutional One-Stage Object Detection." arXiv preprint arXiv:1904.01355 (2019).

[3] Kong, Tao, Fuchun Sun, Huaping Liu, Yuning Jiang, and Jianbo Shi. "FoveaBox: Beyond Anchor-based Object Detector."arXiv preprint arXiv:1904.03797(2019).

[4] Liu, Wei, Shengcai Liao, Weiqiang Ren, Weidong Hu, and Yinan Yu. "High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection."arXiv preprint arXiv:1904.02948(2019).

[5] Wang, Jiaqi, Kai Chen, Shuo Yang, Chen Change Loy, and Dahua Lin. "Region proposal by guided anchoring."arXiv preprint arXiv:1901.03278(2019).

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值