CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法

2019 年 3 月 8 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~


作者 | ywsun

来源 | https://zhuanlan.zhihu.com/p/58508985

论文地址 | https://arxiv.org/abs/1903.00621


今天介绍CVPR2019的一篇single-stage detection的文章,来自CMU。


Motivation

目标检测中物体尺度问题一直是个难解决的问题,目前为止主要是从网络结构设计、损失函数、训练方式等方面去缓解尺度带来的烦恼,特别是小物体检测,至今没有一个好的解决方案。在这些方法中,最常见的非Feature Pyramid Network(FPN)莫属了,它利用多级的feature map去预测不同尺度大小的物体,其中高层特征带有高级语义信息和较大的感受野,适合检测大物体,浅层特征带有低级的细节语义信息和较小的感受野,适合检测小物体。FPN逐步融合深层特和浅层特征,使得逐步增加浅层的特征的高级语义信息来提高特征表达能力,提升检测效果。得益于其强大的特征表达能力带来的性能提升,现在FPN结构已经成为检测框架的一个标配组件。


在经典的带有FPN的框架中,有这样一个隐藏操作在里面:选择一层合适的feature map负责检测物体。比如在two-stage里面,会有RoI pooling,将物体对应的feature抠出来送入不同分支完成分类和位置回归。Faster R-CNN用的是RoI pooling,Mask R-CNN用的是RoIAlign,这个地方改进是为了解决pooling操作带来的misalignment问题,但不是本文关注的重点。本文关注的是如何“合理”地选择feature来检测物体,并且针对的是single-stage这一类模型。但single-stage没有roi pooling这一操作,何来选择feature这一说呢?


在single-stage模型中,我们会定义一系列稠密的均匀分布的anchor,这些anchor会根据其不同的尺寸大小和不同的feature map联系起来。在带有FPN的backbone中,高层的feature map分辨率高,得到的anchor数量多尺寸小,浅层的feature map分辨率低,得到的anchor数量少尺寸大,anchor的生成是根据feature map不同而定义的。在anchor match gt阶段,gt与anchor匹配,确定gt归属于哪些anchor,这个过程隐式的决定了gt会由哪层feature map负责预测。不管是生成anchor还是gt match 过程,都是由size这个变量决定,虽然我们会设定先验的规则来选择最好的feature map,但存在的问题是,仅仅利用size来决定哪些feature map来检测物体是一种暴力的做法。如下图所示,60x60大小的car和50x50大小的car被分在了不同feature map,50x50和40x40的被分在了同一级feature map,谁也不能证明这种做法不好,但谁也不能证明这种做法就是最好,那么何不让模型自动学习选择合适的feature 去做预测呢?

Method


Feature Selective Anchor-Free Module (FSAF)


文章提出FSAF模块让每个instance自动的选择最合适的feature,在这个模块中,anchor box的大小不再决定选择哪些feature进行预测,也就是说anchor (instance) size成为了一个无关的变量,这也就是anchor-free的由来。因此,feature 选择的依据有原来的instance size变成了instance content,实现了模型自动化学习选择feature。


先来看看FSAF的结构。文章提出的FSAF以RetinaNet为主要结构,添加一个FSAF分支和原来的classification subnet、regression subnet并行,可以不改变原有结构的基础上实现完全的end-to-end training,特别是,FSAF还可以集成到其他single-stage模型中,比如SSD、DSSD等。



FSAF同样包含classification和box regression两个分支,分别得到predict box所属的类别和坐标值。


Ground-truth和loss的设计



classification output是一个WxHxK大小的feature map,K表示物体类别数,那么在坐标为(i,j)的点上是一个长度为K的向量,表示属于每个类别的概率。分支对应的gt是图中白色区域内值为1,表示正样本,黑色区域内值为0,表示负样本,灰色区域是忽略区域不回传梯度。分支采用Focal Loss,整个classification loss是非忽略区域的focal loss之和,然后除以有效区域内像素个数之和来正则化一下。



