【Sampling】《Prime Sample Attention in Object Detection》

【Sampling】《Prime Sample Attention in Object Detection》
原文地址 :https://arxiv.org/abs/1904.04821

1 Background and Motivation

一般的目标检测方法都是基于anchor的,在计算loss的之前会对所有预先定义的anchor划分为正负样本。在早期的目标检测中一般都是按照一定比例划分正负样本计算loss时都是平等地对待每一个样本。基于anchor的方式一个显著的特点就是负样本会远远多于正样本,造成正负样本的分布的不平衡,从而使得loss主要有负样本主导。随后出现的OHEM和Focal Loss说明了正负样本分布的不平衡本质上是来源于难易样本的不平衡。这些方法都会有意的关注于难样本,OHEM是使用比较hard的方式采样难样本,Focal Loss是通过权重衰减的方式弱化简单样本的贡献。
然后,本文与之前只关注难样本的方式最大的不同或者说是最大的亮点也在于发现了对于目标检测任务来说对性能影响最重要的样本不在难样本,而在于主要样本(Prime Sample),主要样本对于正样本来说其实就是那些已经表现最好的样本。
作者通过分析对AP性能的影响最大的样本发现最重要的样本就是这些prime sample。
之前的方法由于负样本往往很多,OHEM和Focal Loss的难样本采样其实主要还是难的负样本采样。而这里的Prime Sample对于正样本来说是从正样本中选出最重要的样本,与之前的方法比可以说是另辟蹊径,换了另一个角度重新审视了样本不平衡的问题。

2 Advantages

  • 比RetinaNet(ResNeXt-101)高了1.8%,比Faster R-CNN高了2%,比Mask R-CNN高了1.5%

3 Contributions

  • 样本采样的一种new insight
  • 使用排序来定义prime sample,使用importance-based reweighting scheme
  • 联合分类和回归loss来加强对prime sample的attention

4 Method

使用IoU Hierarchical Local Rank (IoU-HLR)来采样正样本,使用Score Hierarchical Local Rank (Score-HLR)来采用负样本。

4.1 IoU-HLR

【Sampling】《Prime Sample Attention in Object Detection》
具体步骤如下:

  • 将每个候选正样本按照离最近的ground truth分组,如上图所示分为两组
  • 在每个组里按照与ground truth的IOU的大小从大到小排序
  • 最后抽取每个组里的Top1出来再排序放在最终的rank前面,然后抽出每个组里的Top2出来排序排在之前的Top1的后面,直到所有样本放在最后的rank里。具体过程如图上箭头所描述。

4.2 Score-HLR

【Sampling】《Prime Sample Attention in Object Detection》
这主要是对负样本进行重要性排序。
但是,对于负样本不像正样本那样有个ground truth不能分组,那怎么办呢?
首先使用NMS来做一个聚类,这样就可以将负样本进行分组了,然后和IoU-HLR一样根据负样本的Score来排序。
这里,在我看来,根据Score排序后的结果其实跟Hard negative sample是差不多的,排在前面的样本一般都是那种Hard sample。

4.3 Importance-based Sample Reweighting

Importance-based Sample Reweighting 也就是将上面的rank转换为相应的权重,从而让网络更注意相应的权重更大的部分。具体过程如下:
【Sampling】《Prime Sample Attention in Object Detection》
其中,rir_i是某一个类的排名,nmaxn_{max}是所有类中排名的最大值,那么就可以按照上面的公式将rank转换为权重。
【Sampling】《Prime Sample Attention in Object Detection》
然后再根据上面的对权重进行rescale,γ\gamma用来控制权重之间的difference,β\beta用来保证低rank的权重(因为如果直接用uiu_i的话那些低rank的样本的weight接近0)
最终的loss计算如下
【Sampling】《Prime Sample Attention in Object Detection》
wi,wjw_i^{'},w_j^{'}是归一化操作,保证最终的loss的期望不变。

4.4 比较prime sample与hard sample的数据分布

【Sampling】《Prime Sample Attention in Object Detection》
可以看到上面一行第三个prime sample数据主要集中在低loss的prime sample里,而对于负样本来说,在高IOU的部分也就是难负样本,Negative-hard sample 和prime sample是差不多的,而在低IOU里更倾向于直接将它归为背景类,这也确实符合直觉。

4.5 Classification-Aware Regression Loss

【Sampling】《Prime Sample Attention in Object Detection》
Classification-Aware Regression Loss就是在smooth L1 loss上乘上了一个prime sample的概率,与Importance-based Sample Reweighting一样这里也先同样rescalepip_i再归一化。
【Sampling】《Prime Sample Attention in Object Detection》
从上式可以看到对pip_i的导数大致是与L(di,di^)L(d_i,\hat{d_i})正相关的。也就是说对于坐标的Loss是会影响到classfication的置信度的。分类是会收到坐标回归的监督的,好的坐标预测会回传较小的梯度给分类分数,那么不重要的样本就会被抑制,对于prime sample的attention就会加强。

5 Experiments

【Sampling】《Prime Sample Attention in Object Detection》
与之前的主流的采用方法的实验比较都是有一定的提升
各组件的消融实验
【Sampling】《Prime Sample Attention in Object Detection》
主要实验就是这些,其他实验可参考原文

6 Conclusions

个人理解,对于负样本的采样和之前的采用方法效果差不多,但是出发点不一样,思考角度不一样。与之前的方法最大的不同则在于正样本的采用上,可以说是与之前的方法截然不同,采样更关注prime sample,并赋于更大的权重,但这些prime sample在之前的方法里可就是easy sample,反而会赋予更低的权值的,而实验结果显示更关注prime sample显然效果更好,在这一点上可有点颠覆我之前的认知。