Focal Loss for Dense Object Detection(RetinaNet) 学习笔记

先写个简略版的笔记..看之后的情况要不要读得更精细一点..

背景

two stage的检测比one stage的检测效果好,原因是啥?

作者认为是正负样本不平衡导致的. two stage的方法在proposal 的时候干掉了大部分负样本,所以效果好.

因为作者提出了一种新的loss,称为Focal Loss 是对交叉熵loss的改进,作用是提高没有正确分类的样本的权重,降低正确分类的样本的权重.

然后设计了个retinaNet 来验证效果. 主要是用了Focal Loss 作为损失函数,以及backbone比起之前的one stage的检测用上了FPN.

Focal Loss

一图胜千言

focal_loss.png

Focal loss是在交叉熵loss的基础上增加了一个指数衰减. 对正确分类的样本影响很小,对错误分类的样本影响很大.

从图上我们可以看出,CE对正确分类的样本仍然有不小的loss,这样的样本数很多的话,就会被训练的时候模型被带歪... 因此需要减少这些正确分类的样本对loss的影响.

RetinaNet

单阶段检测,主要在于使用Focal Loss训练,以及backbone用上了FPN

retinanet.png