目标检测论文模型笔记——RCNN系列

RCNN系列模型(two-stages、基于区域的)主要包括以下几种,按发布时间排序:
  1. RCNN(2014年):首次将深度学习应用于目标检测,通过选择性搜索Selective Search提出候选区域,然后使用CNN(AlexNet)进行特征提取,最后通过SVM分类。
  2. Fast RCNN(2015年):改进了RCNN,引入了ROI Pooling来提取固定大小的区域特征,实现了更快的训练和更高的精度。
  3. Faster RCNN(2015年末):引入区域提议网络(RPN),使得候选区域的生成也通过深度学习来完成,实现了端到端的训练
  4. Mask RCNN(2017年):在Faster RCNN的基础上添加了一个并行分支,用于生成高精度的实例分割掩码,同时采用了ROI Align技术提高精度。

RCNN系列框架总结:

  1. Feature extraction
  2. Region proposal
  3. Classification
  4. Bounding Box Regression

                         

1. RCNN(2014)

1)内容

R-CNN主要分为四个阶段

  1. 产生候选区域:对于输入的图片,使用Selective Search方法,选择出2000个候选区域(每个区域大小不一)。
  2. 特征提取:使用AlexNet对每一个候选区域提取特征,得到2000*4096维的特征向量。
  3. 候选区域类别判断与NMS:将2000*4096维特征向量送入到21个(20个类别+1个背景)SVM分类器中,需要使用NMS去除冗余的候选框。
  4. 边界框偏移回归:Bounding Box Regression

2)框架:引入CNN到Feature extraction

  1. Region proposal (SS
  2. Feature extraction (CNN-AlexNet)
  3. Classification (SVM
  4. Bounding Box Regression

                      

3)创新

在文章中,作者认为 R-CNN 较之前的算法,能够取得30%的改进是基于以下两点:

  1. 使用了CNN来提取候选区域的特征
  2. 使用迁移学习,因为目标检测领域的数据相比图像分类任务要少很多,所以使用在图像分类上训练好的模型,经过 fine-tune 可以很好的运用在目标检测上。

4)不足

               

2. Fast R-CNN(2015)

1)内容

Fast R-CNN 主要是在R-CNN和SPPNet的基础上进行改进的,有着以下几个优点:

  1. 与R-CNN、SPPNet相比,有着更高的准确率。
  2. 通过使用多任务损失,将模型训练由多阶段转变为单阶段训练。
  3. 训练时可以一次更新网络的所有层,不再需要分步更新参数。
  4. 不再需要硬盘来存储CNN提取的特征数据

Fast R-CNN的流程主要分为三步:

  1. 产生候选框:使用 Selective Search 方法生成2K个图片候选区域proposals;
  2. 特征提取:对整张图片进行特征提取得到相应的特征图(这是对R-CNN的一大改进,参考了SPPNet);
  3. ROI Pooling:特征投影,并将每一个特征矩阵经过ROI Pooling缩放到7*7大小;---特征投影与统一尺寸
  4. 类别与边框预测:展平处理后通过全连接层获得预测的分类以及候选区域位置偏移信息。

2)框架

  1. Region proposal(SS
  2. Feature extraction(CNN-VGG
  3. RoI pooling
  4. Classification (CNN)
  5. Bounding Box Regression(CNN)

                    

3)创新

  1. 对整张图片进行特征提取得到相应的特征图(这是对R-CNN的一大改进;
  2. 主要创新:使用了RoI Pooling,这一方法参考了SPPNet的空间金字塔池化;
  3. 使用了多任务的损失函数来简化R-CNN中的多阶段训练。

                     

4)作者关心

在原文中,作者说Fast RCNN是R-CNN和SPPNet的一个快速更新,所以改进的内容并不是特别多,与后面的Faster RCNN提出了RPN相比,这只能算是一次打补丁的行为。

文中作者更多关心的是一些其它的问题:

  1. 多任务训练是否有帮助?
  • 结论:是的,多任务训练效果比分阶段训练更好。

        2. 尺度不变性:暴力方法还是巧妙技巧?

  • 人话版:在统一图像特征尺度时,是使用SPPNet的空间金字塔池化还是本文中的ROI池化?
  • 结论:两者效果差距微乎其微,甚至空间金字塔池化因为计算开销大,计算所需时间更长。

        3. 训练数据是不是越多越好?

  • 结论:将训练数据翻倍,可以将mAP提高2%~3%。

        4. SVM的表现是否优于softmax?

  • 结论:网络直接输出各类概率(softmax),比SVM分类器性能略好

        5. 候选区域是不是越多越好?

  • 结论:否,候选区域从1K增加到10K的过程中,mAP先有所提升,然后略有下降,而且如果使用更多的候选区域,不仅没有帮助,反而会损害精度。

5)Multi-task Training:

