RPN:Region Proposal Networks (区域候选网络)

简介: RPN:Region Proposal Networks (区域候选网络)

区域建议网络(RPN)首先在faster rcnn中提出。

得到用来预测的feature map

图片在输入网络后,依次经过一系列卷积+ReLU得到的51×39×256维feature map,准备后续用来选取proposal。

生成Anchors

anchor是固定尺寸的bbox。具体做法是:把feature map每个点映射回原图的感受野的中心点当成一个基准点,然后围绕这个基准点选取k个不同的尺寸和比例的anchor。对于W×H大小的卷积feature map(通常为2400),总共有W×H×k个锚点。默认使用3个尺度和3个纵横比,在每个滑动位置上产生k=9个anchor。在feature map上的每个特征点预测多个region proposals。例如对于像素点个数为 51×39 的一幅feature map上就会产生 51×39×9 个候选框。虽然anchors是基于卷积特征图定义的,但最终的 anchors是相对于原始图片的。

图1 九个候选框(anchor)示意图

针对该像素点的每个候选框需要判断其是不是目标区域,如果是目标区域,其边框位置如何确定,具体过程如图2所示,在RPN头部 ,通过以下结构生成 k个anchor。

图 2  RPN 过程示意图

如图2所示,针对特征图中的某一个位置的像素点,对应会有9个候选框。因为输入RPN中有256个通道的特征图,所以要同时对每个通道该位置的像素点都使用不同的3×3的滑动窗口进行卷积,最后将所有通道得到的该位置像素点的卷积值都加起来,得到一个新的特征值,最终使用256组这样的3×3的卷积核,就会得到一个新的256维的向量,这个256维的向量就是用来预测该位置的像素点的,该像素点对应的9个候选框共享这256维向量。

256维向量后面对应两条分支,一条目标和背景的二分类(classification),通过1×1×256×18的卷积核得到 2k 个分数,k等于候选框的个数9,表示这9个anchor是背景的score和anchor是目标的score。如果候选框是目标区域,就去判断该目标区域的候选框位置在哪,这个时候另一条分支就过1×1×256×36的卷积核得到4k个坐标,每个框包含4个坐标(x,y,w,h),就是9个候选区域对应的框应该偏移的具体位置Δxcenter,Δycenter,Δwidth,Δheight。如果候选框不是目标区域,就直接将该候选框去除掉,不再进行后续位置信息的判断操作。

RPN3.png

分类分支

考察训练集中的每张图像(含有人工标定的gt box) 的所有anchor划分正负样本:

(1)对每个标定的gt box区域,与其重叠比例最大的anchor记为正样本,保证每个gt至少对应一个正样本anchor