值得注意的是,FSAF模块没有了anchor scale、aspect ratio等概念,是一个anchor-free的检测方法(和CornerNet不同)。


Online Feature Selection


FSAF的设计就是为了达到自动选择最佳Feature的目的,最佳Feature是由各个feature level共同决定。


选择过程如下:

  • 每个feature level计算classification loss和box regression loss


  • 所有feature level中选择loss最小的作为梯度反传。



为了验证自动特征选择的有效性,文章同时对比了heuristic feature selection,该方法就是经典FPN中所采用人工定义方法:



关于training和inference,


在inference中,FSAF可以单独作为一个分支输出预测结果,也可以和原来的anchor-based分支同时输出预测结果。两者都存在时,两个分支的输出结果merge然后NMS得到最后预测结果。


在training中,采用multi-task loss,即 


Experiments

作者在ablation study部分分析了anchor-free的必要性,online feature selection的重要性,以及选择的feature level是不是最优的。同时还指出FSAF非常robust和efficient,在多种backbone条件下,都有稳定的涨点。在ResNext-101中,FSAF超过anchor-based1.2个点,同时快了68ms,在AB+FSAF情况下,超过RetinaNet1.8个点,只慢了6ms,效果也是非常显著的。




作者还多了SOTA模型,在ResNext-101+multi-scale下AP达到了44.6,也取得了SOAT效果。





总结

文章从feature selection角度设计了新的FSAF module来提升性能,个人认为其实从loss角度来看,提升了梯度反传的效率,有点类似于SNIP,只更新特定scale内物体对应的梯度,但又和SNIP不一样,效率比SNIP高。

但想补充一点,关于有效区域和忽略区域的比例是不是应该再分析一下,感觉对实验结果是有影响的。


ps.CVPR2019 accepted list已经放出,极市已将目前收集到的公开论文总结到github上(目前已收集121篇),后续会不断更新,欢迎关注,也欢迎大家提交自己的论文:

https://github.com/extreme-assistant/cvpr2019




*延伸阅读

CVPR2019 | 目标检测新文:Generalized Intersection over Union

聊聊目标检测中的多尺度检测(Multi-Scale),从 YOLO到FPN,SNIPER,SSD 填坑贴和极大极小目标识别


小Tips:如何查看和检索历史文章?

有不少小伙伴提问如何号内搜文章,其实很简单,在“极市平台”公众号后台菜单点击极市干货-历史文章,或直接搜索“极市平台”公众号查看全部消息,即可在如下搜索框查找往期文章哦~



ps.可以输入CVPR2019/目标检测/语义分割等等,快去探索宝藏吧~~


每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击左下角“阅读原文”立刻申请入群~

觉得有用麻烦给个好看啦~  

登录查看更多
41

相关内容

【CMU】基于图神经网络的联合检测与多目标跟踪
专知会员服务
54+阅读 · 2020年6月24日
专知会员服务
154+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
专知会员服务
53+阅读 · 2020年3月16日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
CVPR2019通用目标检测
极市平台
8+阅读 · 2019年8月6日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
CVPR2018 目标检测算法总览(最新的目标检测论文)
极市平台
21+阅读 · 2018年12月21日
Single-Shot Object Detection with Enriched Semantics
统计学习与视觉计算组
14+阅读 · 2018年8月29日
Arxiv
11+阅读 · 2019年4月15日
Arxiv
5+阅读 · 2019年4月8日
Arxiv
11+阅读 · 2018年4月8日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
CVPR2019通用目标检测
极市平台
8+阅读 · 2019年8月6日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
CVPR2018 目标检测算法总览(最新的目标检测论文)
极市平台
21+阅读 · 2018年12月21日
Single-Shot Object Detection with Enriched Semantics
统计学习与视觉计算组
14+阅读 · 2018年8月29日
相关论文
Arxiv
11+阅读 · 2019年4月15日
Arxiv
5+阅读 · 2019年4月8日
Arxiv
11+阅读 · 2018年4月8日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
Top
微信扫码咨询专知VIP会员