计算机视觉目标检测-2

文章目录

  • 摘要
  • abstract
  • 1.Fast R-CNN
    • 1.1 RoI pooling
    • 1.2 End-to -End model
    • 1.3 多任务损失-Multi-task loss
    • 1.4 R-CNN、SPPNet、Fast R-CNN效果比对
  • 2.Faster R-CNN
    • 2.1 RPN原理
    • 2.2 效果对比
    • 2.3 Faster R-CNN总结
  • 3.总结
  • 4.参考文献

摘要

本周学习了Fast R-CNN和Faster R-CNN算法的核心思想、技术细节和创新点,并对其性能进行比较。Fast R-CNN通过引入ROI Pooling层解决了R-CNN中重复计算特征的问题,同时采用多任务损失函数将分类和边框回归整合为一个端到端的模型。相比于Fast R-CNN,Faster R-CNN进一步提出了区域生成网络(RPN),取代了耗时的Selective Search,显著提升了候选区域生成的效率。并讨论了两种算法在实际应用中的优势与不足,尤其是Faster R-CNN在端到端整合和实时检测方面的潜力。同时,对训练过程和改进方向,如YOLO系列算法的快速检测,进行了简要展望。

abstract

This week, we studied the core ideas, technical details and innovations of Fast R-CNN and Faster R-CNN algorithms, and compared their performance. Fast R-CNN solves the problem of repeated calculation features in R-CNN by introducing ROI Pooling layer, and integrates classification and border regression into an end-to-end model by using multi-task loss function. Compared with Fast R-CNN, Faster R-CNN further proposes region generation network (RPN), which replaces time-consuming Selective Search and significantly improves the efficiency of candidate region generation. The advantages and disadvantages of the two algorithms in practical applications are discussed, especially the potential of Faster R-CNN in end-to-end integration and real-time detection. At the same time, the training process and improvement direction, such as the fast detection of YOLO series algorithms, are briefly prospected.

1.Fast R-CNN

相对于上一周的R-CNN改进的地方:

  1. 提出了一个ROI pooling
  2. 分类使用softmax计算:K个类别加上”背景“类
  3. 与SPPNet一样的地方:
    • 首相将整个图片输入到一个基础卷积网络,得到整张图的feature map
    • 将选择性搜索算法的结果region proposal(RoI)映射到feaure map 中
  4. ROI pooling layer提取一个固定长度的特征向量,每个特征会输入到一系列全连接层,得到一个RoI特征向量

R-CNN与Fast R-CNN的区别有哪些呢?
先说R-CNN的缺点:即使使用了Selective Search等预处理步骤来提取潜在的边界框bounding box作为输入,但是R-CNN仍会有严重的速度瓶颈,原因也很明显,就是计算机对所有region进行特征提取时会有重复计算,Fast-RCNN正是为了解决这个问题诞生的。
在这里插入图片描述
与R-CNN框架图对比,可以发现主要有两处不同:一是最后一个卷积层后加了一个ROI pooling layer,二是损失函数使用了多任务损失函数(multi-task loss),将边框回归Bounding Box Regression直接加入到CNN网络中训练。

  • 这个网络层可以把不同大小的输入映射到一个固定尺度的特征向量,而conv、pooling、relu等操作都不需要固定size的输入,因此,在原始图片上执行这些操作后,虽然输入图片size不同导致得到的feature map尺寸也不同,不能直接接到一个全连接层进行分类,但是可以加入这个神奇的ROI Pooling层,对每个region都提取一个固定维度的特征表示,再通过正常的softmax进行类型识别。
  • R-CNN训练过程分为了三个阶段,而Fast R-CNN直接使用softmax替代SVM分类,同时利用多任务损失函数边框回归也加入到了网络中,这样整个的训练过程是端到端的(除去region proposal提取阶段)。

