目标检测-Two Stage-RCNN

news2025/2/7 20:11:44

文章目录

  • 前言
  • 一、R-CNN的网络结构及步骤
  • 二、RCNN的创新点
    • 候选区域法
    • 特征提取-CNN网络
  • 总结


前言

在前文:目标检测之序章-类别、必读论文和算法对比(实时更新)已经提到传统的目标检测算法的基本流程:
图像预处理 => 寻找候选区 => 特征提取 => 分类器分类 => 后处理

传统目标检测的主要问题是:

  • 1)寻找候选区的方法缺陷:基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余,速度慢
  • 2)手工设计的特征对于多样性的变化没有很好的鲁棒性

2012年,卷积神经网络(CNN)开始大放异彩,开启了基于深度学习算法图像分类的热潮。

2014年,RBG(Ross B. Girshick)使用Region Proposal + CNN代替传统目标检测使用的滑动窗口+手工设计特征,设计了R-CNN框架,使得目标检测取得巨大突破,并开启了基于深度学习目标检测的热潮。

为了解决上述传统目标检测需要遍历图像的缺陷,出现了候选区域(Region Proposal)法:即利用图像中的纹理、边缘、颜色等信息,预先找出图中可能含有物体的候选区域/框,可以保证在选取较少窗口(几千甚至几百)的情况下保持较高的召回率(Recall),文中使用的是Selective Search候选区域法。

R-CNN在PASCAL VOC 2010上实现了53.7%的平均精度(mAP),并在VOC 2011/12 test(测试集)中实现了类似的性能(53.3% mAP)


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

一、R-CNN的网络结构及步骤

  1. 提取候选区域(Region Proposal)

ps:利用Selective Search算法在图像中从下到上提取2000个左右的可能包含物体且大小不一的候选区域Region Proposal

  1. 预训练分类模型(如AlexNet)+ 微调(fine-tuning) / 从头开始训练模型
  2. 利用训练好的模型进行特征提取,获取候选区特征图

ps:将每个Region Proposal缩放(warp)成统一的227x227的大小并输入到CNN网络,将CNN网络的输出作为特征

  1. 训练一个SVM分类器,根据CNN特征图进行分类,利用非极大值抑制(NMS)去除冗余候选区
  2. 训练一个线性回归模型,精修正确的候选框位置及大小

在这里插入图片描述
在这里插入图片描述

二、RCNN的创新点

  • 使用候选区域法(Region Proposal)代替穷尽策略,大大缩小了计算量
  • 利用CNN参数共享和特征提取的优势,改善了提取特征的速度和质量

候选区域法

在这里插入图片描述

有很多候选区域法,当时最出色的是选择性搜索(selective search)。它的工作原理是将图片中的每一个像素作为一组,然后计算每个像素的纹理,将相近的的组合起来形成更大的像素组,然后继续合并各个像素组。下图中展示了像素组是如何扩大的,蓝色矩形代表了真实图片各像素组合并后的外界矩形框。
在这里插入图片描述

特征提取-CNN网络

原文中使用的是AlexNet,当然也可以使用其他卷积神经网络。


总结

R-CNN虽然不再像传统方法那样穷举,但R-CNN流程的第一步中对原始图片通过Selective Search提取的候选框region proposal多达2000个,且这2000个候选框每个框都需要进行CNN提特征+SVM分类,计算量很大,导致R-CNN检测速度很慢,GPU上大于13s/image,CPU上大于53s/image。

其次,将所有候选区域统一缩放到统一大小(CNN输入大小是确定的)会导致图像变形失真,从而降低精度。

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

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

相关文章

手术麻醉临床信息系统源码,客户端可以接入监护仪、麻醉机、呼吸机

一、手术麻醉临床信息管理系统介绍 1、手术麻醉临床信息管理系统是数字化手段应用于手术过程中的重要组成部分,用数字形式获取并存储手术相关信息,既便捷又高效。既然是管理系统,那就是一整套流程,管理患者手术、麻醉的申请、审批…

NVIDIA Jetson Nano 2GB 系列文章(9):调节 CSI 图像质量

NVIDIA英伟达中国 ​在本系列上一篇文章中,我们为大家展示了如何执行常见机器视觉应用。在本篇文章中,我们将带领大家调节 CSI 图像质量。 前面两篇文章在 Jetson Nano 2GB 上使用 CSI 摄像头做了几个实验,效果很不错,并且很容易…

分布式系统架构设计之分布式通信机制

二、分布式通信机制:保障系统正常运行基石 在分布式系统中,各个组件之间的通信是保障系统正常运行的基石,直接影响到系统的性能、可扩展性以及整体的可维护性。接下来我们就一起看看通信在分布式系统中的重要性,以及一些常用的技…

java八股 redis

Redis篇-01-redis开篇_哔哩哔哩_bilibili 1.缓存穿透 2.缓存击穿 逻辑过期里的互斥锁是为了保证只有一个线程去缓存重建 3.缓存雪崩 4.双写一致性 4.1要求一致性(延迟双删/互斥锁) 延迟双删无法保证强一致性 那么前两步删缓和更新数据库哪个先呢&#xf…

kubernetes(k8s) Yaml 文件详解

YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读。 1、查看API 资源版本标签 kubectl api-versions 2、编写资源配置清单 kubectl create -f nginx-test.yaml --validatefalse 2.3 查看创建的po…

【Python可视化系列】一文教会你绘制美观的热力图(理论+源码)

