【深度学习-目标检测】05 - YOLOv1 论文学习与总结

news2024/11/17 2:58:53

论文地址:You Only Look Once:Unified, Real-Time Object Detection

论文学习

在这里插入图片描述

1. 摘要

  1. YOLO的提出:作者提出了YOLO,这是一种新的目标检测方法。与传统的目标检测方法不同,YOLO将目标检测视为一个回归问题,直接从图像像素到边界框坐标和类别概率的映射。
  2. 方法特点
    • 统一的架构:YOLO使用单一的神经网络直接从完整图像中预测边界框和类别概率。这种统一的架构使得YOLO在检测性能上可以进行端到端的优化。
    • 实时性能:YOLO极其快速。基础的YOLO模型可以实时处理图像,每秒处理45帧。而更小的版本,Fast YOLO,可以处理高达155帧每秒,同时仍保持较高的平均精度(mAP)。
  3. 性能比较
    • 与其他实时检测系统相比,YOLO在本地化错误方面表现更好,但在背景误判方面的表现较差。
    • YOLO在从自然图像到其他领域(如艺术作品)的泛化能力方面优于其他检测方法,如DPM和R-CNN。

补充:YOLO将目标检测视为回归问题的理解

想象一下,你有一张包含多个物体的照片,比如一张客厅的照片,里面有沙发、电视和一只猫。现在,如果我们要用一个计算机程序来识别这张照片中的物体及其位置,这就是一个典型的目标检测问题。

  1. 在传统的目标检测方法中,这个过程通常分为两步:
    • 定位:首先识别出照片中可能有物体的区域(比如沙发的位置、电视的位置和猫的位置)。
    • 分类:然后对这些区域进行分类,判断它们是什么物体(比如这是沙发、那是电视、还有一只猫)。
  2. 而在YOLO这种使用回归方法的目标检测中,这个过程被简化为一步:
    • 程序一次性直接从照片中“预测”出每个物体的位置(用边界框坐标表示)和类别(用类别概率表示)。这里的“预测”就是回归问题中的输出。
    • 具体来说,对于照片中的每个物体(比如猫),YOLO会输出:
      • 边界框坐标:这是一组连续的数值,描述了猫在照片中的确切位置。通常包括猫所在区域的左上角和右下角的坐标。
      • 类别概率:这是一组数值,表示这个区域是猫的概率有多高,以及它可能是其他类别(如沙发、电视)的概率。

所以,YOLO通过一次计算就能告诉我们:“在这个位置有一只猫,我有90%的把握它是猫,10%的可能是其他东西。” 这就是回归问题在YOLO中的应用。

一般来说,YOLO会预测五个值(中心x坐标,中心y坐标,宽度,高度,类别概率)。

2. 引言

  1. 人类视觉系统的效率:作者首先指出,人类能够迅速且准确地通过视觉系统识别图像中的物体、它们的位置以及它们之间的相互作用。这种能力使我们能够轻松地执行复杂任务,例如驾驶汽车。

  2. 计算机视觉的挑战:作者强调,如果能开发出快速且准确的目标检测算法,那么计算机将能够在没有特殊传感器的情况下驾驶汽车,为残疾人提供实时场景信息,甚至实现通用的、响应灵敏的机器人系统。

  3. 现有目标检测系统的局限性

    • 传统的目标检测系统通常将分类器重新用于检测。这些系统通过在测试图像中的不同位置和尺度上评估分类器来检测物体。
    • 例如,形变部件模型(DPM)使用滑动窗口方法,而最近的方法如区域卷积神经网络(R-CNN)使用区域提议方法来首先生成潜在的边界框,然后在这些提议的框上运行分类器。
    • 这些复杂的流程不仅速度慢,而且难以优化,因为每个组件都需要单独训练。
  4. YOLO的提出:鉴于现有方法的这些局限性,作者提出了YOLO,这是一种全新的目标检测方法。 YOLO将目标检测视为一个单一的回归问题,直接从图像像素到边界框坐标和类别概率的映射。

