【论文阅读笔记】RetinaNet:Focal Loss for Dense Object Detection

(一)论文地址:

https://arxiv.org/pdf/1708.02002.pdf

(二)核心思想:

这篇论文中作者探究了 one-stage 方法准确率较低的原因,并提出了一个新的 Loss 函数——Focal Loss 来解决 one-stage 方法中正负样本不均衡的问题;并且作者由此设计了一个简单高效的网络
RetinaNet,既保留了 one-stage 的速度快的特点,又保证了更高的准确率;

(三)One-stage 方法的问题:

one-stage 方法(如 YOLO,SSD 等)在不同大小的特征图上,使用不同大小和比率的 anchors 进行密集采样;这种方法获得的预选框远远多于 two-stage 的方法,导致的一个问题就是绝大多数预选框都是负样本(背景类),以至于即使分类器将所有预选框都分成背景,传统分类使用的交叉熵 Loss 依然会很低;

而 two-stage 方法由于使用了 RPN 网络,每次只选取一部分(通常为 256 个)样本参与到 Loss 的计算中,并且首先使用二分类(背景和非背景,即将物体小分类聚类成非背景类)做初步筛选,再通过分类器做分类,这样就很大程度上缓解了样本不均衡的问题;

(四)Focal Loss:

为了在 one-stage 方法中突出小样本,作者设计了一个 Focal Loss:
在这里插入图片描述

即在原本的交叉熵损失函数前加上了一个权重项: ( 1 p t ) λ (1-p_t)^{\lambda}

其中:
在这里插入图片描述

p [ 0 , 1 ] p\in[0,1] 是某一类别 y y 的输出概率, y = 0 1 y=0或1 ;

由此带来的直观影响就是:

  1. 被正确分类时:
    1.1 背景类的 Loss 大幅下降;
    1.2 物体类的 Loss 正常下降;
  2. 被错误分类时:
    2.1 背景类的 Loss 正常下降;
    2.2 物体类的 Loss 小幅下降;

因此训练时,更多注意力被放到了精细区分物体类上;

而 Focal Loss 也可以用另一个更复杂的定义:
在这里插入图片描述

(五)参数选取:

在这里插入图片描述

作者在实验中发现,γ=2,α=0.25 时效果最好;

(六)RetinaNet:

在这里插入图片描述

RetinaNet 本质上是使用 Resnet 作为 Backbone 提取特征,使用 FPN 的方法提取 3 个特征层构成特征金字塔,再分别使用一个分类子网络和一个回归子网络进行预测;

(七)实验结果:

在原有 one-stage 基础上大大提高了检测的准确率;
在这里插入图片描述
在这里插入图片描述

发布了100 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44936889/article/details/104443209