计算机视觉——目标检测(R-CNN、Fast R-CNN、Faster R-CNN )

news2024/11/15 22:42:34

前言、相关知识

1.闭集和开集

  • 开集:识别训练集不存在的样本类别。
  • 闭集:识别训练集已知的样本类别。

2.多模态信息融合

文本和图像,文本的语义信息映射成词向量,形成词典,嵌入到n维空间。
图片内容信息提取特征,形成n维向量,嵌入到n维空间。
文本和图像的特征距离要尽量近一点,这样文本信息和图像内容信息特征相似。可以根据一种模态输入获得另一模态类型的输出。

3. 计算机视觉任务

  • 分类问题
  • 语义分割
  • 物体检测
  • 示例分割
    Alt

一、目标检测基础知识

1. 目的:输入彩色RGB图像,输出检测的物体。
2. 过程:分类+定位
3. 最新的目标检测技术:文本 + 图像,制定类别检测
4. 现有方法分类

1. 一步法(SSD、YOLO):仅使用一个卷积神经网络CNN直接预测不同目标和位置
2. 两步法(R-CNN、Fast R-CNN、Faster R-CNN)
step1:先生成候选框(利用Region Proposal Network(RPN))
step2:根据候选框分类+精调

二、目标检测——R-CNN(regional with cnn feature)

![R-CNN论文](https://img-blog.csdnimg.cn/direct/587d375e082d4b0aa1605822a0031212.png #pic_center=50%x50%)
R-CNN算法步骤
R-CNN过程

  • 用selective search划分出候选区域(1k-2k),区域之间可能会有重合。
    候选区域生成
  • 对每一个候选区域,使用深度网络提取特征
    提取特征
  • 每一个特征送入SVM分类器,判断是否属于该类别(ps:非极大值抑制剔除就是将重合区域最大的区域删除)
    分类过程
    ps:非最大值抑制剔除IOU
    IOU
  • 使用回归器(最小二乘)精细调整候选框位置
    修正框
  • R-CNN框架:划分区域——ss算法,特征提取——CNN网络,分类器——SVM支持向量机、回归期——最小二乘法。
    在这里插入图片描述)
  • R-CNN缺点:速度慢、空间占用多

三、目标检测—— Fast R-CNN( fast regional with cnn feature)

Fast R-CNN是R-CNN作者在原有基础上的改善,对于推理速度,准确率,训练时间都远远超于R-CNN。
Alt
Fast R-CNN算法步骤

  • 一张图像生成多个候选区域(1K~2K)使用selective search 方法。
  • 通过深度卷积神经网络,将图像输入之后得到相应的图像,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。
    ps:此处和R-CNN的区别,R-CNN将候选框输入到卷积神经网络得到特征,Fast R-CNN直接将整幅图像给卷积神经网络,在根据特征网络进行计算特征,避免了计算重复的区域。
  • 将特征矩阵根据ROI pooling 缩放到7*7大小的特征图,然后通过一系列全连接层得到结果。
    Alt
    每一个区域的有很多像素,对于像素上的特征数据进行最大池化或者平均池化就会得到比较规整的图像。
  • Fast R- Cnn分类器介绍
    假如有n个类别,如果没有满足这n个类别,那么他就是背景,所以一共有n+1个类别的概率,我们根据每个类别的概率,概率最大的类别就是最终预测的类别。
    Alt
  • Fast R- Cnn回归器介绍
    Fast R- Cnn分类器是根据缩放来实现的。
    Alt%)
  • Fast R- Cnn损失函数介绍
    Fast R- Cnn论文中提出了一种新的损失函数SmoothL1Loss损失函数,改善了欧氏距离L1 loss和L2 loss损失函数。主要改善的地方在于其他两个损失函数对于离群点的梯度变化过于敏感或者是不够精细,SmoothL1Loss损失函数能够:
  • 当预测值与真实值误差过大时,梯度值不至于过大;
  • 当预测值与真实值误差很小时,梯度值足够小。
    想详细了解差异可看这篇文章:目标检测三种损失函数

四、目标检测—— Faster R-CNN( faster regional with cnn feature)

Fast R-CNN是R-CNN作者在原有基础上的改善,骨干网络使用VGG16,对于推理速度,准确率,训练时间成倍提高。

