yolov1:背景介绍与算法精讲

news2025/1/4 19:13:45

在这里插入图片描述

目录

  • 一、背景介绍
    • 1.1 yolo发展历史
    • 1.2 作者介绍
  • 二、算法精讲
    • 2.1 预测阶段
    • 2.2 训练阶段
  • 三、论文细节

一、背景介绍

  其实在写这篇博客的时候yolov1~yolov8的所有网络结构以及算法思想和源码都已经研究很久了,回过头继续读v1会发现有很多细节是自己没有留意的,也算是对自己的学习进行总结了。

1.1 yolo发展历史

  yolo最开始是在2015年提出的,该论文发表在cvpr2016上,至今为止已经更新迭代到了v8版本,如果想要真正理解yolo算法思想,还是需要仔细阅读yolov1论文。论文链接:yolov1

在这里插入图片描述
yolo主页:
有兴趣的朋友可以直接到yolo官网参观一下yolo的主页:https://pjreddie.com/
在这里插入图片描述

1.2 作者介绍

  yolo的作者是Joseph Redmon,可以通过谷歌学术了解该作者的相关信息,虽然目前yolo系列已经更新到了v8,但是只有前三个版本是该作者提出的,从谷歌学术上面可以看的,目前yolov1、yolov3和yolo9000的引用率达到了上万条,因为担心人工智能会更多的用于军事方面,从而导致人类的毁灭,所以在v3版本提出之后,该作者就宣布推出yolo系列的更新,所以之后的所有系列都是其他科学研究人员进行更新迭代。
在这里插入图片描述
作者简历:
  其实最有意思的是Joseph Redmon的简历,从简历可以看出作者是一个非常有个性的人,他介绍了他在计算机科学系当了两年的助教。他喜欢把自己的知识传授给每一匹对计算机科学感到兴奋的小马!在右边紫色栏中介绍了他的主修课程已经成绩分数等信息。
在这里插入图片描述

二、算法精讲

2.1 预测阶段

  yolov1的检测网络有24个卷积层和2个全连接层。交替使用1x1个卷积层减少了前一层的特征空间。我们在ImageNet分类任务上以一半的分辨率(224x224输入图像)对卷积层进行预处理,然后将分辨率提高一倍进行检测,也就是将图片尺寸提高448x448。输入图片shape为448x448x3,在经过卷积层以及4096和1470两个全连接层之后,输出7x7x30的特征图。
在这里插入图片描述


  为什么会输出7x7x30的特征图? 因为我们的图片被划分为SxS的个网格(grid cell),每个网格又生成两个预测框(bounding box),这两个预测框的中心点都落在网格里面,每个预测框是由预测框中心点坐标、宽、高、物体置信度(x,y,w,h,c),组成,下图中黑色框线的粗细代表置信度confidence大小;假设在有物体置信度的情况下,每一个网格生成某一个物体类别的概率,也就是下图中彩色格子图片,把每一个bounding box的置信度与类别的条件概率相乘,就能得到每一个bounding box的类别概率,也就是下图中的最后一个带预测框的图片。

  grid cell的条件概率指的是在当前置信度存在的情况下,预测的20个类别概率最高的类别,所以每个grid cell只能预测出一个物体,7x7=49个grid cell最多只能预测49个类别,下面浅蓝色区域表示是狗的类别,这也是yolov1无法精准预测密集目标和小目标的原因
在这里插入图片描述
在这里插入图片描述


   每一个bounding box的置信度与类别的条件概率结合得到如下预测框,一共是49x2=98个框,每个预测框都有置信度与类别,这98个框再经过一系列后处理,比如说过滤掉低置信度的候选框,再进行nms非极大值抑制处理过滤掉重复的候选框,最后每个物体只保留一个检测框,得到了我们最终的目标检测图像。
在这里插入图片描述
后处理—置信度过滤和NMS
1、置信度过滤
首先需要了解一下什么事条件概率;条件概率是指在已知一些相关信息或事件发生的条件下,另一个事件发生的概率。简而言之,条件概率是指在给定某个条件下,另一个事件发生的可能性。

条件概率可以用P(A|B)表示,其中A和B是两个事件。P(A|B)代表在事件B已经发生的情况下,事件A发生的概率。

计算条件概率时,可以使用以下公式:
P(A|B) = P(A∩B) / P(B)

其中,P(A∩B)表示事件A和事件B同时发生的概率,P(B)表示事件B发生的概率。