Multi-task Training关键步骤:

  1. 定义任务:确定你希望模型同时学习的任务(例如,分类和回归)。
  2. 设计网络:构建一个神经网络,它有能力处理多个任务。通常,这涉及共享一些层来学习通用特征,同时为每个任务提供专用的分支
  3. 构建多任务损失函数:为每个任务定义损失函数,然后将这些损失结合起来形成一个总的损失函数。可以为不同任务的损失分配不同的权重来调整它们在训练中的重要性。
  4. 训练模型:使用包含多个任务损失的总损失函数来训练模型。通过反向传播更新模型参数,使得模型能够同时在所有任务上表现良好。
  5. 调参和评估:根据模型在各个任务上的表现进行调参,可能需要调整损失权重、网络结构或学习率等。

总结:多任务训练——专用分支 + 包含多个任务损失的总损失(任务损失*对应权重)

6) ROI Pooling:---候选框特征投影&统一尺寸

        ROI Pooling(感兴趣区域池化)这一步骤是在RPN生成候选框之后检测网络之前进行的,它的目的是将RPN生成的不同大小的提议区域转换为固定大小的特征图,以便后续的分类和回归操作可以说ROI Pooling是Faster R-CNN中的一个重要步骤,是连接RPN和后续检测网络的桥梁。

        在目标检测中,feature map和anchor的对齐主要通过以下方法实现:ROI Pooling、ROI Align、和ROI Warp。

  1. ROI Pooling通过分区和最大池化来调整尺寸,可能会引入定位误差。
  2. ROI Align使用双线性插值来精确采样,改善了对齐精度。
  3. ROI Warp是一种较少使用的方法,通过应用更复杂的变换来适应特征图和锚点之间的对齐。

总的来说,ROI Align通常被认为是这三种方法中最好的。(mask rcnn 中提出)

3.Faster R-CNN(2015年末)

                            

1)具体内容

  1. 特征提取:输入整张图片到特征提取器(VGG16的前30层)中,得到feature maps;
  2. 产生候选框:将feature maps送入CNN-RPN生成候选框proposals;
  3. ROI pooling:特征投影,并将每一个特征矩阵经过ROI Pooling缩放到7*7大小;
  4. 类别与边框预测:展平处理后通过全连接层获得预测的分类以及候选区域位置偏移信息。

