Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)

article/2025/8/27 13:04:59

一、《用于精确目标检测和语义分割的丰富特征层次结构》

1.1、基本信息

原文标题:Rich feature hierarchies for accurate object detection and semantic segmentation
中文译名:用于精确目标检测与语义分割的丰富特征层次结构
版本:第5版技术报告(Tech report v5)
作者:Ross Girshick等(UC Berkeley)
发表时间:2014年(CVPR会议扩展版)
核心贡献:提出R-CNN(Regions with CNN features)框架,首次将深度卷积网络(CNN)与区域提议方法结合,奠定两阶段目标检测范式基础。

作者主页:

         rbg's home page

 论文地址:

[1311.2524] Rich feature hierarchies for accurate object detection and semantic segmentation

1.2、主要内容

方法创新

        区域提议+CNN特征提取:通过选择性搜索(Selective Search)生成候选区域,后经CNN提取高层次特征。

        端到端训练改进:针对小样本数据,采用预训练(ImageNet)+微调(PASCAL VOC)策略。

        边界框回归:引入后处理步骤优化检测框定位精度。

技术突破

        在PASCAL VOC 2012上将mAP从35.1%提升至53.7%,性能飞跃52%。

        证明深层CNN特征对复杂视觉任务(检测/分割)的强表征能力。

局限性

        计算成本高(每张图需独立处理约2000个区域提议)。

        训练流程非完全端到端(需分阶段优化)。

1.3、影响和作用

学术影响:开创基于深度学习的目标检测新范式,直接启发Fast R-CNN、Faster R-CNN、Mask R-CNN等后续工作。推动CNN在计算机视觉中的核心地位确立(CVPR 2014最佳论文提名)。

工业应用:成为自动驾驶(物体识别)、医学影像分析、卫星图像解译等领域的基础技术。相关思想延伸至自然语言处理(如区域提议+特征提取的类比应用)。

历史意义:被引用超2万次(截至2023年),誉为"目标检测领域的里程碑式研究"。

二、实现过程

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

        2. 特征提取:对每个候选区域使用卷积神经网络(通常是在ImageNet上 预训练的网络)提取固定长度的特征向量。

        3. 分类:使用支持向量机(SVM)对每个候选区域进行分类,判断其是否 包含特定类别的物体。

        4. 回归:使用回归器对每个候选区域的边界框进行微调,以更准确地定位 物体。

2.1、 候选区域生成

        利用Selective Search算法通过分割生成候选区域(region proposals), 这些区域作为后续目标检测和分类的输入。Selective Search算法的主要目 标是通过合并和分割超像素(superpixels)来形成具有潜在目标的区域。

        具体来说,Selective Search算法的实现步骤如下:

                1. 超像素分割: 首先,图像被分割成许多紧密相连的区域,这些区域称为超像素 (superpixels)。 超像素分割可以使用各种算法,如基于图的分割(例如图割算法) 或基于像素相似性的分割(例如SLIC算法)或者每个不同颜色的区 域代表一个超像素 。

                2. 相似性合并: 算法使用不同的合并策略来将这些超像素合并成更大的区域。这些 合并策略通常考虑颜色、纹理、大小和形状等特征的相似性。 合并策略包括贪婪合并、聚类合并、多尺度合并等,以便在不同尺 度上捕获不同类型和大小的目标。

                3. 生成候选区域:最终,Selective Search算法生成2000个左右的候选区域,每个区 域都有不同的形状、大小和位置。 这些候选区域被认为是图像中可能包含目标的位置,它们接下来会 被送入CNN进行特征提取和分类,以确定它们是否包含真正的目 标,并且进一步被用来进行目标检测。

         Selective Search算法的核心思想是通过多尺度和多种合并策略,快速生成 丰富的候选区域,覆盖图像中各种潜在目标的可能位置。

2.2、特征提取

        将2000个候选区域缩放到227*227的像素中,接着将缩放后的候选区域被 送入一个预训练的卷积神经网络(AlexNet)。

        最终得到一个2000*4096的大矩阵

2.3、分类

        使用支持向量机(SVM)对每个候选区域进行分类,具体过程为:

1. 将2000*4096特征与20个SVM组成的权重矩阵(4096*20)相乘,得 到2000*20的矩阵;