下图中每一个黄色的束状条表示该bounding box的置信度与该grid cell 20个类别条件概率的乘积的到的全概率,每个bounding box会得到两个竖条,一共是98个。
在这里插入图片描述

设置阈值,进行概率筛选,每个竖条同维度概率值与阈值进行比较,假设第一个维度都是狗的概率,阈值设置为0.5,如果概率低于0.5的都设置为0,并且放到靠后的位置,这样我们过滤掉概率较低的值,经过置信度过滤之后就需要进行NMS非极大值抑制处理。
在这里插入图片描述


2、NMS非极大值抑制
经过置信度过滤之后得到如下概率图,按照类别概率高低进行排序,将每一个概率值都与最大概率值进行对比,我们设置IOU交并比阈值,如果两个概率的IOU交并比大于这个阈值,就可以看做两个bounding box重叠,舍弃掉概率值低的bounding box;
在这里插入图片描述

2.2 训练阶段

目标检测任务是一个典型的监督学习问题;

在监督学习中,我们使用已有的带有标签(或者称为标记)的数据集,通过训练模型来学习输入与输出之间的映射关系,通过梯度下降等方法对神经元的权重进行微调,使得损失函数最小化的过程,从而能够对新的未标记数据进行预测或分类。

监督学习的基本概念可以通过以下几个要素来描述:

  • 输入数据(特征):监督学习中的输入数据通常被称为特征,表示为X。这可以是一组数值、图像、文本等形式的数据。
  • 输出数据(标签):与每个输入数据对应的目标输出,通常被称为标签,表示为Y。标签可以是类别,也可以是数值。
  • 训练数据集:由带有标签的输入数据和相应的输出数据组成。这个数据集被用于训练模型,模型通过学习训练数据中的特征与标签之间的关系。
  • 模型:监督学习中的模型是一个函数,通过输入数据来预测输出数据。模型的选择可以根据具体的问题来进行,例如线性回归、决策树、支持向量机、神经网络等。
  • 损失函数:用来衡量模型预测结果与实际标签之间的差异。监督学习的目标是最小化损失函数,使模型的预测结果尽可能接近真实标签。
  • 预测:经过训练后的模型可以用于预测新的未标记数据的输出。通过输入数据,模型可以根据学到的映射关系,得出预测的结果。

在训练过程中我们希望bounding box尽量逼近我们真实框(ground truth),每个grid cell会生成两个预测框(黄色),我们比较两个预测框与真实框(红色) 的IOU值,保留IOU值最大的框,也就是下图中较大的黄色框,剩下的小的黄色框会在损失函数计算过程中给它一个非常小的权值进行忽略。我们训练过程中需要较大的黄色框尽量逼近我们已经打好标签的红色框。

注意!如果我们的预测框和真实框的中心点不落在同一个grid cell里面,会将这两个预测框都进行忽略,因为每个grid cell会预测一个类别。
在这里插入图片描述


损失函数
在yolov1目标检测过程中一共需要计算5个误差:

  1. 负责检测物体bbox中心点定位误差。
  2. 负责检测物体bbox宽高定位误差。
  3. 负责检测物体bbox置信度confidence误差
  4. 不负责检测物体bbox置信度confidence误差
  5. 负责检测物体的grid cell分类误差
    在这里插入图片描述

1、负责检测物体bbox中心点定位误差
在这里插入图片描述
2、负责检测物体bbox宽高定位误差
这里求根号的原因是使小框对误差更敏感。
在这里插入图片描述
3、confidence回归误差
注意:绿色框中不负责检测物体的boxx有两类,一类是中心点落在grid cell中但是与真实框IOU值太小而被淘汰的框,另外一类是中心点没和真实框落在同一个grid cell中两个框全被淘汰。
在这里插入图片描述

4、负责检测物体的grid cell分类误差
在这里插入图片描述

损失函数细节
在这里插入图片描述

三、论文细节

数据集

yolov1使用的数据集是voc2007, PASCAL VOC(Visual Object Classes)数据集是一个用于目标检测和图像分割任务的常用数据集之一。它包含一系列的图像,每个图像都标注了其中物体的位置和类别。以下是关于PASCAL VOC数据集的详细信息:

1、版本:

  • PASCAL VOC 数据集有多个版本,例如 VOC2007、VOC2012 等。每个版本都包含了不同数量的图像和标注。

2、任务:

  • VOC 数据集通常用于目标检测和图像分割任务。目标检测任务要求模型检测图像中的物体,并给出它们的位置和类别。图像分割任务要求模型对图像中的每个像素进行分类,将图像分割成不同的区域。

