当前位置: 首页 > article >正文

Python----目标检测(《Fast R-CNN》和Fast R-CNN)

一、《Fast R-CNN》

1.1、基本信息

  • 作者:Ross Girshick

  • 机构:Microsoft Research

  • 发表时间:2015年

  • 论文链接:arXiv:1504.08083

  • 代码开源:GitHub仓库(MIT License)

1.2、主要内容

Fast R-CNN是一种高效的基于区域提议的卷积神经网络(R-CNN)改进方法,主要解决了R-CNN和SPPnet在训练和检测速度上的瓶颈问题,同时提升了检测精度。核心创新点包括:

  1. 单阶段训练:通过多任务损失函数(分类+边界框回归)实现端到端训练,取代了R-CNN的多阶段流程(如SVM分类器、特征缓存等)。

  2. RoI池化层:将不同大小的候选区域(RoI)统一为固定尺寸的特征图,共享卷积计算,显著加速训练和测试。

  3. 全网络微调:支持更新所有网络层(包括卷积层),而SPPnet无法更新卷积层。

  4. 性能提升

    • 训练速度:VGG16比R-CNN快9倍,比SPPnet快3倍。

    • 测试速度:比R-CNN快213倍(使用截断SVD加速全连接层)。

    • 检测精度:在PASCAL VOC 2012上mAP达到66%(R-CNN为62%)。

1.3、影响和作用

  • 技术贡献

    • 推动了目标检测从多阶段流水线向端到端训练的演进,为后续Faster R-CNN(引入区域提议网络RPN)奠定了基础。

    • 提出的RoI池化层成为后续检测模型(如Mask R-CNN)的标准组件。

  • 实际应用

    • 高效的训练和检测速度使其更适合实际部署,尤其在需要处理大量候选框的场景。

    • 开源实现促进了目标检测研究的快速发展。

  • 后续影响

    • 启发了更快的模型(如Faster R-CNN、YOLO、SSD)和更复杂的任务(如实例分割)。

    • 证明了深度卷积网络直接学习尺度不变性的能力,减少了对多尺度图像金字塔的依赖。

二、实现过程

        1. 候选区域生成:使用选择性搜索或其他方法生成约2000个候选区域 (使用Selective Search方法)。

        2. 获得特征矩阵:将原始的整幅图像输入网络得到相应的特征图,将SS 算法生成的候选框映射到特征图上获得相应的特征矩阵。

        3. 预测:将每个特征矩阵通过 RoI(Region of Interest)池化层缩放到 7x7大小的特征图,Fast R-CNN通过全连接层对每个RoI进行分类和边 界框回归。分类任务用于确定RoI中是否包含感兴趣的对象类别,而回 归任务则用于精确定位物体的边界框 ( Fast R-CNN通过整合所有组件 (特征提取、RoI池化、分类、回归)为一个网络模型,实现了端到端 的训练,简化了整体流程。 )。

2.1、获得特征矩阵

        在R-CNN中,需要对2000个候选区域都进行CNN,即进行2000次CNN计 算,在Fast R-CNN中,将整张图送入到CNN(使用的VGGNet-16)网络, 然后从特征图上提取相应的候选区域。

2.2、RoI池化层

将49个区域每一个区域都进行池化操作:

        最大池化通常用于提取每个子区域中最显著的特征值,以保留最重要的 信息(使用的这个)。

        平均池化则计算每个子区域中特征的平均值,用于保留更全局的信息。

就得到一个7 x 7 x channels的张量。

2.3、预测-分类器

        Softmax之前的FC层输出节点有N+1个节点,经过Softmax之后,得到概 率结果,例如Pascal VOC就是20类+1个背景。

        顺序是背景、第一类、...、第二十类。

2.4、预测-回归器

        与RCNN的回归器是一样的,只是回归参数是由FC网络训练得到,即20*4 的矩阵。

 2.5、损失函数

 Fast R-CNN的损失函数是同时用于分类和边界框回归的联合损失函数。其 定义为:

        Fast R-CNN的损失函数同时考虑了分类任务和回归任务:

                1. 分类损失:通过交叉熵损失函数来度量模型预测的类别与真实类别之间 的差异。这个损失引导模型进行正确的分类。

                2. 回归损失:通过平滑L1损失函数来度量模型预测的边界框与真实边界 框之间的差异。这个损失引导模型进行边界框的精确回归调整。

        通过联合这两部分损失,Fast R-CNN可以同时优化目标检测中的分类和定 位任务,使得模型能够更准确地识别目标类别并精确定位目标边界。超参数 用于调节分类损失和回归损失的相对重要性,通常通过实验设置一个 合适的值。 

