Faster RCNN系列2——RPN的真值与预测值概述

news2025/1/15 7:16:55

Faster RCNN系列:

Faster RCNN系列1——Anchor生成过程
Faster RCNN系列2——RPN的真值与预测值概述
Faster RCNN系列3——RPN的真值详解与损失值计算
Faster RCNN系列4——生成Proposal与RoI
Faster RCNN系列5——RoI Pooling与全连接层

  对于目标检测任务,模型需要预测物体的类别和位置,即类别、边框中心点坐标 x x x y y y 、边框宽 w w w 与高 h h h 这5个量,基于Anchor这个先验框,RPN可以预测Anchor的类别作为预测边框的类别,可以预测真实的边框相对于Anchor的偏移量进而求解真实边框的位置。

  因此,RPN有两种真实和预测值,分别是类别偏移量

  如下图所示,输入图像中有3个Anchor和2个标签,Anchor A与label M有重叠,Anchor C与label N有重叠,Anchor B不与任何label重叠。

在这里插入图片描述

图1 Anchor与标签的关系

1.1 真值

  • 类别真值

  这里的类别真值是指Anchor是属于前景还是属于背景。RPN通过计算Anchor与标签的IoU来判断一个Anchor是属于前景还是属于背景。图1中Anchor A与label M的IoU计算公式如下:

I o U ( A , M ) = A ∩ M A ∪ M IoU(A,M)=\frac{A\cap M}{A\cup M} IoU(A,M)=AMAM

  当IoU大于一定值时,该Anchor的类别真值为前景;当IoU小于一定值时,该Anchor的类别真值为背景。具体的判断标准如下:

  • 对于任何一个Anchor,与所有标签的最大IoU小于0.3,则视为负样本。

  • 对于任何一个标签,与其有最大IoU的Anchor视为正样本。

  • 对于任何一个Anchor,与所有标签的最大IoU大于0.7,则视为正样本。

  • 偏移量真值

  假设图1中Anchor A的中心坐标为 x a x_{a} xa y a y_{a} ya,宽高分别为 w a w_{a} wa h a h_{a} ha,标签M的中心坐标为 x x x y y y,宽高分别为 w w w h h h,则偏移量真值的计算公式如下:

