Label Assign:提升目标检测上限

2020 年 7 月 21 日 极市平台

加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~

最近因为AutoAssign这篇paper的原因,再加上之前对目标检测中label assign问题很感兴趣, 看了几篇label assign相关论文(FreeAnchor、ATSS、AutoAssign),梳理一下几篇论文的关系做个记录~

我用一张图大致梳理出几个label assign相关论文的关系:

FreeAnchor、ATSS、AutoAssign都是Label Assign方面的改进。ATSS提出RetinaNet和FCOS的gap主要源于采样方式的不同,ATSS提出更好的Label Assign,来缩小RetinaNet和FCOS的差距,FreeAnchor在RetinaNet的基础上提出更好的Label Assign,AutoAssign在FCOS的基础上提出更好的Label Assign。

RetinaNet是Anchor-based经典算法,FCOS是Anchor-Free的经典算法,FCOS在RetinaNet的基础上,去掉anchor先验,转变成point先验,同时增加了center-ness分支来去除低质量的point采样。相关的算法细节可以看我之前的笔记

陀飞轮:目标检测:Anchor-Free时代

陀飞轮:Soft Sampling:探索更有效的采样策略

ReinaNet和FCOS主要有三点不同:

1.每个位置的先验数量不同。RetinaNet每个位置有几个anchor先验,而FCOS每个位置只有一个point先验。

2.正负样本的采样方式不同。RetinaNet通过IOU来选择正负样本,而FCOS通过空间和尺度的约束来选择正负样本。

3.回归的起始点不同。RetinaNet回归的起始点是筛选过的anchor box,而FCOS回归的起始点是筛选过的point box。

Inconsistency Removal

FCOS相比于只设置一个anchor先验的RetinaNet来说,COCO数据集上的mAP高差不多5个点,为了公平的比较RetinaNet和FCOS的精度差异的原因,ATSS的paper中用一致的trick对RetinaNet和FCOS进行实验。如实验所示,相同trick设置下,RetinaNet比FCOS少0.8个点,这时RetinaNet和FCOS的差别仅仅在于采样方式和回归起点的不同。

Essential Difference


为了进一步探究采样方式和回归起点对于精度的影响,ATSS中对RetinaNet和FCOS排列组合了四种实验进行比较。

如实验所示,回归起点对精度影响微乎其微,采样方式才是RetinaNet和FCOS最本质的差别。

通过上述实验观察,引出了目标检测任务中非常重要的难点, How to define positive and negative training samples? 也就是本文关注的label assign问题。好的label assign方式可以提升目标检测器的上限。

ATSS

ATSS的paper中进而提出了一种更加合适的label assign方式,称为ATSS。

ATSS吸收了RetinaNet和FCOS的采样方式的优点,ATSS采样方式如下:

1.基于anchor box和ground-truth的中心点距离选择候选正样本

2.使用候选anchor box的mean和std之和作为IOU阈值自适应的挑选候选正样本

3.通过候选正样本中心是否落在ground-truth内筛选出最终的正样本

下图中显示出了ATSS对于不同分布的样本可以自适应的调整阈值,挑选到合适尺度下的正样本。

自适应阈值为:

RetinaNet和FCOS都可以叠加ATSS的采样方式,实验结果显示,RetinaNet和FCOS在ATSS的采样方式下,mAP基本上持平,缩小了Anchor-based和Anchor-Free之间的精度差异。验证了好的采样方式能够提升目标检测精度的上限。

FreeAnchor

将检测训练过程看成一个极大似然估计问题

构造极大似然估计问题的recall和precision似然函数

转变成损失函数

FreeAnchor在RetianNet的基础上,将检测器的训练过程定义成一个极大似然估计问题,通过优化recall和precision似然函数的loss,自适应的将匹配的anchor构建成bag of anchors。

将检测看成一个极大似然估计问题的好处是可以不用平衡分类和定位分支,通过一个loss来监督检测器的训练,并且可以自适应的调整匹配的anchor。

如下图所示,随着训练的进行,检测器挑选出匹配的anchor。

AutoAssign

但是FreeAnchor和ATSS本质上还是通过中心先验、IOU、空间和尺度约束来进行label assign,避免不了大量超参数的调整,不是完完全全的自适应label assign。

最近的AutoAssign在FCOS的基础上,通过引入ImpObj、Center Weighting和Confidence Weighting三个分支,将FCOS中根据空间和尺度定义正负样本的方式和center-ness分支都去掉,将label assign做的更加彻底,完完全全通过CNN学习自适应的label assign方式。

借鉴了作者的理解:https://zhuanlan.zhihu.com/p/158907507

From VanillaDet to AutoAssign

VanillaDet 是指:对于一个 gt box,所有在这个 gt box 内的位置(所有 FPN 层都包含在内),都是这个 gt 的正样本;反之,所有不落在 gt 框内部的位置都是负样本。可以理解为label assign的下限。

从实验结果可知,更好的label assign方式可以大幅度提升检测器的精度。

Center Weighting

引入高斯中心先验,通过与gt中心点的距离学习出不同类别自适应的中心先验

Confidence Weighting

通过ImpObj分支来避免引入大量背景位置

与FreeAnchor相似,将分类和定位联合看成极大似然估计问题,学习出样本的置信度

Positive Weights

通过Center Weighting和Confidence Weighting得到Positive weights

Neative Weights

通过最大IOU得到Negative weights

对于前景和背景的 weighting function,有一个共同的特点是 “单调递增”;也就是说,一个位置预测 pos / neg 的置信度越高,那么他们当多前景 / 背景的权重就越大。

Loss Function

