三、计算机视觉_06YOLO基础知识

1、YOLO概述

1.1 定义

YOLO(You Only Look Once)是一种流行的对象检测和图像分割模型,由华盛顿大学的 Joseph Redmon 和 Ali Farhadi 于 2015 年推出,因其高速和准确性而迅速受到欢迎

在目标检测领域,传统方法(如R-CNN系列算法)将目标检测分为两个阶段:

  • 首先使用区域候选网络(RPN)提取候选目标信息

  • 然后通过检测网络完成对候选目标的位置和类别的预测和识别

YOLO作为一种单阶段检测算法,并不需要使用RPN,它通过单次网络前向传播即可完成目标检测任务(所以命名为“You Only Look Once”,即“你只需要看一次”)

1.2 发展史

YOLO自 2015 年首次提出至今,经历了多个版本的迭代:(最新版本可见官网https://docs.ultralytics.com)

  • YOLOv2 于 2016 年发布,通过合并批量规范化、锚框和维度集群改进了原始模型

  • YOLOv3 于 2018 年推出,使用更高效的主干网络、多个锚点和空间金字塔池进一步增强了模型的性能

  • YOLOv4 于 2020 年发布,引入了 Mosaic 数据增强、新的无锚点检测头和新的损失函数等创新

  • YOLOv5 进一步提高了模型的性能,并添加了新功能,例如超参数优化、集成实验跟踪和自动导出为流行的导出格式

  • YOLOv6 由美团于 2022 年开源,并被用于该公司的许多自主送货机器人

  • YOLOv7 添加了其他任务,例如对 COCO 关键点数据集进行姿态估计

  • YOLOv8 由 Ultralytics 于 2023 年发布。YOLOv8 引入了新功能和改进,以增强性能、灵活性和效率,支持全方位的视觉 AI 任务

  • YOLOv9 引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等创新方法

  • YOLOv10 由清华大学的研究人员使用 UltralyticsPython 包创建。此版本通过引入端到端头来提供实时对象检测改进,消除了非最大抑制 (NMS) 要求

  • YOLO11 是Ultralytics 的最新 YOLO 模型,在多项任务(包括检测、分割、姿态估计、跟踪和分类)中提供最先进的 (SOTA) 性能,利用了各种 AI 应用程序和领域的功能

1.3 核心原理

YOLO的核心原理是将目标检测任务视为一个回归问题,它将图像分割成一个个网格,然后对每个网格预测固定数量的边界框和相应的类别,并使用非极大值抑制(NMS)来合并重叠的预测框

2、重要文件

在YOLO的使用过程中,.yaml.pt 是两个非常重要的文件

2.1 .yaml 文件

.yaml 文件是YOLO配置文件,它包含了模型训练和检测过程中所需的参数和设置,这些参数包括但不限于模型架构、输入输出尺寸、类别数量、训练参数(如学习率、批处理大小、迭代次数等)以及数据集的路径

例如,一个典型的YOLO .yaml 文件可能包含以下内容:

# YOLOv5 model configuration
model:
  name: YOLOv5
  type: YOLOv5
  args:
    model_type: small  # Model type, can be 'small', 'medium', 'large', 'xlarge', 'huge'
train:
  batch_size: 16
  epochs: 300
  learning_rate: 0.001
  data: "path/to/dataset.yaml"  # Path to dataset .yaml file

这个文件通常在训练开始之前被创建或修改,以适应特定的任务和数据集

2.2 .pt 文件

.pt 文件是PyTorch模型权重文件,它包含了训练好的模型参数,在YOLO中,一旦模型被训练完成,其权重就会被保存为 .pt 文件,以便后续的模型评估、推理或继续训练

.pt 文件是PyTorch特有的格式,可以被直接加载到PyTorch模型中,用于进行预测或进一步的训练,例如:

model = torch.load('path/to/model.pt')

.pt 文件是模型训练的成果,可以被用来在不同的环境和应用中部署YOLO模型

3、Ultralytics YOLO源码安装

Ultralytics YOLO 是广受赞誉的 YOLO (You Only Look Once) 系列的最新进展,用于实时对象检测和图像分割,它基于之前的版本构建,引入了新功能和改进,以提高性能、灵活性和效率,并支持各种视觉 AI 任务,例如检测、分割、姿势估计、跟踪和分类等

根据官网(https://docs.ultralytics.com/quickstart/#install-ultralytics)内容可知,Ultralytics YOLO有pip、conda、源码、docker这四种安装方法,本文主要介绍大家常用的pip和源码这两种安装方式

3.0 torchvision

计算机视觉与深度学习密不可分,而深度学习中目前最主流的框架就是pytorch,在安装pytorch(https://pytorch.org/get-started/locally)时,建议把torchvision也一起安装上,这样才能使用YOLO

3.1 pip安装

直接在有python解释器的环境下执行以下命令即可

pip install ultralytics

ps:如遇网速不佳的问题,可尝试以下命令

pip install --index-url https://mirrors.aliyun.com/pypi/simple ultralytics

3.2 源码安装

实际开发中,我们可能会对YOLO源码进行一定的修改,以满足一些个性化的需求

因此,如果想学习YOLO或基于YOLO进行项目开发,则推荐使用源码的方式进行YOLO的安装,具体安装方法如下

Step1:安装git

要确保电脑上有git,然后才能执行Step2中正式的安装操作

git的安装方法:访问官网https://git-scm.com/downloads,根据自己的操作系统,进行对应安装包的下载,并进行常规安装即可(如windows系统下载的是.exe文件,和平常装其他软件一样,双击安装即可)

Step2:安装yolo

打开git命令行,依次执行以下命令

git clone https://github.com/ultralytics/ultralytic

由于是国外网址,下载会比较慢,如遇网络不佳,可在闲时多试几次

上述命令执行完毕之后,会在git命令行执行目录中得到ultralytics文件夹(默认情况下,在哪里运行git,就会下载到哪里,比如我在windows电脑桌面执行,则会下载到桌面)

有了ultralytics文件夹之后,建议将其复制粘贴到一个合适的地方进行保存,比如我将其存放到了D盘的AIPackage目录下,避免以后对其进行了误删除

最后,我们在存放ultralytics文件夹的目录下,打开命令行黑窗口

进入命令行黑窗口后,依次执行以下两个命令进行安装即可

cd ultralytics

pip install -e .

4、官网demo示例

针对下图进行目标检测

三行代码打天下

# 引入YOLO
from ultralytics imort YOLO

# 加载模型:N, S, M, L, X
model = YOLO("yolo11n.pt")

# 模型预测
results = model("https://ultralytics.com/images/bus.jpg")

备注:如果运行代码时,因为网络原因难以请求到https://ultralytics.com/images/bus.jpg,则可以先直接在浏览器访问此网址,下载对应的bus.jpg图片,然后放到上面三行代码的同级目录中,并修改最后一行代码为

results = model("./bus.jpg")

运行结果:

image 1/1 D:\jupyterPythonCodes\CV\day10\codes\bus.jpg: 224x224 minibus 0.57, police_van 0.34, trolleybus 0.04, recreational_vehicle 0.01, amphibian 0.01, 6.0ms Speed: 42.0ms preprocess, 6.0ms inference, 0.0ms postprocess per image at shape (1, 3, 224, 224)

结果解析:

运行结果提供了关于检测过程和性能的详细信息:

  • 图像信息:image 1/1 D:\jupyterPythonCodes\CV\day10\codes\bus.jpg: 224x224 minibus 0.57, police_van 0.34, trolleybus 0.04, recreational_vehicle 0.01, amphibian 0.01, 6.0ms

    • 这表明在处理的第一张图像中(共一张),检测到的物体包括小巴(minibus)概率为0.57,警车(police_van)概率为0.34等,这些概率表示模型对检测到的物体属于各个类别的置信度
    • 224x224指的是图像的尺寸
    • 6.0ms指的是模型进行单张图像推理所需的时间
  • 速度信息:Speed: 42.0ms preprocess, 6.0ms inference, 0.0ms postprocess per image at shape (1, 3, 224, 224)

    • 42.0ms preprocess:图像预处理所需的时间
    • 6.0ms inference:模型推理所需的时间
    • 0.0ms postprocess:后处理所需的时间
    • per image at shape (1, 3, 224, 224):这些操作是针对每张图像的,图像的维度是1(批次大小),3(颜色通道),224(高度),224(宽度)

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

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

相关文章

Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介

Python Matplotlib数据可视化全面解析:选择它的七大理由与入门简介 本文介绍了Matplotlib这一强大而灵活的数据可视化工具,涵盖其基本概念、独特优势以及为何在众多Python绘图库中脱颖而出。Matplotlib具有广泛的社区支持、高度自定义能力、多样的绘图类…

【Spring Boot】用 MyBatis 实现数据的 CRUD

用 MyBatis 实现数据的 CRUD 1.创建项目 & 引入依赖2.实现数据表的自动初始化3.实现实体对象建模4.实现实体和数据表的映射关系5.实现增加、删除、修改和查询功能6.配置分页功能6.1 增加分页支持6.2 创建分页配置类 7.实现分页控制器8.创建分页视图 本篇博客将通过 MyBatis…

数据结构-二叉树_堆

目录 1.二叉树的概念 ​编辑1.1树的概念与结构 1.2树的相关语 1.3 树的表示 2. ⼆叉树 2.1 概念与结构 2.2 特殊的⼆叉树 2.2.2 完全⼆叉树 2.3 ⼆叉树存储结构 2.3.1 顺序结构 2.3.2 链式结构 3. 实现顺序结构⼆叉树 3.2 堆的实现 3.2.2 向下调整算法 1.二叉树的概…

独家原创 | SCI 1区 高创新预测模型!

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD变体分解效果最好算法——CEEMDAN(五)-CSDN博客 拒绝信息泄露!VMD滚动分…

IDEA+Docker一键部署项目SpringBoot项目

文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问题…

Arcgis 地图制作

地图如下,不同历史时期:

【K8S系列】Kubernetes 中如何调试imagePullSecrets配置详细步骤介绍

调试 imagePullSecrets 配置是确保 Kubernetes 能够成功拉取私有镜像所需的关键步骤。以下是详细的调试步骤和建议。 1. 确认 imagePullSecrets 配置 首先,确保在 Pod 的 YAML 配置中正确引用了 imagePullSecrets。其基本结构如下: apiVersion: v1 kin…

山东春季高考-C语言-综合应用题

(2018年)3.按要求编写以下C语言程序: (1)从键盘上输入三个整数a、b、c,判断能否以这三个数为边构成三角形,若可以则计算机三角形的面积且保留两位小数;若不可以则输出“不能构成三角…

UE5 第一人称射击项目学习(二)

在上一章节中。 得到了一个根据视角的位置创建actor的项目。 现在要更近一步,对发射的子弹进行旋转。 不过,现在的子弹是圆球形态的,所以无法分清到底怎么旋转,所以需要把子弹变成不规则图形。 现在点开蓝图。 这里修改一下&…

如何实现点击目录跳转到指定位置?【vue】

需求&#xff1a;实现目录点击跳转到指定位置&#xff0c;点击后直接定位到指定模块 效果&#xff1a; 实现方法&#xff1a; &#xff08;1&#xff09;a标签跳转 普通使用&#xff1a; <!DOCTYPE html> <html><head><title>a-Demo</title>&l…

使用chrome 访问虚拟机Apache2 的默认页面,出现了ERR_ADDRESS_UNREACHABLE这个鸟问题

本地环境 主机MacOs Sequoia 15.1虚拟机Parallels Desktop 20 for Mac Pro Edition 版本 20.0.1 (55659)虚拟机-操作系统Ubuntu 22.04 服务器版本 最小安装 开发环境 编辑器编译器调试工具数据库http服务web开发防火墙Vim9Gcc13Gdb14Mysql8Apache2Php8.3Iptables 第一坑 数…

deepin系统下载pnpm cnpm等报错

deepin系统下载pnpm cnpm等报错 npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired 报错提示证书过期&#xff0c;执行以下命令 npm config set registry https://registry.npmmirror.com下载pnpm npm install pnpm -g查…

零基础上手WebGIS+智慧校园实例(1)【html by js】

请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01; 等下再更新一下1. WebGIS矢量图形的绘制&#xff08;超级详细&#xff01;&#xff01;&#xff09;&#xff0c;2. WebGIS计算距离&#xff0c; 以及智慧校园实例 with 3个例子&#xff01;&#xff01;…

Matlab 答题卡方案

在现代教育事业的飞速发展中&#xff0c;考试已经成为现代教育事业中最公平的方式方法&#xff0c;而且也是衡量教与学的唯一方法。通过考试成绩的好与坏&#xff0c;老师和家长可以分析出学生掌握的知识多少和学习情况。从而老师可以了解到自己教学中的不足来改进教学的方式方…

【实操之 图像处理与百度api-python版本】

1 cgg带你建个工程 如图 不然你的pip baidu-aip 用不了 先对图片进行一点处理 $ 灰度处理 $ 滤波处理 参考 import cv2 import os def preprocess_images(input_folder, output_folder):# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_fol…

Python小游戏28——水果忍者

首先&#xff0c;你需要安装Pygame库。如果你还没有安装&#xff0c;可以使用以下命令进行安装&#xff1a; 【bash】 pip install pygame 《水果忍者》游戏代码&#xff1a; 【python】 import pygame import random import sys # 初始化Pygame pygame.init() # 设置屏幕尺寸 …

基于SpringBoot的校园二手商品在线交易系统+含项目运行说明文档

一、项目技术栈 二、项目功能概述 管理员可以完成的功能包括管理员登录、管理员首页展示、系统设置、物品管理、学生管理、评论管理、举报管理、新闻公告、网站设置等&#xff0c;前台的客户可以进行查看所有商品分类、搜索商品、登录或注册、发布商品、求购商品等。 三、部分…

最新Kali安装详细版教程(附安装包,傻瓜式安装教程)

本文主要详细介绍 kali 的安装过程&#xff0c;以及安装完成后的基本设置&#xff0c;比如安装增强工具&#xff0c;安装中文输入法以及更新升级等操作。 文章目录 实验环境准备工作步骤说明安装虚拟机安装 Kali安装增强工具安装中文输入法更新升级 实验环境 VMware &#x…

将网站地址改成https地址需要哪些材料

HTTPS&#xff08;安全超文本传输协议&#xff09;是HTTP协议的扩展。它大大降低了个人数据&#xff08;用户名、密码、银行卡号等&#xff09;被拦截的风险&#xff0c;还有助于防止加载网站时的内容替换&#xff0c;包括广告替换。 在发送数据之前&#xff0c;信息会使用SSL…

React基础知识一

写的东西太多了&#xff0c;照成csdn文档编辑器都开始卡顿了&#xff0c;所以分篇写。 1.安装React 需要安装下面三个包。 react:react核心包 react-dom:渲染需要用到的核心包 babel:将jsx语法转换成React代码的工具。&#xff08;没使用jsx可以不装&#xff09;1.1 在html中…