从零开始使用YOLOv8——环境配置与极简指令(CLI)操作:1篇文章解决—直接使用:模型部署 and 自建数据集:训练微调

news2025/1/12 8:53:00

目录

一、Yolov8源码下载

二、虚拟环境创建与必要包的安装

        1.虚拟环境

        2.Pytorch安装

        3.Ultralytics安装

        3.环境测试

三、简单命令行指令(CLI)使用

        1.模型配置(关键指令)——cfg 

        (1)选择任务场景——task

        (2)选择训练模式——mode

        (3)数据配置——data

        (4)模型配置——model

        2.模型指令实测

        (1)train训练实测——官方coco8数据集

        (2)predict预测实测——官方预训练模型参数

        


        

         初次接触 yolov8 来训练自己的模型参数,本文参考解读yolo官方文档,记录从安装环境到训练使用 yolov8 的全过程。本文仅供参考,感谢批评指正!以官方文档内容为准。

        官方文档地址:ultralytics官方文档地址

一、Yolov8源码下载

        1.可以直接访问 GitHub 地址下载源码压缩文件,解压到本地项目地址。

        yolov8 github下载地址

        2.也可以按官方文档给出的 Git 指令下载。

# Clone the ultralytics repository
git clone https://github.com/ultralytics/ultralytics

二、虚拟环境创建与必要包的安装

        1.虚拟环境

        创建yolov8虚拟环境,根据官方文档python版本要在3.8以上。

# Prompt创建虚拟环境
conda create -n yolov8 python=3.9
# 激活环境
conda activate yolov8

        2.Pytorch安装

        Pytorch GPU训练环境安装,官方文档说明Pytorch版本在1.8以上,但最好安装 torch 版本 > 2.0.0 以上的(实验时安装 torch == 1.12.1,在模型训练时 torch 包报错,更新到torch==2.1.1,不再报错,最好安装和博文一致的环境,同时参考CUDA版本,本文服务器cuda==11.8)

        Pytorch历史版本安装命令地址:Pytorch历史版本安装命令

# pip安装pytorch环境
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

        安装 pytorch 过程中遇到一个红字报错,一些依赖库没有安装,本人选择粗糙的pip安装所有解决。

pip install packaging pyparsing python-dateutil easydict prettytable pyyaml scikit-learn scipy tqdm ujson visualdl pytz tzdata python-dotenv python-magic six shapely terminaltables protobuf tensorboard-data-server


        在个人电脑上安装出现网络错误,先下载 whl 包然后离线安装。

        whl包下载地址:pytorch whl包下载地址

        要选择有 cu 的GPU版本下载,选择对应的python版本和系统,要下三个安装包分别是 torch 、torchaudio、torchvision,其版本的对应关系直接去官网查看即可。具体安装流程可参考之前博文:pytorch离线安装

        去官网查看的安装包版本如下(版本一定要一一对应,不然会报错)。下载对应安装即可。

        下好的文件放在虚拟环境下,然后pip安装

# whl包离线安装
pip install torch-2.1.1+cu118-cp39-cp39-win_amd64.whl torchaudio-2.1.1+cu118-cp39-cp39-win_amd64.whl torchvision-0.16.1+cu118-cp39-cp39-win_amd64.whl

         个人电脑上环境也配置成功。

        3.Ultralytics安装

        根据官方文档还要安装一个Yolov8的包

# yolov8安装包
pip install ultralytics

        

        3.环境测试

        按照官方文档进行到这一步,就算环境搭建完成了,可以使用一个简单的命令行指令测试安装成功与否。

# 环境安装测试指令
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

        可以在下载的源码目录下进入命令行运行代码,也可以在集成的Pycharm环境的Terminal中运行,个人更建议偏好后者。

        命令行cmd进入并运行

        如果包安装正常,将会在项目路径新建一个 runs/detect/predict 的目录,其中有预测结果图片。如果出现红字报错,或者显示“yolo不是一个内部或外部指令”,根据本机实践成果经验——建议重装更高版本 pytorch ,并更新 ultralytics 的版本。

# 更新ultralytics版本
pip install --upgrade ultralytics

        Pycharm集成环境下Terminal运行。

三、简单命令行指令(CLI)使用

         yolov8官方文档中介绍了其模型的命令行指令使用方式(command line interface:CLI),参考文档地址:CLI guide

        官方文档中详细记录了所有的指令操作,本篇只记录部分常用的简单指令并实测其效果,后续将根据其官方文档的内容详细测试不同指令组合的效果。 

        进入源码下载地址,激活环境后使用命令行可以获取yolov8使用的参考命令代码。其中的示例给出yolo基本的训练、预测、验证使用方法。      

# 获取命令行代码参考
yolo help

        1.模型配置(关键指令)——cfg 

        默认的配置文件可以在下载的源码地址的下方路径中看到。其中主要需要根据实际情况修改的部分用绿色框框出。

# 默认模型配置
/ultralytics-main/ultralytics/cfg/default.yaml

         也可以通过命令行的方式获取当前模型配置信息。

# 获取当前配置信息
yolo cfg


        实际上,真正使用的时候,这个配置文件只是用来做参考的,可以在命令行的输入上直接修改你需要改变的模型配置。下面举例说明。

        (1)选择任务场景——task

        第一,需要选择的是你要使用的模型“任务场景”。根据官方文档,yolov8可以实现五种场景的使用,分别是——'detect', 'pose', 'segment', 'obb', 'classify',你可以在官方链接查询详细解释和例子—— yolo任务场景

        因此如果你想改变使用的场景,只需改变指令的第一个参数即可,对比以下两个例子。

# detect 任务
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# segmen 任务
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.yaml epochs=100 imgsz=640

        (2)选择训练模式——mode

        第二,选择使用的模式,yolo官方支持六种模式选择,这里只选取常用的三种,即模型的训练train、验证val和预测predict,详细其他模式见官方文档——yolo的训练模式

        本文以识别任务为主要参考例,可以对比以下三种命令行,知道只需改变第二个参数即可。

# train训练模式
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# val验证模式
yolo detect val data=coco8.yaml model=yolov8n.yaml imgsz=640

# predict预测模式
yolo detect predict data=coco8.yaml model=yolov8n.yaml imgsz=640

        (3)数据配置——data

         第三,选择要使用的数据,如果是训练数据那么要按照coco格式保存图片数据和标签数据,具体可参考之前的博文:目标检测模型数据预处理:从json到txt、voc和coco数据格式,对于官方给出的例子来说,其数据data的配置文件 coco8.yaml 在源码目录下可见。

# coco8.yaml 数据配置文件目录
/ultralytics-main/ultralytics/cfg/datasets/coco8.yaml

         如果是自建数据集也可以仿造coco数据的yaml配置文件,只需简单的将下图的 path 修改为你自己的数据保存路径,然后将 names 下的类别名称改为你自己的即可。


         在coco8.yaml的末尾可以看到 download 参数,表示当前数据集是在线下载的,如果要使用网上的数据集,如从GitHub上下载的数据,也可在此处修改地址。

        我们可以按照官方文档内配置文档的地址将数据集下载下来看看。coco8数据集

        这是一个非常小的数据集,我们可以看一下数据结构。images中保存的是图片数据,labels中保存框的txt格式数据。

        


        如果使用的不是coco的数据格式,同样可以参见源码地址 /ultralytics-main/ultralytics/cfg/datasets 下的数据集配置文件,yolov8支持多种输入格式。

        

        (4)模型配置——model

        第四,选择要使用的模型,yolov8根据模型的参数量大小,从小到大分为 n、s、m、l、x 五种模型。模型的配置文件主要是设置各个层数的大小超参数,模型model的配置文件 yolov8.yaml 在源码目录下可见。

# model模型配置文件目录
/ultralytics-main/ultralytics/cfg/models/v8/yolov8.yaml

        根据其源码注释,可知,可以通过调整yolo命令行指令输入来选择不同大小的模型,只需在yolov8.yaml 后缀前添加所需模型的简称即可。下面的例子解释了这一问题,也就是说下面指令使用的都是同一个配置文件,即/ultralytics-main/ultralytics/cfg/models/v8/yolov8.yaml。

# 使用 yolov8n 的模型训练
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# 使用 yolov8m 的模型训练
yolo detect train data=coco8.yaml model=yolov8m.yaml epochs=100 imgsz=640

        如果是自建数据集,那么需要将 nc 后面的数量修改为你实际数据对应的类别数量。

        2.模型指令实测

        有了上述的指令基础,可以开始基本的使用了,受限与本机GPU性能限制,暂使用官方给的测试小数据集和最小的模型 n 来做试验,后续博文进阶命令测试将会在服务器上进行。

        因为 pycharm上可视化更加美观,下述实验都在该平台上进行,在命令行窗口命令代码一致,且模型输出一致,因此不再赘述。

        (1)train训练实测——官方coco8数据集

        为方便演示自建数据集如何进行模型训练,放弃官方在配置文件中自动下载的方式读取数据,改为在程序外下载好文件放到项目主目录下,并自写配置文件的方式,在model加载中也使用当前项目路劲加自写yaml文件的方式。

        由于使用的是官方数据测试,配置大部分没变,实际自建时,要对绿色区域进行修改。


        使用命令行训练时,需改为自建配置文件的完整地址。

# 训练实测指令
yolo detect train data=./dataset/coco8/test_coco8.yaml model=./dataset/coco8/test_yolov8n.yaml epochs=100 imgsz=640

         训练完成后会在主目录下新建一个 runs 的文件夹保存模型参数以及训练过程的可视化和各种评估训练的结果文件(也可以在配置中修改结果保存路径)。显而易见官方给的训练图片实在是太少了(只有四张),训练效果很差。

        由于没有找到适合的小数据集训练,训练篇到此结束,在预测部分选择直接下载官方预训练好的模型参数测试。

        (2)predict预测实测——官方预训练模型参数

        官方训练模型参数下载地址:yolov8模型参数下载地址

        测试的预测数据选择在coco训练数据中随机挑选几张图片(这样的做法会导致结果虚假的效果好,因为是从训练样本中选择数据,本文重点在实验过程,故忽略此处的不严谨)

        在terminal输入预测指令,model导航到存放预训练模型参数地址,  source导航到预测图片地址。运行完成后,会在项目主目录自建一个runs文件,结果保存在runs/detect/predict目录下。

# 预测实测指令
yolo predict model=pretrain/yolov8n.pt source=predict/

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

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

相关文章

收藏丨企业官网一般选择什么类型的SSL证书比较好?

企业官网在选择SSL证书时,应综合考虑网站的安全性需求、用户信任度、成本效益以及管理便捷性等因素。一般来说,企业官网比较适合选择以下几种类型的SSL证书: 1. 企业型SSL证书(Organization Validated, OV) 特点&…

初识MyBati s

J D B C 编 程 和 O R M 模 型 加 载 驱 动 导 入 J D B C 连 接 数 据 库 的 j a r 包 , 利 用 C L A S S . f o r N a m e 加 载 驱 动 ; 获 取 连 接 利 用 D r i v e r M a n a g e r 获 取 C o n n e c t i o n , 然 后 创 建 S t a t e…

生成式人工智能的第一课,揭开她那神奇的面纱

一、人工智能(Artificial Intelligence) 从1940年代开始,科学家们在数学推理的基础上发明了可编程数字计算机,这一突破激发了他们对创建“电子大脑”的探索热情,为后续的人工智能发展奠定了坚实的基础。1956年&#x…

2024西安铁一中集训DAY23 ---- 模拟赛(类括号匹配dp + baka‘s trick 优化双指针 + 组合数学/高斯消元 + 图上性质题)

文章目录 前言时间安排及成绩题解A. 稻田灌溉(类括号匹配dp)B. 最长模区间(bakas trick 优化双指针)C. 三只小猪和狼(组合数学,高斯消元)D. 黑色连通块 前言 感觉是开始集训以来最难的一场了&a…

睿考网:中级会计师和注册会计师哪个难?

中级会计师和注册会计师两个资格证书对比下来,后者具有更高的挑战性,主要原因有以下几点: 1. 考试科目和内容: 注册会计师考试包含专业阶段与综合阶段,共涉及六个科目,考察的内容覆盖范围更广泛&#xff…

最新Yiso智云搜索引擎系统源码/开源PHP源码/修复版

源码简介: 最新Yiso智云搜索引擎系统源码/开源PHP源码/修复版。Yiso 是一个性能非常好的搜索引擎,不仅免费开源,还能当作收录网址的平台来用呢!只需要输入关键词,就能轻松找到相关的搜索结果内容。 1、Yiso 用的是自…

脚本: 监控Oracle数据库中正在运行的SQL(Oracle DBA的工作利器)

英文原文网址:[Script: Monitoring Running SQL in Oracle Database in Real Time] (https://byte-way.com/2024/07/24/script-monitoring-running-sql-in-oracle-database-in-real-time/) 以下SQL查询活动会话及其正在执行的SQL语句的信息,并提供有关其…

生成式AI 未来发展的两大要素:数据和开发者

这一年来,生成式 AI 领域的发展可谓日新月异。大语言模型 (LLM) 已经从学术研究圈的新宠,变成了开发者、产品经理、IT 决策者、高管等所有人都密切关注和亲身参与的重要课题。 一年间,这类问题在新闻报道、技术大会、开发者闲聊、同事讨论、…

【Dash】Hello World

一、最简单的 Dash Building and launching an app with Dash can be done with just 5 lines of code. Open a Python IDE on your computer, create an app.py file with the code below and install Dash if you havent done so already. To launch the app, type into yo…

DBeaver如何连接本地的mysql服务

要使用 DBeaver 连接本地的 MySQL 服务,可以按照以下步骤进行设置: 1. 下载和安装 DBeaver 首先确保已经下载并安装了 DBeaver。你可以从官方网站 DBeaver 官网 下载适用于 macOS 的安装包,并按照提示安装。 2. 打开 DBeaver 并添加新的数…

Python编程的思维导图

创建一个Python编程的思维导图是一个很好的方式来组织和理解Python编程的核心概念、语法、库和应用领域。下面是一个简化的Python编程思维导图的概要,可以根据需要进行扩展或修改: Python编程 ├── 基础概念 │ ├── 变量与数据类型 │ │…

基于 YOLO V10 Fine-Tuning 训练自定义的目标检测模型

一、YOLO V10 在本专栏的前面几篇文章中,我们使用 ultralytics 公司开源发布的 YOLO-V8 模型,分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务,实验后发现效果都非常的不错,但它已经不是最强的了。最新的 YOLO-V10 已经…

如何看待储殷教授说的“现在的码农和纺织工人没区别“

储殷教授的观点认为现代的程序员(通常被称为“码农”)与过去的纺织工人没有本质的区别。这种说法引发了一些讨论和争议,码哥从几个角度来探讨这一观点: 工作性质的比较 重复性劳动 储殷教授可能认为,就像过去纺织工人…

18、基于DDD的微服务设计实例

在本章基于DDD的微服务设计实例中,我们将通过一个实际的微服务设计实例,详细介绍如何基于领域驱动设计(DDD)来构建微服务架构。这个实例不仅涵盖了微服务设计的基本原则,还展示了实际应用中的具体实现细节和最佳实践。…

pypi如何上传自己的代码记录

目录 一. 注册pypi账号并创建token 1. 注册pypi账号并创建token 2. Pypi账号注册 3. 邮箱验证 ​编辑 4. 重新生成恢复代码 5. 输入账号密码 ​编辑 6. 保存code并继续 ​编辑7. 输入一行即可,然后点击verify 8. 点击左方目录内的account setting&#xff…

17K star!30秒偷走你的声音,开源声音克隆工具

现在的AI发展越来越快,生成一段语音不是难事,那如果生成的是你自己的声音,你觉得如何? 今天我们分享一款开源的声音克隆工具,只需30秒的一般音源,他就可以偷走你的声音,它就是:Open…

【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Seattle_003靶场渗透 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、环境准备 1、从百度网盘下载对应靶机的.ova镜像 2、在VM中选择【打开】该.ova 3、选择存储路径&#xff0…

【扒代码】X = output[:,:,y1:y2,x1:x2].sum()

假设我们有以下输入: output 是一个形状为 (1【batch size】, 1【channel】, 10, 10) 的张量,表示一个 10x10 的输出图像。boxes 是一个形状为 (1【index】, 2, 5) 的张量,表示两个边界框,每个边界框包含 5 个值 [index, y1, x1,…

聊聊 ChatGPT

一、ChatGPT一次添加一个词 ChatGPT作用:人为输入任何文本后,自动生成一个"合理的延续",合理指的是:假如你看了数十亿网页上的内容后,发现大家都这么写,那你也这么写,就是合理的。Ch…

NC 删除有序链表中重复的元素-I

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 删除给出链表…