当前位置:   article > 正文

YoloV8的安装和训练_yelov5和v8能同时安装吗

yelov5和v8能同时安装吗


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

一、配置环境

创建名称为yolov8的虚拟环境

conda create --name yolov8 python
  • 1

激活yolov8虚拟环境:

conda activate yolov8
  • 1

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

pip install ultralytics
  • 1

二、下载

在官方网页中下载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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

常用参数:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

3.2测试使用与目标识别

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

"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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.3.4训练模型

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

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

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

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

四、写在最后

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/150840
推荐阅读
相关标签
  

闽ICP备14008679号