RetinaNet:Focal Loss for Dense Object Detection(CVPR2018)

news2025/2/7 3:16:56


文章目录

  • Abstract
    • 北京
    • 发现问题并给出方法
    • 成果
  • Introduction
  • Related Work
    • Robust 评估
  • Focal Loss
    • Balanced Cross Entropy
    • Focal Loss Definition
    • Class Imbalance and Model Initialization
    • Class Imbalance and Two-stage Detectors
  • RetinaNet Detector
  • Experiments
  • Conclusion

hh
源代码

Abstract

北京

迄今为止,精度最高的目标检测器是基于R-CNN推广的两阶段方法,其中分类器应用于候选目标位置的稀疏集。相比之下,应用于对可能的目标位置进行常规、密集采样的单级探测器有可能更快、更简单,但到目前为止还不如两阶段检测器的准确性。

发现问题并给出方法

在本文中,我们调查了为什么会出现这种情况。我们发现,在密集检测器训练过程中遇到的极端前景-背景类不平衡是主要原因我们建议通过重塑标准交叉熵损失来解决这种类不平衡,从而降低分配给分类良好的示例的损失的权重。我们的新Focal Loss将训练集中在一组稀疏的困难示例上,并防止在训练期间大量的简单负样本让检测器失去应有的功效(1T,1000F,全F错误率1/1001)。

成果

为了评估损失的有效性,我们设计并训练了一个简单的密度检测器RetinaNet。我们的研究结果表明,当使用焦损进行训练时,RetinaNet能够匹配先前的一级检测器的速度,同时超过所有现有的最先进的两级检测器的精度。

Introduction

对于两阶段检测器,第一阶段生成候选目标位置的稀疏集第二阶段使用卷积神经网络对每个候选位置提取特征区分前景和背景
我们提出了一种单阶段目标检测器,首次与更复杂的两阶段检测器的最先进的COCO AP相匹配,例如特征金字塔网络(FPN)[20]或Faster R-CNN[28]的Mask R-CNN[14]变体。为了达到这个结果,我们确定训练过程中的类不平衡是阻碍单阶段检测器达到最先进精度的主要障碍,并提出了一个新的损失函数(Focal Loss)来消除这个障碍

(好吧,也没我以为的那么潇洒)类不平衡在类r - cnn检测器中通过两阶段级联和抽样启发式来解决。提案阶段(例如,Selective Search [35], EdgeBoxes [39], DeepMask [24,25], RPN[28])迅速将候选对象位置的数量缩小到少量(例如,1-2k),过滤掉大多数背景样本。在第二个分类阶段,进行抽样启发式,例如固定的前景与背景比例(1:3),或在线硬示例挖掘(OHEM)[31],以保持前景和背景之间可管理的平衡

相比之下,单阶段检测器必须处理更大的候选对象位置集,这些候选对象位置在图像上定期采样。在实践中,这通常相当于枚举密集覆盖空间位置、尺度和纵横比的约100k个位置。虽然也可以应用类似的抽样启发式,但它们效率低下,因为训练过程仍然由易于分类的背景样本主导。这种低效率是目标检测中的一个经典问题,通常通过bootstrapping[33,29]或硬例挖掘[37,8,31]等技术来解决

在本文中,我们提出了一个新的损失函数,作为一个更有效的替代以前的方法来处理类不平衡。损失函数是动态缩放的交叉熵损失,随着正确类别置信度的增加,比例因子衰减到零,见图1

设置γ > 0减少了分类良好的示例(p t > .5)的相对损失,把更多的注意力放在困难的、错误分类的例子上

直观地说,这个比例因子可以在训练过程中自动降低简单示例的权重,并迅速将模型集中在困难示例上。实验表明,我们提出的Focal Loss使我们能够训练一个高精度的单阶段检测器,其性能明显优于使用抽样启发式或硬示例挖掘训练的替代方案,这是先前用于训练单阶段检测器的最先进技术。最后,我们注意到焦点损失的确切形式并不重要,并且我们展示了其他实例可以实现类似的结果

为了证明所提出的焦点损失的有效性,我们设计了一个简单的单级目标检测器RetinaNet,因其在输入图像中对目标位置进行密集采样而命名。它的设计特点是高效的网络内特征金字塔和锚盒的使用。它借鉴了来自[22,6,28,20]的各种最新思想。RetinaNet高效、准确;我们基于ResNet-101- FPN骨干网的最佳模型,在以5 fps运行时实现了39.1的COCO测试开发AP,超过了之前发布的单级和两级检测器的最佳单模型结果,见图2。

Related Work

介绍了下以往的经典检测器、一阶段、二阶段检测器。指出RetinaNet的设计与以前的密集检测器有许多相似之处,特别是RPN[28]引入的“锚”概念以及SSD[22]和FPN[20]中使用的特征金字塔。强调RetinaNet获得的最佳结果不是基于网络设计的创新,而是由于我们的新颖Focal Loss损失

Robust 评估

人们对设计鲁棒损失函数(例如,Huber损失[13])非常感兴趣,该函数通过降低具有大误差的示例(硬示例)的损失权重来减少异常值的贡献。相比之下,我们的焦点损失不是解决异常值,而是通过降低内部值(简单的例子)的权重来解决类别不平衡,这样即使它们的数量很大,它们对总损失的贡献也很小。换句话说,焦点损失执行与鲁棒损失相反的角色:它将训练集中在一组稀疏的硬示例上

Focal Loss

焦点损失是为了解决在训练期间前景和背景类之间存在极端不平衡的单阶段对象检测场景(例如1:1000)。我们从二元分类的交叉熵(cross entropy, CE)损失入手,引入焦损:

在上面,y∈{±1}指定基真类,p∈[0,1]是模型对标签y = 1的类的估计概率。

为了表示方便,我们定义p t:
所以CE(p,y)可以表示为

CE损失如图1中的蓝色(顶部)曲线所示。从图中可以很容易地看出,这种损失的一个显著特性是,即使是容易分类的例子(p t 》0.5)也会带来巨大的损失。当对大量简单的例子求和时,这些小的损失值可能会压倒罕见的类。

Balanced Cross Entropy

解决类失衡的一个常用方法是为类1引入一个加权因子α∈[0,1],为类- 1引入1 - α。在实际应用中,α可以用逆类频率来设定,也可以作为一个超参数,通过交叉验证来设定。为了表示方便,我们像定义p t一样定义α t。我们将α-平衡CE损失写成:

Focal Loss Definition

正如我们的实验将显示的那样,密集检测器训练过程中遇到的大类不平衡压倒了交叉熵损失。容易分类的底片构成了大部分的损失,并主导了梯度。虽然α平衡了积极/消极例子的重要性,但它并不区分简单/困难的例子。因此,我们建议重塑损失函数以降低简单示例的权重,从而将训练重点放在困难的否定上。
我们建议在交叉熵损失中加入一个调制因子(1−p t) γ,可调聚焦参数γ≥0。我们将焦损定义为:
图1显示了γ∈[0,5]的几个值下的焦损。我们注意到焦损的两个特性。(1)当样本被误分类,且p t较小时,调制因子接近1,损失不受影响。当p t→1时,因子趋于0,并且对分类良好的示例的损失是下加权的。(2)聚焦参数γ平滑地调整了简单样例降权的速率。当γ = 0时,FL相当于CE,并且随着γ的增加,调制因子的效果也同样增加(我们发现γ = 2在我们的实验中效果最好)。
直观地,调制因子减少了简单示例的损失贡献,并扩展了示例接收低损失的范围。例如,当γ = 2时,一个分类为p t = 0.9的例子的损失比CE低100倍,当p t≈0.968时,其损失比CE低1000倍。这反过来又增加了纠正错误分类示例的重要性(当p t≤0.5且γ = 2时,其损失最多减少4倍)。
实践中使用α-平衡焦点损失,发现γ=2,α=0.25时效果最好

最后我们注意到损失层结合sigmoid操作实现用损失计算p,使数值稳定性更强

Class Imbalance and Model Initialization

默认情况下,二元分类模型初始化为输出y = - 1或1的概率相等。在这种初始化下,在类不平衡的情况下,由于类的频繁而造成的损失会超过总损失,导致早期训练不稳定为了解决这个问题,我们引入了“先验”的概念,用于在训练开始时对罕见类(前景)的模型估计p值。我们用π表示先验,并将其设置为模型的估计值p(对于该类的例子)慢,例如0.01。我们注意到这是模型初始化的变化(见§4.1),而不是损失函数的变化。我们发现,在严重类不平衡的情况下,这可以提高交叉熵和焦点损失的训练稳定性

Class Imbalance and Two-stage Detectors

