yolov8安装教程

news2024/9/23 21:24:40

一、资源下载

1.下载YOLOv8代码

github:YOLOv8-github

gitee:YOLOv8-gitee(推荐使用国内的gitee)

2.conda、cuda

如果没有安装conda,按照流程安装好conda,还要下载好符合自己电脑版本的CUDA 后续会用。

二、创建conda虚拟环境

1.打开conda窗口 进入到安装的YOLOv8界面

2.创建虚拟环境

conda create -n y8 python=3.8
 

输入下面命令查看是否创建成功

 conda env list 
 

激活,并进入环境

conda activate y8

3.下载ultralytics

使用清华镜像源

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
 

4.下载训练模型

推荐yolov8s.pt或者yolov8n.pt,模型小,下载快,在gitee或者github下方readme里面,下载完成后,将模型放在主文件夹下,

YOLOv8 可以在命令行界面(CLI)中直接使用,使用yolov8自带经典图片进行测试:
首先cd进入yolov8主文件夹下,运行下面命令

无显卡驱动
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=cpu

有显卡驱动(看扩展的部分,安装gpu版本torch才能运行)
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=0
 

这是cpu形式下的测试效果: 

结果保存在runs\detect\中,结果如下图

5.配置gpu

方法一:

(1)首先打开命令栏输入nvcc -V,查看自己的cuda版本

(2)在使用nvidia-smi查看是否安装cuda,如果显示没有此命令则没有安装,去CUDA Toolkit Archive | NVIDIA Developer该网站,找到对应版本cuda和系统版本进行下载安装,具体安装步骤可以参考此教程【精选】CUDA安装及环境配置——最新详细版_abbrave的博客-CSDN博客

(3)安装完成后再次输入nvidia-smi出现下图即为成功。

(4)再去pytorch官网,下载对应cuda版本和操作系统的pytorch,如果找不到对应版本,可以安装低于电脑cuda版本的pytorch。

(5)例如图cuda11.1 在conda中创建的虚拟环境运行下面对应的pip安装,在安装命令后面加上-i https://pypi.douban.com/simple/ some-package 使用国内下载源进行下载大大减少下载时间,等他下载完,在当前conda安装环境输入pip list找到torch+torchaudio+torchvision三个包,如下图在版本后带有+cuxxx即为安装成功。

(6)输入下面代码进行测试,如果有多个显卡,在device=0,1,2…

yolo train data=data/data.yaml model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=0

可以运行,并且在运行时显示显卡型号即为成功。

方法二:

1.检查自己电脑的CUDA版本:

nvidia-smi

2.下载pytorch:

版本要求(小于等于cuda):https://pytorch.org/get-started/previous-versions/

3.下载torch的gpu版本:

注意:在y8环境下下载

下载地址:http://download.pytorch.org/whl/torch_stable.html

版本讲解:

cu121/表示你在教程【GPU】1.当中官网上下载的cuda版本

torch-2.2.2%2Bcu121/表示刚才在pip list中查看的torch的版本

cp312-cp312表示你yolov8的环境python版本,如果按我的教程来的话为3.9 

win-amd64.whl简而言之就是windows系统

下载后,在本地安装:

pip install 下载绝对路径

查看版本信息,注意cpu和gpu版本区别

pip list

出现如下版本信息即安装成功,注意版本!

方法三:

 1.在清华源镜像中下载pytorch、torchvision、cuda92:

Index of /anaconda/cloud/pytorch/win-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

2. 一定要选择正确的版本,带有cpu的版本不要选择,这里选择的pytorch是1.4.0版本,torchvision是0.5.0版本,将上述压缩包复制到Anaconda安装文件夹下对应的pkgs文件夹下。

3.在第三步创建的新环境pytorch中安装下载好的压缩包

conda install D:\Anaconda\pkgs\cuda92-1.0-0.tar.bz2
conda install D:\Anaconda\pkgs\pytorch-1.4.0-py3.7_cuda92_cudnn7_0.tar.bz2
conda install D:\Anaconda\pkgs\torchvision-0.5.0-py37_cu92.tar.bz2

4.

到这一步,该环境已经搭建完成了,接下来将该环境加入到pycharm中,在file→Settings→Python Interpreter中点击右侧的齿轮,选择add->Existing environment,选择刚才创建好的pytorch环境,这里因为我已经创建好了,忘了截图,所以用一张别的博主的图给大家作演示:

5.验证是否安装正确,可以运行下面代码,看是否得到输出。

import torch
import numpy as np
test=np.array([[1,2,3,4],[5,6,7,8]])
x=torch.tensor(test)
print(x)
 
 
import torch
print(torch.cuda.is_available())  #输出为True,则安装无误

6.训练模型

