YOLOv8快速入门
YOLOv8 是 Ultralytics 提供的一个强大的目标检测框架,支持多种任务,包括但不限于图像分类、目标检测和实例分割。以下是关于如何安装 YOLOv8 并运行其基本功能的详细介绍。
YOLO(You Only Look Once)
1、安装与使用
安装 YOLOv8
要使用 YOLOv8,首先需要安装 ultralytics 库。可以通过以下命令完成:
pip install ultralytics
这一步会自动下载并安装最新版本的 YOLOv8 所需的所有依赖项。(pytorch根据需要自定义)
基本代码示例
下面是一个简单的 Python 脚本,展示如何加载预训练模型并对单张图片执行目标检测:
from ultralytics import YOLO# 加载预训练权重文件
model = YOLO('yolov8n.pt')# 对一张图片进行推理
results = model('example.jpg') # 显示结果
results[0].show()
上述脚本展示了如何通过调用 YOLO() 函数初始化模型,并传入一个预定义的 .pt 文件路径来加载模型权重。之后,可以传递任意图片给该模型以获取预测结果。
2、数据集介绍
YOLOv8 在训练中使用了COCO数据集数据集地址,包含超过20万张图像,涵盖80类常见物体(如人、车辆、动物、日常用品等),支持目标检测、实例分割等任务。
类别查看
from ultralytics import YOLOmodel = YOLO("yolov8n.pt")
print(model.names) # 输出所有类别名称
YOLO数据集目录结构:
/dataset_root/
├── images/ # 存放图像
│ ├── train/ # 训练集图像
│ └── val/ # 验证集图像
├── labels/ # 存放标签文件(.txt格式)
│ ├── train/ # 训练集标签
│ └── val/ # 验证集标签
└── data.yaml # 数据集配置文件(定义路径和类别)
下面这种格式也行,适合 小规模实验/工具导出数据
/dataset_root/
├── train/ # 训练集
│ ├── images/ # 训练图像
│ └── label/ # 训练标签
├── val/ # 测试集
│ ├── images/ # 测试图像
│ └── label/ # 测试标签
└── data.yaml # 配置文件
标签文件txt里面格式为:<class_id> <x_center> <y_center> <width> <height>
分别为:类别、中心点x坐标,中心点y坐标,目标宽度,目标高度
3、训练自定义数据集
下面以头盔数据集为例
数据集下载地址
3.1 编写safehat.yaml文件
# 模型训练时便用的yaml配置文件。该文件说明了数据的地址和待训练的类别
# 配置三个路径,分别对应训练数据、验证数据、训练数据、测试数据的地址# 训练数据
train: ./css-data/train/images/
val: ./css-data/valid/images/
test: ./css-data/test/images/
# number of classes
nc: 10# class甴馨ames
#names:['0',"1","2","3',"4','5','6','7','8','9']
#Hardhat-安全帽
#Mask-口罩
#NO-Hardhat-无安全帽
#NO-Mask-无口罩
#N0-Safety Vest-无安全背心
#Person-人
#Safety Cone - 安全锥
#Safety Vest - 安全背心
#machinery -机械(挖掘机)
#vehicle-车辆
names: [Hardhat, Mask, No-Hardhat, No-Mask, No-Safety Vest, Person, Safety Cone, Safety Vest, machinery, vehicle]
3.2 训练文件safehat_train.py(也可以通过在源码里进行训练)
from ultralytics import YOLOmodel = YOLO("yolov8n.pt")train_results = model.train(data="gesture.yaml", # Path to dataset configuration fileepochs=100, # Number of training epochsdevice="cpu", # Device to run on (e.g., 'cpu', 0, [0,1,2,3])
)metrics = model.val()
训练完得到效果最好的模型 best.pt
3.3 测试文件safehat_test.py
from ultralytics import YOLOmodel = YOLO("runs\detect\\train8\\weights\\best.pt")model.predict('../images/test_safehat.jpg', save=True)
效果如下: