从自己的工作经验思考:Anchor Free 方法的重新出现

2019 年 5 月 30 日 CVer

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达

作者:Captain Jack

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

本文已授权,未经允许,不得二次转载

之前自己所做的检测工作也经历一个从直接预测到选择加入 anchor 的过程。从 Two-stage -> One-Stage -> Two-stage 的技术倾向。

显然这些选择不会是心血来潮,也都有我们自己的理由,所以总结思考一下。

Anchor-free or Not?

最近一段时间里,出现了很多针对目标检测中的 anchor 方法的反思,有些是抛弃,有些是改进。
比如:

  1. CornerNet -> CenterNet -> ExtremeNet 通过像素分类(Segmentation)预测关键点的方法来组织一个bbox

  2. FCOS,FoveaBox 这一类直接回归边界,这个在 YOLOv1 还有更早之前的各种 One-stage 方法上都被广泛使用,也是 One-stage 的传统方法

  3. Guided Anchor 这种尝试自适应的学习 anchor,类似的,虽然是 anchor-free 但是也是希望更加平滑的根据目标特点来分配尺度: Feature Selective Anchor-Free Module for Single-Shot Object Detection

1. Anchor的意义

从自己的工作经验上来回答 anchor 的好处的话,那么就是下面的两点:

  1. 容易收敛,降低训练难度

  2. 容易对应目标大小与对应feature map

第一点

不使用 anchor 的情况,boundingbox 回归的范围比较大。只要是不使用 anchor 直接回归 bbox 的方法,都绕不开这个问题。
这个问题会带来训练难度的增加和网络偏好的倾斜:

bbox 回归范围大,会让计算的 loss 范围变化很大,而且对大小目标的精度有不同的偏好。

前者会破坏训练的稳定,后者会让目标预测不准确。

如果看回归方法 anchor-free 的论文,都会提到如何缓解这个问题(不论是几年前的,还是现在新出的),一般的套路:

  1. 使用相对值,而非像素值

  2. Log、Sqrt这类非线性的转换

  3. IoU Loss 一类,让偏好更加平衡

使用 anchor 是另外一种缓解这个问题的方法:

anchor 给了回归的一个基点,不论大目标、小目标,相对 anchor 的变换范围都是接近的,这就把回归值范围过大的问题解决掉了。

第二点

在没有FPN的时代,或者由于性能问题放弃FPN结构的时候,大小目标都是依赖少数几个level 的 featuremap 来预测的。

如果不对大小做区分,会造成一个结果:

不同 level 的 featuremap 负责预测的目标大小是不太可控的。

这样学习过程中不是显式的区分不同的特征,而是希望网络权值能够适应性的学习到不同大小目标的特征。这个路子在理论上当然没有问题,但是实际训练中,增加了训练难度,也可能是强“网”所难。

有了 anchor,就可以把不同尺寸的目标分配到对应的 anchor 上,这样对应 anchor 的网络权值就仅仅负责一个比较小的目标尺寸范围,同时学习过程中,是显式的通过不同的分支、路径来传递不同尺寸目标的 loss,让网络更加符合“逻辑”的得到训练。

以上这两点,就是我们之前的检测工作加入 anchor 方法的原因。

2. Anchor可能的两个问题

第一,Anchor的分配是 0-1 的硬指标

目标分配在哪个 anchor 上是很粗暴的(谁IoU大就归谁),而且是一个0-1的选择。另外 anchor 本身的尺寸、比例是人工指定的,虽然和不同level的featuremap有一定的关系,但并没有和网络结构的设计有良好的耦合(虽然 anchor 可以通过数据集的聚类来获得,但是这也只是单方面的与数据集有了耦合)。

实际训练中,可能同一个目标适合两个 anchor ,那么在 loss 的设计上就需要考虑孰轻孰重的问题。对应的两个 anchor 计算的 loss,是不是可以用一种更加平滑的方法来加权,而非简单粗暴的0-1选择?

Anchor 本身的设计,是不是可以通过 网络结构+数据分布 两个因素在训练中也可以不断更新变化?

第二,Anchor的非平滑

Anchor 可以理解为针对目标大小的离散划分,将不同大小的目标放入到不同的桶里面。而且,这些桶是先验+固定的。

这带来的问题是:

anchor 打断了目标大小预测上的平滑。

从训练的角度来看,都希望能够有一个更加平滑的预测,从经验上看,可以增加网络的泛化性能

当然,即使现在的 anchor-free 的方法,也由于不同的 featuremap level,再另外一个维度上带来了类似的打断问题:

很多 anchor-free 的方法在 featuremap level 的选择也使用人工先验。

FSAF这篇论文给了一个根据loss大小选择不同featuremap level的方法,或许未来会有更加平滑、模糊的 featuremap level 的分配方法。

3. Anchor-free的前提条件

Anchor-free变得具有竞争性的原因在我看看来就是一个:

FPN 或者类似网络结构带来的多尺度的 feature map 让 anchor-free 重新具备了竞争力

在这样的前提下,是否需要anchor变得相对不重要,不过即使目前的 anchor-free 也需要解决没有 anchor 带来的回归范围变化太大的问题,怎么设计 loss 和控制预测值的范围?

以及,怎样更加合理的分配目标大小与 featuremap 对应的问题(事实上就是卷积网络的 receptive field 与数据的对应)。

4. Refs

  1. CornerNet: Detecting Objects as Paired Keypoints

  2. CenterNet: Keypoint Triplets for Object Detection

  3. Bottom-up Object Detection by Grouping Extreme and Center Points

  4. FoveaBox: Beyond Anchor-based Object Detector

  5. FCOS: Fully Convolutional One-Stage Object Detection

  6. Region Proposal by Guided Anchoring

  7. Feature Selective Anchor-Free Module for Single-Shot Object Detection


CVer-目标检测学术交流群


扫码添加CVer助手,可申请加入CVer-目标检测交流群。一定要备注:目标检测+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),不根据格式申请,一律不通过。

▲长按加群


这么硬的分享,麻烦给我一个在在看


▲长按关注我们

麻烦给我一个在看

登录查看更多
0

相关内容

专知会员服务
51+阅读 · 2020年7月16日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
35+阅读 · 2020年3月6日
专知会员服务
42+阅读 · 2020年2月20日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
小目标检测相关技巧总结
极市平台
28+阅读 · 2019年8月15日
目标检测实用中可以改进的方向
极市平台
11+阅读 · 2019年5月4日
目标检测中的Consistent Optimization
极市平台
6+阅读 · 2019年4月23日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
综述 | CVPR2019目标检测方法进展
计算机视觉life
15+阅读 · 2019年4月3日
CVPR2019目标检测方法进展综述
极市平台
45+阅读 · 2019年3月20日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
Arxiv
5+阅读 · 2019年4月8日
Panoptic Feature Pyramid Networks
Arxiv
3+阅读 · 2019年1月8日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
5+阅读 · 2016年12月29日
VIP会员
相关VIP内容
专知会员服务
51+阅读 · 2020年7月16日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
35+阅读 · 2020年3月6日
专知会员服务
42+阅读 · 2020年2月20日
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
小目标检测相关技巧总结
极市平台
28+阅读 · 2019年8月15日
目标检测实用中可以改进的方向
极市平台
11+阅读 · 2019年5月4日
目标检测中的Consistent Optimization
极市平台
6+阅读 · 2019年4月23日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
综述 | CVPR2019目标检测方法进展
计算机视觉life
15+阅读 · 2019年4月3日
CVPR2019目标检测方法进展综述
极市平台
45+阅读 · 2019年3月20日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
相关论文
Top
微信扫码咨询专知VIP会员