论文解读Focal Loss for Dense Object Detection

来源:互联网 发布:电视直播软件看不了 编辑:程序博客网 时间:2024/05/10 19:04

论文:Focal Loss for Dense Object Detection

引言:

目前最好的物体检测都是基于两个平台(two stage),和推荐驱动的机制(proposal-driven mechnism),如R-CNN。近期的集合为一个平台(one stage)的工作有YOLO和SSD,他们比前者更快
我们提出了一个新的损失函数用于类的区分(class imbalance),这个损失函数是一个动态缩放的交叉熵Loss(cross entropy loss),当正确分类的可信度提升时,缩放因子会衰退至0。
我们提出的Focal Loss 就是正常的交叉熵Loss加上一个 ( 1 - Pt ) ^y 的因子, 可以减少好的分类的样本的Loss
(我们提出的Focal Loss 就是正常的交叉熵Loss加上一个 (1pt)γ 的因子, 可以减少好的分类的样本的Loss, 设置γ
直观上,缩放椅子可以自动缩小简单样本的贡献的参数,从而可以更快的关注困难样本。实验显示我们提出的Focal Loss可以训练出更高的准确性的(one stage detector),其表现出了启发式取样和困难样本挖掘的效果。
我们提出了一个使用Focal Loss的网络:取名叫RetinaNet,效果很好

Focal Loss :

cross entropy是这样的:

CE(p,y)={log(p)log(1p)if y=1 otherwise.

其中y{±1}
为了标注的方便,我们设pt:
pt={p1pif y=1otherwise

我们尝试引进一个权重因子 α[0,1]控制class 11α控制class 1,像pt一样我们定义αt,这样可以写出α平衡后的交叉熵 CE loss:
CE(pt)=αlog(pt)

容易区分的样本组成loss的主要部分并决定着梯度,然而α可以平衡正负样本的重要性,但不能区分容易和困难样本,所以我们重写了损失函数。
我们为cross entropy添加一个调节因子 (1pt)γ

FL(pt)=(1pt)γlog(pt)

当一个样本被分类错误时,pt很小,所以(1pt)γ很大,对loss的影响很小,当pt趋近1时,因子趋近0,所以对于分类好的loss权重下降。
在实验中我们也使用了α
FL(pt)=αt(1pt)γlog(pt)

α的效果比没有的好,最后还发现计算p时使用sigmoid操作可以有更好的数的稳定性。

RetinaNet:

Feature Pyramid Network Backbone
金字塔的每一层用来检测不同的尺度

这里写图片描述
从图中可以看出左边是ResNet,中间为提取出feature map(加号为UpSampling后相加),然后用两个子网络相连,输出类别和边框。
实验结果
这里写图片描述

实验比较:

α=0.75和不设置α相比,提高了 0.9 AP
γ=2和设γ=0相比(相当于cross entropy),提高2.9 AP
Focal Loss和OHEM相比,提高3.2 AP

原创粉丝点击