也就是说,之前R-CNN的处理流程是先提取proposal,然后CNN提取特征,之后使用SVM分类器,最后再做box regression,在Fast R_CNN中,作者将box regression 放进神经网络内部,与region 分类和并成一个muti-task模型,实际验证也证明:这两个任务能够共享卷积特征,并互相促进。

1.1 RoI pooling

RoI pooling本质上是一个简单的SPP,目的是为了减少计算时间并得出固定长度的向量。使用一种4*4=16空间盒数。

  • RoI pooling使用最大池化将任何有效的RoI区域内的特征转换成具有H*W的固定空间范围的小feature map,其中H和W是超参数,它们独立于任何特定的RoI.

为什么要设置单个尺度(SPP金字塔–多尺度以及single scale)

  • single scale ,直接将image定为某种scale,直接输入网络中进行训练(Fast R-CNN)
  • muti scale:使用金字塔模型

== 后者比前者更加准确些,虽然没有很明显,但是第一种时间要省很多,在实际中采用第一个策略,因此 Fast R-CNN要比SPPNet快很多的原因。==

1.2 End-to -End model

从输入端到输出端直接用一个神经网络连接,整体优化目标函数。
思考:为什么后面的整个网络能进行统一训练?
特征提取CNN和SVM分类器的训练在时间上是有先后顺序的,两者的训练方式独立,在SVM的训练Loss无法更新SPP层之前的卷积层参数,去掉了SVM分类这一过程,所有特征都存储在内存中,不占用硬盘空间,形成了End-to-End模型。
在这里插入图片描述
Fast-RCNN很重要的一个贡献是成功的让人们看到了Region Proposal + CNN这一框架实时检测的希望,原来多类检测可以在保证准确率的同时提升处理速度,也为后来的Faster R-CNN做下了铺垫。

1.3 多任务损失-Multi-task loss

两个loss

  • 对于分类loss,是一个N+1个softmax输出,其中N是类别的个数,1为背景,使用交叉熵损失
  • 对于回归loss,是一个4*N个输出的regressor,对于每个类别都会训练一个单独的regressor,使用平均绝对误差损失-L1损失

fine-tuning训练:

  • 再微调时,调整CNN+RoI pooling+softmax
  • 调整bbox regressor回归当中的参数

1.4 R-CNN、SPPNet、Fast R-CNN效果比对

在这里插入图片描述
缺点:使用Selective Search提取Region Proposals,没有实现真正意义上的端到端,操作也十分耗时。

2.Faster R-CNN

在Faster R-CNN中加入一个提取边缘的神经网络,相当于找候选框的工作交给了神经网络来操作。这样,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)被统一放到一个深度网络框架之内。
Faster R-CNN可以简单的看成区域生成网络+Fast R-CNN模型,用区域生成网络(RPN)来代替Fast R-CNN中的选择性搜索方法。
在这里插入图片描述
Faster R-CNN步骤:

  1. 向CNN网络中输入图片,Faster RCNN使用一组基础的conv+relu+pooling层提取feature map.该feature map被共享用于后续RPN层和全连接层。
  2. Region Proposal Networks:RPN网络用于生成region proposals,Faster R-CNN中称为anchors。
    • 通过softmax 判断anchors属于foreground 或者background
    • 再利用bonding box regression 修正anchors获得精确的proposals,输出其Top-N(默认为300)的区域给RoI pooling。
    • 生成anchors ->softmax分类器提取fg anchors-> bbox reg回归fg anchors ->Proposal Layer生成proposals
    • 后续就是Fast R-CNN操作
      在这里插入图片描述

2.1 RPN原理

RPN网络主要作用是得出比较准确的候选区域。整个过程分为两步:
首先,使用nn(默认为33=9)的大小窗口去扫描特征图,每个滑窗位置映射到一个低维的向量(默认为256维),并为每个滑窗位置考虑k种(在论文设计种为9)可能的参考窗口(论文中称为anchors)
在这里插入图片描述
每个特征图中像素对应的9个窗口大小?
三种尺度{128,256,512},三种长宽比{1:1,1:2,2:1}得到3*3=9种不同大小的候选框。输出N个256维的窗口,做分类判断是否是背景,N个候选框与自己对应目标值GT做回归,修正位置。之后将更好的候选区域提供给RoI pooling使用。

