从零直接上手:速通YOLOv8!
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日记
更多推荐
所有评论(0)