Anchor2

news2025/2/26 4:01:56

Anchor也是第二季了~~ 来一起来学习Faster R-CNN中的RPN及Anchor

说到RPN和Anchor,应该立马就能想到Faster R-CNN网络框架 首先我先将几类经典的目标检测网络做一个对比,然后开始说说今天要讲的知识。

最开始出现的是R-CNN,如下图:

从上图可以看出其框架做了很多重复的计算,在第二步之后,如果有2k个proposals,那后面就要执行2k边,太低效。于是,出现了改进的SSP-Net,如下图:

 

SSP-Ne框架组合了Classification和Regression,做成单个网络,并且可以Een-to-End进行训练,速度上提高许多。但是,SSP-Net还是基于Selective Search产生proposal,之后就出现了Fast R-CNN,其是融合了R-CNN和SPP-Net的创新,并且引入多任务损失函数,使整个网络的训练和测试变得十分方便。

但是Region proposal的提取还是使用了Selective Search,目标检测时间大多消耗在这上面(大约region proposal需2~3s,而提特征分类只需0.32s),这种是无法满足实时应用,而且并没有实现真正意义上的端到端训练测试(因为region proposal使用了Selective Search先提取处来)。

于是就有了直接使用CNN产生region proposal并对其分类,这就是Faster R-CNN框架,如下图:

Faster R-CNN将proposals交给了CNN去生成,这样Region Proposal Network(RPN)应运而生。

仔细看看Faster R-CNN框架,其实还保留了Fast R-CNN的框架,其主要就是CNN+RPN。其中RPN主要就是负责生成proposals,然后与最后一层的feature map一起使用,用ROI Pooling生成固定长度的feature vector。具体如下:

 

那接下来开始好好的说一下RPN和Anchor!下图是我从网络copy过来的,应该更加能理解整体的流程及内容。 

在上图中,红色的3x3红框是其中一个滑窗的操作过程,注意这里的Anchor是原图像像素空间中的,而不是feature map上的。这样的话,就可以很好去知道Anchor的意思,而且Anchor对于RPN非常重要。

现在,我们假设现在的feature map尺寸为W x H x C(13x13x256就是feature map的Width=13,Height=13和Channel=256),在feature map使用滑动窗口的操作方式,当前滑窗的中心在原像素空间的映射点就称为Anchor,并且以Anchor为中心去生成K(paper中default K=9,3个尺寸和3个缩放比例)个proposals。

在feature map上滑动一次,得到一个小网络,该网络输入是3x3x256,经过3x3x256x256的卷积,就可以得到1x1x256的低维特征向量。

然后就得到上图的两个分支。

  • Classification:经过1x1x256x18的卷积核,得到1x1x18的特征向量,分别代表9个proposals的Object的概率(是或不是);

  • Regression:经过1x1x256x36的卷积核,得到1x1x36的特征向量,分别代表9个proposals的(长宽及中心点坐标)。       whaosoft aiot http://143ai.com  

注意,上面只是一个小网络,也就是一个3x3滑窗的过程及结果,在网络整体运行的过程中,要将整个feature map都要滑动一遍,最终就会得到两个损失函数: 

其中就是Classification(Lcls)和Regression(Lreg)两个损失。对于边界框的回归,其是采用以下4个坐标的参数化: 

 

综上,通过滑窗和Anchor机制就可以找到固定比例、一定大小的proposals,这样RPN就可以完美替代低效的Selective Search去产生proposals。 

 

最终,在目标检测领域中,这个框架算是一个里程碑,值得大家学习与深入探索。最后的检测结果也是不错的。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是编程?程序员主要做啥工作?如何学习呢?

对编程的理解 编程换成通俗的语言可以理解为使用一些英文单词组成的指令发送给计算机,做指定的事情。 编程的种类 如今在互联网市场中,编程的工作一共分为了3大类: 前端编程 后台编程 运维编程 前端编程: 什么是前端&#…

门诊地图导航怎么做,零成本的医院室内导航解决方案

现在很多医院都比较大,科室众多,往往让人不知道要找的科室在哪里,不了解看病的流程,只能去咨询台询问,费时又费力……电子地图作为大家最喜闻乐见的高效应用形式,可高效为病患提供导医服务,并为…

XML介绍和基本用法(一文彻底搞懂XML!)

文章目录1.XML1.1概述1.2标签的规则1.3语法规则1.4xml解析1.5DTD约束1.6schema约束1.XML 1.1概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李…

智能图像水位识别监测 基于OpenCv

智能图像水位识别监测利用OpenCVyolo网络学习模型对河道江河湖泊等区域进行实时监测,当监测到水位刻度尺超标时立即抓拍。OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉处理开源软件库,支持与计算机视觉和机器…

【Linux】编辑器的天花板vim

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉前言&…

14.SpringAop

1. Aop简介 AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构 OOP(Object Oriented Programming)面向对象编程 作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基…

C语言必背18个经典程序

1、/*输出9*9口诀。共9行9列&#xff0c;i控制行&#xff0c;j控制列。*/ #include "stdio.h" main() {int i,j,result;for(i1;i<10;i){for(j1;j<10;j){resulti*j;printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐&#xff0c;占3位*/}printf("…

