RPN 模型简要介绍

article/2025/10/11 14:00:44

概述

本文介绍了 Faster R-CNN 目标检测模型中提出的图像候选框提取模型—— RPN 模型,这是一种区域生成网络,结构简单嵌入方便,极大加快了目标检测模型的运行速度,使目标检测模型真正融合到同一个神经网络内,对之后影响深远。分别从国内外研究现状,模型具体原理,它的应用环境和对后续研究的影响多角 度的论述此模型,并展望了整个深度学习目标检测领域之后的发展趋势。

研究现状

RPN 在 Faster R-CNN 目标检测算法中首次被提出,用于替代了之前 R-CNN 算法中所使用的 selective search 算法。Faster R-CNN 总共由以下两个模块组成,第一个子模块用来产生区域推荐的 RPN,第二个子模块则是使用 ROI 推荐区 域的 Fast R-CNN 检测器。

之前生成检测框的方式有 opencv 级联分类器所用的 特征金字塔方式,以及 RCNN 所用的 selective search 方式。这些方式生成检测 框非常耗时,而且需要借助电脑的 cpu 完成相应的功能。

Faster R-CNN 直接的使用 RPN 生成检测候选框,很大限度的提升了检测框的生成速度。可以用于图像预处理,真正的把物体检测流程嵌入到一个神经网络 中,因此被广泛应用于之后的各种网络模型,并被进行一次又一次的改造。之后 的二阶段目标检测网络模型基本都包括了这种区域生成网络,诸如 yolo 此类的单阶段检测模型也将这种网络模型改造和嵌入到了自己不断更新的网络中。

RPN 原理

RPN 模型总述

RPN 的英文全称是 Region Proposal Network,是一个全卷积网络,可以同时预测目标的目标检测框和分数,端到端的训练生成高质量的 region proposals, 同时使 RPN与检测网络共用同一个卷积特征。其本质是基于滑窗的无类别物体检测器,输入任意尺度的图像,可输出一系列的矩形候选区域。以下是 RPN的网络结构图:

RPN 模型具体原理 

RPN 需要先确定锚点(Anchors),生成多个锚框后,判断每个锚框是包含物体还是背景,进行物体二分类。在具体生成时,当发现锚框内包含识别物体时, 我们进行调整,令每个锚框与底值更加接近。每个滑动窗口位置预测了多个 region proposals,每个位置最大可能性的 proposal 数量定义为 k 个,回归层针对 k 个 boxes 的位置输出 4k 个值,分类层输出 2k 个 scores,用于评估每个 proposal 是否为目标物体的概率。其中 k 个 proposals 类似于 k 个 reference boxes,称之为 anchors;默认情况下,对于每个滑动位置,RPN 使用 3 个尺度 和 3 个长宽比,生成 9 (k=9) 个 anchors。假设一个卷积特征图的大小为 w * h, 那么这张卷积特征图上总共有 w * h * k 个 anchors。

Anchors 是具有平移不变和多尺度特性的。例如如果对图片中的物体进行平移,选取区域也应该进行平移。同时基于 anchor 的方法构建在 anchors 金字塔结构上,根据多尺度和多长宽比的锚框,可以对边界框进行分类和回归。

RPN 模型可以计算它的损失函数,更好的对模型进行训练:

其中,i是一个锚点在一个迷你批处理中的索引, p_{i}是锚点i成为一个对象的预测概率。如果锚点为正,真实框标签为1,如果锚点为负,真实框标签为0。t_{i}^{*} 是表示预测边界框的 4 个参数化坐标的向量,与正锚点相关。

分类损失是两个类的日志损失,对于回归损失,我们使用

其中R是鲁棒损失函数, p_{i}^{*}L_{cls}表示回归损失仅在正锚点 p_{i}^{*}=1时被激活,否则则被禁用。

总体概括而言,RPN 包括以下部分:

• 生成anchor boxes;

• 判断每个anchor box为foreground(包含物体)或者background(背景),进行二分类;

• 边界框回归(bounding box regression) 对anchor box进行微调,使得positive anchor和真实框(Ground Truth Box)更加接近;

• 使每个锚点都有一个或两个值的向量(通常称为预测值),代表前景和背景。如果我们将预测值送入 softmax 或是 logistic 回归激活函数,它将预测标签;

• 计算 RPN 的损失函数,更好的对模型进行训练。

RPN 应用及影响

RPN 一开始由 Faster R-CNN 提出,这是一个对后续研究影响深远的深度学习目标检测网络。

