目标检测《RetinaNet: Focal Loss for Dense Object Detection》

RetinaNet论文主旨思想:

        1、two-stage目标检测网络,首先RPN网络预测出可能包含目标的区域region proposal,然后使用分类和回归分支进一步确定region proposal区域的类别和bbox,在RPN网络中给出的区域包含目标的概率极大,极大限度的过滤掉了负样本,那么在第二阶段进行精炼预测时,处理的基本上都是正样本,网络更容易学习预测。

        2、one-stage目标检测网络,直接在backbone网络或者是neck阶段特征融合的基础上进行高密度的预测,也就相当于two-stage的RPN网络,但是one-stage网络的RPN同时预测目标区域的类别与bbox location位置,所以one-stage单阶段的目标检测网络就要从大量的负样本(yolov3中总共预测13 * 13 * 3 + 26 * 26 * 3 + 52 * 52 * 3 = 10647个proposal,其中绝大多数是无效proposal)中找出目标的位置并预测类别,正负样本的极度不平衡,导致one-stage目标检测网络的精度不够高,但是由于只进行了one-stage处理,网络的计算量更小,推理速度更快,并且可以进行端到端训练。

        为了解决正负样本不均衡的问题带来的模型性能的损耗,作者在交叉熵损失函数的基础上设计了Focal loss损失函数。在one-stage模型的预测输出阶段,大部分输出都是很容易识别的,比如背景区域、比如大目标等,由于交叉熵损失函数中采用的是one-hot编码方式,即使这些容易识别的部分输出了很高的预测概率,比如0.9,交叉熵损失函数对于这部分还是可以计算出相对于one-hot的损失,虽然对于这些单个容易识别的目标计算出的损失都较低,但是架不住他们数量多,导致容易识别的输出产生的整体损失函数很大,从而导致模型会侧重于继续优化这些输出目标,而实际上这些输出结果已经足够精确,足球使用了。

        所以,现在就要想办法让模型尽量忽略这些容易识别的目标,转而将目标转向更难识别的目标。反应到损失函数上就是让更难识别的目标在损失函数中占有更大的比重。这也就是Focal loss要干的事情。Focal loss损失函数通过参数控制,自动降低易学习样本对于损失函数贡献的权重,让模型更聚焦于难学习样本。

        最上方的蓝色线表示传统的cross-entropy损失,可以看到,当p>0.5(意味着分类较容易)时,cross-entropy的损失值依然较大,不是特别接近0,这导致对于目标检测场景,由于region proposal会产生大量的候选框,存在大量容易分类的easy negetive(容易分类的背景区域),但是easy negetive的loss不足够小,且easy negetive数量很多,导致模型损失受easy negetive影响较大,不能很好的专注于目标区域的训练,所以改进的方向是要降低easy negetive易分类样本的损失值。

为什么two-stage的网络没有前景和背景的类别不均衡问题?

        1、two-stage网络的第一阶段是RPN网络,RPN网络已经过滤掉了绝大部分的背景样例,剩余的样例都是与GT很接近的。

        2、two-stage网络第二部分通常会强制分配mini-batch中正负样本的比例(比如Faster-RCNN中的1:3),从而消除类别不均衡问题。

RetinaNet网络设计:

  1. 输出层权重参数设计,用于解决类别不均衡问题:因为前景(数量少)和背景(数量多)的不均衡问题导致模型训练前期不稳定,模型训练前期阶段,背景区域的预测损失占据主导作用导致模型训练不稳定,作者通过修改输出层的权重,使得背景区域在前期阶段输出较小的概率值,比如0.01,使得模型训练更稳定。
  2. FPN网络:作者采用FPN网络进行多尺度特征融合来检测不容尺度大小的目标,每一层的FPN具有不同的感受野大小,可以用于检测不同大小的目标,这里对于FPN的用法和Yolov3比较相似。
  3. Anchor设计:每个anchor按照与GT的IoU值分配一个标记,与Faster R-CNN中RPN不同的是,此处的anchor与具体的类别标签相关联,Faster R-CNN中的RPN的anchor只是被简单的分类为前景、背景。anchor被分配label以及与之对应的GT。

RetinaNet网络结构:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值