两级检测器通常使用交叉熵损失进行训练,而不使用α-平衡或我们提出的损失。相反,他们通过两种机制来解决类别不平衡问题:(1)两阶段级联和(2)有偏差的小批量抽样。第一个级联阶段是一个对象提议机制[35,24,28],它将几乎无限的可能对象位置集减少到一到两千个。重要的是,所选择的建议不是随机的,而是可能对应于真实的对象位置,这消除了绝大多数容易的否定。当训练第二阶段时,偏抽样通常用于构建小批量,例如,包含1:3比例的正样例与负样例。这个比率就像一个隐式的通过抽样实现的α平衡因子。我们提出的焦损是为了在一级检测系统中直接通过损失函数来解决这些机制。

RetinaNet Detector

RetinaNet是由一个骨干网和两个任务子网组成的单一、统一的网络。主干负责计算整个输入图像上的卷积特征映射,是一个离自卷积网络。第一子网对主干网的输出执行卷积对象分类;第二个子网执行卷积边界盒回归。这两个子网的特点是我们专门为单阶段密集检测提出的简单设计,见图3。虽然这些组件的细节有许多可能的选择,但大多数设计参数对实验中显示的精确值并不特别敏感。接下来我们将描述RetinaNet的每个组成部分。
简单来说RetinaNet在ResNet架构上添加了FPN瓶颈,然后分别用分类子网和边界盒回归子网进行分类和回归
RetinaNet使用特征金字塔层p3到p7,其中p3到p5是从对应的ResNet剩余阶段(c3到c5)的输出中使用自上而下和横向连接计算的,p6通过对c5进行3×3步幅2转换获得,p7通过应用ReLU然后对p6进行3×3 stride-2转换来计算。
(1)由于计算原因,我们没有使用高分辨率金字塔级p2
(2) p6是通过跨行卷积而不是下采样计算的
(3)我们包括p7以改进大型目标检测。这些微小的修改提高了速度,同时保持了准确性。

Experiments


Conclusion

在这项工作中,我们认为类不平衡是阻碍单阶段目标检测器超越表现最好的两阶段方法的主要障碍。为了解决这个问题,我们提出了焦点损失,它将调制项(1−p t) γ应用于交叉熵损失,以便将学习集中在硬负例上。我们的方法简单而高效,我们通过设计一个全卷积单级检测器(RetinaNet)来证明其有效性,并报告了广泛的实验分析,表明它达到了最先进的精度和速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1336527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BFS解决多源最短路相关leetcode算法题