Positive weights和Negative weights在训练过程中动态调整达到平衡,像是在学一个正负样本的决策边界,而根据IOU阈值来定义正负样本的决策边界是人为定义的。

Ablation Studies

通过消融实验可以看出,引入的3个分支对检测器都有提升。

Visualization

AutoAssign 并不显式的区分不同 FPN 层的 locations,而是全部平等地看待。因此,只需要依靠一套 weighitng 策略,就可以同时解决 spatial 和 scale 的 assignment 问题
AutoAssign另一个理解,keypoint在heatmap上分类即定位, AutoAssign学习到的正负样本决策边界,是为了筛选出那些更加容易定位的点,分类后定位难度小。AutoAssign在动态学习真正有效的前景。

一些想法

其实早期也有很多探索label assign相关的paper,比如RPN、FPN、cascade-RCNN、IoU-Net等等,但是这些文章基本上还是在anchor先验的框架下,hand-craft的采样方式设置空间和尺度,最近出现了很多通过CNN自适应学习出适合样本的采样方式,比如GuidedAnchor、MetaAnchor、FSAF、PISA等等,但是都没有很好的解决label assign问题,还是存在一些敏感参数的设置。AutoAssign整体的设置感官上还是略显复杂,但是避免了大量超参数的设置,使得检测器更加鲁棒。

目标检测任务是介于分类和分割之间,比起分类可以进一步定位出位置,比起分割标注更为简单,但是会不可避免的引入无关的背景信息,这就导致了目标检测器对于正负样本采样格外敏感,anchor机制的引入正是为了更好的定位目标但是不可避免的引入了label assign问题,如何定义正负样本显的格外重要,单纯的通过IOU阈值来区分正负样本过于hard,直觉上来讲,目标检测任务的label assign应该是一种连续问题,没有真正意义上的正负样本之分,简单的根据IOU阈值定义正负样本,这样会将一个连续的label assign问题变成了一个离散的label assign问题,无法根本性解决目标检测的label assign问题。最新的几种label assign方法本质上是将目标检测的label assign设计成连续的自适应label assign。如何更好的学习正负样本的决策边界是关键。期待出现比AutoAssign更加简洁的label assign的方法!

参考资料

poodar.chu:From VanillaDet to AutoAssign,https://zhuanlan.zhihu.com/p/158907507

RetinaNet,https://arxiv.org/abs/1708.02002

FCOS,https://arxiv.org/abs/1904.01355

FreeAnchor,http://arxiv.org/abs/1912.02424

ATSS,http://arxiv.org/abs/2006.07733

AutoAssign,http://arxiv.org/abs/2007.03496


作者档案

陀飞轮,算法工程师,专注工业检测领域
知乎专栏:Vision
欢迎大家联系极市小编(微信ID:fengcall19)加入极市原创作者行列


推荐阅读


添加极市小助手微信 (ID : cv-mart) ,备注: 研究方向-姓名-学校/公司-城市 (如:目标检测-小极-北大-深圳),即可申请加入 极市技术交流群 ,更有 每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、 干货资讯汇总、行业技术交流 一起来让思想之光照的更远吧~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   
登录查看更多
0

相关内容

RetinaNet是2018年Facebook AI团队在目标检测领域新的贡献。它的重要作者名单中Ross Girshick与Kaiming He赫然在列。来自Microsoft的Sun Jian团队与现在Facebook的Ross/Kaiming团队在当前视觉目标分类、检测领域有着北乔峰、南慕容一般的独特地位。这两个实验室的文章多是行业里前进方向的提示牌。 RetinaNet只是原来FPN网络与FCN网络的组合应用,因此在目标网络检测框架上它并无特别亮眼创新。文章中最大的创新来自于Focal loss的提出及在单阶段目标检测网络RetinaNet(实质为Resnet + FPN + FCN)的成功应用。Focal loss是一种改进了的交叉熵(cross-entropy, CE)loss,它通过在原有的CE loss上乘了个使易检测目标对模型训练贡献削弱的指数式,从而使得Focal loss成功地解决了在目标检测时,正负样本区域极不平衡而目标检测loss易被大批量负样本所左右的问题。此问题是单阶段目标检测框架(如SSD/Yolo系列)与双阶段目标检测框架(如Faster-RCNN/R-FCN等)accuracy gap的最大原因。在Focal loss提出之前,已有的目标检测网络都是通过像Boot strapping/Hard example mining等方法来解决此问题的。作者通过后续实验成功表明Focal loss可在单阶段目标检测网络中成功使用,并最终能以更快的速率实现与双阶段目标检测网络近似或更优的效果。
专知会员服务
12+阅读 · 2020年9月19日
深度学习目标检测方法综述
专知会员服务
274+阅读 · 2020年8月1日
【CVPR2020-北京大学】自适应间隔损失的提升小样本学习
专知会员服务
84+阅读 · 2020年6月9日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
专知会员服务
161+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
专知会员服务
54+阅读 · 2020年3月16日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
目标检测中的Consistent Optimization
极市平台
6+阅读 · 2019年4月23日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
7+阅读 · 2018年3月19日
VIP会员
相关VIP内容
专知会员服务
12+阅读 · 2020年9月19日
深度学习目标检测方法综述
专知会员服务
274+阅读 · 2020年8月1日
【CVPR2020-北京大学】自适应间隔损失的提升小样本学习
专知会员服务
84+阅读 · 2020年6月9日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
专知会员服务
161+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
专知会员服务
54+阅读 · 2020年3月16日
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
目标检测中的Consistent Optimization
极市平台
6+阅读 · 2019年4月23日
目标检测:Anchor-Free时代
极市平台
42+阅读 · 2019年4月17日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
Top
微信扫码咨询专知VIP会员