【目标检测算法】YOLO-V1~V3原理梳理

news/2024/5/19 11:18:18/文章来源:https://blog.csdn.net/weixin_45751396/article/details/126604180

文章目录

  • one-stage 与 tow-stage
  • 评价指标
  • YOLO算法整体思路解读
    • YOLO-V1
    • YOLO-V2
    • YOLO-V3

one-stage 与 tow-stage

在这里插入图片描述

本篇博客主要介绍经典检测方法中的one-stage(单阶段),在这里给自己埋个坑,整理完Yolo再去搞tow-stage。

one-stage:tow-stage
速度非常快适合做实时检测任务效果通常还是不错的
效果通常情况下不会太好速度通常较慢(5FPS)

评价指标

准确率、精确率、召回率、F1值、ROC/AUC整理笔记

回顾准确率、精确率、召回率
1.准确率(Accuracy) ,顾名思义,就是所有的预测正确(正类负类)的占总的比重。

2.精确率(Precision),查准率。即正确预测为正的占全部预测为正的比例。个人理解:真正正确的占所有预测为正的比例。

3.召回率(Recall),查全率。即正确预测为正的占全部实际为正的比例。个人理解:真正正确的占所有实际为正的比例。

我觉得这里利用医生看病更好理解。医院来了一个人,医生判断其是否患病(患病为正类),若其患病被检查有病,即为TP(True Positives),患病被查无病,即为FN(False Negatives),未患病被检查有病,即为FP(False Positives),未患病被查无病,即为TN(True Negatives)。

可以看到在这例子中,首先定义了正类(患病),第一个字母是T则代表分类正确,反之分类错误;然后看P,在T中则是正类,在F中则实际为负类分成了正的。若为N,在T中则为负类,在F中则为正类。(类似负负得正)

精确率 (Precision):你诊断的病人中,有多少是真的病人(准确度是多高)。
召回率 (Recall):该类病人有多少被找出来了(召回了多少)。

4.IOU交并比

在这里插入图片描述
下图为例,综合衡量检测效果;单看精度和recall是不行的。
虽然准确率很高,但是查全率(召回率)很低,即露漏检的有很多。在这里插入图片描述

Precision: TP / (TP + FP) 模型预测的所有目标中,预测正确的比例 (查准率)
Recall: TP / (TP + FN) 所有真实目标中,模型预测正确的目标比例 (查全率)
TP: True Positive, IoU>0.5的检测框数量(同一Ground Truth只计算一次)
FP: False Positive, IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
FN: False Negative, 没有检测到的GT的数量

5.mAP指标:(mean Average Precision) 在这里插入图片描述

目标检测测评指标——mAP

YOLO算法整体思路解读

YOLO-V1

在这里插入图片描述
YOLO相较与Faster R-CNN相比有更高的FPS值,意味着可以更快的处理图片,可以应用于视频中的实时检测。
在这里插入图片描述

在这里插入图片描述
将图片划分为S×S的格子,每个格子生成两个候选框(x,y,w,h),基于与原图片中标注的实际框做IOU,进而做筛选和微调(即回归)。当然,不是每个框都做微调,在此之前,网络会基于置信度来选择实际有物体的格子。

在这里插入图片描述
输入4484483的图片,经过一系列卷积池化提取特征后,输出771024的特征向量,经过2全连接层和reshape成7730的图片。7*7是图片中的格子数,30是每一个格子中占有的数据。

在7730的图片中,在每个格子上生成2个预选框B1(x1,y1,w1,h1,c1)和B2(x2,y2,w2,h2,c2),一共5*2个数据,同时会对目标进行预测分类。一共有20个分类目标。

在这里插入图片描述
在这里插入图片描述
位置损失中,对宽和高加根号限制,即希望网络对小物体更敏感,对大物体减小敏感性。

在不含object的置信度误差中,加入了权重(例如:0.1)来告诉网络,背景的误差相较于物体的误差微不足道。

在这里插入图片描述
针对一个物体上有多个框,我们选择IOU最大的框,把其他框过滤除去。

YOLOV1中存在的问题:

  • 无法处理重叠的物体的识别。
  • 小物体检测不到。
  • 多标签问题无法解决。
    在这里插入图片描述

YOLO-V2

在这里插入图片描述

在这里插入图片描述

批归一化(Batch Normalization)详解

批归一化简称BN,是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散(特征分布较散)”的问题,从而使得训练深层网络模型更加容易和稳定。所以目前BN已经成为几乎所有卷积神经网络的标配技巧了。

在这里插入图片描述

在这里插入图片描述
全连接层缺点:训练参数大而且容易过拟合。
5次降采样,最终输出图片的尺寸是原图片宽和高除以32。并且希望最终的输出图片是一个奇数的尺寸,这也方便确定中心点,不会出现一个物体四个中心点的场面。

在这里插入图片描述

在这里插入图片描述
先验框Anchor Box,由聚类得到的符合物体实际大小的框。即每个点预先生成的框。
在这里插入图片描述

在这里插入图片描述
坐标的映射与还原。V2改进在于,bx与by的确定经过sigmoid函数映射在0-1之间,再加上基准值(cx,cy),即为坐标点。而宽和高则由先验框Anchor Box经过公式得到。

在这里插入图片描述

在这里插入图片描述
2个卷积是5*5。

在这里插入图片描述
并且每一个卷积核后面加一个BN,可以有效防止过拟合。

在这里插入图片描述
较大的感受野可能只关注了大物体而忽略了小物体。如果在卷积到最后一步之前进行拆分(感受野较小)再与最终结果融合,则经过特征融合的改进后,网络可以做到大小通吃。
在这里插入图片描述

YOLO-V3

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要阐述一件事情,大感受野的先验框需要融合到小感受野的先验框中。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
对每一个分类结果做二分类,判断是或不是。并在最终设置阈值,最终实现多标签分类。

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

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

相关文章

x64dbg 插件开发环境配置

x64dbg 是一款开源的应用层反汇编调试器,旨在对没有源代码的可执行文件进行恶意软件分析和逆向工程,同时 x64dbg 还允许用户开发插件来扩展功能,插件开发环境的配置非常简单,如下将简单介绍x64dbg是如何配置开发环境以及如何开发插件的。x64dbg 是一款开源的应用层反汇编调…

计算机网络——传输层の选择题整理

传输层提供的服务 1、可靠传输协议中&#xff0c;可靠指的是&#xff08;&#xff09; A、使用面向连接的会话 B、使用尽力而为的传输 C、使用滑动窗口来维持可靠性 D、使用确认机制来确保传输的数据不丢失 解析&#xff1a;选D 对于A&#xff0c;使用面向连接的会话&#xff…

hadoop学习使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、hadoop的作用&#xff1f; hadoop是什么&#xff1f;hadoop能做什么&#xff1f;搭建HadoopHA高可用集群 1普通集群配置文件2 高可用集群配置 整理和记录搭建…

Hadoop伪分布式搭建

搭建环境&#xff1a; centos6.5 vm16 jdk1.8 hadoop 2.6.5 1.先设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 #HWADDR00:0C:29:42:15:C2 TYPEEthernet ONBOOTyes NM_CONTROLLEDyes BOOTPROTOstatic IPADDR192.168.90.11 NETMASK255.255.255.0 GA…

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球/聚苯乙烯塑料微球聚乙烯醇相关知识

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球相关研究&#xff1a; 互贯聚合物网络( the interpenetrating polymernetworks,简称IPNs)是由两种或两种以上的交联聚合物互相贯穿而形成的一种聚合物合金体系["。由于形成IPNs时两网之间的互贯和缠结&#xff0…

阿里巴巴按关键字搜索商品 API 返回值说明

请求参数 请求参数&#xff1a;q眼镜&start_price0&end_price0&page1&cat0&discount_only&sort&page_size40&seller_infono&nick&seller_info&nick&ppath&imgid&filter 参数说明&#xff1a;q:搜索关键字 cat:分类I…

天花板级别的python读取文件方法,真的香.......

嗨害大家好鸭&#xff01; 我是小熊猫❤ 咱今天来了解一下 fileinput 说到fileinput&#xff0c;可能90%的码农表示没用过&#xff0c;甚至没有听说过。 这不奇怪&#xff0c;因为在python界&#xff0c;既然open可以走天下&#xff0c;何必要fileinput呢&#xff1f; 但是…

Dubbo线程池

前言 Dubbo使用Netty作为网络调用框架&#xff0c;Netty是一个Reactor模型的框架&#xff0c;线程模型分为boss线程池和worker线程池&#xff0c;boss线程池负责监听、分配事件&#xff0c;worker线程池负责处理事件&#xff0c;简单说就是boss线程池负责hold请求&#xff0c;并…

