0%

RetinaNet

1. RetinaNet 简介

paper: https://openaccess.thecvf.com/content_ICCV_2017/papers/Lin_Focal_Loss_for_ICCV_2017_paper.pdf

code: https://github.com/facebookresearch/Detectron

RetinaNet 检测算法出自Facebook AI Research的论文 Focal Loss for Dense Object Detection, 作者包含了RCNN作者Ross Girshick、何恺明和Piotr。

主要提出了Focal Loss解决单阶段检测算法中的类别不均衡问题,(正负样本不均衡,难易样本不均衡),使得RetinaNet这个单阶段检测网络达到甚至超越了部分两阶段的目标检测网络。

image-20220421153931298

image-20220421165137132

单阶段检测网络相比两阶段网络精度较差的原因很大层面是由于类别的不均衡。

单阶段在Head的特征图上会产生密集的目标候选区域,要远超RPN产生的2000个proposals。而这些proposals只有很少一部分包含目标物体,从而造成了较为严重的正负样本不均衡的问题,少量正样本提供的loss在整体loss中占比较小,影响了模型对于正样本的学习效果。

2. 网络结构

image-20220421160303368

RetinaNet网络结构包含 BackBone、 FPN的Neck, 以及最后的包含两个自网络的Head部分。

RetinaNet的FPN结构,从C3-C5生成最终的特征图P3-P7。

1650529018

在P3-P7的每个层级的特征图上设置anchors, 其中每一层级的scales为三种, 同时设置了三种ratios。

image-20220421171313068

Predict Head部分直接设置两个自网络负责anchor的类别预测以及bbox回归。

image-20220421162825931

最后的KA中K是检测目标的类别数目,注意这里的 k 不包含背景类别(PASCAL VOC K = 20),这里的A是预测特征层在每一个位置生成的anchor数目(A = 9)。

3. Focal Loss

对于一个普通的二分类的交叉熵损失可以定义为:

image-20220421163746695

image-20220421163820466

那么CE可以简写为:

image-20220421163850682

特别地, 对于正负样本添加权重因子,则可以表示为:

image-20220421163951498

而FocalLoss除了考虑到正负样本的均衡处理, 还对难易样本的Loss施加了权重平衡因子。

image-20220421164133409

image-20220421164915402

当pt趋近于1时,容易样本的loss权重标的很低, 而困难样本pt趋近于0,仍然保持一个较大的权重。

4. References