3、类别:

  • VOC 数据集包含了20个不同的物体类别,如人、车辆、动物、家具等。每个类别都有相应的标签。

4、图像:

  • VOC 数据集的图像来自不同的场景,包括室内和室外。图像的分辨率和质量也有所不同。

6、标注:

  • 每个图像都有相应的 XML 文件,包含了物体的边界框坐标、类别标签以及其他相关信息。对于图像分割任务,还可能包含每个像素的分割标签。

7、训练集和测试集:

  • VOC 数据集通常划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。

8、评估指标:

  • 在目标检测任务中,常用的评估指标包括精确度(Precision)、召回率(Recall)和平均精确度(mAP)。mAP 是种综合考虑所有类别的评估指标。

9、使用领域:

  • VOC 数据集被广泛用于评估目标检测和图像分割算法的性能。许多研究论文和竞赛采用了这个数据集作为基准。
    在这里插入图片描述

与其他方法比较
与其他实时算法相比,在实时目标检测算法中yolo是最准的。
与其他非实时目标检测算法相比,yolo的精度居中,但是速度最快,每秒中可以检测45张图片。
在这里插入图片描述


yolo与fast r-cnn错误比较
在背景background误差上面我们能看到,fast r-cnn的误差更大,因为fast r-cnn是两阶段模型,它并不能识别全图的信息,只是把候选区域的一小块进行分析,缺乏全局性,所以会将很多背景误判为目标。

yolo是把整个图片放到模型当中,所以区分背景和物体的能力比较强,能够区分背景和前景的关系。

yolo的定位能力比较弱,一方面由于输入的图片像素比较小,其次整个网络把目标检测所有的事情全部都做完了,没法实现高精度定位。

在这里插入图片描述


与其它网络融合
这也是我们改网络过程中经常会用到的方法,将两个网络进行融合,弥补互相的缺陷,将fast与其他模型进行融合发现性能提升的比较小,但是与yolo模型进行融合之后,性能提升到了75。
在这里插入图片描述
在这里插入图片描述


泛化能力强
其实很多模型在实际训练集已经验证集上的测试效果非常好,但是如果应用到一些艺术品上面,检测效果就会下降,在这一方面,yolo的表现非常的好,通过现实数据集训练的模型,即使放在艺术品的检测上已经拥有较好的性能。

左图是在毕加索数据集的召回精度曲线。右图是在VOC 2007, Picasso和People-Art数据集的定量结果。毕加索数据集评估AP和最佳F1得分。
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

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

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

相关文章

Linux上新部署的项目jar包没有生效

今天公司新安排了一个项目,这里简称项目A,需要新增两个功能,我这边完成之后,跟前端对接好了,调试也没有问题。 然后把项目打包上传到测试服务器上,重新启动项目,发现项目A新增的接口没有生效&a…

多变量线性回归

一、多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数、楼层等,构成一个含有多个变量的模型,模型中的特征为。 增添更多特征后,我们引入一系列新的注释&am…

【数据结构和算法】奇偶链表

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:分离节点后合并 三、代码 3.1 方法一:分离节点后合并 四、复杂度分…

shopee、Lazada、速卖通测评自养号技术,当天注册当天直接下单

自养号测评(补单)技术对跨境平台如shopee、Lazada、速卖通、ebay、wish、mercari、Newegg等是否有用? 随着越来越多的跨境电商进入市场,并且考虑到亚马逊对大卖家的严格监管,这无疑为其他跨境电商平台和独立站市场带来…

Smallpdf扫描、转换、压缩、编辑、签名PDF

【应用名称】:Smallpdf: 扫描、转换、压缩、编辑、签名PDF 【适用平台】:#Android 【软件标签】:#Smallpdf 【应用版本】:1.71.0 【应用大小】:150MB 【软件说明】:通过 Smallpdf,您可以&…

6.3.1认识Camtasia4(1)

6.3.1认识Camtasia4 安装完Camtasia4(本书使用Camtasia4.0.1版本)后,单击【开始】|【程序】|【Camtasia Studio 4】|【Camtasia Studio】,启动Camtasia Studio,启动后界面如图6-3-1所示。 图6-3-1 Camtasia Studio界面 Camtasia Studio窗口中…

编程笔记 html5cssjs 040 CSS盒子模型

