caffe专题五——回归中——检测框架

news2024/11/15 11:33:28

一:Bounding-box regression回归
1.问题理解(为什么要做 Bounding-box regression? )如图 1 所示, 绿色的框为飞机的 Ground Truth, 红色的框是 Selective Search 提取的 Region Proposal。 那么即便红色的框被分类器识别为飞机,但是由于红色的框定位不准(IoU<0.5), 那么这张图相当于没有正确的检测出飞机。 如果我们能对红色的框进行微调, 使得经过微调后的窗口跟Ground Truth 更接近, 这样岂不是定位会更准确。 确实,Bounding-box regression 就是用来微调这个窗口的.

2.问题数学表达(回归/微调的对象是什么? )
对于窗口一般使用四维向量( , , , ) x y w h 来表示, 分别表示窗口的中心点坐标和宽高。 对于图 2, 红色的框 P 代表原始的
Proposal, 绿色的框 G 代表目标的 Ground Truth, 我们的目标是
寻找一种关系使得输入原始的窗口 P 经过映射得到一个跟真实
窗口 G 更接近的回归窗口 

3.问题解决方案(Bounding-box regression) 

二:fast-rcnn
一篇不错的文章:https://blog.csdn.net/wonder233/article/details/53671018 对各阶段原理进行了详细的描述

这里再用另一篇文章的总结来强调一下:RCNN学习笔记(4):fast rcnn
1.用selective search在一张图片中生成约2000个object proposal,即感兴趣区域RoI。
2.把它们整体输入到全卷积的网络中,在最后一个卷积层上对每个ROI求映射关系,并用一个RoI pooling layer来统一到相同的大小-> (fc)feature vector ,即->提取一个固定维度的特征表示。
3.继续经过两个全连接层(FC)得到特征向量。特征向量经由各自的FC层,得到两个输出向量:
第一个是分类,使用softmax,第二个是每一类的bounding box回归。

另外还有一个关于测试过程的总结也写得不错:Fast R-CNN论文详解

1、任意size图片输入CNN网络,经过若干卷积层与池化层,得到特征图;
2、在任意size图片上采用selective search算法提取约2k个建议框;

3、根据原图中建议框到特征图映射关系,在特征图中找到每个建议框对应的特征框【深度和特征图一致】,并在RoI池化层中将每个特征框池化到H×W【VGG-16网络是7×7】的size;/

4、固定H×W【VGG-16网络是7×7】大小的特征框经过全连接层得到固定大小的特征向量;
5、第4步所得特征向量经由各自的全连接层【由SVD分解实现】,分别得到两个输出向量:一个是softmax的分类得分,一个是Bounding-box窗口回归;/

6、利用窗口得分分别对每一类物体进行非极大值抑制剔除重叠建议框,最终得到每个类别中回归修正后的得分最高的窗口。

整体框架大致如上述所示了,对比SPP-Net,可以看出FRCN大致就是一个joint training版本的SPP-Net,改进如下:
SPP-Net在实现上无法同时tuning在SPP layer两边的卷积层和全连接层。
SPP-Net后面的需要将第二层FC的特征放到硬盘上训练SVM,之后再额外训练bbox regressor。
  在这里我们不关注实现的具体的细节,主要对一些重要性的原理进行一些概括总结:

  1:roi池话

区域建议窗口是在原图中得到的,只不过后续池话会导致窗口变小,然后根据这些小区域做分类和回归。

 2:总的loss


二:faster-rcnn
    这个网络与fast-rcnn网络的最大不同就是在区域的选择上,这个网络是在特征图上进行候选区域的选择。


   

 至于RPN怎么实现的倒是不需要关注!

    具体的实现细节可以参考:https://blog.csdn.net/Seven_year_Promise/article/details/60954553

    这篇文章的作者是动脑子思考的。

 可以看到这个网络结构瞬间增大了好多。

三:ssd&yolo

  特征到类别最后分类或者回归的实现是单独的层,在代码最后还是有体现的。


--------------------- 
作者:runner668 
来源:CSDN 
原文:https://blog.csdn.net/runner668/article/details/80436850 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

相关文章

Win10系统pytorch安装教程

前提&#xff1a;安装后Anaconda和NVIDIA显卡驱动 1. 确定支持的最高CUDA版本 确定支持的最高CUDA版本 记住这个CUDA版本&#xff0c;后面要用。 2. 新建conda虚拟环境 2.1 为conda配置清华镜像源 conda常用命令 打开Anaconda prompt窗口&#xff0c;使用如下命令&#xf…

学习心得01:STM32开发板

嵌入式开发也不难&#xff0c;相关知识需要学习。对于某个具体内容&#xff0c;需要反复测试、修改。 这是我买的一个开发板&#xff0c;各个范例都跑了一遍&#xff0c;有问题的还问过客服&#xff08;更新代码后解决&#xff09;。

[C++]笔记-函数的栈空间(避免栈空间溢出)

错误1 当数组的内存占用较大时,会引发异常 #include <iostream> using namespace std; int main() {char buff[2000000];cout << (int)buff[sizeof(buff) - 1] << endl; 错误 2 当调用次数较小的时候,栈内存还没有满,可以输出,该地址相减除以1024等于100,就…

​《乡村振兴战略下传统村落文化旅游设计 》在2023年畅销榜排名465位

​《乡村振兴战略下传统村落文化旅游设计 》在2023年畅销榜排名465位

T01西门子#将博图触摸屏中使用的外部图片全部导出

方法一&#xff1a;直接在博图软件WINCC中 点击图片右击 缺点&#xff1a;用自带的画图软件打开保存后无法保留透明。 方法二&#xff1a;使用官方软件导出 优点&#xff1a;快速批量全部导出&#xff0c;保留文件原格式。 下载地址&#xff1a; 将图形从 WinCC (TIA Portal) …