3. 统一检测

  1. 目标检测的统一化

    • YOLO方法将目标检测的多个组成部分统一到一个单一的神经网络中。这种统一化的方法使得从整个图像中直接预测边界框和类别概率成为可能。
    • 与传统的、由多个阶段组成的目标检测方法不同,YOLO的统一网络同时处理多个任务,包括特征提取、边界框预测和类别概率预测。
  2. 网络结构
    在这里插入图片描述

    • YOLO网络将输入图像划分为一个S×S的网格。如果某个物体的中心落在一个网格单元内,那么这个网格单元就负责检测该物体。
    • 每个网格单元预测B个边界框和这些框的置信度(confidence scores)。置信度反映了模型对框中包含物体的把握,以及预测框与实际框的匹配程度。
    • 每个边界框包含5个预测值:中心点的x和y坐标、宽度、高度和置信度。
    • 每个网格单元还预测C个条件类别概率,这些概率是在网格单元包含物体的条件下计算的。
      在这里插入图片描述
  3. 训练和优化

    • YOLO网络在整个图像上进行训练,直接优化检测性能,而不是像传统方法那样分别训练不同的组件。
    • 网络使用大量的真实图像进行训练,学习如何准确地预测物体的位置和类别。
  4. 实时性能

    • 由于YOLO将检测过程简化为单一网络的前向传递,因此它能够以非常快的速度运行,实现实时目标检测。
    • YOLO的这种快速性能使其适用于需要实时反馈的应用,如自动驾驶汽车和机器人导航。

4. 训练

  1. 预训练卷积层
    • YOLO首先在ImageNet 1000类竞赛数据集上预训练其卷积层。这一步骤旨在让网络学习到丰富的特征表示,这些特征对于后续的目标检测任务至关重要。
    • 预训练使用的是网络的前20个卷积层,后接平均池化层和全连接层。
  2. 转换为检测模型
    • 在预训练完成后,模型被转换为目标检测模型。这包括在网络中添加额外的卷积层和全连接层,这些层的权重是随机初始化的。
    • 为了适应目标检测任务,输入图像的分辨率被提高到448×448。
  3. 损失函数
    • YOLO使用平方和误差作为其损失函数。这个选择简化了优化过程,但并不完全符合目标检测的最终目标,即最大化平均精度。
    • 损失函数对不同类型的误差(如定位误差、分类误差)进行加权,以处理不同重要性的误差。
  4. 训练细节
    • 在训练过程中,使用了多种技术来提高模型的泛化能力和减少过拟合。这包括dropout和数据增强(如随机缩放和平移图像,调整图像的曝光和饱和度)。
    • 训练使用不同的学习率安排,初始阶段使用较低的学习率,随后逐渐提高。
  5. 边界框预测的特殊处理
    • YOLO对边界框的宽度和高度预测使用平方根变换,以更好地处理不同大小的边界框。
    • 训练时,只有与真实边界框重叠最多的预测框被认为是“负责”该目标的,这有助于模型学习到更准确的边界框。

5. 推理

  1. 单次网络评估
    • 在推理(即目标检测)阶段,YOLO只需要对测试图像进行一次网络评估。这与传统的目标检测方法不同,后者可能需要多次评估来检测图像中的不同区域。
    • 这种单次评估方法使得YOLO能够快速处理图像,实现实时目标检测。
  2. 网格设计和空间约束
    • YOLO将输入图像划分为S×S的网格,并在每个网格单元内进行预测。这种设计强制实现了预测的空间多样性,即每个网格单元负责检测位于其内部的目标。
    • 这种方法有助于减少重复检测和提高检测的准确性。
  3. 边界框和类别预测
    • 对于每个网格单元,YOLO预测多个边界框和这些框的置信度,以及条件类别概率。
    • 置信度反映了模型对框中包含物体的把握,以及预测框与实际框的匹配程度。条件类别概率则表示在检测到物体的情况下,它属于各个类别的概率。
  4. 非极大值抑制
    • YOLO使用非极大值抑制(Non-maximal Suppression,NMS)来处理多个重叠的边界框。这一步骤有助于去除冗余的检测结果,确保每个物体只被检测一次。
    • NMS通过保留置信度最高的边界框,并去除与其重叠度较高的其他边界框来实现。
  5. 实时性能
    • 由于YOLO的简单和高效,它能够在保持较高检测精度的同时,实现实时的处理速度。这使得YOLO适用于需要快速响应的应用场景,如视频监控、自动驾驶等。

6. YOLO的局限性

  1. 空间约束的影响
    • 由于YOLO将图像划分为S×S的网格,并且每个网格单元负责预测边界框,这种设计带来了空间约束。每个网格单元只能预测有限数量的边界框(通常是两个),并且只能预测一个类别。
    • 这种空间约束限制了YOLO在处理图像中靠近或重叠的多个小物体时的效果。
  2. 对小物体的检测挑战
    • YOLO在检测小物体,特别是当这些小物体以群组形式出现时,表现不如大物体。这部分是因为小物体可能在网格划分中不够显著,或者被网格中的大物体所掩盖。
  3. 泛化能力的局限
    • YOLO在处理不常见的物体或不寻常的物体排列时可能会遇到困难。由于YOLO在训练过程中学习到的特征和物体的空间关系,如果遇到新的或罕见的物体排列,它可能无法准确地进行检测。
  4. 定位误差
    • YOLO在定位物体时可能不够精确,尤其是对于小物体。这可能是由于YOLO在设计上对速度的优先考虑,牺牲了一些定位精度。
  5. 损失函数的不完美
    • YOLO使用的平方和误差损失函数可能不完全适合目标检测任务。这种损失函数可能导致对不同类型的误差(如定位误差和分类误差)的不平衡处理。

7. 与其他检测系统的比较

  1. 与形变部件模型(DPM)的比较
    • DPM使用滑动窗口方法进行目标检测,它通过多个阶段来提取特征、分类区域、预测边界框等。 与DPM相比,YOLO使用单一的卷积神经网络来同时完成这些任务,提高了速度和准确性。
  2. 与区域卷积神经网络(R-CNN)的比较
    • R-CNN及其变体(如Fast R-CNN和Faster R-CNN)使用区域提议方法来定位目标,然后对这些区域进行分类。与这些方法相比,YOLO的速度更快,因为它不需要为每个区域单独运行分类器。
  3. 其他快速检测器的比较
    • 一些研究致力于加速DPM和R-CNN等传统检测方法。尽管这些方法在速度上有所提升,但它们通常仍然无法达到实时性能。
    • YOLO的设计初衷是速度,因此它在保持较高准确度的同时实现了实时性能。
  4. 检测性能的比较
    • YOLO在PASCAL VOC等标准数据集上与其他检测系统进行了性能比较。YOLO在实时性能方面表现出色,同时在准确性方面也与其他先进系统相当。
  5. 错误类型的比较
    • YOLO与其他系统在错误类型上有所不同。例如,与Fast R-CNN相比,YOLO在定位错误上表现更差,但在背景误判方面表现更好。
  6. 泛化能力的比较
    • YOLO在从自然图像到其他领域(如艺术作品)的泛化能力方面优于其他检测方法。这表明YOLO学习到的特征表示具有较好的泛化性。

8. 实验

  1. PASCAL VOC 2007实验
    • YOLO在PASCAL VOC 2007数据集上进行了测试,这是一个广泛使用的目标检测基准数据集。
    • 实验结果显示,YOLO在实时性能方面表现出色,同时在平均精度(mAP)方面也取得了竞争性的结果。
  2. 与Fast R-CNN的比较和错误分析
    • 作者对YOLO和Fast R-CNN在VOC 2007数据集上的表现进行了详细比较,并分析了两种方法的错误类型。
    • YOLO在定位错误上表现较差,但在背景误判方面表现更好。
  3. 结合YOLO和Fast R-CNN
    • 作者探索了将YOLO和Fast R-CNN结合使用的可能性,以减少Fast R-CNN的背景误判。
    • 结合使用两种方法可以提高整体检测性能。
  4. PASCAL VOC 2012实验
    • YOLO也在PASCAL VOC 2012数据集上进行了测试,以进一步验证其性能。
    • 尽管YOLO在某些类别上的表现不如其他方法,但在整体性能上仍然具有竞争力。
  5. 泛化能力测试
    • 为了测试YOLO的泛化能力,作者在艺术品数据集上进行了实验,这些数据集包括风格迥异的图像。
    • YOLO在这些数据集上的表现证明了其对不同领域图像的良好泛化能力。
  6. 实时性能测试
    • YOLO的实时性能在实验中得到了验证,特别是在处理视频流和实时应用场景时。

9. 结论

  1. YOLO的创新性
    • 作者强调了YOLO作为一个统一的目标检测模型的创新性。与传统的基于分类器的方法不同,YOLO直接从图像像素到边界框坐标和类别概率的映射,实现了目标检测的简化。
  2. 端到端训练
    • YOLO的整个模型可以进行端到端的训练,这意味着从输入图像到最终的检测结果,整个过程在一个统一的网络结构中完成,没有分离的组件或阶段。
  3. 实时性能
    • YOLO的一个显著特点是其实时性能。作者指出,YOLO是目前文献中最快的通用目标检测方法,适用于需要快速响应的应用,如视频监控和机器人导航。
  4. 泛化能力
    • YOLO不仅在标准的目标检测数据集上表现出色,而且在泛化到新领域(如艺术品检测)时也显示出强大的能力。
  5. 未来工作方向
    • 尽管YOLO在多个方面表现出色,但作者也承认它在某些情况下(如检测小物体或群体中的物体)的局限性。这为未来的改进和研究提供了方向。
  6. 对计算机视觉领域的贡献
    • 作者总结说,YOLO的提出对于推动实时目标检测技术的发展具有重要意义,为计算机视觉领域提供了一个高效、准确的工具。

这篇论文《You Only Look Once:Unified, Real-Time Object Detection》的主要创新点和贡献可以总结如下:

  1. 统一的检测框架
    • YOLO将目标检测的过程简化为一个单一的神经网络,这与传统的目标检测方法(通常涉及多个阶段,如候选区域生成和分类)形成鲜明对比。这种统一的框架简化了目标检测流程,提高了效率。
  2. 实时目标检测
    • YOLO能够实现实时目标检测,这对于需要快速响应的应用(如自动驾驶、视频监控)至关重要。它能够以极高的帧率处理图像,同时保持较高的检测精度。
  3. 端到端训练
    • YOLO可以进行端到端的训练,意味着从输入图像到最终的检测结果,整个过程在一个统一的网络结构中完成。这种训练方式使得模型能够更好地优化整体检测性能。
  4. 直接回归到边界框和类别概率
    • YOLO直接从图像像素回归到边界框坐标和类别概率,这种方法避免了传统目标检测方法中的复杂区域提议和后续分类步骤。
  5. 泛化能力
    • YOLO在不同的数据集和应用场景中表现出良好的泛化能力,能够有效地从自然图像泛化到其他领域,如艺术品检测。
  6. 减少背景误判
    • 与其他目标检测方法相比,YOLO在减少背景误判方面表现更为出色,这对于减少错误检测非常重要。
  7. 空间约束的引入
    • 通过将图像划分为网格,并在每个网格单元中进行预测,YOLO引入了空间约束,这有助于提高检测的准确性。

YOLO

