【记录】Yolov5官网下载避坑记录

news2024/11/25 15:56:54

写在前面:刚开始接触Yolov5时,对一些基础的概念很模糊,在官网下载也不知道该下载什么版本好。后续更是遇到了一些奇奇怪怪的坑。在此记录一下最初的研究过程,顺带填一下yolov5避坑专栏后面的坑。

目录

一、Yolov5误区

二、官网怎么下载对应的版本

三、部署项目可能会遇到的问题


一、Yolov5误区

        YOLOv5 是一个最新版本的 You Only Look Once (YOLO) 系列实时物体检测算法。YOLO 是一种将物体检测视为单一回归问题的方法,直接从图像像素预测出坐标框和类概率。这使得其具有更快的运行速度,尤其在实时应用中表现出色。YOLOv5 在原有 YOLO 系列的基础上进行了优化,旨在提高精度和速度。        

  1. YOLOv5 不是官方 YOLO:虽然名称中含有 "YOLO",但 YOLOv5 并非 YOLO 的创始人 Joseph Redmon 的官方版本。它是由另一个开发者组织创建并持续更新的。因此,有些人可能会误以为 YOLOv5 是 YOLO 官方的最新版本。

  2. 关于性能:YOLOv5 在许多基准测试中表现出色,但这并不意味着它在所有场景和应用中都是最佳选择。其他物体检测算法,如 Faster R-CNN、SSD 或者 YOLO 的其他版本(比如 YOLOv4)可能在某些特定情况下表现得更好。

  3. 代码质量和研究质量:YOLOv5 的代码非常易用,易于理解和修改,这也是其广受欢迎的原因之一。然而,代码质量和研究质量是两回事。研究质量涉及到算法的创新性、实验设计的严谨性、结果的公平性和可复制性等。尽管 YOLOv5 在实践中广受欢迎,但有些人批评其在发布时缺乏适当的学术论文和对新特性的深度解释。

  4. 超参数优化:YOLOv5 通过大量的超参数优化获得了较高的性能。然而,这种优化过程可能在不同的数据集和任务上有不同的效果,不能简单地推广到所有的场景中。因此,用户需要理解这一点,避免错误地认为 YOLOv5 总能提供最佳性能。

  5. Yolov5拥有很多个迭代版本,不要错误的将yolov5理解成一个版本。在后面下载的时候会发现,不同版本所需要的包不同,性能也不同,当然你踩得坑也不同。我们在网上学习参考很多博主的博客,他们下载的版本很可能和你的不一致。

二、官网怎么下载对应的版本

官网的访问地址和界面如下所示,如果直接下载的话,下载的是yolov5-master版本,这个版本感觉更新非常快,有点像体验服,刚开始我配置的时候一堆问题,如果你下载的这个版本,你的pip一定要升级到最新版,要不然很多包找不到版本

Yolov5官网https://github.com/ultralytics/yolov5/tree/master

  那如何找到适合的版本呢?

        在官网找到tag就可以看到所有稳定的版本了,我目前测试了v5.0,v6.2,v7.0感觉都挺可以的,部署起来很丝滑。我的建议是用最新版吧,性能方面会好一些。

 下面介绍一个后面训练过程中会遇到的坑!

当你选择好自己下载的版本,假设你下载的是v7.0版本,后面当你执行:

python detect.py

测试训练时,他会寻找一个默认的网络模型weight=yolov5s.pt,这个文件一开始是没有的,执行命令后,会自动下载。这时候可能会遇到两个问题:

(1)超时:因为是外网,所以很容易超时报错。

(2)不匹配:因为不同版本的yolov5s.pt不一样,下载完成之后,可能会因为不匹配而报错。我当时就遇到了这个问题。

解决措施:官网自行下载