理解变分自编码器(VAE)

转载翻译自&#xff1a;https://towardsdatascience.com/understanding-variational-autoencoders-vaes-f70510919f73 介绍 在过去几年中&#xff0c;基于深度学习的生成模型因为在该领域中取得了一些惊人的进展而越来越受到关注。依靠大量的数据、精心设计的网络架构和智能训…

日志系统——实用类设计,日志等级类设计,日志消息类设计

一&#xff0c;实用类设计 该类主要是提前完成一些后面会用到的零碎通用的功能接口&#xff0c;主要有下面几个 1.获取系统时间&#xff1a;这里我们直接用time()函数获取时间返回 2.判断文件是否存在&#xff1a;判断文件我们调用系统接口&#xff0c;stat()&#xff0c;如下所…

Linux命令200例:top是一个基于终端的实时系统监控工具(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

新款2023奥迪A5新车32.24,这款车怎么样?

奥迪公司近期发布了新款A5车型&#xff0c;全国起售价为32.24万元。这款新车凭借其精致的设计和出色的实用性&#xff0c;吸引了大量消费者的关注。本文将结合个人经验和市场调研&#xff0c;对这款新车的特性进行深入剖析。 首先&#xff0c;奥迪A5的外观设计完美融合了实用性…

16.5 【Linux】SELinux 初探

16.5.1 什么是 SELinux SELinux是“ Security Enhanced Linux ”的缩写&#xff0c;字面上的意义就是安全强化的 Linux。 当初设计的目标&#xff1a;避免资源的误用 SELinux 是由美国国家安全局 &#xff08;NSA&#xff09; 开发的&#xff0c;当初开发这玩意儿的目的是因…

Centos7完全卸载已安装的Nginx

查看服务器上安装的nginx版本号&#xff0c;主要是通过ngix的-v或-V选项 Linux下查看Nginx安装目录、版本号信息? -v 显示 nginx 的版本。 -V 显示 nginx 的版本&#xff0c;编译器版本和配置参数。 [rootwww ~]# /usr/local/nginx/sbin/nginx -v nginx version: nginx/1.…

移动硬盘已识别但无法读取怎么办?

移动硬盘已识别但无法读取问题是一个比较常见的问题&#xff0c;通常会以“硬盘无法访问”的提示弹窗形式出现&#xff0c;也曾让很多人苦闷烦恼不已。那么具体的移动硬盘无法读取原因是什么呢&#xff1f; 移动硬盘无法读取的原因 硬盘驱动器可能是没有分区的新驱动器。如果您…

记一次:线程池源码解析

前言&#xff1a;很多时候我们需要使用线程池来处理逻辑&#xff0c;但实际上线程池是如何添加线程&#xff0c;如何执行的呢&#xff1f; 0&#xff1a;创建线程池--略&#xff08;7个参数&#xff09; 1&#xff1a;提交线程池源码 public void execute(Runnable command)…

基于 spring boot 的毕业生信息招聘管理系统【源码在文末】

向上的路&#xff0c;并不拥挤&#xff0c;拥挤是因为大部分人选择了安逸 大学生嘛&#xff0c;论文写不出&#xff0c;代码搞不懂不要紧&#xff0c;重要的是&#xff0c;从这一刻就开始学习&#xff0c;立刻马上&#xff01; 今天带来的是最新的选题&#xff0c;基于 spring…

Python绘图系统5:自定义一个坐标设置控件

文章目录 封装成类数据输入方案设置数据源代码 Python绘图系统&#xff1a;将matplotlib嵌入到tkinter &#x1f4c8;简单的绘图系统 &#x1f4c8;数据导入&#x1f4c8;三维绘图系统 封装成类 xyz这三行其实从代码的角度来说是完全一样的&#xff0c;而且在写这三行组件的时…

Python学习笔记_基础篇(九)_面向对象编程

本篇内容: 1、反射2、面向对象编程3、面向对象三大特性4、类成员5、类成员修饰符6、类的特殊成员7、单例模式 反射 python中的反射功能是由以下四个内置函数提供&#xff1a;hasattr、getattr、setattr、delattr&#xff0c;改四个函数分别用于对对象内部执行&#xff1a;检…

VS2012+AO 10.2.2 项目错误 之内部编译器错误: 步骤“EMIT”

调试时异常消息&#xff1a; 内部编译器错误: 步骤“EMIT” 内部编译器错误: 步骤“COMPILE”的符号 内部编译器错误: 步骤“COMPILE”的符号“<全局命名空间>” 内部编译器错误(0xc0000005 位于地址 00C9FDDC 处): 可能的原因是“CODEGEN”。 好好的项目&…

【逐步剖C++】-第一章-C++入门知识

前言&#xff1a;本文主要介绍有关C入门需掌握的基础知识&#xff0c;包括但不限于以下几个方面&#xff0c;这里是文章导图&#xff1a; 本文较长&#xff0c;内容较多&#xff0c;大家可以根据需求跳转到自己感兴趣的部分&#xff0c;希望能对读者有一些帮助 那么本文也主要以…

springcloud3 hystrix实现服务降级的案例配置2

一 服务降级的说明 1.1 服务降级说明 "服务器忙&#xff0c;请稍后在试"不让客户达等待&#xff0c;立即返回一个友好的提示。 1.2 服务降级的触发情况 1.程序运行异常&#xff1b; 2.超时&#xff1b; 3.服务熔断触发服务降级&#xff1b;4 .线程池/信号量打…

Linux命令200例:ps用于查看当前系统中运行的进程信息(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…