《YOLO目标检测》—— YOLOv1 详细介绍

devtools/2024/10/25 8:15:10/

文章目录

    • 一、算法特点
    • 二、网络结构
    • 三、检测过程
    • 四、损失函数
    • 五、性能表现
    • 六、优缺点

YOLO v1(You Only Look Once version 1)是一种快速的目标检测算法,以下是对YOLO v1的详细介绍:

一、算法特点

  1. 端到端的网络结构YOLO v1将目标检测视为回归任务,采用端到端的网络结构,使用一个神经网络同时预测bounding box(边界框)的位置和类别,因此速度很快。
  2. 全局信息利用:由于YOLO v1不需提取region proposal(候选区域),而是直接在整幅图像上进行检测,因此可以联系上下文信息和特征,减少将背景检测为物体的错误。
  3. 泛化能力强YOLO v1学习到的是目标的泛化表示(generalizable representations),因此更容易应用于新的领域或输入。

二、网络结构

YOLO v1的网络结构主要由24个卷积层和2个全连接层构成。输入图像首先被resize到448x448,然后经过卷积层和池化层提取特征,最后通过全连接层输出分类和回归结果。网络的最后一层采用线性激活函数,以预测bounding box的位置(数值型)。

  • 下图为YOLOv1的网络结构图
    在这里插入图片描述

三、检测过程

  1. 图像划分YOLO v1将输入图像划分为S×S(7×7)的网格,每个网格负责检测中心落在该网格中的物体。

    • 如下图:
      在这里插入图片描述
  2. 边界框预测:每个网格预测B个bounding boxes(边界框,v1中 B=2),以及这些边界框的置信度。置信度反映了模型对于这个网格的预测,即该网格是否含有物体,以及这个边界框的坐标预测的正确性。YOLO v1对每个边界框都有5个预测值,包括中心点的x、y坐标,宽度w、高度h,以及置信度。

  • 置信度(confidence)
    • 置信度(confidence)= Pr(Object) * IoU
    • Pr(Object)是边界框内存在对象的概率,若有对象,Pr(Object)=1,否则Pr(Object)=0
    • IoU 是真实框(ground truth)与预测框(predicted box)的交并比
      • IoU = (预测框和真实框的交集面积) / (预测框和真实框的并集面积)
    • 一般认为IoU>0.5的时候,预测框才是有价值的在这里插入图片描述
  1. 类别预测:每个网格还需要预测C(在v1中 C=20 )个类别概率值,表示该网格负责预测的边界框中的目标属于各个类别的概率。

YOLO v1网络结构中最后输出的 7×7×30 解释如下

  • 7×7 意味着7×7个网格
  • 30 表示每个网格包含30个信息,其中2个预测框,每个预测框包含5个信息(x y w h c),分别为中心点位置坐标(x,y),宽(w)高(h)以及置信度(c),剩下20个是针对数据集的20个种类的预测概率(即假设该网格负责预测物体,那么它是某个类别的概率)。

四、损失函数

  • YOLO v1的损失函数通过ground truth(真实值)和输出之间的sum-squared error(平方和误差)进行计算。
  • YOLO的损失包括三部分:位置误差,置信度误差,分类误差
  • 损失函数的设计目标是让坐标(x, y, w, h)置信度分类三个方面达到很好的平衡。为了平衡不同部分的损失,YOLO v1对不同的损失赋予了不同的权重。
  • 下面是在网上搜集到的一张别人对此模型中损失函数的笔记(本人也没有完全理解,就不做详细展开解释了)
    在这里插入图片描述

五、性能表现

  1. 检测速度YOLO v1的检测速度非常快,在Titan X的GPU上能够达到45帧每秒(FPS),适用于实时应用。
  2. 检测精度:虽然YOLO v1的检测速度很快,但其检测精度相对较低。它容易产生物体的定位错误,并且对小物体的检测效果不好。

六、优缺点

优点

  1. 检测速度快,适用于实时应用。
  2. 能够利用全局信息进行检测,减少背景错误。
  3. 泛化能力强,容易应用于新的领域或输入。

缺点

  1. 检测精度相对较低。
  2. 容易产生物体的定位错误。
  3. 对小物体的检测效果不好。

综上所述,YOLO v1是一种快速的目标检测算法,具有端到端的网络结构全局信息利用泛化能力强等优点。但其检测精度相对较低,容易产生定位错误,并且对小物体的检测效果不好。这些特点使得YOLO v1在实时应用中有一定的优势,但在需要高精度检测的场景中可能表现不佳。


http://www.ppmy.cn/devtools/128632.html

相关文章

axios退休了吗?现代Web开发的新请求策略

表单草稿功能的实用价值 在软件开发中,表单是用户与系统交互的重要界面。用户通过填写表单来提交数据,而系统则需要确保这些数据的准确性和完整性。然而,在实际使用中,用户可能会因为各种原因中断填写过程,比如网络问…

内网穿透工具——Cpolar

什么是内网穿透 内网穿透是一种网络技术,它允许从公共网络(例如互联网)访问位于私有网络(内网)中的设备或服务。在传统的网络环境中,私有网络通常由路由器、防火墙和网络地址转换(NAT&#xff…

Ubuntu 通过Supervisor 或者 systemd 管理 .Net应用

在 Ubuntu 上安装 .NET 8.0,通过 supervisor 或 systemd 管理 .NET 应用服务,确保应用能够自动启动、运行以及在崩溃时重启。 1. 安装 .NET 8.0 最新的Ubuntu版本已经不需要注册 Microsoft 包存储库了,具体的可以参考微软官方文档安装&…

百度翻译以及另外三款翻译工具推荐!!!

在这个全球化的时代,翻译工具已经成为我们生活中不可或缺的一部分。我们需要使用翻译工具来克服语言障碍,无论是出国旅行、商务谈判还是学术研究。那么,市场上有各种各样的翻译工具。有哪些好用的在线翻译软件呢?别担心&#xff0…

MySQL 9从入门到性能优化-权限表

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

AMD平台,5600X+6650XT,虚拟机安装macOS 15 Sequoia 15.0.1 (2024.10)

macOS 15 Sequoia终于出正式版了,没有Mac,所以还是虚拟机玩玩,还是属于折腾,安装过程和之前差不多,这次我从外网获得了8核和16核openCore,分享一下。 提前发一下ISO镜像地址和openCore引导磁盘地址 ISO镜…

ElasticSearch 在不同集群之间进行数据迁移

ElasticSearch 在不同集群之间进行数据迁移 在两台集群分别安装s3插件,以允许数据上传至s3 elasticsearch-plugin install repository-s3在es配置文件jvm.options中添加如下内容: -Des.allow_insecure_settingstrue重启es 备份数据 此方法可以用于es…

C++位操作实战:掩码、提取与组装

在C编程中,位操作是一项基础且强大的技术,它允许程序员在二进制级别上直接操作数据。这种能力对于性能优化、内存节省以及底层硬件控制至关重要。本文将深入探讨C中的掩码操作、字节提取与组装,并通过实例展示这些技术的实际应用。 一、位运算…