1. 进入官网首页,点击如下位置

 2. 根据你下载的版本,找到对应的标题。比如我下载的是v7.0,那我就点击下图对应的标题。

 3. 点击对应的标题后,就会进入如下界面

 4. 在这个页面滚动到文章末尾,这里有很多网络模型,点击下载yolov5s.pt即可。

 5. 下载完成后,将这个文件放在项目的根目录下即可。然后再执行检测命令,就可以了。如果你更精通一些,也可以选择其他的网络模型,但你执行的时候需要将参数带上。比如:

python detect.py --weights *.pt(你的网络模型)

三、部署项目可能会遇到的问题

问题一:部署安装包

如果你是在window上部署yolov5项目,当你执行安装包命令:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

大概率你会出现这个警告,立即使用ctrl+c终止安装,这个警告需要解决。(当然如果你是在linux上安装,是没有这个问题的。)

原因:系统编码不一致导致,没有设置全为UTF-8。

解决:配置全局UTF-8

  1. 打开设置
  2. 选择时间和语言
  3. 选择日期、时间和区域格式设置
  4. 选择其他日期、时间和区域设置
  5. 选择设置时间和日期
  6. 选择管理
  7. 选择更改系统区域设置
  8. 勾选beta版本,点击确定
  9. 重新启动电脑

然后重新执行安装命令,就会发现问题解决,顺利安装所有的包,成功安装结果如下:

 安装完成后,必须将系统编码配置还原,需要重复上述步骤取消勾选,然后重启电脑。

问题二:执行训练

window中,当你执行训练命令:

python train.py

可能会报环境的错误,这时你需要在train.py中加上以下代码:

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

 关于这个的原因:

jupyter notebook - what does os.environ['KMP_DUPLICATE_LIB_OK'] actually do? - Stack Overflowhttps://stackoverflow.com/questions/74217717/what-does-os-environkmp-duplicate-lib-ok-actually-do

 训练成功结果:

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

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

相关文章

UVM中sequence机制-数据产生及传递机制

一 基础知识 参考 UVM——sequence机制(数据激励的产生、配置方式)_uvm激励_SD.ZHAI的博客-CSDN博客https://blog.csdn.net/weixin_46022434/article/details/105600081 1.1 sequence执行流程 1.2 sequence的启动方式 1.3 sequence数据产生--body()

TortoiseGit 入门指南03:将修改提交到版本库

你现在应该已经有了一个仓库,在工作过程中会对项目做一些修改,比如添加代码、修复错误等等,你将不定时的将这些更改 提交(commit)到代码仓库。 术语 提交 是将 暂存区 内容放入 版本库 。这个过程涉及到 Git 的一些基…

如何对你的代码进行内存消耗分析

对象生命周期 下面两种创建对象的语句有什么不同呢? 对于 Object myObject;,该对象被创建在栈上,它的特点就是脱离作用域后会自动销毁。而对于 new Object(),它会在堆上动态创建一个对象,它的特点就是即使脱离作用域,该对象也会一直存在,除非你手动释放(delete)它,否…

Layui 简单介绍及入门

目录 一.Layui (国产品牌) 1.1 Layui是什么 二.比较layui和easyui,bootstrap的区别 2.1 layui和bootstrap的对比 2.2 layui和easyui对比 三.Layui入门 四.案例 一.Layui (国产品牌) 1.1 Layui是什么 用我的话来…

峟思科普:水库坝体的裂缝防治措施有哪些

水库大坝的建设与施工是一项庞大的系统工程,它包括设计、施工、监理等各个环节。而裂缝问题是整个工程中最常见的问题之一,大坝工程中出现裂缝是一件很严重的事,不仅影响大坝的使用寿命,而且严重影响水库工程的整体效益。坝体裂缝…

让GPT来聊聊目前软件测试行业的就业形式

最近两个月一直处于忙碌状态:跳槽、转行、学习新的编程语言(Python Golang)、赶工期、面试招人……也正是这一些列的经历,对目前的就业形势和软件从业人员的发展有了一些新的观察和思考,在这篇文章分享给大家。 整体…

亚马逊云科技143项安全标准与合规性认证,帮助企业满足安全合规要求

