详解RPN网络[通俗易懂]

详解RPN网络[通俗易懂]引言RPN(RegionProposalNetwork)是Faster-RCNN网络用于提取预选框(也就是RCNN中使用selectivesearch算法进行RegionProposal的部分),我们知道RCNN及Fast-RCNN中一个性能瓶颈就是提取预选框的部分,而RPN很好地对这个部分进行了优化,原因在于它将卷积神经网络引入了进来,使用特征提取的形式生成出预选框的位置从而降低了selectivesearch算法带来的计算时间上的开销。RPN(RegionProposalNetwor

大家好,又见面了,我是你们的朋友全栈君。

引言

RPN(Region Proposal Network)是Faster-RCNN网络用于提取预选框(也就是RCNN中使用selective search算法进行Region Proposal的部分),我们知道RCNN及Fast-RCNN中一个性能瓶颈就是提取预选框的部分,而RPN很好地对这个部分进行了优化,原因在于它将卷积神经网络引入了进来,使用特征提取的形式生成出预选框的位置从而降低了selective search算法带来的计算时间上的开销。

RPN( Region Proposal Network) :-

在这里插入图片描述
CNN从特征图中学习分类的方式,RPN也从特征图中学习生成这些候选框。一个典型RPN网络如图所示。它的网络流程如下:

step1

在第一步中,我们的输入图像通过卷积神经网络,其最后一层将特征图作为输出;

step2

在这一步骤中,滑动窗口通过上一步骤得到的特征图进行运行。滑动窗口的大小为n*n(这里是3×3)。对于每个滑动窗口,生成一组特定的锚,但有3种不同的长宽比(1:1, 1:2, 2:1)和3种不同的长宽(128, 256和512)的方框,如下所述:

  1. 有3种不同的长宽比和3种不同的方框,所以特征图中每个像素共可有9种方案;
  2. 在特征图大小为W * H的情况下,锚箱的总数量和特征图每个位置的锚数量为K,可以给出W * H * K。

下图显示了尺寸为(600, 900)的图像的(450, 350)位置的9个锚点。
在这里插入图片描述
在上图中,三种颜色代表三种比例或尺寸(128×128, 256×256, 512×512)。让我们把绿色的盒子/锚单列出来。这三个盒子的高度宽度比例分别为1:1、1:2和2:1。

step3

现在,我们已经为特征图的每个位置设置了9个锚定框。但可能有很多盒子里没有任何物体。因此,模型需要学习哪些锚箱可能有我们的对象。有我们的物体的锚箱可以被归类为前景,其他的则是背景。同时,模型需要学习前景框的偏移量,以适应物体。 这就把我们带到了下一个步骤。

step4

锚箱的定位和分类是由边界箱调节器层和边界箱分类器层完成的。边界盒分类器计算地面真实盒与锚定盒的物性得分,并以一定的概率(又称物性得分)将锚定盒分类为前景或背景。
Bounding box Regressor层学习x,y,w,h值相对于已分类为前景的Anchor Box的偏移(或差异),其中(x,y)是盒子的中心,w和h是宽度和高度。由于RPN是一个模型,每个模型都有一个成本函数来训练,所以RPN也是如此。 RPN的损失函数可以表示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举例

让我们用一个例子来回顾RPN的整个流程。假设我们有一张大小为600×800的图像,在通过卷积神经网络(CNN)块后,这幅输入图像缩小为38×56的特征图,特征图的每个位置都有9个锚点盒。那么我们就有38 * 56 * 9=1192个建议或锚箱需要考虑。而每个锚箱都有两个可能的标签(前景或背景)。如果我们把特征图的深度定为18(9个锚点x 2个标签),我们将使每个锚点都有一个有两个值的向量(通常称为预测值),代表前景和背景。如果我们将预测值送入softmax/logistic回归激活函数,它将预测标签。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152296.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021.7.20 phpstorm激活码【永久激活】

    (2021.7.20 phpstorm激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    168
  • 跨域问题(CORS / Access-Control-Allow-Origin)

    跨域问题(CORS / Access-Control-Allow-Origin)1、前言最近在项目中,调用EurekaREST接口时,出现了CORS跨越问题(Cross-originresourcesharing),在此与大家进行分享,避免多走些弯路。项目前端(http://localhost:9000)通过Ajax方式调用EurekaREST接口(http://localhost:8761/eureka/apps)时,却没有任何反应…

    2022年6月6日
    34
  • RF、GBDT、XGBoost面试级整理

    RF、GBDT、XGBoost面试级整理由于本文是基于面试整理,因此不会过多的关注公式和推导,如果希望详细了解算法内容,敬请期待后文。    RF、GBDT和XGBoost都属于集成学习(EnsembleLearning),集成学习的目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。  根据个体学习器的生成方式,目前的集成学习方法大致分为两大类:即个体学习器之间存在强依赖关系、必须串行生成的序列化方法

    2022年6月3日
    40
  • Ubuntu 9.10下 Eclipse 新建Java工程按扭无反应问题

    Ubuntu 9.10下 Eclipse 新建Java工程按扭无反应问题

    2021年8月4日
    62
  • 企业微信三方应用开发(二)授权开通及登录流程(第三方登录流程)

    据微信开放平台“开发资源”中网站应用微信登陆功能开发指南描述:进行授权登陆接入前,需要先注册一个开发者账号,并拥有一个已经审核通过的网站应用,并获取AppID和APPSecret,然后申请微信登陆并通过审核后,可以接入流程进行开发。据开发者资质认证处介绍:开发者资质认证通过后,微信开放平台帐号下的应用,将获得微信登录、智能接口、第三方平台开发等高级能力。所以在微信第三方授权登陆获取用户信息…

    2022年4月15日
    466
  • Redis 持久化是如何做的? RDB和AOF对比分析

    Redis 持久化是如何做的? RDB和AOF对比分析

    2022年2月19日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号