当前位置: 首页 > news >正文

YOLO检测环境安装配置

YOLO介绍

YOLO学习手册:YOLO教程

YOLO [ˈjoʊloʊ](You Only Look Once)是一种快速而准确的目标检测算法,由Joseph Redmon等人在2016年提出。YOLO被广泛应用于计算机视觉领域,包括实时视频分析、自动驾驶、安防监控、智能交通、缺陷检测等。与传统的目标检测方法不同,YOLO将目标检测问题视为一个单一的回归问题,从输入图像的像素到输出的边界框和类别。

在YOLO诞生之前,目标检测领域热门的深度学习模型是R-CNN系列模型,称之为二阶段模型(two-stage),其大致思路是先找出可能含有物体的区域,进而再找出这片区域内的物体是什么,在哪个位置。这类模型的特点是准确率较高,但是速度较慢,难以做到实时检测。

YOLO版本特点

YOLO算法自推出以来,经过了多个版本的更新,每个版本都带来了不同的改进和优化。以下是各主要版本的改进功能:

YOLO v1

  • YOLO v1是在2016年提出的,首次将目标检测任务简化为一个单一的回归问题。
  • 单阶段检测:使用一个单一的卷积神经网络(CNN)在一次前向传播中完成目标检测。
  • 速度快:具有较高的检测速度,能够实现实时检测。

YOLO v2 (YOLO9000)

  • 改进特征提取网络:使用Darknet-19作为特征提取网络,提升模型的特征提取能力。
  • Batch Normalization:引入了批量归一化,提升了模型的稳定性和收敛速度。
  • 高分辨率分类器:在分类任务中使用高分辨率图像进行训练,提升了特征提取的细节能力。
  • 多尺度训练:在训练过程中随机改变输入图像的分辨率,提高了模型对不同尺度目标的适应性。
  • 使用Anchor Boxes:引入了先验框(anchor boxes),提高检测精度,特别是对小目标。

YOLO v3

  • 改进特征提取网络:使用了Darknet-53作为特征提取网络,提高了模型的表现力。
  • 多尺度预测:在不同的特征层上进行目标预测,能够更好地处理不同尺度的目标。
  • 改进Anchor Boxes:对anchor boxes进行了重新设计和优化,进一步提升了检测精度。
  • 分类损失函数:采用了二元交叉熵损失函数,提高了分类的鲁棒性。

YOLO v4

  • 改进特征提取网络:使用了CSPDarknet53,结合了跨阶段部分网络(CSPNet),减少了计算量并提高了准确性。
  • Bag of Freebies和Bag of Specials:通过引入各种训练技巧(如Mosaic数据增强、Self-Adversarial Training)和推理技巧(如Mish激活函数、CIOU损失函数),提升了模型性能。
  • 改进的Post-Processing:引入了DIoU-NMS,减少了非极大值抑制(NMS)过程中对目标框的误删。

YOLO v5

  • PyTorch实现:YOLO v5由Ultralytics发布,基于PyTorch实现,简化训练和部署流程。
  • 轻量化和模块化设计:提供多种模型规模(如YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x),适应不同的应用需求。
  • 自动锚点生成:引入了自动锚点生成机制,进一步优化了anchor boxes。
  • 高效的数据增强:包括Mosaic、MixUp等数据增强技术,提升了模型的鲁棒性。

YOLO v6

  • 2022 年由美团开源,目前已用于该公司的许多自主配送机器人。
  • 更高效的架构:引入了更高效的特征提取网络和优化的检测头,进一步提升了检测速度和精度。
  • 改进的训练策略:包括更高效的学习率调度、数据增强和损失函数优化。
  • 更强的泛化能力:在不同数据集上的表现更加稳定和优异。

YOLO v7

  • 优化网络结构:进一步优化网络结构,使得模型在保证精度的同时提高了推理速度。
  • 更好的多尺度检测:改进了多尺度检测策略,提高了对小目标和大目标的检测精度。
  • 集成更多特性:结合了YOLO v4和v5中的许多先进技术,进一步提升了整体性能。

YOLO v8

  • YOLOv8 支持全方位的视觉 AI 任务,包括检测、分割、姿态估计、跟踪和分类。

YOLO v9

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

YOLO运行环境

YOLO搭建实例:YOLO教程

YOLO依赖python和pytorch,可跨平台运行,由于网络环境等原因,尽量使用国内镜像或离线方式安装。

安装Python3

下载Python安装包并安装Python环境。Python官网:https://www.python.org/

安装Pytorch

PyTorch是一个开源的深度学习框架,该框架由Facebook人工智能研究院开发,底层基于Torch,但实现与运用全部是由Python来完成。 PyTorch官网:https://pytorch.org

如果显卡不支持CUDA,选择CPU版本,生成在线安装命令(需联网下载):
conda install pytorch torchvision torchaudio cpuonly -c pytorch

