1 YOLOv8代码下载

YOLOv8的代码是开源的,大家可以直接通过github下载:

https://github.com/Pertical/YOLOv8

下载到压缩包后进行解压,就得到了YOLOv8的代码:

2 环境准备

这里的前提条件是大家已经安装好了torch,如果没有安装好,不着急,可以查看我的历史文章,也有保姆级安装教程。

从github下载代码后,我们要做的第一件事就是查看README文档,然后准备我们的环境。如果安装过了conda,最好使用conda进行安装:

  • 创建一个名为yolov8_env的conda虚拟环境(注意python要>=3.7):

conda create -n yolov8_env python=3.8 -y
  • 激活环境:

conda activate yolov8_env 
  • 安装所需要的库:

pip install ultralytics
  • 查看安装的库:

conda list

至此,我们yolov8的相关环境已经安装好了,可以开始调用了。

3 YOLOv8的推理与训练

3.1 YOLOv8推理

为了快速验证效果,我们首先来使用yolov8进行推理,在我们的环境中运行命令:

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

首先代码会从官网下载权重:

然后执行,界面会给出运行结果的存放路径:

检测结果:

3.2 YOLOv8训练

以COCO数据集为例:

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

这句命令各个字段的含义是:

  • train:

表示训练模式

  • data=coco128.yaml

表示采用coco128数据集进行训练

  • model=yolov8n.pt:

表示使用预训练的yolov8n.pt模型作为初始权重,也可以指定为yaml文件(如yolov8n.yaml)来从头开始训练。

后面两个参数表示训练100个轮次,将图像调整为640x640像素进行训练。

我们看一下实操效果:

如果训练中断还可以恢复训练:

yolo detect val model=path/to/best.pt

当训练完成之后,用我们自己训练好的权重进行预测,注意这里路径要更换,一般在runs/detect/train8/weights/best.pt:

yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'

3.3 YOLOv8集成

我们可以直接将YOLOv8集成到 Python 项目中,相当于我们已经安装好了yolov8的库,可以直接在python中调用就好了,实现检测功能:

from ultralytics import YOLO
model = YOLO('yolov8n.yaml')
model = YOLO('yolov8n.pt')
results = model.train(data='coco128.yaml', epochs=3)
results = model.val()
results = model('https://ultralytics.com/images/bus.jpg')

在上面的代码中,我们重新开始训练一个yolo模型,并且加载了预训练参数,训练的数据集为coco,同时在验证机上评估模型性能,最后对目标图片检测。

比如我们建立一个test.py,编写上述代码,再运行:

训练好之后对自己的模型进行验证:

yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg

4 YOLOv8训练自己的数据集

我们来做一个口罩检测的项目,数据集地址:https://public.roboflow.com/object-detection/mask-wearing/4

注意要下载yolov8的格式:

下载后我们看看数据集的目录:

训练集的样本:

编辑我们的maskdetect.yaml文件:

path: ../../../yolov8/datasets/MaskDataSet
train: ../train/images
val: ../valid/images
test: ../test/images
nc: 2
names: ['mask', 'no-mask']

将maskdetect.yaml放在YOLOv8-main/ultralytics/yolo/data/datasets/maskdetect.yaml 再将数据集放在datasets中,将datasets文件夹放在和YOLOv8-main同一目录下:

运行命令:

yolo detect train data=./ultralytics/yolo/data/datasets/maskdetect.yaml model=yolov8n.pt epochs=100 imgsz=640

开始训练:

训练完成的模型保存在YOLOv8-main/runs/detect/train中,对其进行测试:

yolo predict model=runs/detect/train31/weights/best.pt source= ../datasets/MaskDataSet/test/images/

看看效果:

训练了100个epoch,效果还可以。

欢迎大家关注我的gzh:阿龙AI日记

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