启动YOLO进行图片物体识别

news/2024/7/11 1:21:38 标签: YOLO, 笔记

查看官方文档YOLO: Real-Time Object Detection

这些是一些模型的对比,显示了YOLO的优势,继续往下面看

CoCoData set 是一个数据库,用来训练模型,这里面有丰富的物体检测,分割数据集,图像经过了精确的segmentation进行位置的标定。

mAP 、 FLOPS 、 FPS 、 Cfg、 Wights 是什么?

mAP 是 Mean Average Precision ,平均准确率,是一种衡量模型在多个类别中平均表现的指标

FLOPS 每秒钟浮点运算次数,行量算法性能指标

FPS 每秒处理的帧数,衡量计算机或者算法的运行速度

Cfg 配置文件

Weights 代指模型的可训练参数,这些参数在训练过程中会不断调整以最小化预测误差

Our model has several advantages over classifier-based systems. It looks at the whole image at test time so its predictions are informed by global context in the image. It also makes predictions with a single network evaluation unlike systems like R-CNN which require thousands for a single image. This makes it extremely fast, more than 1000x faster than R-CNN and 100x faster than Fast R-CNN. See our paper for more details on the full system.

我们的模型相对于分类模型有几个优势。 这个模型看整个图片,他的预测是基于整张图片上下文; 单次网络评估,速度十分快。

chatgpt解释:这段介绍意味着YOLO模型相对于基于分类器的系统具有几个优势:

  1. 全局上下文

YOLO在测试时会查看整个图像,因此其预测受到了图像中的全局上下文信息的影响。这意味着模型可以更好地理解图像中物体的位置和相互关系,而不仅仅是物体的局部特征。它可以从整体上考虑图像内容,这对于目标检测非常有帮助。

单次网络评估

YOLO能够通过单次网络评估来进行目标检测预测,而不像一些其他系统(例如R-CNN)需要为单个图像执行成千上万次网络评估。这使得YOLO在实际应用中更加高效,因为它可以在更短的时间内完成目标检测任务,特别是在实时或需要快速处理大量图像的情况下。

解释:

  • 传统的分类器基础的目标检测系统通常将目标检测任务拆分成两个步骤:首先使用分类器来识别图像中是否存在特定物体类别,然后使用边界框回归来确定物体的位置。这些系统通常需要对每个候选区域执行分类器评估,这可能需要成千上万次的评估,因为每个区域都需要单独处理。这种方法可能会很慢且计算密集。
  • YOLO的设计思想是将目标检测任务作为一个端到端的回归问题,一次性通过单个神经网络评估来处理整个图像。这意味着它在单个网络评估中同时完成了位置和类别的预测,因此更加高效。此外,它在全局上下文中处理图像,这有助于提高准确性。

疑问:YOLO中是不是使用了self- attention机制?

什么是预训练模型?

This post will guide you through detecting objects with the YOLO system using a pre-trained model.

chatgpt解释:预训练模型是在大规模数据集上训练好的深度学习模型,然后将其权重和参数保存下来以供后续任务使用。这些模型通常是通过在大量数据上进行训练来学习表示数据的特征。一旦训练完成,这些模型可以被用于多种机器学习任务,包括目标检测、图像分类、文本生成等。

预训练模型的主要优点包括:

  1. 迁移学习:预训练模型可以作为迁移学习的起点,用于解决具体任务。通过使用在大规模数据集上训练的模型,可以提供更好的初始权重和特征表示,从而在小规模任务上提高性能。
  2. 节省计算资源:训练深度神经网络通常需要大量的计算资源和时间。使用预训练模型可以避免从头开始训练模型,从而节省了计算资源和时间成本。
  3. 通用特征学习:预训练模型通常在大规模数据上学习到了通用的特征表示,这些表示对于许多不同的任务都是有用的。因此,它们可以作为通用的特征提取器来使用。

在上述引用中,提到了使用预训练模型进行目标检测。这意味着作者使用了一个在大规模数据集上预先训练的深度学习模型,该模型已经学习到了有关图像中对象的特征表示。然后,作者将这个预训练模型用于目标检测任务,以便识别图像中的对象。这可以加速目标检测任务的开发,因为不需要从头开始训练模型,而可以利用现有的特征表示。

dartnet和YOLO的关系:

Darknet和YOLO(You Only Look Once)之间有密切的关系,可以简单地概括为 Darknet 是 YOLO 模型的一个开源实现和框架。

  1. Darknet:Darknet是一个开源的深度学习框架,由Joseph Redmon创建和维护。它是一个轻量级的框架,特别适用于卷积神经网络(CNN)的训练和部署。Darknet支持多种深度学习任务,包括目标检测、图像分类、图像生成等。Darknet的一个显著特点是其速度快,特别适用于实时目标检测。YOLO系列模型最初就是在Darknet框架上实现和训练的。
  2. YOLOYOLO是一种目标检测算法,旨在以实时速度检测图像中的物体。YOLO的作者之一就是Joseph Redmon,他使用Darknet框架实现了YOLO模型。YOLO将目标检测任务视为回归问题,并通过单次前向传播来执行检测。YOLO在Darknet框架内提供了相应的实现,用户可以使用Darknet来训练和部署YOLO模型。