{ t x = ( x − x a ) w a t y = ( y − y a ) h a t w = l o g ( w w a ) t h = l o g ( h h a ) \left\{\begin{matrix} t_{x}= \frac{(x-x_{a})}{w_{a}}\\ t_{y}= \frac{(y-y_{a})}{h_{a}} \\ t_{w}=log(\frac{w}{w_{a}}) \\ t_{h}=log(\frac{h}{h_{a}}) \end{matrix}\right. tx=wa(xxa)ty=ha(yya)tw=log(waw)th=log(hah)

1.2 预测值

  RPN通过搭建如图2所示的网络结构,实现对类别和偏移量的预测,即通过分类分支求得类别预测值、通过回归分支求得偏移量预测值。

在这里插入图片描述

图2 RPN网络结构
  • 类别预测值

  在分类分支中,首先使用 1 × 1 1×1 1×1卷积输出 18 × 37 × 50 18×37×50 18×37×50的特征,由于每个点默认有9个Anchors,并且每个Anchor 只预测其属于前景还是背景,因此通道数为18。随后利用torch.view()函数将特征映射到 2 × 333 × 75 2×333×75 2×333×75,这样第一维仅仅是一个Anchor的前景背景得分,并送到Softmax函数中进行概率计算,得到的特征再变换到 18 × 37 × 50 18×37×50 18×37×50的维度,最终输出的是每个Anchor属于前景与背景的概率。

  • 偏移量预测值

  在回归分支中,利用 1 × 1 1×1 1×1卷积输出 36 × 37 × 50 36×37×50 36×37×50的特征,第一维的36包含9个Anchors的预测,每一个Anchor有4个数据,分别代表了每一个Anchor的中心点横纵坐标及宽高这4个量相对于真值的偏移量。

参考文章

《深度学习之Pytorch物体检测实战》

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

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

相关文章

Replicator简介

Replicator 文章目录 ReplicatorReplicator简介合成数据训练背后的理论Replicator核心组件已知的问题 Replicator简介 Omniverse Replicator 是一个高度可扩展的框架,构建在可扩展的 Omniverse 平台上,可生成物理上准确的 3D 合成数据,以加速…

传输线的物理基础(十):特性阻抗的频率变化

到目前为止,我们一直假设传输线的特性阻抗随频率保持不变。正如我们所见,从传输线前端看,输入阻抗与频率密切相关。毕竟,在低频时,远端开路的传输线的输入阻抗看起来像一个电容器,阻抗开始很高,…

JavaScript中的执行上下文和执行栈

执行上下文概念以及理解 执行上下文是评估和执行JavaScript代码环境的抽象概念,但我们在JavaScript中所做的声明变量,声明函数,执行函数。他们都是在执行上下文中运行,也有了所谓的作用域。 执行上下文的类型 执行上下文分为三…

创建vite+vue+electron项目

写在前面的废话 首先,这是一篇缝合文,我的目的就是想用vite、vue结合electron打包一个windows应用;其次,项目只是这三个工具的简单应用,目前还没有往里面添加其他内容。再次,项目过程中参考了google的多篇文…

执行数学的运算

数学是计算机编程的重要能力。遗憾的是,对shell脚本来说,这个处理过程比较麻烦。在shell脚本中两种途径来进行数学运算。 expr命令 最开始,Bourne shell提供了一个特别的命令用来处理数学表达式。expr命令允许在命令行上处理数学数学表达式。…

EMQX vs VerneMQ | 2023 MQTT Broker 对比

引言 EMQX 和 VerneMQ 都是用 Erlang/OTP 开发的高性能、分布式开源 MQTT Broker,以其稳定性、容错性和扩展性著称。 EMQX 是目前全球最受欢迎的 MQTT Broker 之一,而 VerneMQ 项目近年来却没有积极地开发和维护。 本文是《2023 年 MQTT Broker 对比》…

可视化电子标签在仓储管理上的应用

随着经济快速增长和激烈的国内外市场竞争,要求企业运作的每个环节反应要迅速,经济转型要求更趋向改善工作流程、提高作业效率、减低运作成本、增加企业效益成为当务之急。虽然许多企业都有实施库存管理系统,但系统主要以人工盘点和走单据流程…

请收下这些软件测试学习干货,不看后悔一辈子

学习软件测试的过程中会遇到很多很多的困难和挑战,只有跨过这些困难和挑战,才有机会挑战软件测试领域的高薪offer。今天我们就来梳理一下,学习软件测试的过程中,我们一般都会遇到哪些困难,我们又当如何克服这些困难。 …

ChatGPT/大模型+零代码,给中小企业带来哪些机会?

ChatGPT让2023年成了AI之年。正如iPhone在2007年开启了智能手机时代,我们现在正在进入人工智能时代。 新形势下,零代码应如何借势发力?伙伴云“AI零代码”给出了答案。 作为零代码领域的头部平台,伙伴云全量发布【AI零代码应用搭…

暖通空调系统智能化故障检测诊断研究综述与展望

暖通空调系统智能化故障检测诊断研究综述与展望 【摘 要】暖通空调系统智能化化故障检测与诊断对提高运维水平和能源效率具有重要意义。 本文总结了暖通空调故障检测与诊断领域近二十多年来的研究历程,探讨了基于规则、基于模型和基于数据等三类主流方法的优劣&…

一键生成!如何为整个go项目自动添加单测

效果 为go项目中每个go文件生成对应的test文件,为每个接口生成对应的单测接口。 类似于这样,为go项目中每个包都生成一个test文件,单测模板如下: 比如函数接口为func releaseEndpoint(instanceID string, endpointID string) er…

微信小程序中使用 wx.getLocation获取当前详细位置并计算距离

文章目录 前言1,wx.getLocation()2,获取详细地址3,计算距离4,报错信息: getLocation:fail 频繁调用会增加电量损耗5,报错信息: 请求源未被授权 前言 wx.getLocation只能够获取经纬度&#xff0c…

java Maven 的理解

一、maven项目产生的原因 当开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢? 答:可以将B项目打成jar包,然后在A项目的Library下导入B的ja…

保姆级教程|昨晚撸了一个ChatGPT群聊机器人

前言 近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓…

ChatGPT与文心一言对比思考

ChatGPT与文心一言对比思考 1. 目前在国内比较广泛被认知的ai模型有什么 我目前通过各种渠道注册到的账号有3个,按照了解到然后注册的顺序分别是 ChatGPTnewbing文心一言 3种ai的注册渠道 ChatGPT注册: 科学上网注册寻找外网手机号发送短信 newbing注册: 科学上网注册微软账…

政企数智办公巡展回顾 | 通信赋能传统行业数智化转型的应用实践

在宏观政策引导、技术革新与企业内部数字化改革需求的共同驱使下,数智办公已经成为各行各业转型升级的必由之路。关注【融云 RongCloud】,了解协同办公平台更多干货。 近期,“连接无界 智赋未来” 融云 2023 政企数智办公巡展在北京、杭州相…

【Java】EnumSet的使用

一、什么是EnumSet? EnumSet是用于枚举类的专用Set集合。 它实现了Set接口并且继承AbstractSet。 当计划使用EnumSet时,必须考虑以下几点: 1、它只能包含枚举值,并且所有值必须属于同一个枚举。 2、它不允许添加 null,在尝试这样做时会抛出NullPointerException。 3、它不…

【SpringCloud AlibabaSentinel实现熔断与限流】

本笔记内容为尚硅谷SpringCloud AlibabaSentinel部分 目录 一、Sentinel 1、官网 2、Sentinel是什么 3、下载 4、特性 5、使用 二、安装Sentinel控制台 1、sentinel组件由2部分构成 2、安装步骤 1.下载 2.运行命令 3.访问sentinel管理界面 三、初始化演示工程 …

KVM虚拟机的磁盘无损扩容方法-qcow2格式的

起因:我的KVM主机上安装了基于Debian11的 虚拟机母鸡,其他虚拟机都由此克隆而来。因为最初只配置了8G的虚拟硬盘,因此在需要占用比较大的空间的应用时,就比较麻烦。度娘等中文搜索结果没找到答案,只能google了。 这里…

JVM系统优化实践(16):线上GC案例(一)

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~ 列举几个实际使用案例说一下GC的问题。一个高峰期每秒10万QPS的社交APP,个人主页模块是流量最大的那个,而一次个人主页的查询&#xff0c…