在这里插入图片描述

  1. 图像预处理
    • 输入图像首先被调整到固定的大小(例如448×448像素),以适应YOLO网络的输入要求。
  2. 划分网格
    • 调整后的图像被划分为S×S的网格(例如7×7)。每个网格单元负责检测落在其内部的目标。
  3. 特征提取
    • 图像通过卷积神经网络(CNN)进行前向传播。网络包含多个卷积层、池化层和全连接层,用于提取图像的特征。
  4. 边界框预测
    • 每个网格单元预测B个边界框。每个边界框包含5个参数:中心点的x和y坐标、宽度、高度和置信度。置信度表示预测框中是否存在目标,以及预测框的准确性。
  5. 类别概率预测
    • 每个网格单元还预测C个条件类别概率。这些概率表示在该单元中检测到目标的情况下,目标属于每个类别的概率。
  6. 组合预测
    • 对于每个边界框,其最终的类别置信度由边界框的置信度和条件类别概率相乘得到。这表示了边界框包含特定类别的目标的概率。
  7. 非极大值抑制
    • 由于多个网格单元可能预测重叠的边界框,YOLO应用非极大值抑制(NMS)来去除重复的检测。在NMS中,保留置信度最高的边界框,并移除与其重叠度较高的其他边界框。
  8. 最终检测输出
    • 经过NMS处理后,YOLO输出最终的检测结果,包括每个检测到的目标的位置(边界框)和类别。

补充:关于在网格内预测目标

YOLO的工作流程中,会将原始图像划分为S*S个网格,然后在每个网格中去预测每个预测框和类别,关于这句话的理解,需要详细解释一下:

首先,划分为S*S个网格,每个网格属于一个”责任区域“,并不是”预测区域“,所谓”责任区域“指的是:如果某个物体的中心点落在某个网格内,那么对于这个物体的边界框预测和类别预测将是由这个网格负责,它可以在整个图像上完成预测工作,并不局限于自己的这个网格区域。

因此,如果存在某个物体跨越了多个网格,也是没有问题的,因为这个物体的中心点一定是在某个网格内的,它的预测任务将是由这个网格负责。

以上内容旨在记录自己的学习过程以及复习,如有错误,欢迎批评指正,谢谢阅读。

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

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

相关文章

搭建FTP服务器详细介绍

一.FTP简介 1.1什么是FTP 1.2FTP服务器介绍 1.3FTP服务器优缺点 二.FTP服务器的搭建与配置 2.1 开启防火墙 2.2创建组 2.3创建用户 2.4安装FTP服务器 2.5配置FTP服务器 2.&#xff…

PS3111主控的SSD固态硬盘固件门掉盘通病问题解决,硬盘型号变成satafirms11修复步骤

我手上的型号是某OEM厂商的定制盘,主控芯片为PHISON-PS3111-S11-13 ,经过升级工具升级完美解决硬盘型号变成satafirms11的问题 所需工具及文件资源 查看固态硬盘芯片的Phison flash idSBFMP1W3自动升级文件 以上所需在群联PHISON S11的官方固态资源库中…

【漏洞复现】某检测系统(admintool)接口任意文件上传漏洞

文章目录 前言声明一、漏洞详情二、影响版本三、漏洞复现四、修复建议 前言 湖南建研检测系统 admintool接口任意文件上传漏洞,攻击者可通过该漏洞获取服务器敏感信息。 声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者…

Bert模型from_pretrained报网络错误解决办法

