什么是anchor-based 和anchor free?

2020 年 1 月 4 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货


本文来自知乎,仅作为学术分享,如果侵权,会删文处理。原文链接:

https://www.zhihu.com/question/356551927/answer/919612766


什么是anchor-based 和anchor free?


问题:最近再看关于object detection方面的文章,对于anchor-based 和anchor free是什么,他们之间的区别有什么有些不理解,感觉乱乱的,还有就是anchor-based和anchor box 是一回事吗,哪些算法属于anchor-based,哪些算法属于anchor free,自己去网上搜了半天,有人说YOLO是anchor free的,也有人说YOLO是基于边框的,都快晕了


作者:青青子衿
https://www.zhihu.com/question/356551927/answer/919612766


1.目标检测算法一般可分为anchor-based、anchor-free、两者融合类,区别就在于有没有利用anchor提取候选目标框。

A. anchor-based类算法代表是fasterRCNN、SSD、YoloV2/V3等


fasterRCNN-设置了3种尺度3种宽高ratio一共9个anchor提取候选框

B. anchor-free类算法代表是CornerNet、ExtremeNet、CenterNet、FCOS等

CornerNet-直接预测每个点是左上、右下角点的概率,通过左上右下角点配对提取目标框

C.融合anchor-based和anchor-free分支的方法:FSAF、SFace、GA-RPN等


FSAF-既有根据先验设定的anchor-based分支,也有anchor-free分支增强对异常ratio目标的检测能力

2. anchor(也被称为anchor box)是在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标主要分布的长宽尺度。在推理时生成的特征图上由这些anchor滑动提取n个候选矩形框再做进一步的分类和回归(详细叙述请参考提出anchor思想的fasterRCNN一文)。也就是传统目标检测算法中,在图像金字塔上使用的那个m*n的滑窗。只不过传统方法中特征图是不同尺度的,滑窗一般是固定大小的;而类似于fasterRCNN算法中特征图是固定的,anchor是多尺度的。


三种典型的目标检测框架流程图


3.Yolo算法一共有三个版本,YoloV1可以算作anchor-free类;YoloV2开始引入anchor,YoloV3也使用了anchor。

4.anchor-free类算法归纳:

A.基于多关键点联合表达的方法

a.CornerNet/CornerNet-lite:左上角点+右下角点

b.ExtremeNet:上下左右4个极值点+中心点

c.CenterNet:Keypoint Triplets for Object Detection:左上角点+右下角点+中心点

d.RepPoints:9个学习到的自适应跳动的采样点

e.FoveaBox:中心点+左上角点+右下角点

f.PLN:4个角点+中心点

B.基于单中心点预测的方法

a.CenterNet:Objects as Points:中心点+宽度+高度

b.CSP:中心点+高度(作者预设了目标宽高比固定,根据高度计算出宽度)

c.FCOS:中心点+到框的2个距离


作者:陈恺

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


随着 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 了。

这篇论文 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).


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

投稿、合作也欢迎联系:simiter@126.com

长按关注计算机视觉life


推荐阅读

最全综述 | 医学图像处理

最全综述 | 图像分割算法

最全综述 | 图像目标检测

目标检测技术二十年综述

综述 | CVPR2019目标检测方法进展
参加 CVPR 2019 技术见闻总结

现在投身于计算机视觉是否明智?

如何激怒一个自动驾驶(无人驾驶、智能汽车)爱好者?

原来CNN是这样提取图像特征的。

AI资源对接需求汇总:第1期
AI资源对接需求汇总:第2期
AI资源对接需求汇总:第3期

计算机视觉方向简介 | 人体骨骼关键点检测综述

计算机视觉方向简介 | 人脸识别中的活体检测算法综述

计算机视觉方向简介 | 目标检测最新进展总结与展望

计算机视觉方向简介 | 人脸表情识别

计算机视觉方向简介 | 人脸颜值打分

计算机视觉方向简介 | 深度学习自动构图

计算机视觉方向简介 | 基于RGB-D的3D目标检测

计算机视觉方向简介 | 人体姿态估计


最新AI干货,我在看  

登录查看更多
6

相关内容

【CVPR2020-北京大学】自适应间隔损失的提升小样本学习
专知会员服务
83+阅读 · 2020年6月9日
专知会员服务
160+阅读 · 2020年4月21日
近期必读的5篇AI顶会CVPR 2020 GNN (图神经网络) 相关论文
专知会员服务
78+阅读 · 2020年3月3日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
必读的7篇 IJCAI 2019【图神经网络(GNN)】相关论文
专知会员服务
91+阅读 · 2020年1月10日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
最新Anchor-Free目标检测模型—FoveaBox
PaperWeekly
6+阅读 · 2019年4月29日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
Arxiv
5+阅读 · 2019年4月8日
Arxiv
6+阅读 · 2019年4月4日
Panoptic Feature Pyramid Networks
Arxiv
3+阅读 · 2019年1月8日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
最新Anchor-Free目标检测模型—FoveaBox
PaperWeekly
6+阅读 · 2019年4月29日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
Top
微信扫码咨询专知VIP会员