(2)对(1)中剩余的anchor,如果其与某个标定区域重叠比例大于0.7,记为正样本(每个gt可能会对应多个正样本anchor。但每个正样本anchor只可能对应一个gt;如果其与任意一个标定的重叠比例都小于0.3,记为负样本。

回归分支

x,y,w,h分别表示box的中心坐标和宽高,x,$x_a$,x分别表示predicted box, anchor box, and ground truth box (y,w,h同理)$t_i$表示predict box相对于anchor box的偏移,$t_i^*$表示ground true box相对于anchor box的偏移,学习目标就是让前者接近后者的值。

$$ t_x=(x-x_a)/w_a, t_y=(y-y_a)/h_a\\ t_w=log(w/w_a), t_h=log(h/h_a)\\ t_x^*=(x^*-x_a)/w_a, t_y^*=(y^*-y_a)/h_a\\ t_w^*=log(w^*/w_a), t_h^*=log(h^*/h_a) $$

在 RPN中部,分类分支(cls)和边框回归分支(bbox reg)分别对这堆anchor进行各种计算。在RPN末端,通过对两个分支的结果进行汇总,来实现对anchor的初步筛除(先剔除越界的anchor,再根据cls结果通过非极大值抑制(NMS)算法去重)和初步偏移(根据bbox reg结果),此时输出的都bbox改头换面叫 Proposal 了

偏移公式如下。An就是anchor的框,pro就是最终得出回归后的边界框,到这里我们的proposals就选好了:

$$ x_i^{pro}=x_i^{an}+dx_l^{reg}*w_l^{an}\\ y_j^{pro}=y_j^{an}+dy_l^{reg}*h_l^{an}\\ w_l^{pro}=w_l^{an}*e^{dw_l}\\ h_l^{pro}=h_l^{an}*e^{dh_l} $$

非极大值抑制(Non-maximum suppression)

由于anchor一般是有重叠的overlap,因此,相同object的proposals也存在重叠。为了解决重叠proposal问题,采用NMS算法处理:两个proposal间IoU大于预设阈值,则丢弃score较低的proposal。

IoU阈值的预设需要谨慎处理,如果IoU值太小,可能丢失objects的一些 proposals;如果IoU值过大,可能会导致objects出现很多proposals。IoU典型值为0.6。

Proposal选择

NMS处理后,根据sore对top N个proposals排序。在Faster R-CNN论文中 N=2000,其值也可以小一点,如50,仍然能得到好的结果。

学习更多编程知识,请关注我的公众号:

代码的路

相关文章
|
4月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
1168 1
|
1月前
|
机器学习/深度学习 存储 算法
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
本文详细介绍了回声状态网络(Echo State Networks, ESN)的基本概念、优点、缺点、储层计算范式,并提供了ESN的Python代码实现,包括不考虑和考虑超参数的两种ESN实现方式,以及使用ESN进行时间序列预测的示例。
61 4
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
|
1月前
|
机器学习/深度学习 数据可视化 算法框架/工具
【深度学习】Generative Adversarial Networks ,GAN生成对抗网络分类
文章概述了生成对抗网络(GANs)的不同变体,并对几种经典GAN模型进行了简介,包括它们的结构特点和应用场景。此外,文章还提供了一个GitHub项目链接,该项目汇总了使用Keras实现的各种GAN模型的代码。
52 0
|
网络协议
网络中解决OSPF不连续区域的3种方法
网络中解决OSPF不连续区域的3种方法
395 0
网络中解决OSPF不连续区域的3种方法
|
机器学习/深度学习 存储
Exploring the Regularity of Sparse Structure in Convolutional Neural Networks(在卷积神经网络中探索稀疏结构的规律性)
作者提出 基于论文Learning both weights and connections for efficient neural network修剪的方法在保留精度以及实现更高的压缩率方面确实很好。但是,这种改进是以稀疏计算模式的不规则性为代价的。 另一方面结构化的剪枝(例如修剪掉整个过滤器),但是比修剪单个权重会引起更大的精度损失。
152 0
Exploring the Regularity of Sparse Structure in Convolutional Neural Networks(在卷积神经网络中探索稀疏结构的规律性)
|
存储 机器学习/深度学习 自然语言处理
Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for t2i 用于文本图像合成的动态记忆生成对抗网络
这篇文章提出了动态记忆生成对抗网络(DM-GAN)来生成高质量的图像。该方法可以在初始图像生成不好时,引入动态存储模块来细化模糊图像内容,从而能够从文本描述中更加准确地生成图像。 文章被2019年CVPR(IEEE Conference on Computer Vision and Pattern Recognition)会议收录。 论文地址: https://arxiv.org/abs/1904.01310?context=cs 代码地址: https://github.com/MinfengZhu/DM-GAN
Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for t2i 用于文本图像合成的动态记忆生成对抗网络
|
负载均衡 网络协议 算法
跨区域网络的通信学习静态路由
跨区域网络的通信学习静态路由
464 0
跨区域网络的通信学习静态路由
|
网络协议 网络架构
跨区域网络的通信学习IPv4地址的分类和计算
跨区域网络的通信学习IPv4地址的分类和计算
169 0
|
算法 网络协议 网络架构
跨区域网络的通信学习路由表的工作原理
跨区域网络的通信学习路由表的工作原理
206 0
|
1天前
|
SQL 安全 算法
网络安全与信息安全:保护你的数字世界
【9月更文挑战第18天】在这个数字信息时代,网络安全和信息安全的重要性不言而喻。从网络漏洞的发现到加密技术的应用,再到安全意识的提升,每一个环节都至关重要。本文将深入探讨这些主题,并提供实用的建议和代码示例,以帮助读者更好地保护自己的数字世界。
20 11