问题描述: 服务器或者本地运行以下代码时报网络连接错误: from transformers import AutoTokenizermodel_checkpoint "distilbert-base-uncased" tokenizer AutoTokenizer.from_pretrained(model_checkpoint, use_fastTrue, cache_dir./cac…

封顶降价!渲染质量随心选,炫云效果图进入10元封顶时代

为进一步帮助使用V-Ray效果图渲染的用户更合理地控制渲染费用、更灵活地选择渲染质量,自12月21日起,炫云针对不同服务器配置、不同渲染质量,对单张V-Ray效果图渲染设置新的扣费上限,封顶降价再创新低,炫云效果图开启10…

go 使用 - sync.Metux

[TOC](sync.metux 使用) 简介 简述使用metux使用的方法, 使用的注意点, 以及使用情况使用方法 提供的方法 Lock() 方法用于获取锁 Unlock() 方法用于释放锁 TryLock()方法尝试获取锁 对共享资源进行加速, 例 &#…

超分之SRGAN

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network使用生成对抗网络的逼真单图像超分辨率一作:Christian Ledig是Twitter2017年的一篇论文。 文章目录 0. 摘要1. 引言1.1 相关工作1.1.1 介绍了SR技术的发展历程1.1.2 介绍了SR…

Docker (compose、安装、常用命令整理、compose编排) -day06

一、概念 Docker-Compose就是容器编排,负责实现对Docker容器集群的快速编排 Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 可以很容易地用一…

【AI服饰】孔雀背景服装_AIGC服饰订制设计咨询产业

服饰系列 AIGC(Artificial Intelligence Generated Content)服饰图是指通过人工智能生成的服装设计图案。随着人工智能技术的不断进步,AIGC服饰图在未来有着广阔的发展空间。 首先,AIGC服饰图可以提供更多的设计可能性。传统的服…

LazyForEach常见使用问题

目录 1、渲染结果非预期 2、重新渲染时图片闪烁 3、ObjectLink属性变化UI未更新 上篇文章中我们介绍了LazyForEach的基本使用,展示了如何使用LazyForEach构造一个列表,并演示数据的添加、删除、修改如何与LazyForEach配合并正确的更新UI。本篇将介绍使…

VMware16 pro 安装openEuler-23.09-x86_64,详细操作流程+详图。

1.环境: win11, vmware16 pro, openEuler-23.09-x86_64-dvd.iso 社区版openEuler 23.09官方下载地址: openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、…

【头歌实训】PySpark Streaming 入门

文章目录 第1关:SparkStreaming 基础 与 套接字流任务描述相关知识Spark Streaming 简介Python 与 Spark StreamingPython Spark Streaming APISpark Streaming 初体验(套接字流) 编程要求测试说明答案代码 第2关:文件流任务描述相…

基于采样的自动驾驶规划算法 - PRM,RRT,RRT*,CL-RRT

本文将讲解PRM,RRT,RRT*自动驾驶规划算法原理,不正之处望读者指正 0 前言 机器人运动规划的基本任务:从开始位置到目标位置的运动 (1)如何躲避构型空间出现的障碍物 (2)如何满足机器…

【回溯】0-1背包Python实现

文章目录 [toc]问题描述形式化描述 回溯法时间复杂性Python实现 个人主页:丷从心 系列专栏:回溯法 问题描述 给定 n n n种物品和一背包,物品 i i i的重量是 w i w_{i} wi​,其价值为 v i v_{i} vi​,背包的容量为 c …

第27关 在K8s集群上使用Helm3部署最新版本v2.10.0的私有镜像仓库Harbor

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 在前面的几十关里面,博哥在k8s上部署服务一直都是用的docker hub上的公有镜像,对于企业服务来说,有些我们是不想把服务镜像放在公网上面的; 同时…

记一次史诗级灾难的恢复方法:笨蛋edge把我收藏夹清空了

先在文件管理器中打开隐藏文件和文件扩展名的按钮 这一点可以去网上搜搜,教程非常多。 打开edge,关闭收藏夹的同步按钮 根据下图所示路径找到文件 Bookmarks 15060是我的用户名,各位要找到以自己的用户名命令的文件夹哈。 按顺序执行&…

金三银四,软件测试面试题总结,offer稳稳的。。。

前言 前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些…

【AI】计算机视觉VIT文章(Transformer)源码解析

论文:Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020 源码的Pytorch版:https://github.com/lucidrains/vit-pytorch 0.前言 …

绝缘电阻测试仪的测量范围有多少?它的测量方法是什么?

绝缘电阻测试仪广泛应用于设备检测和故障排除。它广泛应用于电力检测行业。甚至可以说,电力设备离不开绝缘电阻测试仪设备。对于许多经验丰富的电力测试工人来说,绝缘电阻测试仪的常规测量范围和方法应该非常清楚。在本文中,我们将向一些新的…

分享免费视频素材网站,第三弹

今天继续给大家分享免费视频素材网站,整理不易,觉得内容不错的话,可以点赞收藏一下哦~ 1.livelybg 一个免费视频素材小站,资源很少很少,但均为很少见的科幻、超现实、赛博朋克风格素材!&#xf…