适合小白的超详细yolov8环境配置+实例运行教程,从零开始教你如何使用yolov8训练自己的数据集(Windows+conda+pycharm)

news/2024/7/10 22:39:36 标签: YOLO, conda, python, pycharm, pytorch

 目录

一、前期准备+所需环境配置 

1.1. 虚拟环境创建

pycharm%E4%B8%AD%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE-toc" style="margin-left:40px;">1.2 下载yolov8源码,在pycharm中进行配置

1.2.1 下载源码

pycharm%E7%BB%88%E7%AB%AF%E4%B8%AD%E9%85%8D%E7%BD%AEconda-toc" style="margin-left:80px;">1.2.2 在pycharm终端中配置conda

pycharm%E7%9A%84terminal%E4%B8%AD%E6%BF%80%E6%B4%BB%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%C2%A0-toc" style="margin-left:40px;">1.3 在pycharm的terminal中激活虚拟环境 

1.4 安装requirements.txt中的相关包

1.5 pip安装其他包

1.6 预训练权重的下载 

1.7 验证环境配置是否成功

二、数据集的准备 

2.1 coco128数据集下载

 2.2 coco128数据集格式

2.2.1 数据集文件夹

2.2.2 coco数据集的yaml文件

2.3 自建数据集 

2.3.1 数据集格式

2.3.2 yaml文件

三、训练自己的数据集

3.1 输入运行命令

3.2 训练结果

 ​编辑

3.3 验证


yolov8源码下载地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite

yolov8使用文档: 

Home - Ultralytics YOLOv8 Docs

教学视频参考: 包会!YOLOv8训练自己的数据集_哔哩哔哩_bilibili

一、前期准备+所需环境配置 

1.1. 虚拟环境创建

先用conda prompt创建一个虚拟环境,我的叫yolov8, python版本用3.10

conda create -n yolov8 python=3.10

pycharm%E4%B8%AD%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE">1.2 下载yolov8源码,在pycharm中进行配置

1.2.1 下载源码

源码地址:

GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite

下载好解压之后用pycharm进行打开,然后把interpreter设置为刚刚创建的虚拟环境

pycharm%E7%BB%88%E7%AB%AF%E4%B8%AD%E9%85%8D%E7%BD%AEconda">1.2.2 在pycharm终端中配置conda

关于如何在pycharm终端中配置虚拟环境可以看这篇: 

pycharm终端配置,使用Anaconda_pycharm设置terminal打开anaconda的命令行窗口显示找不到本地终端-CSDN博客

具体:把settings-> Tools -> Terminal中的shell path换成你的conda prompt的位置

  • 在属性中找到anaconda prompt的目标位置,把cmd.exe开始的后面所有内容都复制下来

 

  • 粘贴到shell path中的对应位置,重启就OK啦

 PS: 如果还是出现了CommandNotFoundError错误可以参考如下文章解决,我的错误就是根据这个解决的

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘. If using_aoimono的博客-CSDN博客

pycharm%E7%9A%84terminal%E4%B8%AD%E6%BF%80%E6%B4%BB%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%C2%A0">1.3 在pycharm的terminal中激活虚拟环境 

使用conda activate命令激活虚拟环境,激活成功的标志就是命令行前面的(base)换成了你的虚拟环境的名字

1.4 安装requirements.txt中的相关包

pip install -r requirements.txt

1.5 pip安装其他包

安装代码运行所需的ultralytics和yolo包

python">pip install ultralytics
pip install yolo

 

1.6 预训练权重的下载 

源码下载界面中的readme文件中往下翻,找到yolovn8的预训练权重,点击下载,然后把下载好的文件放在项目代码的根目录下。

 把权重文件放在根目录处

1.7 验证环境配置是否成功

 复制下面的代码来验证一下是否可以运行

python">yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

PS:我在运行过程中遇到了ImportError: cannot import name '***' from 'collections'和No such command 'predict'两个问题,都已经解决了,解决方案如下:

[解决] 问题:ImportError: cannot import name ‘Callable‘ from ‘collections‘-CSDN博客

YOLOv8报错Error: No such command ‘predict‘.-CSDN博客

 运行命令后可以实现检测,结果保存在runs->detect->predict文件夹下

 可以看到已经完成了目标框和类别概率的显示和绘制

二、数据集的准备 

2.1 coco128数据集下载

下载coco128文件:

https://ultralytics.com/assets/coco128.zip

下载之后再跟根目录下新建一个datasets文件夹,然后把coco128数据集放在下面。

 2.2 coco128数据集格式

2.2.1 数据集文件夹

  • images:下面的子文件夹为train2017,存放所有的训练图片;
  • labels:下面的子文件夹为labels2017,存放所有的标注标签。

自己的数据集的命名和排列方式也要按这个格式来。

2.2.2 coco数据集的yaml文件

coco128数据集的yaml文件如下所示,可以看到给出了数据集的路径、训练集和验证集所在的位置,所以仿照该文件写一个我们自己的yaml文件;

2.3 自建数据集 

2.3.1 数据集格式

我使用了一个苹果树叶数据集,一共有4个病害类[insert,mlb,mossaic],使用labelimg标注了103张图片,然后存放在Apple文件夹下

2.3.2 yaml文件

  apple.yaml文件如下所示,存放在Apple数据集的根目录下

python"># Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco128  ← downloads here (7 MB)


# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: E:\code_MWY\yolov8\ultralytics-main\datasets\Apple  # dataset root dir
train: images/train2017  # train images (relative to 'path') 128 images
val: images/train2017  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
names:
  0: alternaria
  1: insert
  2: mlb
  3: mossaic

三、训练自己的数据集

3.1 输入运行命令

设置好需要训练的数据集路径、所使用的具体yolo模型要加载的预训练权重文件,并且设置所需的epoch数量。

  • data = datasets/Apple/apple.yaml
  • model = yolov8n.yaml
  • pretrained = ultralytics/yolov8n.pt
  • epoch = 100

在terminal中输入下面的命令 ;

 yolo detect train data=datasets/Apple/apple.yaml model=yolov8n.yaml pretrained=ultralytics/yolov8n.pt epochs=100 batch=4 lr0=0.01 resume=True

开始运行,等待结果。

3.2 训练结果

训练结束后训练结果都保存在runs这个文件夹下,可以看到有所有的指标曲线的可视化;

还有模型训练出来的权重,best.pt为训练的最好的一组权重,后面可以使用。

 

训练100个epoch后的结果如下所示: 

可视化结果: 

可以看到对于的类别和位置都标注来了 

3.3 验证

 输入下面的命令进行模型的验证,这里的models为训练的最好的那一组权重;

python">yolo detect val data=datasets/Apple/apple.yaml model=runs/detect/train/weights/best.pt batch=4

结果如下所示: 


http://www.niftyadmin.cn/n/5199447.html

相关文章

sortablejs拖拽后新增和删除行时顺序错乱

问题描述:如下图所示,使用sortablejs拖拽后,在序号2后新增行会出现新增行跑到第一行的错误顺序。 解决:在进行拖拽后,对表格数据进行清空重新赋值。

抖音电商双11官方数据最全汇总!

11月13日,抖音电商数据发布“抖音商城双11好物节”数据报告,展现双11期间平台全域经营情况及大众消费趋势。 报告显示,10月20日至11月11日,抖音电商里的直播间累计直播时长达到5827万小时,挂购物车的短视频播放了1697亿…

Pyinstaller 打包程序 python-oracledb 报错 DPY-3016问题解决方案

执行xxx.exe文件调用oracledb 时报错 DPY-3016:python-oracledb thin mode cannot be used because the cryptography package is not installed 原因是其隐式调用了cryptography ,打包时加入参数 –hidden-importcryptography.hazmat.primitives.kdf.pbkdf2解决 p…

给Fetch添加超时功能

引言 在Web开发中,使用Fetch API进行网络请求是一种常见的方式。然而,Fetch API默认不包含超时功能,这可能导致程序在网络不稳定的情况下长时间阻塞。为了解决这个问题,我们可以通过一些技术手段来为Fetch请求添加超时功能&#…

详解JavaScript中的作用域种类、作用与作用域链

前言 本文主要讲解JavaScript中作用域包括:什么是作用域,作用域种类、作用域作用以及作用域链的代码文字讲解。 什么是作用域? 在Js中,我们会定义大量的变量,如果在使用这些变量的过程中不及时清理,就可…

[NSSCTF 2022 Spring Recruit]easy C

直接给出源代码 #include <stdio.h> #include <string.h>int main(){char a[]"wwwwwww";char b[]"dvxbQd";//try to find out the flagprintf("please input flag:");scanf(" %s",&a);if(strlen(a)!7){printf("…

thinkphp8 DB_PREFIX 属性

设计表的时候使用**_user, **就是前缀&#xff0c;DB_PREFIX就是默认把前缀给去掉 在config/database.php prefix&#xff0c;改成你的前缀&#xff0c;数据库的表重命名‘ltf_user’ 代码调用 $user Db::name("user")->select();return json($user);之前是使用…

11.20 知识总结(choices参数、MVC和MTV的模式、Django与Ajax技术)

一、 choices参数的使用 1.1 作用 针对某个可以列举完全的可能性字段&#xff0c;我们应该如何存储 .只要某个字段的可能性是可以列举完全的&#xff0c;那么一般情况下都会采用choices参数 1.2 应用场景 应用场景&#xff1a; 学历&#xff1a; 小学 初中 高中 本科 硕士…