文章目录 1.01矩阵2.飞地的数量3.地图中的最高点4.地图分析 1.01矩阵 01矩阵 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0}; public:vector<vector<int>> updateMatrix(vector<vector<int>>& mat) {//正难则反&#xff0c;找0…

基于机器学习算法的数据分析师薪资预测模型优化研究(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【WordPress插件】热门关键词推荐v1.3.0 Pro开心版

介绍&#xff1a; WordPress插件-WBOLT热门关键词推荐插件&#xff08;Smart Keywords Tool&#xff09;是一款集即时关键词推荐、关键词选词工具及文章智能标签功能于一体的WordPress网站SEO优化插件。 智能推荐&#xff1a; 热门关键词推荐引擎-支持360搜索、Bing、谷歌&a…

【快刊录用】Springer旗下2区,1个21天录用,12天见刊!

网络安全类SCIE ☑️期刊简介&#xff1a;IF&#xff1a;4.0-5.0&#xff0c;JCR2区&#xff0c;中科院3区 ☑️检索情况&#xff1a;SCIE 在检&#xff0c;正刊 ☑️征稿领域&#xff1a;提高安全性和隐私性的边缘/云的智能方法的研究&#xff0c;如数字孪生等 ☑️录用案…

如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务

文章目录 1.测试环境2.本地配置2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道3. 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名5. 使用固定二级子域名进行访问 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,…

Object.hashCode() 详解

在Java编程中&#xff0c;hashCode方法是一个常见而重要的概念。它通常用于哈希表、集合以及一些需要高效检索数据的数据结构中。然而&#xff0c;对于许多开发者来说&#xff0c;hashCode方法可能是一个容易被忽略或者被简单实现的部分。在本文中&#xff0c;我们将深入探讨Ja…

Azure Machine Learning - Azure OpenAI GPT 3.5 Turbo 微调教程

本教程将引导你在Azure平台完成对 gpt-35-turbo-0613 模型的微调。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&…

FreeRTOS的学习

1.创建函数和删除 动态创建为FreeRTOS分配的堆栈&#xff08;方便&#xff09;&#xff0c;而静态创建为人为分配空间。任务中必须有while&#xff08;1&#xff09;否则只会执行一次任务中的延时要用 vTaskDelay(500); 延时期间执行其它任务 任务中的延时使用的是软件…

Qt Creator可视化交互界面exe快速入门2

上一期介绍的通过代码的方式实现一个简单界面&#xff0c;需要敲小几十行代码&#xff0c;显然是效率低的&#xff0c;这期就介绍下Qt Creator的作用。 Qt Creator的使用&#xff1a; 首先打开我们的Qt Creator 然后点击创建项目&#xff0c;在项目Application里面选择Qt Wid…

网站在线客服系统推荐:提升客户体验与满意度

精致的前端页面可以提供访客的用户体验感&#xff0c;连接响应迅速可以帮助客服人员及时联系到访客帮助其解决问题&#xff0c;访客来源明细可以帮助客服人员更加清楚的了解用户需求以展开更有针对性的营销&#xff0c;操作方便有助于公司迅速培训员工&#xff0c;同时也方便客…

Appium如何实现移动端UI自动化测试呢?

Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门&#xff0c;那么我们就直奔主题。文章结构如下&#xff1a; 为什么要使用Appium&#xff1f;如何搭建Appium工具环境?(超详细&#xff09;通过demo演示Appium的使用Appium如何实现移动端UI自…

一文速览字节最新分布式操作系统KubeWharf

一文速览字节最新分布式操作系统KubeWharf KubeWharf 是字节跳动基础架构团队在对 Kubernetes 进行了大规模应用和不断优化增强之后的技术结晶。 这是一套以 Kubernetes 为基础构建的分布式操作系统&#xff0c;由一组云原生组件构成&#xff0c;专注于提高系统的可扩展性、功…

绝地反击,不做背锅侠!

那么作为运维人员&#xff0c;如何摆脱以上背黑锅的尴尬局面呢&#xff1f;堡垒机当然是破解此局面的绝杀大招。 1.统一登录入口 提供统一入口&#xff0c;集中管理和分配账户密码、所有运维人员只能登录堡垒机才能访问服务器&#xff0c;梳理“人与服务器”之间的关系&#…

案例169:基于微信小程序的小区疫情防控系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

各种不同的安科瑞电力物联网仪表实现互联互通

安科瑞 崔丽洁 电力物联网是物联网在智能电网中的应用&#xff0c;是有效整合通信基础设施资源和电力基础设施资源&#xff0c;提高电力系统信息化水平&#xff0c;改善电力系统现有基础设施利用效率的重要举措。 电力物联网仪表为终端感知设备&#xff0c;该系列产品将我们多年…

2015年第四届数学建模国际赛小美赛B题南极洲的平均温度解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 B题 南极洲的平均温度 原题再现&#xff1a; 地表平均温度是反映气候变化和全球变暖的重要指标。然而&#xff0c;在以前的估计中&#xff0c;在如何界定土地平均数方面存在一些方法上的差异。为简单起见&#xff0c;我们只考虑南极洲。请建…

掌握ElasticSearch(一):Elasticsearch安装与配置、Kibana安装

文章目录 〇、简介1.Elasticsearch简介2.典型业务场景3.数据采集工具4.名词解释 一、安装1.使用docker(1)创建虚拟网络(2)Elasticsearch安装步骤 2.使用压缩包 二、配置1.目录介绍2.配置文件介绍3.elasticsearch.yml节点配置4.jvm.options堆配置 二、可视化工具Kibana1.介绍2.安…

C++图论之强连通图

1. 连通性 什么是连通性&#xff1f; 连通&#xff0c;字面而言&#xff0c;类似于自来水管道中的水流&#xff0c;如果水能从某一个地点畅通流到另一个地点&#xff0c;说明两点之间是连通的。也说明水管具有连通性&#xff0c;图中即如此。 无向图和有向图的连通概念稍有差…

RFID技术在汽车制造:提高生产效率、优化物流管理和增强安全性

RFID技术在汽车制造:提高生产效率、优化物流管理和增强安全性 随着科技的进步&#xff0c;物联网技术已经深入到各个领域&#xff0c;尤其在制造业中&#xff0c;RFID技术以其独特的优势&#xff0c;如高精度追踪、实时数据收集和自动化操作&#xff0c;正在改变传统的生产方式…

数字人直播一比一克隆:实现虚拟与现实的完美融合

数字人直播一比一克隆技术作为当今科技领域的一项重要突破&#xff0c;将虚拟与现实完美融合&#xff0c;引发了广泛的关注和讨论。这项技术不仅能够创造一个以数字人为基础的虚拟世界&#xff0c;同时也能够将真实人物复制到数字化的平台上进行直播&#xff0c;让观众在屏幕前…