YoloV8的安装和训练

本文详细介绍了如何在Anaconda环境中安装和配置YoloV8,包括创建虚拟环境、下载代码、运行命令、数据集准备、模型训练以及常用参数。重点讲解了训练模型的步骤和关键参数设置。
摘要由CSDN通过智能技术生成


此方法在Anaconda环境上进行安装的,前期的CUDA的安装和Anaconda的安装需要自行安装完成。此方法是直接从在Anaconda中创建虚拟环境中开始的。无特殊说明下方指令均在“Anaconda Prompt”中执行。

一、配置环境

创建名称为yolov8的虚拟环境:

conda create --name yolov8 python

激活yolov8虚拟环境:

conda activate yolov8

使用pip下载yolov8所需要的第三方库:

pip install ultralytics

二、下载

在官方网页中下载YoloV8的所有的代码:
官方网页:https://github.com/ultralytics/ultralytics

三、运行

3.1命令解释

Yolov8的命令构成为:yolo TASK MODE ARGS

TASK(选择) 是[detect、segment、classification]中的一个。如果没有显式传递,YOLOv8将尝试从模型类型中猜测TASK。
MODE(必选) 是[train, val, predict, export]中的一个
ARGS(选择) 是任意数量的自定义arg=value对,如imgsz=320,覆盖默认值。

类型用途示例
TASKdetect
segment
classification
MODEtrain用于图片模型的训练yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
训练10个时期的检测模型,初始学习率为0.01
valyolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640
Val是批量大小为1和图像大小为640的预训练的检测模型:
predict用于图片/视频的检测yolo predict model=yolov8n-seg.pt source=‘https://youtu.be/LNwODJXcvt4’ imgsz=320
使用图像大小为320的预训练分割模型预测YouTube视频
exportyolo export model=yolov8n-cls.pt format=onnx imgsz=224,128
将YOLOv8n分类模型导出为ONNX格式,图像大小为224×128(不需要TASK)
ARGS

其他特殊命令:

yolo help
yolo checks
yolo version
yolo settings
yolo copy-cfg
yolo cfg

常用参数:

model	传入的model.yaml文件或者model.pt文件,用于构建网络和初始化,不同点在于只传入yaml文件的话参数会随机初始化
data	训练数据集的配置yaml文件
epochs	训练轮次,默认100
patience	早停训练观察的轮次,默认50,如果50轮没有精度提升,模型会直接停止训练
batch	训练批次,默认16
imgsz	训练图片大小,默认640
save	保存训练过程和训练权重,默认开启
save_period	训练过程中每x个轮次保存一次训练模型,默认-1(不开启)
cache	是否采用ram进行数据载入,设置True会加快训练速度,但是这个参数非常吃内存,一般服务器才会设置
device	要运行的设备,即cuda device =0或Device =0,1,2,3或device = cpu
workers	载入数据的线程数。windows一般为4,服务器可以大点,windows上这个参数可能会导致线程报错,发现有关线程报错,可以尝试减少这个参数,这个参数默认为8,大部分都是需要减少的
project	项目文件夹的名,默认为runs
name	用于保存训练文件夹名,默认exp,依次累加
exist_ok	是否覆盖现有保存文件夹,默认Flase
pretrained	是否加载预训练权重,默认Flase
optimizer	优化器选择,默认SGD,可选[SGD、Adam、AdamW、RMSProP]
verbose	是否打印详细输出
seed	随机种子,用于复现模型,默认0
deterministic	设置为True,保证实验的可复现性
single_cls	将多类数据训练为单类,把所有数据当作单类训练,默认Flase
image_weights	使用加权图像选择进行训练,默认Flase
rect	使用矩形训练,和矩形推理同理,默认False
cos_lr	使用余弦学习率调度,默认Flase
close_mosaic	最后x个轮次禁用马赛克增强,默认10
resume	断点训练,默认Flase
lr0	初始化学习率,默认0.01
lrf	最终学习率,默认0.01
label_smoothing	标签平滑参数,默认0.0
dropout	使用dropout正则化(仅对训练进行分类),默认0.0

3.2测试使用与目标识别

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

"model="后面所添加的是权重的位置。因为此权重才主目录故直接选择即可。
“soutce=”后面所添加的是需要检测照片的地址,如果自己想识别其他的文件,则可以在source=后面加入图片或视频的“地址+文件名”。

3.3模型训练

3.3.1数据集的准备

YoloV8和YoloV5一样,需要用到Yolo 格式的文件作为训练集。Yolo格式的数据标注文件主要分为5个数值中间用空格分开,保存在.txt格式的文件当中。文件内每个数分别是:

在这里插入图片描述
“[数据种类] [矩形左上X坐标] [矩形左上Y坐标] [矩形右下X坐标] [矩形右下Y坐标]”

数据集可以做为以下的文件夹结构:

datasets

images

    img1.jpg

    img2.jpg

labels

    img1.txt

    img2.txt

3.3.2数据集的标签制作

标签的标注的训练自己模型最重要的步骤。因为YoloV8和YoloV5一样,需要使用Yolo格式的文件,故我们可以使用Make Sense,来制作Yolo格式的标签。(网站点击下方蓝字即可)

Make Sense

首先打开网址,选择“Get Started”后导入图片,再选择“Objeck Detection”。点击“Start Progect”开始项目。选择矩形框,框选物品后在选择标签。效果如下图:

在这里插入图片描述

图片全部标注完毕后再“Actions”中点击“Export Annotations”。勾选Yolo后导出即可(注意导出的文件只有Yolo的标签,所以务必保存好自己的数据集),如下图:

在这里插入图片描述

这样我们的数据准备工作就已经全部结束了。

3.3.3训练模型文件编辑

YoloV8和YoloV5相同,都需要制作一个“.yaml”格式的文件,但“.yaml”文件内部的构成发生了一定的变化。相关的“.yaml”实例在“ultralytics-main/ultralytics/cfg/datasets"内也有。“.yaml”文件可以保存在任意目录下,但需要再训练时输入路径,但放在“ultralytics-main”目录下可以不用再训练时写路径。
(下方内容为“.yaml”文件,不是在Anaconda Prompt运行)

path: ../datasets/XXX  # dataset root dir
train: images  # train images (relative to 'path') 39384 images
val: images # val images (relative to 'path') 15062 images
test: # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview

# Classes 每个序号后面所写的名称必须和标签中的数据所对应,中文英文均可。
names:
  0: "苹果"   #中文需加“引号”
  1: Apple

3.3.4训练模型

训练模型前可以先执行官方给到的测试语句,这样可以自动下载“.pt”文件也可以检测程序是否可以正常运行。语句如下:

yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

训练自己的模型时需要输入下列语句即可,其中XXX.yaml是前面写的.yaml文件,最好加对应的目录。epochs是所训练的代数,batch是每次训练的图片数,如果显存较小可以靠调整数据来减低对显存的需要。

yolo detect train  data=XXX.yaml model=yolov8n.pt epochs=X batch=X

四、写在最后

本人第一次写教程,若有错误请多包涵并指出,我及时修改。
“3.1命令解释”多为官方文档内的转载。

YOLOv8(You Only Look Once version 8)是一个先进的目标检测算法,它是YOLO(You Only Look Once)系列的最新版本之一,以高效实时性能而闻名。以下是YOLOv8的基本安装和使用步骤: **安装**: 1. **环境准备**:首先,你需要一个支持深度学习的环境,比如Python 3.6+,以及GPU支持(如果有)。安装必要的库,如CUDA、cuDNN、TensorRT和PyTorch或PyTorch-lightning等。 2. **从GitHub克隆**:访问YOLOv8的GitHub仓库(https://github.com/ultralytics/yolov8)并克隆到本地:`git clone https://github.com/ultralytics/yolov8.git` 3. **安装依赖**:进入项目目录,运行`pip install -r requirements.txt`来安装所需的依赖项。 4. **构建模型**:如果需要自定义模型,可以使用`python train.py`来训练一个新模型,或者使用预训练的权重文件。 **使用**: 1. **加载预训练模型**:在Python脚本中,导入模型并加载权重,例如`model = cv2.dnn.readNetFromDarknet('yolov8.cfg', 'yolov8.weights')`。 2. **设置输入和输出层**:识别网络中的输入和输出层。 3. **处理图像或视频**:使用`model.setInput()`设置输入数据,`outputs = model.forward(output_names)`执行前向传播获取输出。 4. **解析输出**:解析YOLOv8的输出,通常会得到物体的边界框、类别和置信度。使用`non_max_suppression()`方法进行后处理,筛选出最有可能的目标。 5. **显示结果**:将检测结果可视化,可以使用OpenCV或其他库来显示带有边框和标签的原始图片。 **相关问题--:** 1. YOLOv8相比其他目标检测算法有哪些优势? 2. 如何进行模型的微调以适应特定任务? 3. YOLOv8的输出如何与真实世界坐标进行转换?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值