RPN定位模块细节回顾

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

一、主干网络与FPN多尺度特征提取

将一张高宽为H*W的图像输入深度网络,经过主干网络与FPN结构后输出不同级别的特定分辨率特征。

P2:torch.size(1256H/4,  W/4)

P3torch.size(1256H/8,  W/8)

P4torch.size(1256H/16W/16)

P5torch.size(1256H/32W/32)

P6torch.size(1256H/64W/64)

 

不同级别的特征都是经过了不同尺度的下采样,对应着不同的目标感受野,可适用于不同尺度的目标定位。

二、RPN Head

RPN Head是一个极简神经网络,主要由一个256通道的3x3卷积与两个独立的分别用于前景分类与目标框偏差回归的1x1卷积组成。

其中分类分支的1x1卷积通道数为一个特征点设置的anchor数量K3

其中回归分支的1x1卷积通道数为4*K(每个anchor都要回归4个坐标参数)

前面得到的5种级别的特征会依次分别作为RPN Head的输入,并得到对应级别特征的预测输出;

其中分类分支的输出1x3xHixWi对应着三个通道(对应3个不同形状的anchor)的目标存在概率特征图,再经sigmoid函数激活后,每个位置的分数都可以表示此位置感受野中存在前景目标的概率值。

其中回归分支的输出1x12xHixWi的每个位置都对应着3个不同形状anchor4个坐标回归参数(纠正偏离以接近对应标注框)。

 三、正负样本选择与采样

假定输入图像中存在一个前景目标,训练中,我们需要从所有预设的anchor中根据IoU阈值选择对应数量的正样本与负样本,其中正负样本用于前景、背景分类,只有正样本需要进行坐标参数回归。

(1)Anchor生成

首先根据多级特征图的大小与anchor预设参数,使用anchor_generator函数生成对应级别特征上的anchor,然后torch.cat函数将不同级别特征上的anchor按顺序拼接组合,得到此图对应的所有可用anchor

(2)正负样本选择

在获取到anchor后,先对此图前景目标的标注框gt_bboxes与所有anchor进行IoU重叠率计算得到一个IoU矩阵,然后为每一个anchor匹配一个重叠率最大的标注框,进而根据负样本阈值neg_iou_thr将低于阈值的anchor设定为负样本(标签为0),将大于正样本设定阈值pos_iou_thranchor设定为正样本(标签为1),其它anchor(标签为-1)不参与训练。此外,为了避免某些标注框没有超过阈值的正样本匹配anchor,可以考虑与标注匹配的低质量anchor,具体就是为每一个标注框匹配一个具有最大重叠率的anchor,然后将重叠率大于设定阈值min_pos_iou的设置为正样本。

(3)正负样本采样

在经过前面的正负样本选择过程,我们得到了一定数量的正样本与大量的负样本,为了避免正负样本在数量上严重失衡,需要进一步对样本数量与样本比例进行限制。FasterRCNN论文中默认设置共采样256个样本,其中正负样本的比例为11

具体就是如果正样本的数量m少于128个,就全部作为正样本,如果超过128个,就随机选择128个作为正样本,其它设置为-1标签不参与训练;

在采样完所需正样本后,将所需的256个样本中除去正样本数量,得到所需的负样本数量,如果负样本总数量n大于所需数量,随机采样所需数量后,其余设置标签为-1不参与训练,否则全部作为负样本。

通常情况下,传统采样方法得到的正样本数量相对较少,尤其对于小目标来说。

三、训练目标设定

在获取到所需数量的正负样本之后,我们会为对应正负样本的每个anchor设定对应的正负标签(10),然后将正负样本重新映射回到对应的不同级别特征上,通过对应特征级别上的分类分支进行判别学习。

同时,基于标注框与正样本anchor,计算出对应anchor的回归目标偏差,然后将正负样本重新映射回到对应的不同级别特征上,通过对应特征级别上的回归分支进行做坐标偏差的回归学习。

由于FPN多尺度融合特征的使用,我们知道在训练过程中,不同尺度的目标通常会在对应级别特征上进行前景分类与坐标回归的学习,很大程度上缓解了单一尺度级别上多尺度目标学习的困难。

 

参考资料:

1  Digging into Detectron 2 — part 4 | by Hiroto Honda | Medium

2  MMDetection源码


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

相关文章

转:FRCNN之RPN结构详解

图没了,大家可以移步原文网址,之前放在最后的。。。 https://www.jianshu.com/p/ab1ebddf58b1 一、资源提供: 论文链接 Faster R-CNN Towards Real-Time Object:https://arxiv.org/pdf/1506.01497.pdf tensorflow源码链接&…

MASK RCNN 之RPN

一、RPN网络 1.1 网络结构 RPN结构图 1.2 Anchor锚框生成规则 基于上一步得到的特征图[P2,P3,P4,P5,P6],介绍下MASKRCNN网络中Anchor锚框的生成,根据源码中介绍的规则,与之前的Faster-RCNN中的生成规则有一点差别。 ①遍历P2到P6这五个特征层&#x…

FasterRCNN_rpn

本文代码来自于https://github.com/bubbliiiing/faster-rcnn-pytorch,b站视频https://www.bilibili.com/video/BV1BK41157Vs?p1,本文仅作学习使用 FasterRCNN整体的网络构造 class FasterRCNN(nn.Module):def __init__(self, num_classes, mode "training",feat_…

RPN网络讲解

讲完了anchor机制,接下来我们讲RPN(region proposal network)区域候选网络,它的作用是为了得到候选框。 先看以下内容: faster rcnn结构及代码讲解 原理解释 Feature Map进入RPN后,先经过一次33的卷积,同样&#xff…

RPN架构及其PyTorch实现

RPN(Region Proposal Network) 引言RPN架构RPNAnchor 生成Proposals 的选择loss 的计算FPN for RPNRPN网络对于正负样本的选择 FPN for Fast R-CNN RPN架构及其Pytorch实现基于RPN产生~20k个候选框~20k个候选框(1):RPN~20k个候选框(2)&#x…

RPN 模型简要介绍

概述 本文介绍了 Faster R-CNN 目标检测模型中提出的图像候选框提取模型—— RPN 模型,这是一种区域生成网络,结构简单嵌入方便,极大加快了目标检测模型的运行速度,使目标检测模型真正融合到同一个神经网络内,对之后影…

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.主函数四、实验现象这一节来介绍一种无线通信技术–红外遥控通信。我们开发板标配了一个一体化红外接收头和红外遥控器,我们…