RetinaNet

object detection的算法主要可以分为三大类:
two-stage detector
one-stage detector
基于焦点

该论文最大的贡献在于提出了Focal Loss用于解决类别不均衡问题,从而创造了RetinaNet(One Stage目标检测算法)这个精度超越经典Two Stage的Faster-RCNN的目标检测网络。

基于深度学习的目标检测算法有两类经典的结构:Two Stage 和 One Stage。

Two Stage: 例如Faster-RCNN算法。第一级专注于proposal的提取,第二级对提取出的proposal进行分类和精确坐标回归。两级结构准确度较高,但因为第二级需要单独对每个proposal进行分类/回归,速度上就打了折扣

One Stage: 例如SSD,YOLO算法。此类算法摒弃了提取proposal的过程,只用一级就完成了识别/回归,虽然速度较快但准确率远远比不上两级结构、

RetinaNet实现了one stage的速度, two stage的精度

产生精度差异的主要原因:类别失衡(Class Imbalance)。 One Stage方法在得到特征图后,会产生密集的目标候选区域,而这些大量的候选区域中只有很少一部分是真正的目标,这样就造成了机器学习中经典的训练样本正负不平衡的问题。它往往会造成最终算出的training loss为占绝对多数但包含信息量却很少的负样本所支配,少样正样本提供的关键信息却不能在一般所用的training loss中发挥正常作用,从而无法得出一个能对模型训练提供正确指导的loss(而Two Stage方法得到proposal后,其候选区域要远远小于One Stage产生的候选区域,因此不会产生严重的类别失衡问题)。常用的解决此问题的方法就是负样本挖掘,或其它更复杂的用于过滤负样本从而使正负样本数维持一定比率的样本取样方法。该论文中提出了Focal Loss来对最终的Loss进行校正。

Two-Stage算法在生成框阶段使用Selective Search, EdgeBoxes, RPN的结构极大的减少了背景框的数量,使其大约为1k~2k。在分类阶段,使用一些策略,如使前景背景的比例为1:3或者OHEM算法,这样就使得正负样本达到了一个平衡

而One-Stage算法在进行将采样的同时产生预选框,在实际中经常会产生很多框,如SSD300产生了8732个预选框,SSD512产生了2万多个,但是真正的正样本的框却很少,就造成了样本间的极度不平衡,虽然有时会使用bootstrapping和hard example mining,但是效率很低。

Focal Loss的目的:消除类别不平衡 + 挖掘难分样本

者是指类似Faster RCNN,RFCN这样需要region proposal的检测算法,这类算法可以达到很高的准确率,但是速度较慢。虽然可以通过减少proposal的数量或降低输入图像的分辨率等方式达到提速,但是速度并没有质的提升。后者是指类似YOLO,SSD这样不需要region proposal,直接回归的检测算法,这类算法速度很快,但是准确率不如前者。研究发现 正负样本极不均衡是主要原因。

focal foss
这个函数可以通过减少易分类样本的权重,使得模型在训练时更专注于稀疏的难分类的样本;防止大量易分类负样本在训练中压垮检测器。为了证明focal loss的有效性,作者设计了一个dense detector:RetinaNet,并且在训练时采用focal loss训练。实验证明RetinaNet不仅可以达到one-stage detector的速度,也能超过现有two-stage detector的准确率。

首先我们把交叉熵二分类loss定义为:

在这里插入图片描述

在这里插入图片描述

RetinaNet

下图是RetinaNet的网络结构,整个网络相对Faster-RCNN简单了很多,主要由ResNet+FPN+2xFCN子网络构成。

在这里插入图片描述

在这里插入图片描述
在得到特征金字塔后,对每层特征金字塔分别使用两个子网络(分类网络+检测框位置回归)。这两个子网络由RPN网络修改得到。
在这里插入图片描述
上面说到的Focal Loss就应用于类别分类的子网络,即可有效移植类别不均衡问题。

特征金字塔每层都相应的产生目标类别与位置的预测,最后再将其融合起来,同时使用NMS来得到最后的检测结果。下图是论文中给出的试验结果,相比较于经典的Two Stage检测方法Faster-RCNN,RetinaNet具有更高的精度。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值