数字化转型必读书籍:27个案例让小白也能搞懂以中台战略主导的数字化转型产品建设

各位茶馆的读者朋友们大家好&#xff0c;一转眼《中台产品经理宝典》一书已经上市了2年半&#xff0c;在这期间创造了近2万册的销售记录&#xff0c;并多次冲上各大网站的销售记录。 就在今年双十一还创造了当当网细分类目销量第71名的成绩&#xff0c;这对一本已经出版了2年半…

LeetCode题解 15 (5,96) 最长回文子串,不同的二叉搜索树

文章目录最长回文子串代码解答&#xff1a;不同的二叉搜索树代码解答&#xff1a;最长回文子串 首先我们应该先了解什么是回文子串: 单个字符 例如 a 这也是回文字符串 2个字符 aa 或者 bb 这也是回文字符串 3个字符 aba 或者 bab 多个字符 abba ababa 这些也被叫做回文子串 从…

【源码透视】SpringBoot的SPI机制

一、从java类加载机制说起 java中的类加载器负载加载来自文件系统、网络或者其他来源的类文件。jvm的类加载器默认使用的是双亲委派模式。三种默认的类加载器Bootstrap ClassLoader、Extension ClassLoader和System ClassLoader&#xff08;Application ClassLoader&#xff09…

开源项目 Spartacus 的 git 提交流程规范

Spartacus 开源项目由一组库组成。为了更容易知道哪个版本的库与另一个版本兼容&#xff0c;库版本在所有包中同步。 这意味着当我们要发布 1.5.0 版本时&#xff0c;我们会发布该版本下的所有库&#xff0c;即使某些库与上一个版本相比没有任何变化。 这样一来&#xff0c;我们…

NKOJ P5676 SuperGCD【超级GCD】

为什么NKOJ的题交JAVA会被keyword卡System&#xff0c;还不能用python水高精度…… 题目分析 回归正题&#xff0c;由于本题数据范围0≤A,B≤10100000 \le A,B \le 10^{10000}0≤A,B≤1010000两个100001000010000位的整数算GCD,所以用高精度欧几里得GCD的话会使得算法时间复杂…

数据治理工程师必备证书DAMA-CDGA/CDGP,含金量高

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

Nacos的Java SDK

配置管理 在界面上添加配置 我们在界面上新建了一个json类型的配置 使用SDK来获取配置 public String getConfig(String dataId, String group, long timeoutMs) throws NacosException名称类型描述dataIdstring配置 ID&#xff0c;采用类似 package.class&#xff08;如com…

10分钟vue初步入门

基础原理 使用vue开发&#xff0c;对于新手需要了解的两个关键点是 MVVM MVC模式变化而来&#xff0c;相对于MVC强调控制-模型-视图的责任分离之外&#xff0c;最大的特点就是引入ViewModel&#xff0c;支持双向绑定 比如你改变一个输入框 Input 标签的值&#xff0c;会自动…

仓库管理系统GreaterWMS的安装

本文是应网友 ubuntu 和 Nathan 要求写的&#xff1b;因为看起来 Nathan 比较着急&#xff0c;就突击了一下&#xff0c;因为时间仓促&#xff0c;错误在所难免&#xff0c;敬请谅解~ 什么是 GreaterWMS &#xff1f; GreaterWMS是完全开源的仓库管理系统。该库存管理系统是目前…

心脏病_冠心病智能预测模型(人工智能,机器学习,用于论文作业_专利_企业建模__项目申报_科研报告,收藏)

作者Toby&#xff0c;来自心脏病_冠心病智能预测模型 ​ 心脏病&#xff08;heart disease&#xff09;是心脏疾病的总称&#xff0c;包括风湿性心脏病、先天性心脏病、高血压性心脏病、冠心病、心肌炎等各种心脏病。 人体“发动机” 心脏是一个强壮的、不知疲倦、努力工作的…

更适合运动的耳机,设计时尚轻巧好用,南卡Runner CC3上手

很多喜欢健身的朋友&#xff0c;在锻炼的时候都会戴上一副耳机&#xff0c;这样可以在音乐的节奏中享受运动的乐趣。在运动耳机当中&#xff0c;骨传导耳机是这两年很受欢迎的一种类型&#xff0c;相比于更常见的真无线耳机&#xff0c;骨传导耳机因为特殊的发声方式&#xff0…

品优购项目-头部底端和整个页面底端制作

品优购项目(二) 3). nav 制作 nav 盒子通栏有高度 而且有个下边框1号盒子 左侧浮动 dorpdown 下拉导航 里面包含 dt dd2号盒子右侧浮动 navitems 导航栏组 11. logo 优化 logo 里面 首先放一个 h1 标签 &#xff0c;目的是为了提权&#xff0c;告诉搜索引擎&#xff0c;这个地方…

微信小程序开发—入门到跑路(四)

1、学习目标 今天所学习的所有知识点都是围绕自定义组件 &#xff0c; 具体参见&#xff1a;【指南>自定义组件】 知识点名称知识点内容难度系数要求程度组件创建和引用创建自定义组件、局部引用、全局引用、全局和局部比较、组件和页面的区别3星掌握组件样式样式的隔离特…