【论文阅读笔记】Focal Loss for Dense Object Detection

第一次发布时间:2017.08
第二次发布时间:2018.02
论文地址:Focal Loss for Dense Object Detection

全文概括

  该论文首先总结了目标检测的两个主要方向:1) two-stage 区域候选型检测器;2) one-stage 密集采样每一个可能的位置。Two-stage 分为两段,第一段专注于 proposals 的提取,第二段专注于对第一段提取出的 proposals 进行分类和边框回归。One-stage 摒弃了提取 proposals 的过程,对图片分格后,对每个格子预测一定数量的边框。相应的,这两种网络也各有相应的问题。Two-stage 网络需要单独对提取出的 proposals 进行分类和回归,这将带来速度的问题;One-stage 网络没有提取 proposals,这将引入前景背景类别不平衡的问题,给精确度带来影响;

  而本文引进的 focal loss,就是为了解决 one-stage 所丢失的精确度问题。其参考了 two-stage 提取 proposal 带来的影响,给背景anchor 和 前景anchor对应的权重,以解决样本类别不平衡问题;

  最后的损失函数为: F L ( p t ) = − α t ( 1 − p t ) γ l o g ( p t ) FL(p_t)=-\alpha_t(1-p_t)^\gamma\mathop{log}(p_t) FL(pt)=αt(1pt)γlog(pt)其前身为交叉熵损失函数: C E ( p t ) = − l o g ( p t ) CE(p_t)=-\mathop{log}(p_t) CE(pt)=log(pt)其中, p t = { p i f   y = 1 1 − p o t h e r w i s e p_t=\begin{cases}p&if\ y=1\\ 1-p &otherwise\end{cases} pt={p1pif y=1otherwise,是不同类别的概率值(所以,这里使用sigmoid函数,而不是softmax函数,作为其分类函数) α t = { α i f   y = 1 1 − α , o t h e r w i s e \alpha_t=\begin{cases}\alpha &if\ y=1 \\ 1-\alpha, &otherwise\end{cases} αt={α1α,if y=1otherwise.
  该损失函数有两个超参数: α \alpha α γ \gamma γ α \alpha α是为了解决正负样本不平衡问题, γ \gamma γ是为了解决 easy-examples 和 hard-examples问题(采取超参 γ \gamma γ是为了解决大量 easy-examples,背景样本,所导致的 loss 倾向背景的问题;同时采取 α \alpha α,是因为作者发现这能略微提升最后的准确度,且 α \alpha α这种,是对类别不平衡通用的一种方法)


介绍

  作者首先介绍了类别不平衡的问题在 R-CNN 系列解决了的原因:第一阶段提取候选区域,已经快速地减少候选区域中属于背景的样本数量;第二阶段(分类阶段)使用一些样本启发行为:固定正负样本比(比如 1 : 3 1:3 1:3)、在线硬样本缩减(Online hard example mining、OHEM,该方法通过对每一个样本的loss进行排序,选出其中loss最大的 top-N 用于训练。该方法的问题在于其去掉了正的 esay-examples,这将使精确度受损


Focal Loss

  Focal Loss 的公式为: F L ( p t ) = − α t ( 1 − p t ) γ l o g ( p t ) FL(p_t)=-\alpha_t(1-p_t)^\gamma \mathop{log}(p_t) FL(pt)=αt(1pt)γlog(pt)其中, p p p是每个类别的概率$ p t = { α i f   y = 1 1 − α o t h e r w i s e p_t=\begin{cases}\alpha & if\ y=1 \\ 1-\alpha & otherwise\end{cases} pt={α1αif y=1otherwise
α \alpha α γ \gamma γ都是固定值,不参与训练。
α \alpha α用于解决类别不平衡问题,加权重因子是解决类别不平衡问题的一个通用方法,前景使用 α \alpha α,背景使用 1 − α 1-\alpha 1α
γ t \gamma_t γt用于解决难易样本问题,不管是正样本和负样本,当 p t p_t pt越大, ( 1 − p t ) γ (1-p_t)^\gamma (1pt)γ越小;
α \alpha α γ \gamma γ的最优值是互相影响的,当 γ \gamma γ上升时, α \alpha α应该略微下降;作者的论文给出, γ = 2 , α = 0.25 \gamma=2,\alpha=0.25 γ=2α=0.25得到最好结果


RetainaNet

  RetainaNet 是由三部分组成:骨干网络、分类子网络、边框回归子网络;

在这里插入图片描述

  骨干网络是FPN网络,其能多个level,不同尺度检测目标。

  Anchors,和RPN(Faster RCNN中的推荐候选区域的网络)一样,但是对多分类检测做了点修改,阈值条件也不同。和ground-truth 的 IoU达到0.5就认为是正样本,当IoU ∈ [ 0.4 , 0.5 ) \in[0.4, 0.5) [0.4,0.5)就属于背景样本,当IoU ∈ [ 0.4 , 0.5 ) \in[0.4, 0.5) [0.4,0.5)就不赋值,即忽略。(个人认为,该忽略可帮助减少训练那些IoU不那些小,但足以看出前景信息的边框)

  分类子网络,是一个小的FCN,在每一层FPN网络后面接着。每一个FCN后连接的分类子网络参数是共享的。而与RPN不同的是,分类子网络和回归子网络参数不共享。

  边框回归子网络,也是一个FCN,回归的是边框的offset。不像很多其他的分类网络,该网络是分类不可知的。

  Inference,在每一个level的预测时,为了加快检测速度,在检测置信度设为0.05的同时,只提取top 1000个边框。最后整合所有的边框时,采用NMS,边框置信度设为0.5.

  Facal loss,是应用于分类子网络的输出的,作者发现 γ = 2 \gamma=2 γ=2是效果很好, γ ∈ [ 0.5 , 5 ] \gamma\in[0.5, 5] γ[0.5,5]都相对健壮; α \alpha α也相对有一个稳定的范围。最后作者的实验中, γ = 2 , α = 0.25 \gamma=2, \alpha=0.25 γ=2,α=0.25效果最好。

  初始化对于骨干网络,使用ImageNet预训练;对于其余的conv,除了最后一层, 设 b i a s = 0 bias=0 bias=0,以及 σ = 0.01 \sigma=0.01 σ=0.01的高斯核初始化;分类层,bias初始化为 − l o g ( ( 1 − η ) / η ) -\mathop{log}((1-\eta)/\eta) log((1η)/η) η \eta η是一个先验超参,设为 0.01 0.01 0.01。作者认为,该设定可以减少在训练初期减少该loss的不稳定程度,因为在训练初期,正负类的概率值差不多,该loss体现不出来。

  Optimization,使用SGD,在8个GPU上每一个minibatch使用16张图片(每个GPU2张),初始学习率为 0.01 0.01 0.01,权重衰减为 0.0001 0.0001 0.0001,动量设为 0.9 0.9 0.9最后的训练loss为focal loss(用于分类),平滑L1损失函数(用于回归)的和。总共大概是80k次迭代(我猜)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值