Faster-RCNN基本思想和网络结构

简单来说,Faster RCNN = RPN + Fast RCNN

RPN 是指 Region Proposal Network,建议区域生成网络。 Faster RCNN 中用 RPN 来代替了 Fast RCNN 中的SS算法。

算法流程:

(1)将图像输入CNN网络得到相应的特征图。

(2)使用RPN网络生成候选框,将RPN生成的候选框投影到特征图上获得ROI区域的特征矩阵。

(3)将每个ROI区域的特征矩阵通过 ROI pooling 层缩放到7×7大小的特征图,接着将特征图展平为vector,之后通过一系列全连接层得到预测结果。

Faster RCNN 网络的基本结构如下:


        

4.2 RPN网络
4.2.1 RPN网络结构

        
图中的 conv feature map 是图像输入网络得到相应的特征图,通过sliding window处理之后产生一个256d的一维向量。该向量通过两个全连接层,分别输出分类概率scores和边界框回归参数coordinates,其中k是指 k个 anchor boxes,2k个scores是每个 anchor box 分别为前景和背景的概率(注意这里只区分前景和背景,所有的类别都归为前景),4k个coordinates是因为每个anchor box 有四个参数。

4.2.2 anchor的定义
那么什么是 anchor呢?

首先要明确,anchor不是候选框(Proposal),后面会提到二者的区别。

我们在特征图中找一个点,就可以在原图中找到对应的一个像素点,以该像素点为中心,画出9个不同大小和长宽比的框,称为anchor 。如下图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们在一张图中想找的的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。


那么为什么是9个anchor呢?

论文中给出了每个anchor的面积和长宽比:

所以特征图中的每个位置在原图中都会生成 3×3=9 个anchor,如下图所示,蓝色的三个anchor是面积为128×128的,红色是面积为256×256的,绿色是512×512的。

4.2.3 RPN生成proposal的过程
对于一张 1000x600x3 的图像(三通道),用3x3的卷积核进行特征提取得到60x40的特征图,则共有 60x40x9 (约2w个)个anchor。忽略超过图片边界的 anchor 后,剩下约 6000 个anchor。

对于这6000 个 anchor,通过RPN生成的边界框回归参数将每个 anchor 调整为proposal(前面提到了每个anchor经过RPN都输出2个概率和4个边界框回归参数),这里就能看到anchor和proposal的区别。这个过程就是 RPN 生成候选框的过程。

RPN 生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩下 2000 个候选框。

4.3 Faster RCNN框架

        
Faster RCNN 在Fast RCNN的基础上更进一步,将候选框生成也融入到CNN网络中,使得 候选框生成、特征提取、候选框分类、候选框边界回归这四大部分都结合在一个CNN网络中

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

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

相关文章

单机多卡分布式训练策略——MirroredStrategy

前言 分布式训练是一种用于在多个设备或机器上同时训练深度学习模型的技术,它有助于减少训练时间,允许使用更多数据更快训练大模型。分布式训练重点关注数据并行性,本次试验使用的是单机多卡的分布式训练策略,也就是 MirroredStr…

算法题目学习汇总

1、二叉树前中后序遍历:https://blog.csdn.net/cm15835106905/article/details/124699173 2、输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 public class Solution {private Tr…

多模态AI的挑战与早期壁垒的构建

