Focal Loss for Dense Object Detection解读
论文链接: 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。下图是它的基本结构:
这个结构要注意几点:
- 训练时FPN每一级的所有example都被用于计算Focal Loss,loss值加到一起用来训练;
- 测试时FPN每一级只选取score最大的1000个example来做nms;
- 整个结构不同层的head部分(图2的c和d部分)共享参数,但分类和回归分支间的参数不共享;
- 分类分支的最后一级卷积的bias初始化成前面提到的-log((1-π)/π);
Focal Loss for Dense Object Detection解读相关推荐
- 目标检测--Focal Loss for Dense Object Detection
Focal Loss for Dense Object Detection ICCV2017 https://arxiv.org/abs/1708.02002 本文算是用简单的方法解决复杂的问题了,好 ...
- 目标检测 | RetinaNet:Focal Loss for Dense Object Detection
论文分析了 one-stage 网络训练存在的类别不平衡问题,提出能根据 loss 大小自动调节权重的 focal loss,使得模型的训练更专注于困难样本.同时,基于 FPN 设计了 RetinaN ...
- Focal Loss for Dense Object Detection(整理后转载)
@[TOC](Focal Loss for Dense Object Detection 论文目标 核心思想 focal loss的提出 交叉熵损失函数 focal loss的重要性质 focal l ...
- RetinaNet——《Focal Loss for Dense Object Detection》论文翻译
<Focal Loss for Dense Object Detection> 摘要 迄今为止最高精度的对象检测器基于由R-CNN推广的 two-stage 方法,其中分类器应用于稀疏的候 ...
- RetinaNet论文详解Focal Loss for Dense Object Detection
一.论文相关信息 1.论文题目:Focal Loss for Dense Object Detection 2.发表时间:2017 3.文献地址:https://arxiv.org/pdf ...
- 【翻译】Focal Loss for Dense Object Detection(RetinaNet)
[翻译]Focal Loss for Dense Object Detection(RetinaNet) 目录 摘要 1.介绍 2.相关工作 3.Focal Loss 3.1 平衡的交叉熵损失 3.2 ...
- Focal Loss for Dense Object Detection(RetinaNet)(代码解析)
转自:https://www.jianshu.com/p/db4ccd194109 转载于:https://www.cnblogs.com/leebxo/p/10485740.html
- 如何理解 “Dense object detection“中的dense?
第一大类是 从非Deep时代就被广泛应用的dense detector ,例如DPM,YOLO,RetinaNet,FCOS.在dense detector中,大量的object candidates ...
- Mutual Supervision for Dense Object Detection
Mutual Supervision for Dense Object Detection 作者用这幅图来描述分类和回归头的inconsistency,指出现有在目标检测中存在的问题. FCOS的分类 ...
- Mutual Supervision for Dense Object Detection(ICCV2021)阅读笔记
同上一篇一样,这边摸鱼笔记也是关于分类和回归分支的权重设计. 论文来源于2021ICCV,论文链接:https://openaccess.thecvf.com/content/ICCV2021/pap ...
最新文章
- 在实践中我遇到stompjs, websocket和nginx的问题与总结
- 为了研究因果关系,原来科学家在这么多方向上都有尝试
- 转发与重定向(forward与redirect)
- MacBook的mission control的功能
- 点击率预估又有新花样?
- uva 11992 - Fast Matrix Operations
- JAVA图片不显示imageicon_怎么没法显示图片图标呢?
- P3273-[SCOI2011]棘手的操作【线段树,并查集】
- 前端学习(1400):多人管理20代码优化
- telnet linux 命令详解,解析Linux Telnet命令
- 现在小餐厅的推广视频
- Windows 11 新功能:管理蓝牙设备将不再困难
- 把Vim改装成一个IDE编程环境
- 国产免费的visio替代品edraw mind map,用来话流程图够用了
- 缓存与缓冲的区别 cache与buffer的区别
- 老码农的2019这一年——
- Review and start again——First Period JAVA web Program hotelmanagement:6.some about JAVA factory mode
- Ubuntu 20.04 搭建hadoop 集群
- 2016 word 安装6.9b mathtype后,灰色不可用
- 材料科学基础考研计算机,2017年西安工业大学计算机学院805材料科学基础考研仿真模拟题...
热门文章
- 【Luogu】P1972HH的项链(链表+树状数组)
- Struts2学习笔记一之工作原理和struts.xml解析
- Novernber Rain
- STM32的备份寄存器和控制状态寄存器
- 如何布局电子商务网站
- Eclipse的自动编译和手动编译
- 08. 切勿创建包含auto_ptr的容器
- 文件储存php源码,求php后台代码 保存图片文件
- cloudflare免费证书_国外Cloudflare免费ssl证书设置
- 尼尔机械纪元 机器人博士_还记得章鱼博士吊打蜘蛛侠的炫酷机械臂吗?现实版已经研发出来了...