论文链接: https://link.jianshu.com/?t=https%3A%2F%2Farxiv.org%2Fpdf%2F1708.02002.pdf

目标识别有两大经典结构: 第一类是以Faster RCNN为代表的两级识别方法,这种结构的第一级专注于proposal的提取,第二级则对提取出的proposal进行分类和精确坐标回归。两级结构准确度较高,但因为第二级需要单独对每个proposal进行分类/回归,速度就打了折扣;目标识别的第二类结构是以YOLO和SSD为代表的单级结构,它们摒弃了提取proposal的过程,只用一级就完成了识别/回归,虽然速度较快但准确率远远比不上两级结构。那有没有办法在单级结构中也能实现较高的准确度呢?Focal Loss就是要解决这个问题。

一、为什么单级结构的识别准确度低

作者认为单级结构准确度低是由类别失衡(class imbalance)引起的。在深入理解这个概念前我们先来强化下“类别”这个概念:计算Loss的bbox可以分为positive和negative两类。当bbox(由anchor加上偏移量得到)与ground truth间的IOU大于上门限时(一般是0.5),会认为该bbox属于positive example,如果IOU小于下门限就认为该bbox属于negative example。在一张输入image中,目标占的比例一般都远小于背景占的比例,所以两类example中以negative为主,这引发了两个问题:

1、negative example过多造成它的loss太大,以至于把positive的loss都淹没掉了,不利于目标的收敛;

2、大多negative example不在前景和背景的过渡区域上,分类很明确(这种易分类的negative称为easy negative),训练时对应的背景类score会很大,换个角度看就是单个example的loss很小,反向计算时梯度小。梯度小造成easy negative example对参数的收敛作用很有限,我们更需要loss大的对参数收敛影响也更大的example,即hard positive/negative example。
这里要注意的是前一点我们说了negative的loss很大,是因为negative的绝对数量多,所以总loss大;后一点说easy negative的loss小,是针对单个example而言。

Faster RCNN的两级结构可以很好的规避上述两个问题。具体来说它有两大法宝:1、会根据前景score的高低过滤出最有可能是前景的example (1K~2K个),因为依据的是前景概率的高低,就能把大量背景概率高的easy negative给过滤掉,这就解决了前面的第2个问题;2、会根据IOU的大小来调整positive和negative example的比例,比如设置成1:3,这样防止了negative过多的情况(同时防止了easy negative和hard negative),就解决了前面的第1个问题。所以Faster RCNN的准确率高。
OHEM是近年兴起的另一种筛选example的方法,它通过对loss排序,选出loss最大的example来进行训练,这样就能保证训练的区域都是hard example。这个方法有个缺陷,它把所有的easy example都去除掉了,造成easy positive example无法进一步提升训练的精度。

图1是hard positvie、hard negative、easy positive、easy negative四种example的示意图,可以直观的感受到easy negativa占了大多数。

二、Focal Loss的解决方法


Focal Loss通过调整loss的计算公式使单级结构达到和Faster RCNN一样的准确度,公式1是Focal Loss的计算方法。ptp_tpt​是不同类别的分类概率,rrr是个大于0的值,αtα^tαt是个[0,1]间的小数,rrr和αtα^tαt都是固定值,不参与训练。从表达式可以看出:
1、无论是前景类还是背景类,ptp_tpt​越大,权重(1−pt)∗r(1-p_t)*r(1−pt​)∗r就越小。也就是说easy example可以通过权重进行抑制;
2、αtα^tαt用于调节positive和negative的比例,前景类别使用αtα^tαt时,对应的背景类别使用1-αtα^tαt;
3、r和αtα^tαt的最优值是相互影响的,所以在评估准确度时需要把两者组合起来调节。作者在论文中给出r=2、αtα^tαt=0.25时,ResNet-101+FPN作为backbone的结构有最优的性能。
此外作者还给了几个实验结果:
1、在计算ptp_tpt​时用sigmoid方法比softmax准确度更高;
2、Focal Loss的公式并不是固定的,也可以有其它形式,性能差异不大,所以说Focal Loss的表达式并不crucial。
3、在训练初始阶段因为positivie和negative的分类概率基本一致,会造成公式1起不到抑制easy example的作用,为了打破这种情况,作者对最后一级用于分类的卷积的bias(具体位置见图2)作了下小修改,把它初始化成一个特殊的值b=-log((1-π)/π)。π在论文中取0.01,这样做能在训练初始阶段提高positive的分类概率。

三、RetinaNet的结构

作者提出了一种使用Focal Loss的全新结构RetinaNet,使用ResNet+FPN作为backbone,再利用单级的目标识别法+Focal Loss。这个结构在COCO数据集上达到了39.1的mAP。下图是它的基本结构:

这个结构要注意几点:

  1. 训练时FPN每一级的所有example都被用于计算Focal Loss,loss值加到一起用来训练;
  2. 测试时FPN每一级只选取score最大的1000个example来做nms;
  3. 整个结构不同层的head部分(图2的c和d部分)共享参数,但分类和回归分支间的参数不共享;
  4. 分类分支的最后一级卷积的bias初始化成前面提到的-log((1-π)/π);

Focal Loss for Dense Object Detection解读相关推荐

  1. 目标检测--Focal Loss for Dense Object Detection

    Focal Loss for Dense Object Detection ICCV2017 https://arxiv.org/abs/1708.02002 本文算是用简单的方法解决复杂的问题了,好 ...

  2. 目标检测 | RetinaNet:Focal Loss for Dense Object Detection

    论文分析了 one-stage 网络训练存在的类别不平衡问题,提出能根据 loss 大小自动调节权重的 focal loss,使得模型的训练更专注于困难样本.同时,基于 FPN 设计了 RetinaN ...

  3. Focal Loss for Dense Object Detection(整理后转载)

    @[TOC](Focal Loss for Dense Object Detection 论文目标 核心思想 focal loss的提出 交叉熵损失函数 focal loss的重要性质 focal l ...

  4. RetinaNet——《Focal Loss for Dense Object Detection》论文翻译

    <Focal Loss for Dense Object Detection> 摘要 迄今为止最高精度的对象检测器基于由R-CNN推广的 two-stage 方法,其中分类器应用于稀疏的候 ...

  5. RetinaNet论文详解Focal Loss for Dense Object Detection

    一.论文相关信息 ​ 1.论文题目:Focal Loss for Dense Object Detection ​ 2.发表时间:2017 ​ 3.文献地址:https://arxiv.org/pdf ...

  6. 【翻译】Focal Loss for Dense Object Detection(RetinaNet)

    [翻译]Focal Loss for Dense Object Detection(RetinaNet) 目录 摘要 1.介绍 2.相关工作 3.Focal Loss 3.1 平衡的交叉熵损失 3.2 ...

  7. Focal Loss for Dense Object Detection(RetinaNet)(代码解析)

    转自:https://www.jianshu.com/p/db4ccd194109 转载于:https://www.cnblogs.com/leebxo/p/10485740.html

  8. 如何理解 “Dense object detection“中的dense?

    第一大类是 从非Deep时代就被广泛应用的dense detector ,例如DPM,YOLO,RetinaNet,FCOS.在dense detector中,大量的object candidates ...

  9. Mutual Supervision for Dense Object Detection

    Mutual Supervision for Dense Object Detection 作者用这幅图来描述分类和回归头的inconsistency,指出现有在目标检测中存在的问题. FCOS的分类 ...

  10. Mutual Supervision for Dense Object Detection(ICCV2021)阅读笔记

    同上一篇一样,这边摸鱼笔记也是关于分类和回归分支的权重设计. 论文来源于2021ICCV,论文链接:https://openaccess.thecvf.com/content/ICCV2021/pap ...

最新文章

  1. 在实践中我遇到stompjs, websocket和nginx的问题与总结
  2. 为了研究因果关系,原来科学家在这么多方向上都有尝试
  3. 转发与重定向(forward与redirect)
  4. MacBook的mission control的功能
  5. 点击率预估又有新花样?
  6. uva 11992 - Fast Matrix Operations
  7. JAVA图片不显示imageicon_怎么没法显示图片图标呢?
  8. P3273-[SCOI2011]棘手的操作【线段树,并查集】
  9. 前端学习(1400):多人管理20代码优化
  10. telnet linux 命令详解,解析Linux Telnet命令
  11. 现在小餐厅的推广视频
  12. Windows 11 新功能:管理蓝牙设备将不再困难
  13. 把Vim改装成一个IDE编程环境
  14. 国产免费的visio替代品edraw mind map,用来话流程图够用了
  15. 缓存与缓冲的区别 cache与buffer的区别
  16. 老码农的2019这一年——
  17. Review and start again——First Period JAVA web Program hotelmanagement:6.some about JAVA factory mode
  18. Ubuntu 20.04 搭建hadoop 集群
  19. 2016 word 安装6.9b mathtype后,灰色不可用
  20. 材料科学基础考研计算机,2017年西安工业大学计算机学院805材料科学基础考研仿真模拟题...

热门文章

  1. 【Luogu】P1972HH的项链(链表+树状数组)
  2. Struts2学习笔记一之工作原理和struts.xml解析
  3. Novernber Rain
  4. STM32的备份寄存器和控制状态寄存器
  5. 如何布局电子商务网站
  6. Eclipse的自动编译和手动编译
  7. 08. 切勿创建包含auto_ptr的容器
  8. 文件储存php源码,求php后台代码 保存图片文件
  9. cloudflare免费证书_国外Cloudflare免费ssl证书设置
  10. 尼尔机械纪元 机器人博士_还记得章鱼博士吊打蜘蛛侠的炫酷机械臂吗?现实版已经研发出来了...