C# FileSystemWatcher 多文件夹、多文件类型文件监控增加、修改、重命名和删除实例

在上一次讲过了FileSystemWatcher 实时监控文件的增加、修改、重命名和删除&#xff0c;具体怎么实现就不再去阐述&#xff0c;参考如下文 C# FileSystemWatcher 实时监控文件的增加、修改、重命名和删除实例 但只是实现了单个目录和全部或单类文件的监控&#xff0c;示例中通…

人工智能学习日记------KNN分类

机器学习&#xff1a;让计算机通过学习具有像人一样的分类能力。 机器学习中的分类任务&#xff1a;分类、回归、聚类、关联规则挖掘。 分类的定义&#xff1a;根据对某一事物的认识&#xff08;经验&#xff09;来判断之前未见过的实例&#xff08;新对象&#xff09;是否属于…

远程线程注入

第一节 前置知识提起远程线程注入,大家有可能会理解为我在广西,你在北京,我注入你的线程。其实并不是这个样子。 系统在每次运行一个exe 程序的时候系统会默认分配一个4G 的地址空间,给这个exe 程序。 然而,我们的系统有16G、32G等等。那岂不是只能运行几个exe 程序了? 其…

网课答案搜题公众号平台

网课答案搜题公众号平台 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;…

【JavaScript面试】数组的forEach()方法总结

前言 JavaScript数组的 forEach()方法总结。 这里写目录标题前言JavaScript数组的 forEach()方法总结。语法特点一般面试问题有了for循环&#xff0c;为什么还要forEach?1. for循环和forEach的本质区别&#xff1f;2. for循环和forEach的语法区别&#xff1f;3. for循环和forE…

idea jsp文件 高亮_有了这几款idea插件后,同事再也不叫我小白了

不管是开发还是测试&#xff0c;撸代码都用的一款神器&#xff0c;那就是神器idea了&#xff0c;那么&#xff0c;idea插件则是必不可少的&#xff0c;不仅可以提高逼格&#xff0c;而且可以增加撸代码的乐趣&#xff0c;以Mac为例&#xff0c;我们来看下吧。 以下插件插件直接…

Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头提起Java领域中的锁,是否有种“道不尽红尘奢恋,诉不完人间恩怨“的”感同身受“之感?细数那些个“玩意儿”,你对Java的热情是否还如初恋般“人生若只如初见”? Java中对于…

工作十多年后反思自己为什么没有成为牛逼程序员

背景 本人87年生&#xff0c;2010年毕业与苏州某二本院校软件工程专业&#xff0c;先后就职于某不知名外企、前几年大裁员的某欧美数据库公司、某不知名A轮死创业公司。目前在苏州某小公司&#xff0c;跟着某客户做某宝、某音、某多多开放平台服务商&#xff0c;担任全烂工程师…

IDM统一身份平台策略配置说明

IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的&#xff0c;主要定位于解决企业在5A功能上的需求&#xff0c;即&#xff1a;Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控5个方面的实际需求&#…

Qt SQL:QSqlField、QSqlRecord、QSqlIndex、QSqlError

QSqlField 一、描述 QSqlField 表示数据库表或视图中单个列的特征。可用于数据库列值的查看或更改。 字段数据值存储为 QVariants。不允许使用不兼容的类型。 QSqlField field("age", QMetaType::fromType<int>());field.setValue(QPixmap()); // 警告 字…

win10 Qt+ffmpeg+h264+h265+sdl

下载&#xff1a;msys2-x86_64-20220603.exe 按照提示默认安装即可 进入到msys的安装目录&#xff08;C:\msys64&#xff09;修改 msys2_shell.cmd 文件&#xff0c; rem MSYS2_PATH_TYPEinherit 改为 MSYS2_PATH_TYPEinherit 重命名link.exe 重命名C:\msys64\usr\bin\link…

SpringBoot - @JsonIgnore和@JsonIgnoreProperties注解详解以及区别

写在前面 SpringBoot - JsonFormat注解详解 在基于Spring Boot框架的项目中&#xff0c;只要添加了 Web 依赖&#xff08;spring-boot-starter-web&#xff09;&#xff0c;就可以很方便地实现 JSON 转换。因为该Web 依赖默认加入了 jackson-databind 作为JSON处理器&#xf…