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

article/2025/8/3 16:33:19

一、《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为什么要加缩放因子?

 


http://www.hkcw.cn/article/xSaNgrfoso.shtml

相关文章

十一、【核心功能篇】测试用例管理:设计用例新增编辑界面

【核心功能篇】测试用例管理:设计用例新增&编辑界面 前言准备工作第一步:创建测试用例相关的 API 服务 (src/api/testcase.ts)第二步:创建测试用例编辑页面组件 (src/views/testcase/TestCaseEditView.vue)第三步:配置测试用例…

YC-8002型综合变配电监控自动化系统

一 .系统概述 YC-8002型综合变配电监控自动化系统是西安亚川电力科技有限公司为适应广大客户要求,总结多项低 压配电网络自动化工程实例的经验,基于先进的电子技术、计算机和网络通讯等技术自主研发的--套结合本公司网络配电产品的应用于低压配电领域的…

DeviceNET转EtherCAT网关:医院药房自动化的智能升级神经中枢

在现代医院药房自动化系统中,高效、精准、可靠的设备通信是保障患者用药安全与效率的核心。当面临既有支持DeviceNET协议的传感器、执行器(如药盒状态传感器、机械臂限位开关)需接入先进EtherCAT高速实时网络时,JH-DVN-ECT疆鸿智能…

股指期货出现大幅贴水时,为什么不适合套期保值?

先简单说下股指期货贴水。股指期货有个理论价格,正常情况下,期货价格和理论价格应该是差不多的。但要是期货价格比理论价格低了不少,这就叫贴水。就好比一件衣服,本来标价100元,现在市场上只卖80元,这就是贴…

脱发因素机器学习数据分析

脱发因素机器学习数据分析 一、背景描述 随着年龄增长,脱发成为影响外貌与健康的重要问题。 本数据集包含遗传、荷尔蒙变化、医疗状况、药物治疗、营养缺乏、心理压力等12个可能导致脱发的因素, 旨在通过数据分析挖掘各因素与脱发的潜在关联&#xf…

Transformer架构技术学习笔记:从理论到实战的完整解析

引言:重新定义序列建模的里程碑 2017年,Vaswani等人在论文《Attention Is All You Need》中提出的Transformer架构,彻底改变了自然语言处理领域的游戏规则。与传统RNN/LSTM相比,Transformer具有三大革命性特征: 全注意…

从0开始学习R语言--Day12--泊松分布

今天我们来看一个很经典的回归模型:泊松分布。 泊松分布 我们一般会把泊松分布用于预测问题,比如想知道成年人每天接到的骚扰电话次数,医院每天的急诊病人等。但在一些方面,跟我们想的会有出入。例如你不能将其应用在预测下周你的…

机器学习无监督学习sklearn实战一:K-Means 算法聚类对葡萄酒数据集进行聚类分析和可视化( 主成分分析PCA特征降维)

本项目代码在个人github链接:https://github.com/KLWU07/Machine-learning-Project-practice/tree/main/1-Wine%20cluster%20analysis 如果对于聚类算法理论不理解可参考这篇之前文章机器学习中无监督学习方法的聚类:划分式聚类、层次聚类、密度聚类&…

接口的概念及特性

目录 1、接口的概念2、语法规则2.1 接口的定义2.2、接口的使用 3、特性4、实现多个接口5、接口中的继承6、接口使用实例 1、接口的概念 在现实生活中,接口的例子有很多,比如:笔记本的 USB 接口,电源插座等。在电脑的 USB 口上&am…

品牌控价维护渠道生态与品牌价值的关键

在品牌发展的征程中,随着经销商队伍不断壮大,价格管控已成为关乎品牌存亡的核心命题。价格体系一旦失控,渠道乱象便如潮水般涌来。低价倾销不仅挤压正规经销商的生存空间,削弱其市场竞争力,更会引发消费者对产品价值的…

2011肠衣问题

1 D类竞赛题目---具体题目 D题 天然肠衣搭配问题 天然肠衣(以下简称肠衣)制作加工是我国的一个传统产业,出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段(原料),进入组装工序。 传统的生产…

Express教程【001】:Express创建基本的Web服务器

文章目录 1、初识express1.1 什么是Express1.2 主要特点1.3 Express的基本使用1.3.1 安装1.3.2 创建基本的Web服务器 1、初识express 目标: 能够使用express.static()快速托管静态资源能够使用express路由精简项目结构能够使用常见的express中间件能够使用express创…

CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)

在 CentOS 7 环境中部署 LNMP(Linux Nginx MySQL 5.7 PHP) 环境的详细步骤如下。此方案确保各组件版本兼容,并提供完整的配置验证流程。 1. 更新系统 sudo yum update -y 2. 安装 MySQL 5.7 2.1 添加 MySQL 官方 YUM 仓库 由于MySQL并不…

从零打造算法题刷题助手:Agent搭建保姆级攻略

我用Trae 做了一个有意思的Agent 「大厂机试助手」。 点击 https://s.trae.com.cn/a/d2a596 立即复刻,一起来玩吧! Agent 简介 Agent名称为大厂机试助手,主要功能有以下三点。 解题: 根据用户给出的题目给出具体的解题思路引导做…

华院计算出席信创论坛,分享AI教育创新实践并与燧原科技共同推出教育一体机

5月21日,信创论坛于上海漕河泾会议中心举办。本次论坛以“聚力融合,繁荣生态”为主题,话题聚焦工业制造、交通运输、金融、教育、医疗等领域。华院计算技术(上海)股份有限公司(以下简称“华院计算”&#x…

MyBatis操作数据库

1.MyBatis:MyBatis是一款优秀的持久层框架,用于简化JDBC的开发.(持久层通常指数据访问层,用来操作数据库). 创建userInfo表,并插入如下数据: 在model中建立userinfo实体类,属性与之一一对应. 配置数据库连接字符串,Mybatis中要连接数据库,需要数据库相关参数配置. 接下来就可…

OCC笔记:BRepMesh_IncrementalMesh的使用

1. 函数接口 2. 线性偏转与角度偏转 2.1. theLineDeflection:线性偏转 根据文档推导下 isRelative传入Standard_True时,theLineDeflection为相对值。 参看isRelative说明 //! param isRelative if TRUE deflection used for discretization of //! ea…

调试技巧总结

目录 一.调试1.什么是调试2.调试语义的分类2.1 静态语义2.2 动态语义 二.实用的调试技巧1.屏蔽代码2.借助打印3.查看汇编代码4.调试技巧总结 一.调试 1.什么是调试 调试,通俗易懂地说就是不断排查代码的错误,进行修正的过程,在写代码的时候…

通过实时动作捕捉加速人形机器人训练

通过实时动作捕捉加速人形机器人训练 用于训练、控制和性能优化的精确实时运动学——受到全球机器人创新者的信赖! 为什么选择 Xsens 进行人形机器人训练? 无与伦比的运动数据精度-经过科学验证的运动数据,用于简化AI/ML训练。 轻松集成到…

【UE5 C++】绘制地表贴合线

目录 原理 效果 步骤 源码 原理 先设置绘制线段的起点和终点,然后我们将起点和终点的高度升高,然后通过插值,在起点和终点之间添加多个点,再由这些点向地心发出射线,这样我们就可以获取到这些点在地表的投影点&…