RetinaNet--Focal Loss for Dense Object Detection

首页:https://blog.csdn.net/u014236392/article/details/86767950
论文:Focal Loss for Dense Object Detection
official code - keras:https://github.com/fizyr/keras-retinanet
unofficial code - pytorch:https://github.com/kuangliu/pytorch-retinanet
unofficial code - mxnet:https://github.com/unsky/RetinaNet
unofficial code - tensorflow:https://github.com/tensorflow/tpu/tree/master/models/official/retinanet

1. “类别不平衡”问题

在这里插入图片描述
目前精度最高的目标检测器都是基于R-CNN结构衍生出来的two-stage目标检测方法,相反one-stage的探测器应用于目标可能位置的密集采样中,具有更快更简单的特点但是精度落后two-stage的检测器;在本文的研究中发现造成这种情况的核心问题是密集检测器在训练过程中会遇到foreground和background类别极度不平衡的问题。

什么是“类别不平衡”

详细来说,检测算法在早期会生成一大波的bbox。而一幅常规的图片中,顶多就那么几个object。这意味着,绝大多数的bbox属于background。

“类别不平衡”如何导致检测精度低

因为bbox数量爆炸。 正是因为bbox中属于background的bbox太多了,所以如果分类器无脑地把所有bbox统一归类为background,accuracy也可以刷得很高。于是乎,分类器的训练就失败了。分类器训练失败,检测精度自然就低了。

2. two-stage和one-stage对比

(1)two-stage
R-CNN类检测器可以通过two-stage级联和启发式采用来解决class imbalance问题。
第一阶段proposal stage包括:Selective Search、EdgeBoxes、DeepMask、RPN,会进行简单的二分类(简单地区分是前景还是背景,并不区别究竟属于哪个细类)。从而可以迅速候选区域数目降低过滤大量background样本;
在第二个分类stage启发式采样,可以采取的策略有:固定前景和背景的比例1:3或者采用OHEM在线困难样本挖掘,可以用来维持前景和背景样本可操作性平衡,属于细分类。
这样一来,分类器得到了较好的训练,最终的检测精度自然就高啦。但是经过这两个stage一倒腾,操作复杂,检测速度就被严重拖慢了。
(2)one-stage
one stage系的detector直接在首波生成的“类别极不平衡”的bbox中就进行难度极大的细分类,意图直接输出bbox和标签(分类结果)。而原有交叉熵损失(CE)作为分类任务的损失函数,无法抗衡“类别极不平衡”,容易导致分类器训练失败。因此,one-stage detector虽然保住了检测速度,却丧失了检测精度。

3. Focal loss

focal loss是一个能够动态缩放的cross entropy loss,当正确类别的置信度提高时缩放因子衰减为0,缩放因子可以自动降低easy example在训练期间贡献loss的权重,使得模型注重hard example。
原先训练回归任务惯用的交叉熵误差 :
在这里插入图片描述
focal loss的标准公式:
在这里插入图片描述
也可以更复杂一点(论文中的实验即采用此公式):
在这里插入图片描述
乘上一个权重后带来的影响:
在这里插入图片描述

4. RetinaNet

在这里插入图片描述
为了验证focal loss的效果,设计了一个简单的one-stage detector来进行检测,网络结构名为RetinaNet。
RetinaNet本质上是由resnet+FPN+两个FCN子网络组成,设计思路是backbone选择vgg、resnet等有效的特征提取网络,主要尝试了resnet50、resnet101,FPN是针对resnet里面形成的多尺度特征进行强化利用获得表达力更强包含多尺度目标区域信息的feature map,最后在FPN的feature map集合上分别使用两个结构相同但是不share参数的FCN子网络,从而完成目标框类别分类和bbox位置回归任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值