Yolov8方法笔记

news2024/7/6 17:52:59

目录

1、安装yolov8的虚拟环境

(1)创建虚拟环境

(2)安装pytorch

​编辑

 2、下载yolov8模型

3、解压缩,解压后的文件

 4、将转换数据集(以口罩检测为准)

5、配置和执行

 6、验证

 7、测试


1、安装yolov8的虚拟环境

安装的过程可以参照参考资料【3】的视频。

步骤如下:

(1)创建虚拟环境

名字就定为yolov8,输入命令:

conda create -n yolov8 python=3.8 anaconda

(2)安装pytorch

打开pytorch官网:pytorch官网

检查电脑cuda版本,命令:

nvidia-smi

我的cuda版本是12.1.pytorch中选择pip安装,运行下图框中的命令执行。

 2、下载yolov8模型

 下载地址:yolov8

3、解压缩,解压后的文件

用vscode打开 

里面是一个安装文件。切换到yolov8的虚拟环境,然后执行安装,安装需要使用命令:

python setup.py install

 很快就会完成安装。

 4、将转换数据集(以口罩检测为准)

转换程序地址:数据转换程序

解压后的文件,里面有很多模块。数据转换在yolo文件夹下。

 选择yolo文件夹,里面只有三个文件,将这三个文件复制到yolov8的目录下。

 数据集:网上找的口罩数据集

数据处理比较简单,看B站视频就可以。

数据处理步骤:

(1)将图片复制到dataset\VOCdevkit\JPEGImages文件夹下

(2)将标签复制到dataset\VOCdevkit\Annotations文件夹下。

(3)找到xml2txt.py程序,修改下面的几项就可以了。

完成后会显示分类

 将这两个classes填写好data.yaml里面。

(4)执行split_data.py。

(5)打开data.yaml修改

 

5、配置和执行

配置default.yaml文件,根据需要进行配置。

  命令:

 yolo cfg=ultralytics\yolo\cfg\default.yaml

开始训练

 训练完成

 6、验证

验证的时候需要重新配置default.yaml

 model,使用train训练以后生成的pt文件。我用的是best.pt。

yolo cfg=路径

 7、测试

修改配置

 

 conf默认为0.25,改为0.6测试。source修改为保存test图片的路径。

运行,命令和train和val一样。

运行后的结果都保存在runs下面。

效果图:

 

有的还是没检测出来。

 参考资料:

【1】参考的博客:YOLOV8最强操作教程._魔鬼面具的博客-CSDN博客

【2】对应的视频:YOLOV8保姆级教学视频._哔哩哔哩_bilibili

【3】yolo环境安装:安装yolo环境

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

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

相关文章

14-C++基本算法-深度优先搜索

&#x1f4da; 从递归阶乘到深度优先搜索 在学习深度优先搜索之前&#xff0c;我们先回顾一下递归阶乘的实现。递归阶乘是一种典型的递归算法&#xff0c;它通过将问题分解为更小的子问题来解决。 #include <iostream> using namespace std;int factorial(int n) {if (…

【PCIE】协议分析之-hot-reset热复位

被上游指定热复位整个通路 当高层&#xff08;higher Layer&#xff09;指示某些通道进行热复位&#xff08;Hot Reset&#xff09;时&#xff0c;以下操作将被执行&#xff1a; 所有在配置的链路中的通道都会发送带有热复位位&#xff08;Hot Reset bit&#xff09;和配置的…

IntelliJ IDEA运行bat脚本,自动taskkill端口进程

在idea运行完程序后&#xff0c;再次重新运行时如果之前的程序仍然占用着端口会导致报错&#xff1a;端口被占用。 因此每次重新运行都需要移除之前的端口所在的进程&#xff0c;这对于调试开发过程是非常频繁的操作。 需要一个快速的办法直接移除端口进程&#xff0c;如下&a…

Haskell 入门学习(一)之安装试用 Haskell

Haskell 入门学习&#xff08;一&#xff09;之安装试用 Haskell 文章目录 Haskell 入门学习&#xff08;一&#xff09;之安装试用 Haskell前言&#xff1a;安装Windows 安装Linux、MacOs 使用 VSCode 进行代码编写创建一个简单的项目使用 Cabal 管理项目项目大致结构运行项目…

Verilog学习笔记3:与非门

1位的与非门 代码&#xff1a; timescale 1ns/10ps module nand_gate( A, B, Y);input A; input B; output Y;assign Y~(A&B);endmodule//testbenchmodule nand_gate_tb; reg A; reg B; wire Y;nand_gate nand_gate(.A(A),.B(B),.Y(Y));initial begin A<0;B<0;#10 …

Ubuntu创建Git项目并push到远程Github

首先在本地创建git仓库 jasminelhl:~/prj$ mkdir Github-test jasminelhl:~/prj$ cd Github-test jasminelhl:~/prj/Github-test$ git init 提示&#xff1a;使用 master 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中 提示&#xff1a;配置使用初始分支名&a…

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法

