目标检测-One Stage-RetinaNet

文章目录

  • 前言
  • 一、RetinaNet的网络结构和流程
  • 二、RetinaNet的创新点
    • Balanced Cross Entropy
    • Focal Loss
  • 总结


前言

根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升,但是One Stage目标检测模型仍存在一个很大的问题:

  • 前景(positive)和背景(negatives)类别的不平衡

ps:假设我们有一个医学图像分类任务,要识别是否患有一种罕见的疾病。在这个场景中,正类别是患有疾病的图像,负类别是健康的图像。由于罕见疾病的患者数量相对较少,数据集中正类别的样本数量远远少于负类别。这就是前景和背景的类别不平衡问题。

RetinaNet 针对上述缺点做了改进


提示:以下是本篇文章正文内容,下面内容可供参考

一、RetinaNet的网络结构和流程

  • 将影像输入卷积网络(ResNet)+特征金字塔网络(FPN)得到多尺度特征图(P3-P7, 3 2 2 32^2 322 to 51 2 2 512^2 5122

ps:和SSD的多尺度特征图相比加入了自顶而下的特征融合机制

  • 引入anchor机制,每个特征点对应9个anchor(3种横纵比×3种尺寸)
  • 将上一步得到的anchor输入不同的分类和边框回归器
  • 使用非极大值抑制NMS去除冗余窗口

在这里插入图片描述

二、RetinaNet的创新点

  • 最核心的就是提出Focal Loss损失函数来解决前景和背景类别的不平衡问题

在One Stage目标检测网络中损失函数中一般分为两部分(分类损失+回归损失),正负样本都会计算分类损失,然后仅对正样本进行回归损失的计算。

Balanced Cross Entropy

正负样本都计算分类损失,会造成的问题是,负样本是远远多于正样本的,为了解决这种类别不平衡问题,可以采用平衡交叉熵损失(Balanced Cross Entropy),即在交叉熵损失的基础上,引入一个权重因子 α ,当类标签是 1 时,权重因子是 α ,当类标签是 -1 时,权重因子是 1 − α 。

B C E ( p , y ) = − α t ​ l o g ( p t ​ ) BCE(p,y)=−α_t​log(p_t​) BCE(p,y)=αtlog(pt)

其中pt = p if y=1 else pt = 1-p,p范围在 [0, 1] , a 1 − a = n m \frac{a}{1-a}=\frac{n}{m} 1aa=mn ,m为正样本数,n为负样本数

Balanced Cross Entropy 解决了正负样本的比例失衡问题(positive/negative examples),但是这种方法仅仅解决了正负样本之间的平衡问题,并没有区分简单还是难分样本(easy/hard examples)。当容易区分的负样本(easy negatives)的泛滥时,整个训练过程都是围绕容易区分的样本进行(小损失积少成多超过大损失),而被忽略的难区分的样本才是训练的重点。

Focal Loss

因此,Focal Loss将权重因子 α修改为调制因子 ( 1 − p t ​ ) γ (1−p_t​)^γ (1pt)γ ,整个公式如下

F L ( p t ​ ) = − ( 1 − p t ​ ) γ l o g ( p t ​ ) FL(p_t​)=−(1−p_t​)^γlog(p_t​) FL(pt)=(1pt)γlog(pt)

γ \gamma γ 也是一个参数,范围在 [0, 5], p t p_t pt趋向于1时(概率大),说明该样本比较容易区分,此时,调制因子趋向于 0 的样本的loss贡献值会很小,反之则知难区分的样本loss贡献值占比大,当 γ = 0 \gamma = 0 γ=0 的时候,FL 就是原来的交叉熵损失 CE,随着 γ \gamma γ 的增大,调整速率也在变化,实验表明,在 γ = 2 \gamma = 2 γ=2 时,效果最佳

在这里插入图片描述


总结

在coco test-dev数据集上,RetinaNet达到当时的SOTA(最高39.1mAP,图中未给出)
在这里插入图片描述

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

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

相关文章

ARM NEON 指令

NEON指令 按照操作数类型可以分为正常指令、宽指令、窄指令、饱和指令、长指令。 正常指令:生成大小相同且类型通常与操作数向量相同到结果向量。长指令:对双字向量操作数执行运算,生产四字向量到结果。所生成的元素一般是操作数元素宽度到…

ReentrantLock底层原理学习一

J.U.C 简介 Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。并发包的作者是大名鼎鼎的 Doug Lea。我们在接下来的课程中,回去剖析一些经典的比较…

vite4项目中,vant兼容750适配

一般非vite项目,使用postcss-px-to-viewport。在设计稿为750时候,可使用以下配置兼容vant。 在vite4项目中,以上配置不行。需要调整下,使用postcss-px-to-viewport-8-plugin,并修改viewportWidth,具体如下…

CSS新增文本样式(完整)

文本样式 概念:在CSS3中,增加了丰富的文本修饰效果,使得页面更加美观舒服。 常用的文本样式属性 属性说明text-shadow文本阴影text-stroke文本描边text-align-last文本对齐white-space处理空白字符text-overflow文本溢出word-wrap | word-…

【Linux 内核源码分析】关于Linux内核源码目录结构

Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行。 使用Source Insight打开源码,如下图所示,可以看到源码是树形结构。 目录含义描述arch存放与体系结构相关的代码,包括不同硬件平台的特定代…

Qt/QML编程学习之心得:QSocketNotifier(二十一)

QSocketNotifier在Qt中怎么使用? QSocketNotifier使Qt的事件循环与其他基于文件描述符的事件循环集成成为可能。在Qt的主事件循环(QCoreApplication::exec())中检测到文件描述符操作。 使用低级(通常是特定于平台的)API打开设备后,可以创建一个套接字通知程序来监视文…

DDoS攻击的多种方式

DDOS攻击指分布式拒绝服务攻击,即处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务…

leetcode:2451. 差值数组不同的字符串(python3解法)

难度&#xff1a;简单 给你一个字符串数组 words &#xff0c;每一个字符串长度都相同&#xff0c;令所有字符串的长度都为 n 。 每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 差值整数数组 difference[i] &#xff0c;其中对于 0 < j < n - 2 有 difference[i]…

【unity小技巧】FPS游戏实现相机的偏移震动、武器射击后退和后坐力效果

最终效果 文章目录 最终效果前言相机偏移震动相机震动脚本换弹节点震动 武器射击后退效果武器后坐力效果完结 前言 关于后坐力之前其实已经分享了一个&#xff1a;FPS游戏后坐力制作思路 但是实现起来比较复杂&#xff0c;如果你只是想要简单的实现&#xff0c;可以看看这个&…

使用printJS使网页打印成PDF、网页html结合printJS导出为pdf

先放几个参考链接 感谢&#xff01; Vue使用PrintJS实现页面打印功能_vue print.js 设置打印pdf的大小-CSDN博客 前台导出pdf经验汇总 &#xff08;html2canvas.js和浏览器自带的打印功能-print.js&#xff09;以及后台一些导出pdf的方法_iqc后台管理系统怎么做到导出pdf-CSD…

大创项目推荐 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

ssm基于JSP的网络游戏交易系统的设计与实现+jsp论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;商品管理信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足…

面试题理解深层次的数组名

目录 引言 一&#xff1a;一维数组 举例如下 1.铺垫知识 数组名是数组首元素的地址&#xff0c;但是有两个特殊情况 &#xff08;1&#xff09;sizeof(数组名) &#xff08;2&#xff09;&数组名 2.分析讲解上述代码结果 2.字符数组 举例一如下 1.知识铺垫 …

(三)其他的输入输出

文章目录 getchar();单个字符输入使用&#xff1a; putchar();单个字符输出(自带换行)使用 puts();字符串输出与printf区别使用 gets();后面补充 代码现象 getchar(); 单个字符输入 使用&#xff1a; 变量 getchar(); 例&#xff1a;char a&#xff1b; a getchar(); put…

软件测试之单元测试、系统测试、集成测试知识总结

一、单元测试的概念 单元测试是对软件基本组成单元进行的测试&#xff0c;如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff0c;有可能对应多个程序文件中的一组函数。 单元也具有一些基本的属性。比如&#xff1a;明确的功能、规格定义&#…

PHP进阶-实现网站的QQ授权登录

授权登录是站点开发常见的应用场景&#xff0c;通过社交媒体一键授权可以跳过注册站点账户的繁琐操作。本文将讲解如何用PHP实现QQ授权登录。首先&#xff0c;我们需要申请QQ互联开发者账号获得APPID和密钥&#xff1b;接着&#xff0c;我们下载QQ官方SDK&#xff1a;PHP SDK v…

IP地址定位技术的应用及其重要性

随着网络技术的快速发展&#xff0c;网络安全问题日益凸显&#xff0c;IP地址定位技术在网络安全领域的应用也越来越广泛。本文将介绍IP地址定位技术在网络安全领域的应用及其重要性。 一、IP地址定位技术概述 IP地址定位技术是指通过一定的技术手段&#xff0c;将虚拟网络中的…

关于《码农翻身》一书的读后感以及自己的一些拙见汇总

书籍名称 《码农翻身》 | 刘欣&#xff08;码农翻身&#xff09; 著 | 文章将以问答的形式进行叙述 1.是从什么渠道接触到《码农翻身》的 一个工作日的下午&#xff0c;手上的任务基本结束&#xff0c;翻了翻桌上的书和笔记之类的&#xff0c;同事见我在看书&#xff0c;于是向…

阿里后端实习一面面经

阿里后端实习一面面经 项目中使用到了es&#xff0c;es的作用&#xff1f; elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 es中的重要概念&#xff1f; 群集&#xff1a;一个或多个节点…

PostgreSQL的常见错误和解决方法

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在学习新的东西时&#xff0c;会犯很多的错误&#xff0c;会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…