2. 获取2000*20维矩阵表示每个建议框是某个目标类别的得分;

3. 对上述2000*20维矩阵中每一列,即每一类进行非极大值抑制剔除重叠 建议框,得到该列即该类中得分最高的一些建议框。

        每个目标类别通常对应一个独立的支持向量机(SVM)分类器。 这意味着如果有N个不同的目标类别,就会训练和使用N个单独的SVM 分类器来对候选区域进行分类。Pascal VOC有20类,所以是20。

        但是在例如Pascal VOC中微调时,实际上有21类,因为还有一类是背景, 即负样本。

         负样本是根据IoU选择的,如果预选框和GT BOX的IOU小于一定的阈 值,那么就会被认为是负样本。

负样本的作用

1、负样本在训练分类器时起到了重要作用,帮助模型学习如何区分目 标物体与非目标物体。分类器需要通过负样本学习背景的特征,以便 在推理阶段准确地将目标区域与背景区分开来。

2、训练过程中,平衡的正负样本比例有助于避免模型过度偏向负样本 而导致的分类器不平衡问题,从而提高模型的泛化能力和准确性。

2.4、回归 

        使用回归器对每个候选区域的边界框进行微调,以更准确地定位物体,即 实际上SS的候选框(2000个)的位置也就是NMS处理后剩余的建议框(并 没有2000个了)的位置并不是那么准确,所以需要进行调整。

具体步骤

        1. 将所有的建议框和GT BOX进行IoU计算,小于某个阈值的直接删掉。

        2. 使用20个回归器对4096维的数据进行计算(Pascal VOC是21个)。

        这些公式用于将网络预测的相对变化(偏移量)转换为绝对的边界框坐标 和尺寸。

三、R-CNN缺点

1. 预测速度比较慢:CPU上53秒/张,GPU上13秒/张。

2. 需要的内存较大:一个候选框4096维,一张图2000个候选框,如果有 1000张图,如果每个数是float32浮点型, 即每个数占用4字节(32 位) ,每个候选框占用内存为2096*4=16384个字节,换算成MB就是 16384/(1024^2)=0.015625MB, 那1张图所占的内存为0.015625*2000=31.25MB, 1000张图所占的内存为31.25*1000=31.25GB。

四、R-CNN过程总结


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

相关文章

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Split Landing Page(拆分展示页)

📅 我们继续 50 个小项目挑战!—— SplitLandingPage 组件 仓库地址:https://github.com/SunACong/50-vue-projects 项目预览地址:https://50-vue-projects.vercel.app/ 在这篇文章中,我们将实现一个交互式的左右面板…

Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文

1. 论文介绍 论文主要创新点:提出了第一个基于扩散模型 (Diffusion) 实现的红外光与可见光图像融合模型,但模型不止简单的依赖于 Diffusion,而是一个新颖的 two-stage 的图像融合模型。 Dif-Fusion 利用扩散模型的生成能力,直接在…

Java开发经验——阿里巴巴编码规范实践解析5

摘要 这篇文章主要介绍了阿里巴巴Java开发规范中关于安全和性能优化的实践解析。内容涵盖了配置文件密码加密、用户输入内容风控、SQL注入防护、参数有效性验证、XSS攻击防护、CSRF安全验证、文件上传安全检查、防重放机制等多个方面,通过正反示例和推荐做法&#…

如何在python3.8环境中安装pytorch

我的conda配置了两个独立环境: base环境 - 安装有Python 3.12及各类依赖包;pytorch环境 - 基于Python 3.8创建,包含特定功能包。 在Anaconda Prompt中激活您的PyTorch环境: 访问PyTorch官网历史版本页面(https://pyt…

源的企业级网络安全检测工具Prism X(棱镜X)

Prism X(棱镜X)是由yqcs团队自主研发的开源网络安全检测解决方案,专注于企业级风险自动化识别与漏洞智能探测。该工具采用轻量化架构与跨平台设计,全面兼容Windows、Linux及macOS操作系统,集成资产发现、指纹鉴别、弱口…

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮 --蓝牙电话App自动部署 上一篇:手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 下一篇:编写中。 一、前言 蓝牙电话方案中,我们提供了将手机通话的语音拦截后转发到局域…

kafka 常用知识点

文章目录 前言kafka 常用知识点1. kafka 概念2. 消息共享和广播3. 分区和副本数量奇偶数 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0…

什么是接口测试,我们如何实现接口测试?

1. 什么是接口测试 顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主要…

我这三年……测试开发工作的一点感悟

从职场小白到测试开发,已经三年有余。回首这段职业旅程,踩过坑,吃过饼,背过锅,也拿过奖。和产品互掐,和开发干仗……也许这就是成长的代价和难忘的经历吧。今天忍不住跟宝子们分享分享我的这段心路历程 初…

[HIT计算机系统大作业] 程序人生-Hello‘s P2P

2025年5月 摘 要 本文以Hello程序为研究载体,系统探究其从源代码到可执行文件再到进程生命周期的完整流程,深度解析计算机系统多层面协同机制。首先阐述预处理、编译、汇编及动态链接的核心步骤:通过gcc工具链生成hello.i(预处…

HIT-ICS 2025春计算机系统大作业 程序人生-Hello’s P2P

摘 要 本报告通过分析hello程序从hello.c源代码到进程终止的完整生命周期,系统阐述了计算机系统的多层次协作机制。首先,通过预处理、编译、汇编与链接阶段,将C语言源代码转换为可执行文件;其次,结合进程管理、存储管理及输入输出管理,深入探讨了进程创建、地址空间转换…

Hello的程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 未来技术模块 学   号 2023111680 班   级 23WLR14 学 生 姜虹伯 指 导 教 师 吴锐   计算机…

程序人生hello.c

计算机科学与技术学院 2024年5月 摘 要 本文系统分析了HELLO程序从源代码到执行的完整生命周期,揭示了编译系统与操作系统协同工作的底层机制。研究以Ubuntu环境和GCC工具链为基础,覆盖预处理、编译、汇编、链接四大阶段:预处理阶段展开宏…

哈尔滨工业大学HIT-ICS2024大作业-程序人生-Hello‘s P2P

第1章 概述 1.1 Hello简介 ①P2P:这一过程是指 Hello如何从C源文件经过预处理转变为可执行文件,这一过程共需经历四个阶段: 1)预处理器处理,生成文本文件hello.i 2)编译器处理,生成汇编程序…

开源项目的认识理解

目录 开源项目有哪些机遇与挑战? 1.开源项目的发展趋势 2.开源的经验分享(向大佬请教与上网查询) 3.开源项目的挑战 开源项目有哪些机遇与挑战? 1.开源项目的发展趋势 1. 持续增长与普及 - 开源项目将继续增长&#xff0c…

HIT-CSAPP大作业-程序人生

摘 要 本文概述了hello.c源文件从预处理、编译、汇编、链接到最终执行的关键步骤,阐述了程序在操作系统中的加载与运行过程。同时,通过对hello程序在进程管理、存储结构和输入输出控制方面的介绍,帮助读者对程序的整个生命周期有了基础认识…

普通人的四年程序人生

还记得当初自己为什么选择计算机? 当初你问我为什么选择计算机,我笑着回答:“因为我梦想成为神奇的码农!我想像编织魔法一样编写程序,创造出炫酷的虚拟世界!”谁知道,我刚入门的那天&#xff0…

【老张的程序人生】一天时间,我成软考高级系统分析师

今年下半年,我心血来潮报考了软考高级系统分析师。彼时的我,工作繁忙至极,一周十四节课,班主任的职责压身,还兼任教学管理事务,每日忙得晕头转向,那点可怜的闲暇时光,也都奉献给了游…

HIT-2024CSAPP 程序人生-Hello‘s P2P大作业

摘要 本文借助hello.c程序,结合本学期计算机系统课程所学习的大部分内容,分析了hello.c这个程序的一生,探讨了从源程序到可执行程序转变的全过程,包含预处理,编译,链接,生成等步骤,在…

第七届下一代数据驱动网络国际学术会议(NGDN 2025)

在线投稿: 学术会议-学术交流征稿-学术会议在线-艾思科蓝 张彦,挪威奥斯陆大学信息工程学院教授,IEEE Fellow,IET Fellow。入选欧洲科学院院士,挪威皇家科学院院士,挪威工程院院士,2018-2022连续五年全球“高被引科学家”近期主要研究方向为新一代无线通信网络和智…