Darknet是Pytroch 的关系?

Darknet和PyTorch是两个不同的深度学习框架,它们用于开发、训练和部署深度神经网络模型。它们之间没有直接的关系,但它们都是用于深度学习任务的工具。

  1. Darknet:Darknet是一个开源的深度学习框架,最初由Joseph Redmon创建和维护。Darknet是一个轻量级的框架,特别适用于卷积神经网络(CNN)的训练和部署。Darknet支持多种深度学习任务,包括目标检测、图像分类、图像生成等。它的设计着重于速度和效率,因此在实时目标检测等应用中表现出色。Darknet的API和工作流程与其他深度学习框架(如PyTorch、TensorFlow)有所不同。
  2. PyTorch:PyTorch是由Facebook开发的深度学习框架,它在深度学习研究和应用领域非常受欢迎。PyTorch提供了灵活、动态的计算图,使研究人员和开发人员能够更容易地构建和调试复杂的神经网络模型。PyTorch的API设计和使用方式与Python非常相似,这使得它易于学习和使用。

关于它们之间的关系:

  • Darknet和PyTorch都是深度学习框架,它们分别提供了用于构建和训练深度神经网络模型的工具和库。
  • YOLO模型,即You Only Look Once目标检测算法,最初是在Darknet框架中实现和发布的。因此,Darknet框架中包含了YOLO模型的实现。
  • 与此不同,PyTorch是一个通用的深度学习框架,用户可以使用它来实现各种类型的神经网络模型,包括目标检测模型。虽然最初没有直接支持YOLO模型,但研究人员和开发人员可以使用PyTorch来实现和训练自定义的目标检测模型。

概括来说就是Darknet 和 Pytroch 是学习框架,可以用这两个都可以实现YOLOYOLO可以理解为一个算法。

Detection Using A Pre-Trained Model

这个标题是说,我们使用预训练模型,这个是人家官方已经训练好的,我们可以直接拿来用,接下来按照流程操作即可

这个过程很简单,按照操作即可

这是我用手机拍的一张照片,然后让YOLO识别的效果

当然,我们也可以不用人家给的,可以从零开始自定义训练

Training YOLO on VOC

You can train YOLO from scratch if you want to play with different training regimes, hyper-parameters, or datasets. Here's how to get it working on the Pascal VOC dataset.

我们是要用摄像头,用摄像头是多张图片,要想快速处理要用GPU,那我没有GPU,是不是暂时就不能用摄像头测试? 具体可以参考这篇文章 Installing Darknet

YOLO可以帮助我们识别物体,我们的深度相机可以帮助我们识别到物体的坐标和距离吗?


http://www.niftyadmin.cn/n/5027823.html

相关文章

DBus笔记

包含2套总线:system bus,service bus,权限不同,system bus需要kernel或root权限dbus daemon进程提供服务, 有systemd启动dbus daemon,为system bus和service bus分别启动一个daemon。native object&#xf…

18.3 【Linux】登录文件的轮替(logrotate)

18.3.1 logrotate 的配置文件 logrotate 主要是针对登录文件来进行轮替的动作,他必须要记载“ 在什么状态下才将登录文件进行轮替”的设置。logrotate 这个程序的参数配置文件在: /etc/logrotate.conf /etc/logrotate.d/ logrotate.conf 才是主要的参…

公众号迁移需要几天?

公众号迁移后原来内容还在么?通过公众号迁移,可以实现这些目的:主体变更、开通留言功能、多号合并、订阅号升级为服务号、服务号转为订阅号。公众号迁移流程:①办理公证;②提交迁移申请;③第三方审核&#…

编译chromium错误小记

环境 win11 vs2019 如果源码拉下来的话,那么错误也不算多。 多一些python2语法的脚本但是用的python3执行的。 简单的比如str和bytes的转换就不说了 看下面一个错误 Traceback (most recent call last):File "../../build/rust/run_build_script.py", li…

C# 流Stream详解(3)——FileStream源码

【FileStream】 构造函数 如果创建一个FileStream,常见的参数例如路径Path、操作方式FileMode、权限FileAccess。 这里说下FileShare和SafeFileHandle。 我们知道在读取文件时,通常会有两个诉求:一是如何更快的读取文件内容;二…

简单介绍十款可以免费使用的API测试工具

API开发应该是后端开发最常见的工作,而调试和测试API是非常关键的,这篇文章简单介绍几款常用的工具以供大家参考。 SoapUI SoapUI是很老牌的工具的,在之前Webservice盛行的时候经常会用到。 现在官方推出了Pro版本的ReadyAPI,但要…

Git 版本控制系统 笔记

概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容【团队开发同一个项目的代码版本管理】 1、Git 安装 之前写了&#xff0…

关于OxyPlot.Wpf包没有Plot控件问题

一、OxyPlot.Wpf 控件信息 GitHub:https://github.com/oxyplot/oxyplot 官方文档地址:https://oxyplot.readthedocs.io/en/latest/index.html 在网上查了好久T^T 最后安装了2.0.0版本就出现了