伴随着Sora、GPT40的推出,多模态AI逐渐成为研究的热点和应用的趋势。然而,多模态AI的发展并非一帆风顺,它面临着诸多挑战和壁垒。 一、多模态AI的难点 多模态AI的核心在于将不同模态的信息(如文本、图像、音频、视频等&#xff…

离线翻译器下载哪个好?这几个翻译器用过的人都说好

面对跨文化交流的挑战,如国际旅行或多元工作环境,语言障碍尤为突出。 特别是在信号弱或无网络覆盖的地区,翻译需求变得更加迫切。此时,一款优质的离线翻译app显得尤为重要。它能够在没有网络支持的情况下提供即时翻译服务&#x…

CF297C Splitting the Uniqueness 题解

CF297C Splitting the Uniqueness 题解 非常好构造题,使我的草稿纸旋转。 解法 我们记输入的数组为 a a a,需要输出的两个数组为 b , c b,c b,c(因为当时起变量名起的)。 考虑利用 a i a_i ai​ 互不相同的性质。 先将 a…

二叉树顺序结构——堆的结构与实现

二叉树顺序结构——堆的结构与实现 一、二叉树的顺序结构二、堆的概念及结构三、堆的实现堆向下调整算法堆的创建建堆时间复杂度堆的插入(堆向上调整算法)堆的删除堆的代码实现(使用VS2022的C语言)初始化、销毁构建、插入、删除返回堆顶元素、判空、返回有效元素个数 四、完整 …

20240610 基于QGIS生成地区示意图的地图shp文件

目录 本文目标前置条件具体步骤1. 创建Project2. 插入世界地图3. 对地区示意图进行地理匹配4. 创建shp文件,勾画轨迹 注意事项 本文目标 基于QGIS生成地区示意图的地图shp文件,此shp文件可以用来学习,但是未经审批不可用于发表。 前置条件 …

Python基础教程(十一):数据结构汇总梳理

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

10.3 Go 同步与通信

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Android Studio Jellyfish版本修改project使用特定jdk版本的步骤

android studio总是把这些东西改来改去让人十分恼火,IDE本身改来改去就让人无法上手就立即工作,很多时间浪费在IDE和gradle的配置和奇奇怪怪现象的斗智斗勇上,搞Android是真的有点浪费生命。一入此坑深不见底 jellyfish版安卓studio已经无法通…

Docker高级篇之轻量化可视化工具Portainer

文章目录 1. 简介2. Portainer安装 1. 简介 Portianer是一款轻量级的应用,它提供了图形化界面,用于方便管理Docker环境,包括单机环境和集成环境。 2. Portainer安装 官网:https://www.portainer.io 这里我们使用docker命令安装&…

状态管理Vuex

官网:Vuex 是什么? | Vuex (vuejs.org)https://v3.vuex.vuejs.org/zh/ 创建一个vue2的新项目名为vuex-demo,安装命令 npm install vuex3 新建index.js import Vue from vue import Vuex from vuexVue.use(Vuex)const store new Vuex.Store(…

记录自己在xss-labs的通关记录

第十一关&#xff08;referer&#xff09; 直接查看网页源代码&#xff0c;发现四个input被隐藏&#xff0c;不难看出&#xff0c;第四个名为t_ref的<input>标签是http头referer的参数&#xff08;就是由啥地址转跳到这里的&#xff0c;http头的referer会记录有&#xf…

操作系统安全:Windows系统安全配置,Windows安全基线检查加固

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

如何用R语言ggplot2画折线图

文章目录 前言一、数据集二、ggplot2画图1、全部代码2、细节拆分1&#xff09;导包2&#xff09;创建图形对象3&#xff09;主题设置4&#xff09;轴设置5&#xff09;图例设置6&#xff09;颜色7&#xff09;保存图片 前言 一、数据集 数据下载链接见文章顶部 数据&#xff1a…

STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建

STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建 文章目录 STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建功能与作用典型工作流程 1. 硬件原理图介绍2. STM32 CubeMX工程搭建2.1 创建工程2.2 系统配置2.3 USART串口配…

tokenization(一)概述

文章目录 背景基于词&#xff08;Word-based&#xff09;基于字符&#xff08;Character-based&#xff09;子词词元化&#xff08;Subword tokenization&#xff09; 背景 tokenization是包括大语言模型在内所有自然语言处理的任务的基础步骤&#xff0c;其目标是将文本数据转…

【面试干货】聚集索引和非聚集索引区别?

【面试干货】聚集索引和非聚集索引区别? 1、聚集索引&#xff08;Clustered Index&#xff09;1.1 特点1.2 例子 2、非聚集索引&#xff08;Nonclustered Index&#xff09;2.1 特点2.2 例子 3、根本区别 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&…

Sklearn的安装和用法

安装sklearn相对简单&#xff0c;因为它是一个Python库&#xff0c;可以通过Python的包管理器pip来安装。 Windows、macOS和Linux通用步骤&#xff1a; 确保Python已安装&#xff1a; sklearn是基于Python的&#xff0c;所以首先确保你的计算机上安装了Python。推荐使用Pytho…

NLP——电影评论情感分析

python-tensorflow2.0 numpy 1.19.1 tensorflow 2.0.0 导入库 数据加载 数据处理 构建模型 训练 评估 预测 1.基于2层dropout神经网络 2.基于LSTM的网络 #导入需要用到的库 import os import tarfile import urllib. request import tensorflow as tf import numpy a…