目录 一、准备数据 二、concat函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 三、concat_ws函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 四、group_conat函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 一、准备数据 #创建用户表 CREATE TABL…

[已解决]Springboot项目启动时端口被占用

目录 1.打开CMD窗口 2.找到端口号 3.找到对应程序 4.终止任务 5.再次查询端口&#xff0c;没有找到对应的端口号说明进行杀死成功 6. 重新启动项目&#xff0c;可以正常启动 Springboot端口号默认8080&#xff0c;启动时经常会遇到端口号被占用的情况&#xff0c;报错信息…

swift 打包xcframework报错“No ‘swiftinterface‘ files found within“

1、分别编译当前的framework&#xff0c;生成对应的真机framework与模拟器framework 生成对应framework.png 2、新建一个对应接收xcframework的文件夹&#xff0c;以XXX.xcframework格式命名 3、打开终端利用xcodebuild -create-xcframework命令进行生成xcframework。 具体如…

第一章 计算机网络概述【计算机网络】

第一章 计算机网络概述【计算机网络】 前言推荐第一章 计算机网络概述1.1 计算机网络在信息时代中的作用1.2互联网概述1.2.1 网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3互联网的标准化工作 1.3互联网的组成1.3.1互联网的边缘部分1.3.2互联网的核心部分 1.4计算机网络在…

网络——网络排错

https://zhuanlan.zhihu.com/p/607083215 背景 出现网络故障时&#xff0c;我们需要做什么呢&#xff0c;做完网工&#xff08;不如dog&#xff09;&#xff0c;第一时间会被怀疑是网络问题&#xff0c;所以&#xff0c; 前端PC 前端PC能做的东西&#xff0c;不多&#xff0…

Go语言程序设计(十三)方法

Go语言虽然没有类(Class),但同样支持方法(Method),Go语言里的Method其实就是一个带接收者(Receiver)的函数。 一、Method的基本定义 Go语言中的Method类似于一个函数&#xff0c;只是函数名前多了一个绑定类型参数——receiver。 基本格式如下&#xff1a; func (recv recei…

启用 -parameters 编译选项简化 mybatis @Param 注解重复问题

在使用 mybatis 查询的时候, 只需要定义一个查询接口, mybatis 会为我们注入注解实现或是 xml 实现. 但当我们需要传递参数时, 通常需要 Param 来定义一个名称, 但经常的, 我们也不难发现, 这个名称与参数名称通常是一样的: User findUser(Param("username") String…

Docker使用Volumes做数据持久化

场景&#xff1a;docker 安装的 Pgsql 每当电脑重启docker重启 会发现 数据库都没了数据也没了 解决办法&#xff1a;使用docker volumes 做挂载 以PGSQL为例子&#xff0c;理论其他数据库或者项目需要持久化数据 应该都可以 1.创建Volumes 名字自己可以随便取。 2.拉去镜像…

开源预训练框架 MMPRETRAIN官方文档(概览、环境安装与验证、基础用户指南)

MMPretrain是全新升级的开源预训练框架。它已着手提供多个强大的预训练骨干网并支持不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和MMSelfSup&#xff0c;并开发了许多令人兴奋的新功能。目前&#xff0c;预训练阶段对于视觉识别至关重要。凭借丰富而强…

[SSM]MyBatis查询语句与动态SQL

目录 十、MyBatis查询语句专题 10.1返回Car 10.2返回List 10.3返回Map 10.4返回List 10.5返回Map,map> 10.6resultMap结果映射 使用resultMap进行结果映射 是否开启驼峰命名自动映射 10.7返回总记录条数 十一、动态SQL 11.1 if标签 11.2 where标签 11.3 trim标…

Oracle表空间和用户

Oracle表空间和用户 前言 1、创建表空间 2、 删除表空间 3、创建用户 4、用户赋权限 5、Oracle三个重要的角色 1、创建表空间 ORACLE 数据库的逻辑单元。 一个表空间可以与多个数据文件&#xff08;物理结构&#xff09;关联 一个数据库下可以建立多个表空间&#xff0c;一个表…

探秘制造业数智化:揭开低代码开发平台的新篇章

前言 随着数智时代的到来&#xff0c;制造业面临着前所未有的转型机遇。在这个信息爆炸的时代&#xff0c;如何有效运用科技和数据资源&#xff0c;成为了制造业企业的当务之急。而低代码开发平台&#xff0c;如JNPF快速开发平台&#xff0c;正是这个转型过程中不可或缺的利器。…

【编程语言 · C语言 · 结构体】

【编程语言 C语言 结构体】https://mp.weixin.qq.com/s/pWI712NxhPJi37eWrE9ofw

【产生初始解利器】基于蒙特卡洛模拟产生满足固定需求和固定供给的随机供给矩阵

如何生成一个总和是定值的随机矩阵 震惊&#xff0c;如果做一个约束比较强的模型&#xff0c;解的矩阵需要满足很多等式约束&#xff0c;而且都是整数&#xff0c;随机产生初始解很困难&#xff0c;该怎么办&#xff1f; 震惊&#xff0c;如果做一个约束比较强的模型&#xff0…