除了 RPN 网络之外,Faster R-CNN 还融合了 VGG-16 这种卷积 神经网络模型作为图像的 backbone 层,提取出图片的 feature maps。并设置 Roi Pooling 层收集输入的 feature maps 和 proposals,综合这些信息后提取 proposal feature maps,送入后续全连接层判定目标类别。最后进行分类,利用 proposal feature maps 计算 proposal 的类别,对边界框(bounding box)进行二次回归,使目标检测准确率和速度都得到很大提升。

从此之后,深度学习可以不借助cpu进行图像预处理,将所有过程嵌入到同 一个神经网络中,实现了一站式的目标检测。虽然于现在而言这个模型的速度和 精度已经算不上最优,但在2016年刚问世之时它的影响是巨大的,之后的 CNN 网络普遍加入了 RPN 这一网络结构,用于加快运行速度。

RPN 结构原理简单,使用和结合到整个 Faster R-CNN 网络中也较为方便,起到了对图像预选框进行二分类并提取候选框的作用,设计巧妙而又优秀。 对于整个深度学习目标检测领域来说,虽然 RPN 模型只是目标检测模型中的 沧海一粟,但也推动了之后目标检测领域的发展。模型速度越来越快,精度也越来越高。发展至今,之前精度较低的 yolo 单阶段检测模型已经更新到了 yolov7, 官方给出的测试集 AP 达到了 51.4%,不仅结果比较准确,而且可以在 GPU 上训练出相应的权重后,将权重放入一些边缘计算平台中进行图片和视频,摄像头画面的推理,这是之前所不敢设想的。一次次的突破使目标检测领域落地更加便捷迅速,也更加具有工程上的可实践性。相信总有一天,深度学习目标检测领域的技术可以更加广泛的应用在我们生活中的方方面面,不经意间改变着我们的生活。


http://chatgpt.dhexx.cn/article/BpWElLtb.shtml

相关文章

RPN网络代码解读

1. 说在前面的话 在目标检测领域Faster RCNN可以说是无人不知无人不晓,它里面有一个网络结构RPN(Region Proposal Network)用于在特征图上产生候选预测区域。但是呢,这个网络结构具体是怎么工作的呢?网上有很多种解释,但是都是云里雾里的,还是直接撸代码来得直接,这里…

Siam-RPN

Siam-RPN 1. 研究动机: 在Siam-FC中,作者提出的算法首次将孪生网络引入了目标跟踪的领域,实现了端到端的训练,它是一个兼容了速度和精度的算法,在3个尺度变换和5个尺度变换的条件下,跟踪的速率分别达到了…

RPN的深度理解(实现层面)

参考http://www.telesens.co/2018/03/11/object-detection-and-classification-using-r-cnns/ 这是我看过的讲faster rcnn最好的一篇博客了,花了一下午时间看得差不多了,不过他也有些小细节没讲,我这里总结补充一下 另外还有一文读懂Faster R…

Faster RCNN 中的RPN解析

Faster RCNN 中的RPN解析 文章目录 Faster RCNN 中的RPN解析Anchor分类bounding box regressionproposal 参考 RCNN和Fast RCNN中使用Selective Search方法找出所有的候选框,SS方法非常耗时。Faster RCNN中提出RPN(region proposal network)替代SS方法提取候选框&am…

网络模型—RPN

仅作记录,自用 简单来说:输入一张图片,经过骨干网络的特征提取,得到一个m*n的特征图,映射到原图上,将原图划分为m*n个区域(每个区域很小),原图的每个区域的中心点由这个…

RPN网络

RPN 思路: 1、先通过conv层pooling层relu层,可以是vgg,得到feature maps。 2、在feature maps上提取对应的图。在第一步基础上,先通过rpn生成region proposals。通过softmax判断anchors(9个框)&#xff0…

RPN

RPN&#xff08;区域生成网络&#xff09; </h1><div class"clear"></div><div class"postBody">转&#xff1a;懒人元&#xff08;侵删&#xff09; RPN全称是Region Proposal Network&#xff0c;Region Proposal的中文意思是“…

RPN详解

RPN 思路&#xff1a; 1、先通过conv层pooling层relu层&#xff0c;可以是vgg&#xff0c;得到feature maps。 2、在feature maps上提取对应的图。在第一步基础上&#xff0c;先通过rpn生成region proposals。通过softmax判断anchors&#xff08;9个框&#xff09;&#xff0…

RPN 解析

RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,…

RPN(区域生成网络)

RPN全称是Region Proposal Network&#xff0c;Region Proposal的中文意思是“区域选取”&#xff0c;也就是“提取候选框”的意思&#xff0c;所以RPN就是用来提取候选框的网络。 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中&#xff0c;专门用来提取候选…

RPN简介

RPN全称是Region Proposal Network&#xff0c;Region Proposal的中文意思是“区域选取”&#xff0c;也就是“提取候选框”的意思&#xff0c;所以RPN就是用来提取候选框的网络 文章目录 前言 一、RPN是什么&#xff1f; 二、计算RPN的输入特征图 三、生成Anchors 总结 前言 …

深度学习之 RPN(RegionProposal Network)- 区域候选网络

anchor boxes基本概念与作用: feature map 上的一个点可以映射回输入图片上的一个点&#xff0c;以特征图上这个点为中心&#xff0c;预先人为设定 k 个 boxes&#xff0c;这些 boxes 就称为在这个点上生成的 k 个 anchor boxes&#xff08;所有anchor boxes的中心点坐标是一样…

基于51单片机蓝牙小车

文章目录 接线电机控制模块接线&#xff08;需要额外电源&#xff09;单片机接线 实物图代码相关目录树.c文件main.cSerial.c&#xff08;不会参考我写的串口文章&#xff09;CarTurn.c&#xff08;车的相关操作&#xff09;delay.c .h文件reg51.h&#xff08;keil软件自带&…

51单片机 | 红外遥控实验

文章目录 一、红外遥控介绍1.红外线简介2.红外遥控的原理2.1 红外发射装置2.2 红外接收设备二、硬件设计三、软件设计1.红外初始化函数2.红外解码函数3.主函数四、实验现象这一节来介绍一种无线通信技术–红外遥控通信。我们开发板标配了一个一体化红外接收头和红外遥控器,我们…

基于51单片机手机电话拨号盘模拟proteus仿真

功能简介&#xff1a; 1.采用4X4矩阵键盘实现号码输入&#xff0c;并在LCD液晶上显示 2.按下enter键&#xff0c;显示calling…&#xff0c;并且蜂鸣器模拟电话拨号发声 3.按下*键&#xff0c;退格&#xff0c;按下#键&#xff0c;清楚电话号码 4.拨号过程中&#xff0c;长按#取…

51单片机 | 串口通信实验

文章目录 一、通信的基本概念1.串行通信与并行通信2. 异步通信与同步通信3.单工、半双工与全双工通信4.通信速率二、51单片机串口介绍1.串口通信介绍2.串口相关寄存器3.串口工作方式3.1 方式03.2 方式13.3 方式2和方式34.串口的使用方法三、硬件设计四、软件设计五、实验现象这…

keil c51+protues 实现简单密码锁

原理图 源码&#xff1a; 矩阵键盘key.c #include<reg51.h>sbit key1P1^0; sbit key2P1^1; sbit key3P1^2; sbit key4P1^3; sbit key5P1^4; sbit key6P1^5; sbit key7P1^6; sbit key8P1^7; sbit key9P3^0;void delay(unsigned int m){unsigned int n,k0;for(k0;k<…

51单片机智能小车蓝牙

材料&#xff1a; &#xff08;1&#xff09;51单片机开发板 &#xff08;2&#xff09;l298n电机驱动模块1个 &#xff08;3&#xff09;四个电机 &#xff08;4&#xff09;JDY-31蓝牙模块 一、组装 (1)L298N电机驱动模块与开发板接线如下图&#xff1a; (2)蓝牙接线&a…

51单片机通过ESP8266模块与手机进行通讯(单片机)

本文章内容已经弃用&#xff0c;最新内容请参考ESP8266系列ESP-01S模块的配置使用&#xff08;51单片机&#xff09; Step1:配置ESP8266 通过USB转TTL模块把ESP8266模块和电脑连接起来&#xff0c;如图 把ESP8266模块的VCC,GND,CH_PD,UTXD,URXD口分别接USB转TTL模块的3.3v,地,3…

C51单片机用esp8266点亮led灯(含源码)

大家好&#xff0c;我是一个单片机新手&#xff0c;也是一个兴趣者&#xff0c;我以前想用c51单片机用esp8266模块的热点控制led小灯的&#xff0c;实验&#xff0c;可是网上的资料很少&#xff0c;所以今天来给新生&#xff0c;老手也好&#xff0c;想出一个教程&#xff0c;希…