Faster R-CNN最好能够自己执行代码运行一下,需要重点掌握。
Faster R-CNN 算法步骤

  • 将图像输入网络得到特征图
  • 使用RPN结构生成候选框,将生成的候选框投影到特征图上得到对应的特征矩阵。
  • 将每一个特征矩阵通过ROI pooling层,缩放到7*7的大小,接着通过特征图展平通过一系列全连接层得到预测结果。
    主要特点是:RPN+Fast R-CNN
    在这里插入图片描述
    RPN Faster R-CNN计算总结
    在这里插入图片描述
  • 先网络获得特征图
  • 在特征图上使用3x3卷积获得目标得分,调整锚点框位置,确定候选框
  • 删除重叠和边缘候选框
  • 将最终获得的候选框投影到特征图上
  • 通过ROI pooling变成7x7的图像
    PS:ROI pooling:感兴趣区域池化(Region of interest pooling)(也称为RoI pooling)是使用卷积神经网络在目标检测任务中广泛使用的操作。例如,在单个图像中检测多个汽车和行人。其目的是对非均匀尺寸的输入执行最大池化以获得固定尺寸的特征图(例如7×7)。
  • 最后进行分类(class)和目标优化(loc:定位损失,能够是的预测框更加接近目标框。)
    在这里插入图片描述
    VGG16输入图像至少是600分辨率,如果不够600分辨率,会进行图像预处理
    (600/16,800/16,512)的特征输入RPN。
    RPN网络

RPN使用3x3卷积的目的:通过3x3的卷积层获得目标得分和边界回归偏移,判断特征映射图中的是不是我们候选框的目标。
根据目标得分判断是不是我们需要的目标,调整我们的锚点框(3x3卷积层反向画在原图片上的框),如果该锚点框里面是目标,那么它就升级为候选框,否则的话就不画。
每个位置(滑动窗口)在原图上都对应33=9anchor。
Alt
在候选框筛选过程中,去掉边缘anchor和IOU重叠,就会删除掉很多现有的候选框,以1000x600x3为例,最终剩下2k候选框。
在这里插入图片描述
参数回归器和分类器用的是卷积,不是全连接层,原因是:1
1的就卷积就相当于全连接层。
最后,还是需要提醒大家看原文和源码~深入理解原理。

参考文献:陈万军(西安理工大学)——《目标检测》课件

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

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

相关文章

五星门店小程序性能优化实践

一、背景介绍 1.1 业务介绍 五星门店小程序主要服务于五星线下门店交易场景,目前已有79个城市267家门店(包括超级体验店、城旗店、京东Mall等)在使用,用户可以通过小程序便捷地查看和购买门店的商品。五星门店小程序已实现基于T…

用Stable Diffusion生成同角色不同pose的人脸

随着技术的不断发展,我们现在可以使用稳定扩散技术(Stable Diffusion)来生成同一角色但不同姿势的人脸图片。本文将介绍这一方法的具体步骤,以及如何通过合理的提示语和模型选择来生成出更加真实和多样化的人脸图像。 博客首发地…

什么是VPS?如何使用VPS?

什么是VPS?VPS有什么用? VPS是Virtual Private Server的缩写,中文则为虚拟专用服务器,VPS是利用虚拟服务器软件在一台物理服务器上创建多个相互隔离的小服务器,是托管在机房物理服务器上的虚拟机。每个VPS服务器都可分…

基于Java+SpringBoot+vue的图书购物商城系统详细设计和实现

基于JavaSpringBootvue的图书购物商城系统详细设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

解决驱动开发中<stdlib.h> no such file 的问题

前言 在进行驱动开发时&#xff0c;需要使用malloc等函数&#xff0c;导入C库<stdlib.h>出现bug。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论…

稳定可靠:PW2163降压芯片,实现5V至3.3V/3V高效转换,3A电流稳定输出

在现代电子设备中&#xff0c;电源管理芯片发挥着至关重要的作用。PW2163作为一款高效稳定的500kHz同步降压DC-DC转换器&#xff0c;凭借其出色的性能和广泛的应用领域&#xff0c;已成为众多电子设备中的电源管理新选择。 一、PW2163的显著特点与优势 PW2163具有内部集成低RD…

MPQ电源方案-MPQ79700与MPQ79500电源管理(续写中...)

MPQ电源方案 1.MPQ79500简介 MPQ79500是一款专为汽车安全应用设计的 6 通道电压监测器&#xff0c;每个通道都可以配置OV/UV检测&#xff0c;集成内置自检 (BIST) 等安全机制&#xff0c;诊断以及写保护来实现ASILD的应用要求。 2.MPQ79700简介 MPQ79700是一款 12 通道功能安全…

VB窗体单元格验证事件

缘由https://bbs.csdn.net/topics/396522344 Public Class VB解答专用窗体Private Sub VB解答专用窗体_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim 数据列表 New DataGridView数据列表.Parent Me数据列表.Columns.Add("序列", "序列&qu…

Linux 部署 Samba 服务