安装完成后,运行python程序验证是否成功

import torchprint(torch.__version__)
print(torch.cuda.is_available())

下载YOLO

以YOLOv5为例,YOLO下载地址:https://github.com/ultralytics/yolov5/archive/refs/tags/v7.0.zip

目录结构:
data: 数据集相关,包括训练集、验证集和测试集的配置信息,以及数据增强脚本等。
models: 预训练模型和自定义模型文件,包括权重文件和配置文件等。
utils: 工具函数库,包含一些辅助函数,例如数据处理、可视化和模型评估等。
train.py: 训练脚本,用于启动训练过程。
detect.py: 检测脚本,用于使用训练好的模型进行目标检测。
val.py: 验证脚本,用于评估模型在验证集上的性能。
export.py: 导出脚本,用于将训练好的模型导出为其他格式,例如 ONNX 或 TensorRT。
requirements.txt: 项目依赖库列表。
README.md: 项目说明文档。

安装YOLO依赖包:pip install -r requirements.txt

检测图片

YOLO目录自带2张图片,可以直接运行检测程序:python detect.py

检测视频

指定视频文件作为输入源,如下命令检测视频目标物:
python detect.py --source ./data/video/test.mp4

以上是使用YOLO自带模型和图片,运行比较容易。在实际应用中,需要针对场景和目标物,整理自己的数据和训练模型,还是比较花时间的。如何训练模型和指定目标物,可参考YOLO学习手册:YOLO教程

YOLO应用前景

YOLO有一些限制和局限性,需要针对不同的应用场景选取合适的算法。随着计算机视觉和人工智能技术的不断发展,YOLO 检测技术有望得到广泛应用。对于自动驾驶、安防监控、智能交通等领域,YOLO 的快速准确的目标检测能力将发挥重要作用。同时,随着硬件性能的提升和算法优化的不断完善,YOLO 算法的性能和效果也将不断提升,为各种实时场景下的目标检测任务提供更好的解决方案。

YOLO检测环境安装配置YOLO实例 检测环境安装配置icon-default.png?t=N7T8https://blog.oxings.com/article/117

相关文章:

YOLO检测环境安装配置

YOLO介绍 YOLO学习手册:YOLO教程 YOLO [ˈjoʊloʊ](You Only Look Once)是一种快速而准确的目标检测算法,由Joseph Redmon等人在2016年提出。YOLO被广泛应用于计算机视觉领域,包括实时视频分析、自动驾驶、安防监控、…...

NOSQL -- ES

第三个我们比较常用的NOSQL类型的数据库 --- ES 介绍: ES的全称(Elasticsearch) ES是一个分布式全文搜索的引擎 也就是我们平常在购物, 搜索东西的时候常用的, 就是一个ES的类型, 分布式全文搜索引擎 查询原理: 1>分词: 在查询之前, 其会将一些数据拆分开, 按照词进行拆分…...

【Python基础】名称空间和作用域

1.名称空间 将栈区进行分类,这些分类就是名称空间 名称空间存放什么名字空间个数何时创建&销毁内置名称空间built-inPython解释器内置的名字1个Python解释器启动&解释器关闭 全局名称空间 global Python文件内定义的类名,变量名,模块…...

安全智能预警软件有人试图窃取会立即发出高分贝警报已解锁VIP功能