三、 边框回归流程

四、 回归损失

训练样本偏移v的构造

x/y为什么要加缩放因子?

 

相关文章:

Python----目标检测(《Fast R-CNN》和Fast R-CNN)

一、《Fast R-CNN》 1.1、基本信息 作者:Ross Girshick 机构:Microsoft Research 发表时间:2015年 论文链接:arXiv:1504.08083 代码开源:GitHub仓库(MIT License) 1.2、主要内容 Fast R…...

iEKF的二维应用实例

如果熟悉 EKF 与卡尔曼的推导的话,iEKF 就比较容易理解,关于卡尔曼滤波的推导以及EKF,可以参考以前的文章: 卡尔曼滤波原理:https://blog.csdn.net/a_xiaoning/article/details/130564473?spm1001.2014.3001.5502 E…...

机器学习中的线性回归:从理论到实践的深度解析

一、引言 线性回归(Linear Regression)是机器学习和统计学中最基础且应用广泛的模型之一,用于预测连续型目标变量。它通过建立输入特征与输出变量之间的线性关系,实现对未知数据的预测。无论是预测房价、股票走势,还是…...

【通关文件操作(下)】--文件的顺序读写(续),sprintf和sscanf函数,文件的随机读写,文件缓冲区,更新文件

目录 四.文件的顺序读写(续) 4.8--fwrite函数 4.9--fread函数 五.sprintf函数和sscanf函数 5.1--函数对比 5.2--sprintf函数 5.3--sscanf函数 六.文件的随机读写 6.1--fseek函数 6.2--ftell函数 6.3--rewind函数 七.文件缓冲区 7.1--fflush函数 八.更新文件 &…...

mysql的Memory引擎的深入了解

目录 1、Memory引擎介绍 2、Memory内存结构 3、内存表的锁 4、持久化 5、优缺点 6、应用 前言 Memory 存储引擎 是 MySQL 中一种高性能但非持久化的存储方案,适合临时数据存储和缓存场景。其核心优势在于极快的读写速度,需注意数据丢失风险和内存占…...

尚硅谷-尚庭公寓部署文档