编程笔记 html5&css&js 040 CSS盒子模型 一、CSS 盒子模型二、元素的宽度和高度三、最终元素的总宽度四、元素的总高度五、练习小结 网页是靠分成不同的块,再赋予这些块各不相同的属性来布局的。所以这个“块”是一个基础。先看块本身的构造。 一、CSS 盒子…

shell 循环 判断

for 循环 Shell 脚本里最简单的循环当属 for 循环。最简单的 for 循环如下所示,你只需将变量值依次写在 in 后面即可: #!/bin/bashfor num in 1 2 3 4 doecho $num done 如果要循环的内容是字母表里的连续字母或连续数字,那么就可以按以下语…

医院住院综合服务管理系统

🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅一 、设计说明 1.1 课题背景 互…

大模型理论基础1

大模型理论基础1 第一章:引言 语言模型 自回归语言模型 概率的链式法则: 在自回归语言模型 p 中生成整个序列 X1:L,我们需要一次生成一个令牌(token),该令牌基于之前以生成的令牌进行计算获得: 其中T≥0 是一个控…

OLAP引擎也能实现高性能向量检索,据说QPS高于milvus!

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 随着 LLM 技术应用及落地,数据库需要提高向量分析以及 AI 支持能力,向量数据库及向量检索等能力“异军突起”,迎来业界持续不断关…

C 程序运行机制

1.编辑 编写C语言源程序代码,源程序文件以“.c”作为扩展名。 2.编译 将C语言源程序转换为目标程序(或目标文件)。如果程序没有错误,没有任何提示,就会生成一个扩展名为“.obj”的二进制文件。C语言中的每条可执行语句经过编译后最终都将被…

深入探索CSS动画的魅力-附带动画实例

一、网页动画发展简史 GIF动画 GIF全称为“Graphics Interchange Format”,是一种基于LZW算法的连续色调无损压缩格式。 由于其文件小、无损压缩、易于播放等优点,GIF成为了网页动画的最初选择。然而,GIF动画的色彩数量和帧数有限&#xff…

YOLOv5姿态估计:HRnet实时检测人体关键点

前言: Hello大家好,我是Dream。 今天来学习一下利用YOLOv5进行姿态估计,HRnet与SimDR检测图片、视频以及摄像头中的人体关键点,欢迎大家一起前来探讨学习~ 本文目录: 一、项目准备1Pycharm中克隆github上的项目2.具体步…

森林消防泵:及时扑灭林火,保护森林生态平衡

在大自然中,森林是我们宝贵的自然资源,它们为我们提供氧气、净化空气、保持水土,还是许多动植物的家园。然而,森林火灾却时常威胁着这片绿色宝地的安全。为了保护森林生态环境,我们需要及时扑灭林火。而恒峰智慧科技研…

PhotoMaker, 腾讯开源人像图形处理

腾讯于昨天开源一款人像图形处理项目,项目地址:github.com/TencentARC/PhotoMaker 项目演示地址:https://huggingface.co/spaces/TencentARC/PhotoMakerhttps://huggingface.co/spaces/TencentARC/PhotoMaker-Style 演示效果: 项…

48-DOM

1.DOM基础 Document Object Module,文档对象模型,window对象,document文档,都可以获取和操作 1)文档节点 2)属性节点(标签内的属性href,src) 3)文本节点(标签内的文字) 4)注释节点 5)元素节点(标签) 2.获取元素节点 2.1通过标签名获取 <p>1</p><…

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码&#xff0c;并对代码进行了详细的注释。最后&#xff0c;对算法的效果进行了测试。相信通过这个专栏&#xff0c;你可以对这些算法的原理及实现有深入的理解&#xff01;   如有疑问&#xf…

在window宿主机访问WSL2内部署的服务

目录 在window宿主机访问 WSL2 内部署的服务&#xff08;其他&#xff09;在 WSL2 内查看 windows&#xff08;宿主机&#xff09;的IP地址 windows内置了Linux系统&#xff08;WSL&#xff09;。 在window宿主机访问 WSL2 内部署的服务 在WSL下部署的项目&#xff0c;比如端口…

新喜报,新希望!英码科技荣登“2023年广州拟上市领头羊TOP50企业榜单”

近日&#xff0c;广州市资本市场融资对接服务平台启动仪式暨2023年拟上市企业“领头羊”评选总结活动成功举办。活动现场发布了2023年广州“拟上市领头羊TOP 50 企业榜单”、“最受资本关注TOP10榜单”、“最强科创TOP10榜单”、“最具成长TOP10榜单”并为企业颁发牌匾&#xf…