一款手机安全智能预警软件,无论是网吧还是餐馆小聚,您的手机都能得到贴心的守护,一旦有人试图窃取,应用会立即发出高分贝警报,确保您在公交、地铁、商场等拥挤环境中依然能牢牢掌控手机。(解锁专业版&#…...

DeepSORT(目标跟踪算法)中自由度决定卡方分布的形状

DeepSORT(目标跟踪算法)中自由度决定卡方分布的形状 flyfish 重要的两个点 自由度决定卡方分布的形状(本文) 马氏距离的平方在多维正态分布下服从自由度为 k 的卡方分布 独立的信息 在统计学中,独立的信息是指数据…...

cordic IP核中,sin and cos的使用

参考视频:FPGA IP之CORDIC_哔哩哔哩_bilibili FPGA IP之CORDIC使用与仿真_哔哩哔哩_bilibili 一、参数说明 functional selection rotate是旋转,sin and cos是计算这两个三角函数,sinh和cosh是计算双曲正弦和双曲余弦 phase format 对于…...

SpringSecurity入门(三)

12、密码加密 12.1、不指定具体加密方式,通过DelegatingPasswordEncoder,根据前缀自动选择 PasswordEncoder passwordEncoder PasswordEncoderFactories.createDelegatingPasswordEncoder();12.2、指定具体加密方式 // Create an encoder with streng…...

luogu-P10570 [JRKSJ R8] 网球

题目传送门: [JRKSJ R8] 网球 - 洛谷https://www.luogu.com.cn/problem/P10570 解题思路 数学问题,暴力这个范围会超时。 首先,找出这两个数的最大公因数,将这两个数分别除以最大公因数,则这两个数互质,判…...

ASP.NET的WebService跨域CORS问题解决方案

ASP.NET WebService 跨域(CORS, Cross-Origin Resource Sharing)问题通常发生在当您尝试从不同的源(域名、协议或端口)调用 WebService 时。浏览器由于安全原因,默认会阻止此类跨域请求。为了解决这个问题,您需要在 WebService 服务器端配置 CORS。 以下是在 ASP.NET We…...

大众点评全国爱车店铺POI采集177万家-2024年5月底

大众点评全国爱车店铺POI采集177万家-2024年5月底 店铺POI点位示例: 店铺id H69Y6l1Ixs2jLGg2 店铺名称 HEEJOO豪爵足道(伍家店) 十分制服务评分 7.7 十分制环境评分 7.7 十分制划算评分 7.7 人均价格 134 评价数量 2982 店铺地址 桔城路2号盛景商业广场1-3…...

【文献阅读】LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

目录 1. motivation2. overall3. model3.1 low rank parametrized update matrices3.2 applying lora to transformer 4. limitation5. experiment6. 代码7. 补充参考文献 1. motivation 常规的adaptation需要的微调成本过大现有方法的不足: Adapter Layers Introd…...

Rust学习06:使用CSDN的AI工具“C知道”分析代码错误

朋友们,我最近真的是在绝望的边缘了! Rust咋这么蓝涅! 资料咋这们少涅! 记得学Python的时候,基本上你遇到的所有问题都可以在书上或者网上找到答案,中文世界找不到那么在英文世界一定能找到答案。 我猜&…...

MeiliSearch-轻量级且美丽的搜索引擎

MeiliSearch-轻量级且美丽的搜索引擎 MeiliSearch 是一个功能强大、快速、开源、易于使用和部署的搜索引擎。它具有以下特点: 支持中文搜索:MeiliSearch 对中文有良好的支持,不需要额外的配置。高度可定制:搜索和索引都可以高度…...

python使用wkhtmltopdf将html字符串保存pdf,解决出现方框的问题

出现的问题&#xff1a; 解决办法&#xff1a; <html> <head><meta charset"UTF-8"/> </head> <style> * {font-family: Arial,SimSun !important; } </style> </html>在html字符串前面加上上面代码&#xff0c;意思是设…...

Java练习题

题目&#xff1a; 1. 定义长方体类Cuboid&#xff0c;要求如下&#xff1a;&#xff08;1&#xff09;私有成员变量包括长length、宽width和高height&#xff1b;&#xff08;2&#xff09;构造方法包括一个公共的空构造方法&#xff0c;一个能够初始化所有成员变量的构造方法…...

【Python/Pytorch - 网络模型】-- 手把手搭建U-Net模型

文章目录 文章目录 00 写在前面01 基于Pytorch版本的UNet代码02 论文下载 00 写在前面 通过U-Net代码学习&#xff0c;可以学习基于Pytorch的网络结构模块化编程&#xff0c;对于后续学习其他更复杂网络模型&#xff0c;有很大的帮助作用。 在01中&#xff0c;可以根据U-Net…...

Ansible-doc 命令

目录 常用参数 基本用法 查看指定模块的文档 列出所有可用模块 搜索模块 显示模块参数的简单列表 显示详细的说明和示例 详细示例 查看 file 模块的文档 简略查看 copy 模块的参数 ansible-doc 是 Ansible 中的一个非常有用的命令行工具&#xff0c;它可以帮助你查找…...

面试题:什么是线程的上下文切换?

线程的上下文切换是指在操作系统中&#xff0c;CPU从执行一个线程的任务切换到执行另一个线程任务的过程。在现代操作系统中&#xff0c;为了实现多任务处理和充分利用CPU资源&#xff0c;会同时管理多个线程的执行。由于CPU在任意时刻只能执行一个线程&#xff0c;因此需要在这…...

【简单讲解Perl语言】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

专硕初试科目一样,但各专业的复试线差距不小!江南大学计算机考研考情分析!

江南大学物联网工程学院&#xff0c;是由江南大学信息工程学院和江南大学通信与控制工程学院&#xff0c;于2009年合并组建成立“物联网工程学院”&#xff0c;也是全国第一个物联网工程学院。 江南大学数字媒体学院是以江南大学设计学院动画系和信息工程学院数字媒体技术系为…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

结构化文件管理实战:实现目录自动创建与归类

手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题&#xff0c;进而引发后续程序异常。使用工具进行标准化操作&#xff0c;能有效降低出错概率。 需要快速整理大量文件的技术用户而言&#xff0c;这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB&#xff0c;…...