Siam-RPN

article/2025/10/11 14:40:18

Siam-RPN

1. 研究动机:

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

Siam-FC需要多尺度测试,在跟踪阶段分别生成不同尺度的搜索框,进行跟踪,选取得分结果最好的作为跟踪结果。

Siam-FC没有做回归去调整候选框的位置。

本篇论文提出的Siam-RPN可以说是对Siam-FC的改进,在速度和精度上都有提升。速度上达到了160 FPS,而RPN子网络进一步提升了对目标框预测的准确度。

image-20210827155728388

2. 网络结构:

2.1 RPN网络:

首先看一下RPN网络,RPN网络是在Faster-RCNN中提出的代替了ss算法用来提取目标候选框的。

image-20210828110330143 image-20210828162943959

上图展示了RPN网络的具体结构。可以看到RPN网络实际分为2条分支,上面一条通过softmax分类anchors获得positive和negative分类,下面一条分支用于计算对于anchors的bounding box regression偏移量,以获得精确的proposal。而最后的Proposal层则负责综合positive anchors和对应bounding box regression偏移量获取proposals,同时剔除太小和超出边界的proposals。

具体的实现: 对于前面一个步骤通过特征提取网络得到的特征图,采用3 * 3大小的卷积核,同时padding=1来进行卷积操作。

如何选定Anchor?

对于特征图上的每一个点,我们可以计算出对应于原图的位置,然后生成9种anchor(这些anchor分别代表不同的大小和比例,大小有:[128 * 128,256 * 256, 512 * 512],比例有:[1 : 1、1 : 2、2 : 1])。然后我们可以根据anchor和ground_truth的IoU值来给anchor打上正负样本的标签。注意,这里生成的anchor特别多,在实际训练的时候一般是随机选取指定数量的anchor,比如:选取256个anchor,其中正负样本比例为1 : 1。

如何计算特征图中某一点和原图的位置对应关系?

特征图中的某一个点,对应的就是原图中某一个区域,也就是我们说的感受野大小,如果我们使用3 * 3的卷积核,同时padding=1来进行卷积操作的话,那么得到的特征图和原图是一样大小的,也就是说卷积操作不改变输入和输出的大小,只有在polling层会成倍减小特征图的输出。所以我们可以根据当前点在特征图中的位置,扩大相应的倍数来还原在原图中的位置。

image-20210828144354316

如何定义正负样本?

正样本:

  • 与某一真实框IoU最大的Anchor
  • 与任意真实框IoU>0.7的Anchor

负样本:

  • 与所有真实框的IoU<0.3的Anchor

分类分支和回归分支的计算过程?

上面的介绍中没有提到我们特征图的深度,这里的特征图是通过前一步骤的特征提取网络得到的,所以采用不同的网络会得到不同深度的特征图,在Faster-RCNN中,这里的维度是256维。我们在特征图上做3 * 3的卷积时保持通道数不变,所以每一次卷积会得到一个256维的向量,这里每一个特征256-d都对应于原图中的9个预测的anchor。然后在两个分支上分别做1 * 1的卷积得到预测结果。对于每一个Anchor,分类分支给出两个结果(获得2个score,正类是物体,负类是背景)、回归分支给出四个结果(获得4的值x,y,w,h)

image-20210828150942859

2.2 Siam-RPN:

Siam-RPN整体的网络结构分为两部分,一部分是Siamese Network,另一部分是Region Proposal Network, 前者用来提取特征,而RPN子网络又由两个分支组成,一个是用来区分目标和背景的分类分支,另外一个是微调候选区域的回归分支:

image-20210827160538091

对于Siam-RPN网络来说,首先第一步,经过Siam-FC孪生网络完成模板图像和搜索图像的特征提取工作,然后,对于模板图像z的特征,分别经过3 * 3大小的卷积操作,同时需要提升通道数。对于检测分支,也是相同的卷积操作,但是保持通道数不变,然后借鉴Siam-FC,采用相似的互相关运算得到分类分支和回归分支的预测结果。

【参考: https://zhuanlan.zhihu.com/p/31426458】

分类分支,每一个Anchor有两个输出,分别代表预测的结果是前景和背景的概率。

回归分支,每一个Anchor有四个输出,分别代表预测的Anchor与Ground Truth之间的偏移量。

img

对于窗口一般使用四维向量 (x,y,w,h) 表示,分别表示窗口的中心点坐标和宽高。红色的框A代表原始的positive Anchors,绿色的框G代表目标的GT,我们的目标是寻找一种关系,使得输入原始的anchor A经过映射得到一个跟真实窗口G更接近的回归窗口G’

如何寻找这个关系呢? 简单的思路就是通过平移和缩放来实现:

image-20210830111909752

所以回归分支的目的就是学习这四种变换的参数,让预测框更好的逼近真实值。

2.3 Loss:

Siam-RPN的loss定义包括两部分,类似于Faster-RCNN:
l o s s = L c l s + λ L r e g loss = L_{cls} + \lambda L_{reg} loss=Lcls+λLreg
分类分支采用交叉熵损失函数

  • 二分类

    image-20210830113336587 $$ -y_i 表示样本i的label,正类为1,父类为 \\ -p_i 表示样本i预测为正类的概率 $$
  • 多分类

    image-20210830113353387 $$ - M 类别的数量 \\ - y_{ic} 符号函数(0或1),如果样本i的真实类别等于c取1,否则取0 \\ - P_{ic} 观测样本i属于类别c的预测概率 $$

回归分支采用Smooth L1 损失函数

image-20210830112508723

3. 训练阶段:

3.1 Anchor选定:

选定5种不同比例的anchor:[0.33,0.5,1,2,3]

3.2 IoU阈值设置:

阈值上限: 0.6

阈值下限: 0.3

3.3 正负样本选定:

在Siam-RPN中,一个训练队包含64个样本,其中最多16个正样本。

4. 实验结果:

4.1 VOT 2015数据集:

image-20210827212531333image-20210827212544391

4.2 VOT 2016数据集:

image-20210827212653781image-20210827212703707

4.3 VOT 2017数据集:

image-20210827212749852

http://chatgpt.dhexx.cn/article/8Uww6c2E.shtml

相关文章

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

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

Faster RCNN 中的RPN解析

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

网络模型—RPN

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

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&#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;希…

C51---PWM 脉冲宽度调制

1.PWM:脉冲宽度调制,它是通过一系列脉冲宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;。对模拟信号电平进行数字编码。也就是说通过调节占空比的变化来调节信号、能量等的变化&#xff0c;占空比就是指在一个周期内&#xff0c;信号处于…

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

功能&#xff1a; 0.本项目采用STC89C52作为单片机系统的控制MCU 1.采用4X4矩阵键盘实现号码输入&#xff0c;并在LCD液晶上显示 2.按下enter键&#xff0c;显示calling…&#xff0c;并且蜂鸣器模拟电话拨号发声 3.按下*键&#xff0c;退格&#xff0c;按下#键&#xff0c;清楚…