文章目录 整合版部署文档部署架构图1. 项目目录结构增加注释的 Dockerfile 配置(1) 后端服务1 Dockerfile (backend/service1/Dockerfile)(2) 后端服务2 Dockerfile (backend/service2/Dockerfile) Dockerfile 配置说明重要注意事项3. Nginx 配置(1) 主配置文件 (nginx/nginx.c…...

使用函数证明给定的三个数是否能构成三角形

问题描述 给定三条边&#xff0c;请你判断一下能不能组成一个三角形。 输入数据第一行包含一个数M&#xff0c;接下有M行&#xff0c;每行一个实例&#xff0c;包含三个正数A,B,C。其中A,B,C <1000; 对于每个测试实例&#xff0c;如果三条边长A,B,C能组成三角形的话&#x…...

【数据结构】——二叉树堆(下)

一、堆中两个重要的算法 我们前面学习了树的概念和结构&#xff0c;还要树的一种特殊树--二叉树&#xff0c;然后我们学习了堆&#xff0c;知道了堆分为大堆和小堆&#xff0c;接下来我们就使用堆来进行一个排序。 在学习我们的堆排序前&#xff0c;我们先详细学习一下我们堆…...

t009-线上代驾管理系统

项目演示地址 摘 要 使用旧方法对线上代驾管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在线上代驾管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题…...

目标检测预测框置信度(Confidence Score)计算方式

预测框的置信度&#xff08;Confidence Score&#xff09;是目标检测模型输出的一个关键部分&#xff0c;它衡量了模型对一个预测框中包含特定类别对象的确定程度。 不同的目标检测模型&#xff08;如Faster R-CNN、SSD、YOLO、DETR等&#xff09;在计算置信度时有其特有的机制…...

【题解-洛谷】B4295 [蓝桥杯青少年组国赛 2022] 报数游戏

题目&#xff1a;B4295 [蓝桥杯青少年组国赛 2022] 报数游戏 题目描述 某班级男生人数为 X X X 人&#xff0c;女生人数为 Y Y Y 人&#xff0c;现全班同学围成一个圆圈&#xff0c;并按照顺时针方向为每名同学编号&#xff08;从 1 1 1 到 X Y XY XY&#xff09;。现给…...

Bootstrap项目 - 个人作品与成就展示网站

文章目录 前言一、项目整体概述1. 项目功能介绍1.1 导航栏1.2 首页模块1.3 关于我模块1.4 技能模块1.5 作品模块1.6 成就模块1.7 博客模块1.8 联系我模块 2. 技术选型说明 二、项目成果展示1. PC端展示1.1 首页1.2 关于我1.3 技能1.4 作品1.5 成就1.6 博客1.7 联系我 2. 移动端…...

新能源汽车霍尔线束介绍

新能源汽车作为传统燃油车的重要替代方案&#xff0c;其核心驱动系统依赖于高效、精准的电子控制技术。在这一体系中&#xff0c;霍尔线束作为关键传感器组件&#xff0c;承担着电机转速、位置信号的实时采集与传输任务&#xff0c;其性能直接影响整车动力输出的稳定性和能量利…...

2023网络应用专业-Python程序设计复习题目

2023技校网络应用专业-Python程序设计复习题目 须知: 个人信息要填写正确,在线答题时间不限,可以反复作答,次数不限,最后取最高分。 第一部分:单选题 1. 在Python交互模式下&#xff0c;输入下面代码: >>> “{0:.2f}”.format(12345.6789) 回车后显示的结果为: [单选…...

Termux可用中间人网络测试工具Xerosploit

Termux可用中间人网络测试工具Xerosploit。 Xerosploit 是一款基于 MITM 的本地网络渗透测试工具包。 食用方法&#xff1a; git clone https://github.com/LionSec/xerosploit cd xerosploit sudo python3 install.py 运行&#xff1a; sudo xerosploit 使用备注&#xff1…...

气镇阀是什么?

01、阀门介绍&#xff1a; 油封机械真空泵的压缩室上开一小孔&#xff0c;并装上调节阀&#xff0c;当打开阀并调节入气量&#xff0c;转子转到某一位置&#xff0c;空气就通过此孔掺入压缩室以降低压缩比&#xff0c;从而使大部分蒸汽不致凝结而和掺入的气体一起被排除泵外起此…...

SmolVLM2: The Smollest Video Model Ever(七)

编写测试代码与评价指标 现在的数据集里面只涉及tool的分类和手术phase的分类&#xff0c;所以编写的评价指标还是那些通用的&#xff0c;但是&#xff1a; predicted_labels:[The current surgical phase is CalotTriangleDissection, Grasper, Hook tool exists., The curre…...

RFID综合项目实训 | 基于C#的一卡通管理系统

目录 基于C#的一卡通管理系统 【实验目的】 【实验设备】 【实验内容】 【实验步骤】 实验准备 第一部分 界面布局设计 ​第二部分 添加串口通讯函数及高频标签操作功能函数(部分代码&#xff09; 第五部分 实验运行效果 基于C#的一卡通管理系统 【实验目的】 熟悉 …...

mysql如何设置update时间字段自动更新?

之前在给网站做表设计的时候时间字段都是用的datetime类型&#xff0c;初始值都是设置的CURRENT_TIMESTAMP。 由于给文章表设计的有创建时间和更新时间两个字段&#xff0c;但是更新时间字段需要在更新文章后再次更新&#xff0c;当时由于不了解mysql还可以设置自动更新时间戳…...

数据库备份与恢复专业指南

数据库备份与恢复专业指南 一、备份与恢复核心概念 关键结论:数据库备份是数据安全的最后防线,恢复能力才是真正的备份有效性检验标准。 AI大模型专栏:https://duoke360.com/tutorial/path/ai-lm 1.1 备份类型 物理备份:直接复制数据库文件(如MySQL的.ibd文件、Oracle的.d…...

【第4章 图像与视频】4.5 操作图像的像素

文章目录 前言示例-获取和修改图像数据图像数据的遍历方式图像滤镜负片滤镜黑白滤镜浮雕滤镜filter滤镜属性 前言 getImageData() 与 putImageData() 这两个方法分别用来获取图像的像素信息&#xff0c;以及向图像中插入像素。与此同时&#xff0c;如果有需要&#xff0c;也可…...

Science Advances 上海理工大学与美国杜克大学(Duke University)共同开发了一种仿生复眼相机

编辑丨%科学家开发了一种 AI 辅助的仿生复眼相机。炎炎夏日&#xff0c;相信各位读者都有被蚊子骚扰过的恼火记忆。但往往想要清剿蚊子的时候&#xff0c;却被它灵巧地躲开&#xff0c;再难找到。诸如蚊子这种节肢动物的视觉系统已经进化了 5 亿多年&#xff0c;从寒武纪一直到…...

正点原子Z20 ZYNQ ​​​开发板​​发布!板载FMC LPC、LVDS LCD和WIFI蓝牙等接口,资料丰富!

正点原子Z20 ZYNQ ​​​开发板​​发布&#xff01;板载FMC LPC、LVDS LCD和WIFI&蓝牙等接口&#xff0c;资料丰富&#xff01; 正点原子新品Z20 ZYNQ开发板来啦&#xff01;核心板全工业级设计&#xff0c;主控芯片型号是XC7Z020CLG484-2I。开发板由核心板底板组成&…...

软件测评中心如何确保软件品质?需求分析与测试计划很关键

软件测评中心承担着对软件进行评估、测试和审查的任务&#xff0c;它有一套规范的流程来确保软件的品质&#xff0c;并且能够向客户和开发者提供详实的软件状况分析报告。 需求分析环节 这一环节至关重要&#xff0c;必须与客户和开发团队保持密切交流。我们需要从他们那里精…...

004 flutter基础 初始文件讲解(3)

之前&#xff0c;我们正向的学习了一些flutter的基础&#xff0c;如MaterialApp&#xff0c;Scaffold之类的东西&#xff0c;那么接下来&#xff0c;我们将正式接触原代码&#xff1a; import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyAp…...

2025LitCTF 复现

easy_file 登录界面 尝试admin 和密码1 没成功 结果尝试了弱口令 admin 用户和 password 密码就登录成功了 文件上传 新建一个空的 新建木马.txt 文件发现上传成功 然后写入一句话木马 <?php eval($_POST[a]); ?> 上传失败 说明可能是有字符被过滤了&#xff0c;猜…...

英语中最难学的部分是时态‌

英语中最难学的部分是时态‌。英语的时态体系包含16种时态&#xff0c;每种时态都有其独特的用法和规则&#xff0c;这使得时态成为英语学习中的一个难点‌ 。 时态的定义和分类 时态可以分为时间和体态两个维度&#xff1a; ‌时间‌&#xff1a;现在时、过去时、将来时、过…...

Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析

Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析 自动驾驶技术从来都不是“单兵作战”。如果你细看一辆自动驾驶汽车,它其实是一个传感器的集合体:摄像头、激光雷达(LiDAR)、毫米波雷达、超声波传感器、GPS……这些传感器各自发挥作…...

使用C# 快速删除Excel表格中的重复行数据-详解

目录 简介 使用工具 C# 删除Excel工作表中的重复行 C# 删除指定Excel单元格区域中的重复行 C# 基于特定列删除重复行 RemoveDuplicates 方法快速比较 简介 重复行是指在Excel表格中完全相同的多行数据。这些冗余行的存在可能源于多种原因&#xff0c;例如&#xff1a; …...

WPF-Prism学习笔记之 “导航功能和依赖注入“

新建空白模板(Prism) 新建好后会有自动创建ViewModels和Views 在"MainWindow.xaml"文件里面标题去绑定了一个属性"Title"&#xff0c;而"MainWindowViewModel.cs"里面继承一个非常重要的"BindbleBase"(prism框架里面非常重要的)。所以…...