方法一简略版:

首先在yolov8主文件夹内创建data文件夹,创建一个data.yaml文件:

这里需要转成yolov8训练集 

train: xxx/xxx/images/train    //xxx/xxx为训练集图片根目录地址,一定要是绝对路径
val: xxx/xxx/images/val
nc: 1 # 标签数量
names: ["1"]# 标签名称

目前很多数据集是以txt文件保存训练集,可以按照以下写法

train: xxx/xxx/train.txt    //xxx/xxx为训练集图片根目录地址,一定要是绝对路径
val: xxx/xxx/val.txt
nc: 1 # class标签数量
names: ["1"] # class标签名称

conda在主文件夹下运行下面命令:

yolo train data=data/data.yaml model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=cpu

data为yaml配置文件
model为下载的模型,放在主文件下
epochs为训练轮数
imagez为训练时ai看到的图片大小,检查大图片建议使用640,小图片可以320 越大越吃性能
batch为一轮训练中每一次放入图片数量,越大越快效果越好,但是对性能要求越高
device为使用的设备,使用cpu练就写cpu,使用显卡大多数都是0,多显卡就0,1,2,3,...多少显卡往后写多少

方法二:文档

Segment - Ultralytics YOLO Docs

三、其他相关

1.将训练好的python文件转换成onnx文件

首先,确保你已经安装了 Ultralytics 的 YOLOv8 库以及 PyTorch 和 ONNX 库。如果没有安装,可以使用以下命令进行安装:

pip install ultralytics torch onnx

代码:

import torch
import onnx
from ultralytics import YOLO

# 加载训练好的模型
model = YOLO('yolov8.pt')

# 导出为 ONNX
model.export(format='onnx')

# 验证导出的 ONNX 模型
onnx_model = onnx.load("yolov8.onnx")
onnx.checker.check_model(onnx_model)

print("ONNX 模型已成功导出并验证。")

2.

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

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

相关文章

C语言典型例题43

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题3.3 有一个函数&#xff1a;y{x,x<1;2x-1,1≤x≤10;3x-11,x≥10。写程序&#xff0c;输入x&#xff0c;输出y。 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //习题3.3…

OD C卷 - 传递悄悄话

传递悄悄话 &#xff08;100&#xff09; 给定一个二叉树&#xff0c;节点采用顺序存储&#xff0c;如 i0 表示根节点&#xff0c;2i 1 表示左子树根&#xff0c;2i 2 表示右子树根;每个节点站一个人&#xff0c;节点数值表示由父节点到该节点传递消息需要的时间&#xff1b…

周末休整

我写的东西&#xff0c;不爱看的人可以不看&#xff0c;我是给喜欢我的人写的&#xff0c;不喜欢我的人&#xff0c;我也讨厌她。 今天故意写点教人学坏的东西&#xff0c;因为以前写了很多正能量的东西&#xff0c;虽然阅读量还可以&#xff0c;但当见面聊天之后&#xff0c;…

【CSS】CSS新单位vmin和vmax

通过vmin单位可以自动取视口宽度和高度中较小的那个值&#xff0c;vmax同理。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

百度智能云通用文字识别(标准版)- java.lang.NoSuchFieldError: Companion

需求环境 ORC识别图片信息 参考百度示例 百度智能云API文档通用文字识别 官方示例 package baidu.com;import okhttp3.*; import org.json.JSONObject;import java.io.*;/*** 需要添加依赖* <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->…

8.16-ansible的应用

ansible ansible是基于模块工作的&#xff0c;本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块&#xff0c;ansible只是提供一种框架。 格式 ansible 主机ip|域名|组名|别名 -m ping|copy|... 参数 1.ping模块 m0 # 查看有没有安装epel ​ [rootm0 ~]#…

在vue3中配置scss

要在 Vue 3 中使用 SCSS&#xff08;Sass 的一个子集&#xff09;&#xff0c;你需要安装相应的依赖&#xff0c;并对项目进行一些配置。下面是详细的步骤&#xff1a; 步骤 1: 安装依赖 首先&#xff0c;你需要安装 sass 和 vue-loader&#xff08;如果你使用的是 Vue CLI&a…

vue 2.x + @vue/cli 4.x开发阶段使用Vite

项目用的是vue 2.x vue/cli 4.x(webpack 4.x)。冷启动项目时耗时较长&#xff0c;达到了2分钟以上。热更新时间也达到了10s以上。严重影响了开发体验和效率。 解决问题的过程中遵循2个原则&#xff1a; 不对会影响原构建流程的代码进行改动&#xff0c;向原Webpack构建兼容。…

加密创投周期进化论:未来或黯淡,但流动性是那道光

加密创投领域的风起云涌&#xff0c;而在2022年后&#xff0c;加密市场逐渐进入“行业阵痛期”&#xff0c;面对熊市的寒冬&#xff0c;整个行业的流动性急剧减少&#xff0c;市场的发展被迫寄希望于“板块轮动”的交替炒作。尽管如此&#xff0c;比特币生态和L2生态的兴起&…

树莓派开发笔记03-树莓派的GPIO口输入检测

github主页&#xff1a;https://github.com/snqx-lqh gitee主页&#xff1a;https://gitee.com/snqx-lqh 本项目github地址&#xff1a;https://github.com/snqx-lqh/RaspberryPiLearningNotes 本项目gitee地址&#xff1a;https://gitee.com/snqx-lqh/RaspberryPiLearningNote…

LLAMA 3.1 论文的见解

这有什么大不了的&#xff1f; LLAMA 3.1 的发布标志着 AI 开发的一个重要里程碑。开源模型首次接近领先的闭源模型的性能水平。这一转变预示着未来开源模型同样有效&#xff0c;任何人都可以灵活地修改和调整它们。马克扎克伯格将此与 Linux 的开源性质进行了比较&#xff0c;…

Mysql原理与调优-如何进行sql优化

1.绪论 本文主要讲解我们如何优化一个sql。优化的过程主要分为3个步骤&#xff0c;找到哪些sql需要被优化&#xff0c;这就需要用到慢sql日志。然后发现慢SQL为什么慢&#xff0c;即当前sql是如何执行的&#xff0c;这就需要用到执行计划。最后才是对sql进行优化&#xff0c;对…

作业帮 TiDB 7.5.x 使用经验

作者&#xff1a; 是我的海 原文来源&#xff1a; https://tidb.net/blog/5f9784d3 近期在使用 TiDB 时遇到的一些小问题的梳理总结&#xff0c;大部分版本都在6.5.6和7.5.2 1、limit 导致的扫描量过大的优化 研发定时任务每天需要扫描大量数据&#xff0c;到时机器网卡被…

26.10 Django Ajax异步提交

1. 表单提交 1.1 表单的作用 表单是Web开发中常见的数据收集方式, 它允许用户通过表单输入数据, 并通过提交操作将这些数据发送到服务器进行处理.表单提交方式主要分为两大类: 传统的同步提交(也称为标准提交)和异步提交(主要通过Ajax实现). 它们在工作方式, 用户体验和数据传…

语音助手Verbi:科技创新的未来

今天&#xff0c;我要向大家介绍一个名为Verbi的语音助手项目。这是一个结合了多种先进技术的模块化语音助手应用程序&#xff0c;能够实现语音到文本、文本生成和文本到语音的全流程处理。通过这个项目&#xff0c;我们可以体验到尖端科技如何改变我们的日常生活。 Verbi的诞…

PHP安全开发

安全开发 PHP 基础 增&#xff1a;insert into 表名(列名 1, 列名 2) value(‘列 1 值 1’, ‘列 2 值 2’); 删&#xff1a;delete from 表名 where 列名 ‘条件’; 改&#xff1a;update 表名 set 列名 数据 where 列名 ‘条件’; 查&#xff1a;select * from 表名 wher…

【STM32 Blue Pill编程】-外部中断配置及使用

外部中断配置及使用 文章目录 外部中断配置及使用1、中断介绍2、STM32中的中断3、硬件准备及接线4、GPIO配置5、代码实现在本文中,我们将介绍如何使用 STM32Cube IDE 中的 HAL 库配置和处理外部中断。 我们将通过一个带有按钮和 LED 的示例来演示这一点。 读完本文后,您将能够…

简单了解JVM执行Java程序的基本流程 | 一次编译,到处运行

前言&#xff1a; Java代码怎么做到一次编译&#xff0c;到处运行的呢&#xff1f;靠JVM&#xff0c;那JVM的执行流程是什么呢&#xff1f; 简单来说&#xff1a;通过Javac编译器将Java源代码编译成字节码&#xff0c;JVM通过类加载器将字节码加载到运行时数据区中&#xff0c;…

C++学习笔记之数据结构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、二叉树1.1 二叉树的遍历1.1.1 深度优先搜索&#xff08;DFS&#xff09;1.1.2 广度优先搜索&#xff08;BFS&#xff09; 1.2 对称性&#xff08;递归法&#x…

【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds

原文链接&#xff1a;https://arxiv.org/abs/2407.18232 简介&#xff1a;Transformer在3D点云感知任务中有二次复杂度&#xff0c;难以进行长距离关系建模。线性RNN则计算复杂度较低&#xff0c;适合进行长距离关系建模。本文提出基于窗口的网络线性组RNN&#xff08;即对分组…