2)框架——全CNN:RPN+Fast RCNN

  1. Feature extraction(CNN-VGG16的前30层
  2. Region proposal(CNN-RPN
  3. RoI pooling
  4. Classification (CNN)
  5. Bounding Box Regression(CNN)

                 

3)RPN(Region Proposal Network)——CNN

        出现在Faster RCNN 主干网提取特征之后,检测网络之前。

                                            

        在Faster R-CNN框架中,RPN(区域提议网络)用于生成候选的对象区域,这些区域在使用roi投影和统一尺寸得到区域特征region feature后被送入检测网络进行分类和边界框回归。

目的为下游检测任务(head task:bbox regression&classification)生成高质量的候选区域proposals

其中proposals是anchors(x,y,w,l),not features。

RPN结构图:input为整张图片提取特征后的feature maps

                      

步骤:
  1. 在特征图上的每个位置(像素值)应用一组预定义的锚框,这些锚框具有不同的尺寸和宽高比;
  2. 使用一个小型的卷积网络,滑动地扫描卷积特征图上每个位置,对每组每个锚框预测物体存在概率p(背景/前景得分)位置调整(box偏移);--CNN
  3. 应用非极大值抑制(NMS)选择最佳候选框。(去掉重复框)

​                                 

流程:① Input -> CNN -> feature maps

           ② RPN -> proposals

           ③ proposals + feature maps -> RoI pooling -> RoI features -> detect head -> class&bbox 

总结:RPN用于提取好的候选框,进而定位有效特征,再经过RoI pooling进行特征规范。

4.Mask rcnn(2017)

Mask R-CNN的创新之处主要有两点:首先,引入了一个新的、与现有结构并行的分支,用于对每个感兴趣区域(ROI)生成高质量的分割掩码,实现精确的实例分割;其次,采用了ROI Align方法替代了先前的ROI Pooling,准确地从每个ROI中提取特征,解决了ROI Pooling中的量化误差问题,提高了检测的精度。这些创新使Mask R-CNN在目标检测和实例分割方面取得了显著的性能提升。

5.Sparse rcnn(2021)

        Sparse R-CNN与Faster R-CNN是两种目标检测模型,主要区别在于它们处理候选区域的方式。Sparse R-CNN使用稀疏机制,直接学习一组固定数量的候选区域(提议),并通过动态实例交互和权重生成对这些提议进行迭代精化,旨在减少计算量并提高效率。而Faster R-CNN通过区域提议网络(RPN)动态生成候选区域,并使用池化层从这些区域提取特征,然后再进行分类和边界框回归。这导致Sparse R-CNN在设计上更为简洁,且可能在某些情况下提供更高的效率和性能。

参考:RCNN 系列详解 - 知乎 (zhihu.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

章六、集合(1)—— 概念、API、List 接口及实现类、集合迭代

零、 关闭IDEA调试时自动隐藏空元素 一、 集合的概念 存储一个班学员信息,假定一个班容纳20名学员 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 数组有什么缺…

9. 内核、文件系统加载工具

内核、文件系统加载工具 内核、文件系统加载工具是嵌入式开发必备的工具 1. 烧写BootLoader 1.1 通过超级终端方式 烧写 Bootloader 可以使用超级终端的“传送” |“发送文件”命令进入发送文件对话框,使用 Xmodem 协议和 Kermit 协议发送 Bootloader 的各个文件…

《计算机网络》考研:2024/3/9 2.1.7-数据交换方式;2.2-物理层传输介质;2.3-物理层设备

2024/3/9 2.1.7、2.2、2.3 2.1.7 数据交换方式 电路交换存储转发方式 报文交换分组交换: 数据报方式虚电路方式 电路交换 报文交换 分组交换 2.2 物理层传输介质 物理层的主要任务 物理层设备 中继器: 集线器(多口中继器)…

如何获取用户请求的真实ip,并返回访问者的ip地理位置?node,vue

一、获取真实IP 方式1、前端调用免费公共接口获取 前端获取访问者的真实的外网ip,可以通过调用接口https://api.ipify.org/来获取。你也可以直接在网页上访问它来看自己的外网ip。 ipify介绍: ipify是一个免费的公共 API,用于获取设备的公共 IP 地址。…

Claude3横空出世:颠覆GPT-4,Anthropic与亚马逊云科技共启AI新时代

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

exceljs解析和生成excel文件

安装 npm install exceljs解析excel 通过 Workbook 的 readFile 方法可以拿到workbook对象, workbook对象包含的概念有 worksheet(工作表) --> row(行) --> cell(单元格).于是可以通过依次遍历 worksheet, row, cell来拿到单元格的数据直接通过 worksheet.getSheetValue…

从零学习Linux操作系统 第三十五部分 Ansible中的角色

一、理解roles在企业中的定位及写法 #ansible 角色简介# Ansible roles 是为了层次化,结构化的组织Playbookroles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们roles一般用于基于主机构建服务的场景中&…

Springboot 集成kafka 消费者实现ssl方式连接监听消息实现消费

证书准备:springboot集成kafka 消费者实现 如何配置是ssl方式连接的时候需要进行证书的转换。原始的证书是pem, 或者csr方式 和key方式的时候需要转换,因为kafka里面是jks 需要通过openssl进行转换。 证书处理: KeyStore 用于存储客户端的证…

Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 1 基础知识回顾 1.1 线程的创建和启动 1.2 线程池的使用 2.运行环境说…

k8s架构浅析

Node 节点(物理主机或虚拟机),它们共同组成一个分布式集群,并且这些节点中会有一个 Master 节点,由它来统一管理 Node 节点。 Pod ,在 K8S 中,Pod 是最基本的操作单元,它与 docker …

Linux之selinux详解

华子目录 概念作用selinux与传统的权限区别selinux工作原理名词解释主体(subject)目标(object)策略(policy)(多个规则的集合)安全上下文(security context) 文…

三栏布局的实现方法

1. 什么是三栏布局 常见的一种页面布局方式,将页面分为左栏、中栏和右栏左右两侧的盒子宽度固定,中间的盒子会随屏幕自适应一般中间放主体内容,左右两边放辅助内容 2. 如何实现三栏布局 2.1 弹性布局 将最外层盒子设为弹性布局&#xff0…

练习题-14

问题:已知函数 f : R → R f: \mathbb{R} \to \mathbb{R} f:R→R满足 f ( x y ) − f ( x − y ) f ( x ) f ( y ) , ∀ x , y ∈ R . f(xy)-f(x-y)f(x)f(y), \forall x, y \in \mathbb{R}. f(xy)−f(x−y)f(x)f(y),∀x,y∈R. 求 f f f. 提示:如果 f …

基于PBS向超算服务器队列提交任务的脚本模板与常用命令

本文介绍在Linux服务器中,通过PBS(Portable Batch System)作业管理系统脚本的方式,提交任务到服务器队列,并执行任务的方法。 最近,需要在学校公用的超算中执行代码任务;而和多数超算设备一样&a…

基于美洲狮优化算法(Puma Optimizar Algorithm ,POA)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行…

第十五届蓝桥杯模拟考试III_物联网设计与开发

编程题 一、基本要求 使用大赛组委会提供的四梯/国信长天物联网省赛套装(基于STM32L071KBU微控制器设计),完成本试题的程序设计与调试。程序编写、调试完成后,选手需提交两个LoRa终端对应的hex文件,LoRa终端A对应的文…

【Week Y1】调用官方权重进行检测

YOLO白皮书之调用官方权重进行检测 一、下载yolo-v5s源码,并配置编译环境二、输入本地图片查看检测结果三、输入本地视频查看检测结果 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项…

C++学习随笔(2)——引用与函数

经过上章对C有了一个初步认识后,本章我们来学习一下C的一些与C语言不同的新玩样引用,还有C的函数规则。 目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 (1) 做参数 (2) 做返回值…

基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

计算机设计大赛 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 🔥 优质竞赛项目系列,今天要分享的是 行人车辆目标检测计数系统 …