在亚马逊云科技,为满足客户不断变化的需求,亚马逊云科技持续创新与迭代,设计的服务能帮助客户满足最严格的安全和合规性要求。针对安全相关工作,亚马逊云科技服务团队与Amazon Security Guardians云守护者项目密切配合&#xff0c…

Jira Tempo :如何创建 Dynamic Dropdown 类型的 Work Attributes?

官方示例: Jira Tempo 可以创建以下类型的工作属性(Work Attributes): 其中,Dynamic Dropdown 支持外部接口,可以自己提供一个接口连接,如下: 官方示例中,给了一个 php 版本的示例…

UVM学习笔记--寄存器模型 Register Model

1.寄存器模型( Register model )简介 UVM的寄存器模型是一组高级抽象的类,用来对DUT中具有地址映射的寄存器和存储器进行建模。它非常贴切的反映DUT中寄存器的各种特性,可以产生激励作用于DUT并进行寄存器功能检查。通过UVM的寄存器模型&#xf…

通信算法之176: 基于Matlab的OFDM通信系统关键基带算法设计6-流程

一. 接收算法流程 粗同步(分组检测) 载波同步(精细频偏估计) 精同步(OFDM起始,符号同步) 1.4 信道估计(长序列) 1.5 信道均衡(所有数据OFDM符号&#xff…

(黑客)自学路线

一、什么是网络安全(黑客) 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领…

基于SpringBoot+vue的准妈妈孕期交流平台设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

【工业机器人】用于轨迹规划和执行器分析的机械手和移动机器人模型(MatlabSimulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

STM32——使用cubemx和keil点亮第一个灯

一、环境 cubemx安装和搭建见博文 链接: STM32CubeMX安装 keil安装见软件安装管家,注意要是MDK版 二、cubemx操作 1.打开cubemx 2.选择ACCESS TO MCU SLCTOR,创建一个新的工程。 3.选择合适的芯片型号 具体的开发板芯片型号根据自己的板子来。我的是STMF429IG 4…

AT32F435/F437 QSPI驱动华邦/恒烁 NAND FLASH(W25N01G/ZB35Q01A)

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录 目录 一、前言 二、器件分析 三、代码分析 四、结语 一、前言 (ST生态)雅特力AT32F435/F437 QSPI驱动NAND FLASH(W25N01G/ZB35Q01A) SPI驱…

如何使用WordPress构建一个亚马逊联盟商店

您想使用 WordPress 建立亚马逊联盟商店吗? 亚马逊联盟商店允许您作为联盟会员销售亚马逊的产品,并在每次销售中赚取收入。由于启动和运营成本较低,亚马逊联营店是开展新业务和在线赚钱的最简单方法之一。 在本文中,我们将向您展…

出海企业系列风险分析--App出海注意事项

看着SHEIN、TikTok、米哈游,甚至pdd等企业在海外市场风光无限,很多公司意识到出海的彼岸有更多点石成金的机遇,于是顺势打造了一款出海APP,正当海外用户飞速增长,生意红红火火,却遇到了这样的问题&#xff…

[LangChain核心模块]模型的输入和输出->Prompts

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:人工智能。 目录 1、简介2、Prompts(提示)2.1、Prompt templates2.1.1、创建提示模板2.1.2、聊天提示模板2.1.3、…

避雷针厂家防雷接地解决方案

您是否担心您的建筑物或设施会受到雷电的侵袭?您是否想要一种高效、可靠、经济的避雷解决方案?如果是的话,那么您一定要了解我们的提前放电避雷针DK8-BX10,这是一种采用先进技术和优质材料制造的智能化避雷系统,可以为…

MySQL数据库及安装MySQL

文章目录 一.数据库的基本概念1.数据2.表3.数据库4.数据库管理系统(DBMS)4.1DBMS主要包括以下功能 5.数据库系统原理5.1DBMS的工作模式 二.数据库的发展史1.第一代数据库…