一、Ubuntu 部署 Samba 1、安装 Samba # 更新本地软件包列表 sudo apt update# 安装Samba sudo apt install samba# 查看版本 smbd --version2、创建共享文件夹&#xff0c;并配置 Samba 创建需要共享的文件夹&#xff0c;并赋予权限&#xff1a; sudo mkdir /home/test sud…

普林斯顿算法讲义(三)

原文&#xff1a;普林斯顿大学算法课程 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 4.2 有向图 原文&#xff1a;algs4.cs.princeton.edu/42digraph 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 有向图。 一个有向图&#xff08;或有向图&#xff09;是…

1.1 课程架构介绍:STM32H5信息安全特性概览

1.1 课程架构介绍&#xff1a;STM32H5信息安全特性概览 1. 概述 开发者在打造嵌入式系统时&#xff0c;安全和性能是产品开发设计的考量重点。为实现这一目标&#xff0c;ST推出了STM32H5系列&#xff0c;该系列作为微控制器新标杆面向工业应用市场&#xff0c;将为用户带来更…

服务器数据恢复—raid5热备盘上线同步数据失败的如何恢复数据

服务器数据恢复环境&故障&分析&#xff1a; 一台存储上有一组由多块硬盘组建的raid5阵列&#xff0c;该raid5阵列中的一块硬盘掉线&#xff0c;热备盘自动上线同步数据的过程中&#xff0c;raid阵列中又有一块硬盘掉线&#xff0c;热备盘的数据同步被中断&#xff0c;r…

云仓酒庄2024年新动态客户满意化战略

云仓酒庄2024年客户满意化战略&#xff1a;深化性价比与服务&#xff0c;提升复购率 在竞争激烈的酒业市场中&#xff0c;客户满意度已成为企业持续发展的关键因素。云仓酒庄深知&#xff0c;客户的满意不仅源于产品本身的质量&#xff0c;更在于其所能提供的性价比与优质服务…

2023年代理业绩同比增长12%,国民技术为世强先进颁发优秀代理商奖

近日&#xff0c;在国民技术&#xff08;300077&#xff09;主办的“2024年国民技术营销策略大会”上&#xff0c;世强先进&#xff08;深圳&#xff09;科技股份有限公司&#xff08;下称“世强先进”&#xff09;凭借过硬的创新研发以及产品推新实力&#xff0c;荣膺“2023年…

使用maven打生产环境可执行包

一、程序为什么要打包 程序打包的主要目的是将项目的源代码、依赖库和其他资源打包成一个可执行的文件或者部署包&#xff0c;方便程序的发布和部署。以下是一些打包程序的重要理由&#xff1a; 方便部署和分发&#xff1a;打包后的程序可以作为一个独立的实体&#xff0c;方便…

如何布局马斯克推特上喊的meme币赛道

2024年的牛市正如火如荼的开展&#xff0c;截止当下&#xff0c;比特币已经站上了7.3万美元&#xff0c;远超2021年高点的6.9万美元&#xff0c;比特币的未来是一片大海。 除了比特币的一枝独秀之外&#xff0c;meme板块可以说是市场资金最青睐的。尤其是马斯克在X分享PEPE相关…

windows 免密码ssh登录linux;linux免密码ssh登录其他linux

1、windows 免密码ssh登录linux 参考&#xff1a;https://blog.csdn.net/qq285744011/article/details/118293937 1&#xff09;windows先生成公钥私钥 ssh-keygen -t rsa -C "你的邮箱地址"生成后放在用户命令.ssh文件下 2&#xff09;把公钥复制到linux /root/…

Sibelius打谱软件2024基础版适合新手小白使用

Sibelius 2024是一款在音乐领域广受欢迎的乐谱制作软件&#xff0c;它为专业作曲家、编曲家、音乐教育家以及学生提供了一个全面、高效的创作平台。从乐谱安全的审查模式和激发灵感的循环回放&#xff0c;到更出色的性能和省时的工作流程&#xff0c;Sibelius | Ultimate&#…

U盘打不开怎么办?教你轻松解决数据恢复难题

一、遭遇困境&#xff1a;U盘打不开的焦虑 在日常工作和生活中&#xff0c;U盘扮演着不可或缺的角色&#xff0c;然而&#xff0c;有时我们会遇到U盘打不开的尴尬情况。当你满怀期待地插入U盘&#xff0c;却发现电脑无法识别&#xff0c;或者双击后弹出错误提示&#xff0c;那…

HTML 学习笔记(十)块和内联

每个HTML元素都有一个默认的显示值&#xff0c;显示值又可以再分为block(块)和inline(内联) 一、块元素 通过F12进入浏览器开发者模式查看该元素会发现其所占宽度为整个网页的宽度 1.div标签 通过div标签将一些元素装进"盒子"&#xff0c;从而对盒子中的全部元素…