8

SAPD:FSAF升级版,合理的损失值加权以及金字塔特征选择 | ECCV 2020

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzI3MzU5NjQyMQ%3D%3D&%3Bmid=2247485648&%3Bidx=1&%3Bsn=59649a91dbcba4d8db7260cd9c0e6dd9
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

针对anchor-point检测算法的优化问题,论文提出了SAPD方法,对不同位置的anchor point使用不同的损失权重,并且对不同的特征金字塔层进行加权共同训练,去除了大部分人为制定的规则,更加遵循网络本身的权值进行训练

来源:晓飞的算法工程笔记 公众号

论文: Soft Anchor-Point Object Detection

Qv6R7nY.png!mobile
  • 论文地址:https://arxiv.org/abs/1911.12448

  • 论文代码:https://github.com/xuannianz/SAPD not official

Introduction

Anchor-free检测方法分为anchor-point类别和key-point类别两种,相对于key-point类别,anchor-point类别有以下优点:1) 更简单的网络结构 2) 更快的训练和推理速度 3) 更好地利用特征金字塔 4) 更灵活的特征金字塔选择,但anchor-point类别的准确率一般比key-point类别要低,所以论文着力于研究阻碍anchor-point类别准确率的因素,提出了SAPD(Soft Anchor-Point Detecto),主要有以下两个亮点:

  • Soft-weighted anchor points。anchor-point算法在训练时一般将满足几何关系的点设置为正样本点,其损失值权重均为1,这造成定位较不准确的点偶尔分类置信度更高。实际上,不同位置的点的回归难度是不一样的,越靠近目标边缘的点的损失值权重应该越低,让网络集中于优质anchor point的学习。

  • Soft-selectedpyramid levels。anchor-point算法每轮训练会选择特征金字塔的其中一层特征进行训练,其它层均忽略,这在一定程度上造成了浪费。因为其他层虽然响应不如被选择的层强,但其特征分布应该与被选择层是类似的,所以可以赋予多层不同权重同时训练。

Detection Formulation with Anchor Points

论文首先介绍了大致的anchor point目标检测方法的网络结构以及训练方法。

Network architecture

B7vaEjv.png!mobile

网络包含主干网络以及特征金字塔,特征金字塔每层包含一个detection head,特征金字塔层标记为,为层数,层的特征图大小为输入的倍,为stride。一般,的范围为3到7,detection head包含分类子网和回归子网,子网均以5个卷积层开头,然后每个位置分别预测个分类置信度以及4个偏移值,偏移值分别为当前位置到目标边界的距离。

Supervision  targets

对于目标,中心区域为,为缩放因子。当目标被赋予金字塔层且anchor point位于内时,则认为是正样本点,分类目标为,回归目标为归一化的距离,分别为当前位置到目标四个边界的距离:

EFFbain.png!mobile

为归一化因子。对于负样本点,分类目标为背景(),定位目标为null,不需要学习。

Loss functions

网络输出每个点的维分类输出以及4维位置回归输出,分别使用focal loss和IoU loss进行学习:

JfaIvyj.png!mobile

网络整体损失为正负样本点之和除以正样本点数:

ZrQZrez.png!mobile

Soft Anchor-Point Detector

iiUBRrY.png!mobile

SAPD的核心如图3所示,分别为Soft-Weighted Anchor Points以及Soft-Selected Pyramid Levels,用于调整anchor point权重以及使用特征金字塔的多层进行训练。

Soft-Weighted Anchor Points

  • False attention

FvyyEv.png!mobile

基于传统的训练策略,论文观察到部分anchor point输出的定位准确率较差,但是其分类置信度很高,如图4a所示,这会造成NMS过后没有保留定位最准确的预测结果。可能的原因在于,训练策略平等地对待中心区域内的anchor point。实际上,离目标边界越近的点,越难回归准确的目标位置,所以应该根据位置对不同的anchor point进行损失值的加权,让网络集中于优质的anchor point的学习,而不是勉强网络将那些较难回归的点也学习好。

  • Our  solution

为了解决上面提到的问题,论文提出soft-weighting的概念,为每个anchor point的损失值增加一个权重,权重由点位置和目标的边界决定,负样本点不参与位置回归的计算,所以直接设为1,完整的权值计算为:

3qayEjq.png!mobile

为反映点与目标边界远近的函数,论文设置为centerness函数

为降低的幅度,具体的效果可以看图3,经过Soft-Weighted后,anchor point的权值变成了山峰状。

Soft-Selected Pyramid Levels

  • Feature  selection

EjE3umZ.png!mobile

anchor-free方法在每轮一般都会选择特征金字塔的其中一层进行训练,选择不同的层的效果完全不同。而论文通过可视化发现,不同层的激活区域实际上是类似的,如图5所示,这意味着不同层的特征可以协作预测。基于上面的发现,论文认为选择合适的金字塔层有两条准则:

  • 选择需基于特征值,而非人工制定的规则。

  • 允许使用多层特征对每个目标进行训练,每层需对预测结果有显著的贡献。

  • Our solution

eumUVfB.png!mobile

为了满足上面两条准则,论文提出使用特征选择网络来预测每层对于目标的权重,整体流程如图6所示,使用RoIAlign提取每层对应区域的特征,合并后输入到特征选择网络,然后输出权重向量。效果可看图3,金字塔每层的权值的山峰形状相似,但高度不同。需要注意,特征选择网络仅在训练阶段使用。

6FrMjeU.png!mobile

特征选择网络的结构十分简单,如表1,与检测器一起训练,GT为one-hot向量,数值根据FSAF的最小损失值方法指定,具体可以看看之前发的关于FSAF文章。至此,目标通过权重与金字塔的每层进行了关联,结合前面的soft-weighting,anchor point的权值为:

yaAN7ry.png!mobile

完整的模型的损失为加权的anchor point损失加上特征选择网络的损失:

Experiment

I3ei2ee.png!mobile

各模块的对比实验。

UVzumuA.png!mobile

与SOTA算法进行对比。

Conclusion

针对anchor-point检测算法的优化问题,论文提出了SAPD方法,对不同位置的anchor point使用不同的损失权重,并且对不同的特征金字塔层进行加权共同训练,去除了大部分人为制定的规则,更加遵循网络本身的权值进行训练。

如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

YBbeiyf.png!mobile work-life balance.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK