目标检测学习

目录

1、目标定位

2、特征点检测

3、目标检测

4、滑动窗口的卷积实现

5、Bounding Box 预测(Bounding box predictions)

6、交并化

7、非极大值抑制

8、Anchor Boxes

9、YOLO算法 


1、目标定位

2、特征点检测

  • 如何检测特征点(以人的部位为例)

(1)、准备一个卷积网络和一些特征集,将人脸图片输入卷积网络,输出 1 0, 1 表示有人

脸,0 表示没有人脸。然后输出(𝑙1𝑥𝑙1𝑦……直到(𝑙64𝑥𝑙64𝑦

(2)、这里有129 个输出单元,其中1表示图片中有人脸,因为有64个特征,64×2=128

所以最终输出 128+1=129 个单元,由此根据这128个人脸特征实现对图片的人脸检测和定位,或
者表情识别这些更加复杂的操作

3、目标检测

  • 滑动窗口目标检测算法

(1)、选定一个特定大小的窗口,比如上面图片中的窗口,将这个红色小方块输入卷积神经网

络,卷积网络开始进行预测,即判断红色方框内有没有汽车

(2)、迭代上面的图片中的每一个窗口中的图片,进行重复的操作。红色小方块中的图片输入

卷积神经网络中进行预测,若有汽车则输出1,否则为0

  • 滑动窗口目标检测算法的缺点

(1)、滑动窗口目标检测算法也有很明显的缺点,就是计算成本,因为你在图片中剪切出太多

小方块,卷积网络要一个个地处理
(2)、选用的步幅很大,显然会减少输入卷积网络的窗口个数,但是粗糙间隔尺寸可能会影响性
(3)、如果采用小粒度或小步幅,传递给卷积网络的小窗口会特别多,这意味着超高的计算成本

4、滑动窗口的卷积实现

  • 神经网络的全连接层转化成卷积层

(1)、首先要把神经网络的全连接层转化成卷积层

(2)、前几层和之前的一样,而对于下一层,也就是这个全连接层,我们可以用 5×5 的过滤器来

实 现,数量是 400 个(编号 1 所示),输入图像大小为 5×5×16,用 5×5 的过滤器对它进行卷 积

操作,过滤器实际上是 5×5×16,因为在卷积过程中,过滤器会遍历这 16 个通道,所以这 两处的

通道数量必须保持一致,输出结果为 1×1。假设应用 400 个这样的 5×5×16 过滤器, 输出维度就

是 1×1×400,我们不再把它看作一个含有 400 个节点的集合,而是一个 1×1×400 的输出层。从数

学角度看,它和全连接层是一样的,因为这 400 个节点中每个节点都有一个 5×5×16 维度的过滤

器,所以每个值都是上一层这些 5×5×16 激活值经过某个任意线性函数的输出结果

(3)、用的是 1×1 卷积,假设有 400 1×1 的过滤器,在这 400 个过滤器的作用下,下一层的

维度是 1×1×400,它其实就是上个网络中 的这一全连接层。最后经由 1×1 过滤器的处理,得到一

softmax 激活值,通过卷积网络, 最终得到这个 1×1×4 的输出层

  • 通过卷积实现滑动窗口对象检测算法
(1)、假设输入给卷积网络的图片大小是 14×14×3,测试集图片是 16×16×3,现在给这个输入
图片加上黄色条块,在最初的滑动窗口算法中,你会把这片蓝色区域输入卷积网络(红色笔
标记)生成 0 1 分类。接着滑动窗口,步幅为 2 个像素,向右滑动 2 个像素,将这个绿框
区域输入给卷积网络,运行整个卷积网络,得到另外一个标签 0 1 。继续将这个橘色区域
输入给卷积网络,卷积后得到另一个标签,最后对右下方的紫色区域进行最后一次卷积操作。
在这个 16×16×3 的小图像上滑动窗口,卷积网络运行了 4 次,于是输出了了 4 个标签

 (2)、假设剪切出这块区域(编号 1), 传递给卷积网络,第一层的激活值就是这块区域(编号

2),最大池化后的下一层的激活值是这块区域(编号 3),这块区域对应着后面几层输出的右上

角方块(编号 45,6)。所以该卷积操作的原理不需要把输入图像分割成四个子集,分别执行前

向传播, 而是把它们作为一张图片输入给卷积网络进行计算,其中的公共区域可以共享很多计

算(通过共享计算一次性得出迭代四个窗口的结果),就像这里看到的这个 4 14×14 的方块一样

 (3)、滑动窗口的实现过程,在图片上剪切出一块区域,假设它的大小是 14×14,把它输入到卷

积网络。继续输入下一块区域,大小同样是 14×14,重复操作,直到某个区域识别到汽车

5、Bounding Box 预测(Bounding box predictions

(1)、解决基于卷积实现的滑动窗口对象检测算法中精准边界框的问题

(2)、采用YOLO 算法解决上述算法存在的问题

6、交并化

 (1)、评价定位算法是否准确

7、非极大值抑制

(1)、算法可能对同一个对象做出多次 检测,所以算法不是对某个对象检测出一次,而是检测出

多次。非极大值抑制这个方法可以确保算法对每个对象只检测一次

 (2)、(右边车辆)中是 0.9,然后就说这是最可靠的检测,所以就用高亮标记,就说这里找到

了一辆车。这么做之后,非极大值抑制就会逐一审视剩下的矩形,所有和这个最大的边框有很高交

并比,高度重叠的其他边界框,那么这些输出就会被抑制。所以这两个矩形𝑝𝑐分别是 0.6 和 0.7,

这两个矩形和淡蓝色矩形重叠程度很高,所以会被抑制,变暗,表示它们被抑制了

(3)、逐一审视剩下的矩形,找出概率最高,𝑝𝑐最高的一个,在这种情况下是 0.8, 认为这里检

测出一辆车(左边车辆),然后非极大值抑制算法就会去掉其他 loU 值很高的矩形。所以现在每个

矩形都会被高亮显示或者变暗,如果直接抛弃变暗的矩形,那就剩下高亮显示的那些,这就是最

后得到的两个预测结果

(4)、非最大值意味着只输出概率最大的分类结果,但抑制很接近,但不是最大的其他预测结

果,所以这方法叫做非极大值抑制

8、Anchor Boxes

(1)、一个格子检测多个对象

9、YOLO算法 

 

 

 

(1)、如果使用两个 anchor box,那么对于 9 个格子中任何一个都会有两个预测的边界框其

中一个的概率𝑝𝑐很低。但 9 个格子中,每个都有两个预测的边界框,比如得到的边界框是是这样

的,注意有一些边界框可以超出所在格子的高度和宽度(编号 1 所示)。接下来抛弃概率很低的

预测,去掉这些神经网络,这里很可能什么都没有,所以需要抛弃这些(编号 2 所示)

 (2)如果有三个对象检测类别,检测行人,汽车和摩托车,对于每个类别单独运行非极大值抑

制,处理预测结果所属类别的边界框,用非极大值抑制来处理行人类别,用非极大值抑制处理车子

类别,然后对摩托车类别进行非极大值抑制,运行三次来得到最终的预测结果。所以算法的输出最

好能够检测出图像里所有的车子,还有所有的行人(编号 3 所示)

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

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

相关文章

HTML5新特性总结

新增语义化标签 新增了很多语义化标签,如header、footer、nav、article、section(页面中的某段文字,或文章中的某段文字)、aside、main 其中article标签里可以包含多个section; section强调的是分段或分块,若想将一块内容分成几…

【Vscode】解决 An SSH installation couldn‘t be found

【Vscode】解决 An SSH installation couldn‘t be found 背景描述:在vscode中使用ssh进行连接到时候,已经安装了ssh romote的plugin插件,但是在输入了ssh连接命令之后,仍然出现报错:an ssh installation could not be…

OpenCV 入门教程:中值滤波和双边滤波

OpenCV 入门教程:中值滤波和双边滤波 导语一、中值滤波二、双边滤波三、示例应用3.1 图像去噪3.2 图像平滑 总结 导语 在图像处理和计算机视觉领域,中值滤波和双边滤波是两种常见的滤波方法,用于平滑图像、去除噪声等。 OpenCV 提供了中值滤…

sap abap,forms,smartforms 导出pdf

4种方法: 1.安装pdf程序,Foxit Reader,先敲回车 自动带出,如下图: 直接打印就会弹出保存pdf文档路径,点保存。这种方式是最简单的,可 forms 和 smartforms 。 2. forms 和 smartforms 打印到spool 中&…

Maven工程开发中的继承与聚合

1. 聚合工程概念 设置一个空的maven工程,工程里面只有pom文件,另外将这个工程的打包方式设置为pom。 在聚合工程里面添加聚合工程里面管理的模块 2.聚合总结 3.继承 例如下面02工程继承上面的01工程,在02工程的pom文件中要配置要继承的父工…

保护你的JavaScript代码:深入了解JS混淆加密及其特点

当涉及到JavaScript代码的保护和隐藏时,混淆加密是一种常见的技术。它通过对代码进行转换和重组,使其难以理解和逆向工程。以下是JS混淆加密的几个特点以及它们各自的优缺点: 变量和函数名压缩: 特点:将代码中的变量和…

Hystrix熔断器

雪崩 当山坡积雪内部的内聚力抗拒不了它所受到的重力拉引时,积雪便向下滑动,引起⼤量雪体崩塌,人们把这种自然现象称作雪崩 微服务中,一个请求可能需要多个微服务接口才能实现,会形成复杂的调用链路 …

Holoens证书过期

1. 删除Assets\WSATestCertificate.pfx证书文件。 2. 在Player Settings的Publishing Settings下找到Certificate,选择一个有效的证书。 3. 如果没有其他有效证书,需要生成一个新的测试证书: - Windows: MakeCert.exe -r -pe -n "CNTemporary Certificate" -ss MY …

Linux--操作系统进程的状态

【Linux】进程概念 —— 进程状态_linux d状态进程_Hello_World_213的博客-CSDN博客 新建:字面意思,将你的task_struct创建出来并且还未入队列 运行:task_struct结构体在运行队列中排队,就叫做运行态 阻塞: 等待非C…

GPT(Generative Pre-Training)论文解读及实现(一)

1 GPT Framework 1.1 Unsupervised pre-training Given an unsupervised corpus of tokens U {u1, . . . , un}, we use a standard language modeling objective to maximize the following likelihood: 在给定语料上下文环境下,目标时最大化下面的语言模型&…

OpenCV 图像处理算法和技术的应用实践

OpenCV 图像处理算法和技术的应用实践 导语一、图像滤波算法二、图像分割技术三、特征提取与描述算法四、实践示例:图像风格转换总结 导语 图像处理算法和技术在计算机视觉和图像处理领域发挥着重要作用,通过对图像进行分析、增强和转换,可以…

实验二 常用网络命令

文章目录 实验目的实验原理1. 通过 ping 命令检测网络故障2. ipconfig 命令3. arp 命令4. tracert 命令5. netstat 命令 实验内容1. ping命令2. ipconfig命令3. arp命令 实验总结 实验目的 了解常用网络命令及其使用方法。通过网络命令了解网络状态,并利用网络命令…

高速入门知识02:降低串扰和维持信号完整性的布线方法

文章目录 前言一、单端走线布线1.1.带有短截线的菊花链布线1.2.没有短截线的菊花链布线1.3.星型布线1.4.蛇型布线 二、差分走线布线 前言 串扰是并行走线间不需要的信号耦合。微带线和带状线正确的布线和叠层布局能够降低串扰。 双带线布局有两个靠近的信号层,为降…

Hbase drop 表卡住没有响应

在实际工作中遇到过重新创建一个hbase的hive外部表,在 disable table_name; drop table_name 在drop table_name卡住 最后有提示报错。 建议各位查看下表有无lock的情况, 查看和释放hbase lock可以通过如下方式来查看 pid获取: 在 Ma…

Python学习笔记-基于socket基础的http服务端程序

通过HTTP协议可以进行通信可以规范化的进行网络间通信。下面技术第一个http服务器小程序。简单的记录第一个试手程序。 1.http通信的基本流程 整个流程对应四层网络架构:应用层、传输层、网络层、链路层。有的部分已经封装,不需要我们再行处理。 2.服务…

轻松玩转Python正则表达式

引言 正则表达式是一种强大的文本匹配和处理工具,广泛应用于各种编程语言中。在Python中,我们可以使用内置的re模块来处理正则表达式。本文将带您从入门到精通,逐步介绍Python中的正则表达式用法,并提供实例演示。 1. 正则表达式…

JVM理论(二)类加载子系统

类加载流程 类加载流程 类加载器子系统负责从文件系统或者网络中加载class文件,class文件的文件头有特定的文件标识(CAFEBABE是JVM识别class文件是否合法的依据)classLoader只负责文件的加载,而执行引擎决定它是否被执行加载类的信息存放在运行时数据区的方法区中,方法区还包括…

VBA代码如何切换word和excel(3)

【分享成果,随喜正能量】人不能因为一件好事,高兴一整年,却能因为一个创伤,郁郁终生。痛苦给人的刺激,总是远远大于快乐。成年人的烦恼,和谁说都不合适,悲喜自渡,他人难悟。人最强大…

4-软件错误(BUG)

目录 1.什么是bug? 2.如何描述一个bug? ①发现问题的版本 ②问题出现的环境 ③错误重现的步骤 ④预期行为的描述 ⑤错误行为的描述 ⑥其他 ⑦不要把多个bug放到一起 PS:案例1 PS:案例2 3.如何定义bug的级别? ①Blocker&#x…

springboot+mysql财务管理系统

财务管理系统的开发运用java技术、springboot框架,MIS的总体思想,以及Mysql等技术的支持下共同完成了该系统的开发,实现了财务管理的信息化,使员工体验到更优秀的财务管理,管理员管理操作将更加方便,实现目…