一、问题 前文相关回顾: 【Python可视化系列】一文彻底教会你绘制美观的折线图(理论源码) 【Python可视化系列】一文教会你绘制美观的柱状图(理论源码) 【Python可视化系列】一文教会你绘制美观的直方图(理…

docker部署kafka zookeeper模式集群

单机模式链接:https://blog.csdn.net/wsdhla/article/details/133032238 kraft集群模式链接:部署Kafka_kafka 部署-CSDN博客 zookeeper选举机制举例: 目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5…

鸿蒙开发(二)- 鸿蒙DevEco开发环境搭建

上篇说到,鸿蒙开发目前势头旺盛,头部大厂正在如火如荼地进行着,华为也对外宣称已经跟多个厂商达成合作。目前看来,对于前端或客户端开发人员来说,掌握下鸿蒙开发还是有些必要性的。如果你之前是从事Android开发的&…

【计算机网络】—— 奈氏准则和香农定理

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 失真 - 信号的变化 ​编辑影像失真的因素: ​编辑信道带宽: 码间串扰…

通过 Bytebase API 做数据库 Schema 变更

Bytebase 是一款数据库 DevOps 和 CI/CD 工具,适用于开发人员、DBA 和平台工程团队。 它提供了一个直观的图形用户界面来管理数据库 Schema 变更。另一方面,一些团队可能希望将 Bytebase 集成到现有的内部 DevOps 研发平台中。这需要调用 Bytebase API。…

内存管理--bss data txt数据段与stm32的ZI-data RW-data RO-data Code数据段的关系

目录 前沿 1 数据在内存中的位置 1.1 堆栈在内存中的位置 1.2 全局变量和局部变量在内存中的位置 1.2.1 全局变量在内存中的位置 1.2.2 局部变量在内存中的位置 1.3 static变量在内存中的位置 1.4 malloc赋值的变量存放在内存中的位置 1.5 代码在内存中的位置 2 ZI-d…

udp广播的例子

以下是一个使用C语言描述广播发送和接收的简单示例&#xff1a; 发送端&#xff08;广播发送&#xff09;&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #inclu…

如何使用Docker将.Net6项目部署到Linux服务器(二)

目录 二 安装Redis 2.1 基本安装 2.1.1 下载Redis 2.1.2 解压并安装Redis 2.1.3 编译Redis 2.1.3 配置config文件 2.1.4 配置redis服务 2.1.5 关闭redis服务 2.2 Docker安装 2.2.1 拉取镜像 2.2.2 查看镜像 2.2.2 创建挂载目录 2.2.3 创建配置文件 2.2.4 创建容器…

几种串口扩展电路

一、IIC串口扩展电路 LCT200 是一款可以通过 I2C 接口通讯&#xff0c;拓展 2 路独立串口的通讯芯片&#xff0c;同时也支持通过 2 路串口读写 I2C 接口的数据。LCT200 的封装为 TSSOP-20。 主要功能&#xff1a;⚫ 通过对 I2C 接口读写实现拓展 2 路独立串口功能 ⚫ 通过读写…

Linux学习教程(第十八章 SELinux管理)

第十八章 SELinux管理 root 用户实在是一个超人&#xff0c;它在 Linux 系统当中就是无所不能的&#xff0c;而且读、写和执行权限对 root 用户完全没有作用。root 用户的存在极大地方便了 Linux 的管理&#xff0c;但是也造成了一定的安全隐患。 大家想象一下&#xff0c;如果…

LabVIEW与PID在温度测控系统中的应用

LabVIEW与PID在温度测控系统中的应用 本案例介绍LabVIEW在温度控制系统中的应用&#xff0c;特别是结合PID算法。项目使用abVIEW作为主要开发工具&#xff0c;配合NI PCI-7831R数据采集和控制设备&#xff0c;实现了高效的温度调节。 系统的核心在于LabVIEW的FPGA模块&#x…

编译opencv和opencv_contrib

1 下载源码 下载opencv源码https://github.com/opencv/opencv 下载opencv源码https://github.com/opencv/opencv_contrib 2 开始编译 构建需要下载ffmpeg的包&#xff0c;cmake构建时会自动下载&#xff0c;但是比较满&#xff0c;这里可以从下面链接直接下载 https://downloa…

怎么判断台灯是否护眼?分享适合考研使用的护眼台灯

虽然台灯是家家户户都会有的一盏照明设备&#xff0c;但是很多人并不是了解自家台灯是好是坏&#xff0c;能不能护眼等等。其实台灯是非常有讲究的&#xff0c;如果长期使用一些不合格、劣质的台灯&#xff0c;会让我们在不知不觉中造成视力损伤&#xff0c;从而导致近视。 也…

中后缀表达式

一、利用后缀表达式进行计算 1&#xff09;解题思路 如果当前字符串是操作数&#xff0c;就将该操作数入栈&#xff1b;如果当前字符串是操作符&#xff0c;就取栈顶的两个操作数进行运算&#xff08;注意&#xff1a;第一个出栈的数为计算时的右操作数&#xff1b;第二个出栈…

【深度学习-目标检测】03 - Faster R-CNN 论文学习与总结

论文地址&#xff1a;Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks 论文学习 1. 摘要与引言 研究背景与挑战&#xff1a;当前最先进的目标检测网络依赖于 区域提议&#xff08;Region Proposals&#xff09;来假设目标的位置&#xff0c…