2.2 效果对比

在这里插入图片描述

2.3 Faster R-CNN总结

优点:

  • 提出了RPN网络
  • 端到端网络模型

缺点:
训练参数过大

可以改进的需求:
速度提升,如YOLO系列算法,删去RPN,直接对proposal进行分类回归,极大的提升了网络的速度。
代码结果:
在这里插入图片描述
运行结果如下图:
在这里插入图片描述
在这里插入图片描述

3.总结

Fast R-CNN通过引入ROI Pooling和多任务损失函数,优化了目标检测流程,提高了计算效率和检测精度。Faster R-CNN进一步结合区域生成网络(RPN),在深度学习框架内实现了候选区域生成、特征提取和分类的统一训练。这种端到端设计不仅提高了检测速度,也在准确率上达到了新的高度。然而,Faster R-CNN模型的训练参数较多,对硬件资源要求较高,适应性仍有待提升。

4.参考文献

[1] R. Girshick, “Fast R-CNN,” 2015 IEEE International Conference on Computer Vision (ICCV), Santiago, Chile, 2015, pp. 1440-1448.DOI: 10.1109/ICCV.2015.169
[2] S. Ren, K. He, R. Girshick and J. Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 6, pp. 1137-1149, June 2017.DOI: 10.1109/TPAMI.2016.2577031

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

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

相关文章

JavaScript网页设计案例:动态交互式任务列表

在现代网页开发中,JavaScript被广泛应用于实现动态交互效果。看完这一篇你就可以设计一个动态任务列表,全面展示HTML、CSS和JavaScript在前端开发中的实际应用。通过本案例,你将深入了解事件监听、DOM操作以及用户交互设计的实现过程。 案例需…

【MySQL】索引 面试题

文章目录 适合创建索引的情况创建索引的注意事项MySQL中不适合创建索引的情况索引失效的常见情况 索引定义与作用 索引是帮助MySQL高效获取数据的有序数据结构,通过维护特定查找算法的数据结构(如B树),以某种方式引用数据&#xf…

使用Excel制作通达信自定义“序列数据“

序列数据的视频教程演示 Excel制作通达信自定义序列数据 1.序列数据的制作方法:删掉没有用的数据(行与列)和股代码格式处理,是和外部数据的制作方法是相同,自己上面看历史博文。只需要判断一下,股代码跟随的…

【ELK】ES单节点升级为集群模式--太细了!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言准备工作1. 查看现状【单节点】2. 原节点改集群模式3. 改es配置文件,增加集群相关配置项4. *改docker映射的端口* 启动新节点5. docker-compose起一…

关于区块链的安全和隐私

背景 区块链技术在近年来发展迅速,被认为是安全计算的突破,但其安全和隐私问题在不同应用中的部署仍处于争论焦点。 目的 对区块链的安全和隐私进行全面综述,帮助读者深入了解区块链的相关概念、属性、技术和系统。 结构 首先介绍区块链…

webauthn介绍及应用

1、webauthn介绍 官网:https://webauthn.io/ 1.1、什么是webauthn? webauthn即Web Authentication,是一个符合W3C标准的Web认证规范。它通过公私钥加密技术,实现无密码认证,用户仅需通过pin码、指纹、面部识别、usb …

ElasticSearch如何做性能优化?

大家好,我是锋哥。今天分享关于【ElasticSearch如何做性能优化?】面试题。希望对大家有帮助; ElasticSearch如何做性能优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Elasticsearch 是一个开源的分布式搜索引擎,广泛用于…

瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评

RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台,三核Cortex-A7单核Cortex-M0多核异构设计,CPU频率达1.5Ghz, M0 MCU为200Mhz。 而RK3506芯片平台下的工业级芯片型号RK3506J,具备-40-85℃的工业宽温性能、发热量小&#…

Docker 安装全攻略:从入门到上手

Docker 安装全攻略:从入门到上手 在当今的软件开发与部署领域,Docker 已经成为了一项不可或缺的关键技术。它能够将应用程序及其依赖项打包成轻量级、可移植的容器,极大地简化了开发、测试和部署的流程。本文将详细讲解在不同操作系统下 Doc…

【 Sonarqube】可视化Java项目单元测试覆盖率统计框架搭建

一、项目背景: 一个小公司的朋友反应他们那边Java项目单元测试有,但还没有可视化统计覆盖率数据,没法统计就不能直观的看到单测的覆盖率,Java的覆盖率统计框架还是比较成熟,部署起来也不是很难,下面我们逐…

PTA数据结构编程题7-1最大子列和问题

我参考的B站up的思路 题目 题目链接 给定K个整数组成的序列{ N 1 ​ , N 2 ​ , …, N K ​ },“连续子列”被定义为{ N i ​ , N i1 ​ , …, N j ​ },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 1…

jangow-01-1.0.1靶机

靶机 ip:192.168.152.155 把靶机的网络模式调成和攻击机kali一样的网络模式,我的kali是NAT模式, 在系统启动时(长按shift键)直到显示以下界面 ,我们选第二个,按回车。 继续选择第二个,这次按 e 进入编辑页面 接下来,…

在Windows上读写Linux磁盘镜像的一种方法

背景 嵌入式开发中,经常会把系统的Linux磁盘镜像保存到Windows上,以便上传到网盘备份或发送给工厂,但是如果想读取/修改镜像中的某个文件,一般有2种方案: 直接访问 就是用虚拟磁盘软件将镜像文件挂载成磁盘&#xf…

apisix的hmac-auth认证

目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证,介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档,发现生…

大数据导论汇总

第一章 作业 2、请阐述把数据变得可用需要经过哪几个步骤. 答:一共要经历三个步骤:数据清洗、数据管理、数据分析。 第一步:数据清洗。使用数据的第一步通常是数据清洗,也就是把数据变成一种可用的状态。这个过程需要借助工具去…

React 组件的通信方式

在 React 应用开发中,组件之间的通信是构建复杂用户界面和交互逻辑的关键。正确地实现组件通信能够让我们的应用更加灵活和易于维护。以下是几种常见的 React组件通信方式。 一、父子组件通信 1. 通过 props 传递数据(父组件向子组件传递数据&#xff0…

【JDBC】转账案例

回顾 使用工具类查询表 需求: 查询student表的所有数据,把数据封装到一个集合中 数据准备 #创建表 CREATE TABLE student( sid INT, name VARCHAR(100), age INT, sex VARCHAR(100) ) #插入数据 INSERT INTO student VALUES(1,张三,18,女),(2…

dede-cms关于shell漏洞

一.文件式管理器 1.新建文件 新建一个php文件,内容写个php脚本语言 访问,可以运行 2.文件上传 上传一个php文件,内容同样写一个php代码 访问,运行成功 二.模块-广告管理 来到模块-广告管理——>增加一个新广告 在这里试一下…

k-Means聚类算法 HNUST【数据分析技术】(2025)

1.理论知识 K-means算法,又称为k均值算法。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。K-Means算法接受参数K;然后将…

Opencv之对图片的处理和运算

Opencv实现对图片的处理和修改 目录 Opencv实现对图片的处理和修改灰度图读取灰度图转换灰度图 RBG图单通道图方法一方法二 单通道图显色合并单通道图 图片截取图片打码图片组合缩放格式1格式2 图像运算图像ma[m:n,x:y]b[m1:n1,x1:y1] add加权运算 灰度图 读取灰度图 imread(‘…