当前位置: 首页 > news >正文

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)

效果如下:

在这里插入图片描述

http://www.lryc.cn/news/575834.html

相关文章:

  • HarmonyOS NEXT仓颉开发语言实现画板案例
  • fish安装node.js环境
  • 【开发杂谈】Auto Caption:使用 Electron 和 Python 开发实时字幕显示软件
  • Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory
  • 车联网网络安全渗透测试:深度解析与实践
  • 商品中心—15.库存分桶扣减的技术文档
  • 一款被我拿来处理图片和视频的免费环保软件
  • Web基础关键_003_CSS(一)
  • 小程序学习笔记:加载效果、上拉加载与节流处理
  • Ubuntu安装Docker部署Python Flask Web应用
  • PHP语法基础篇(六):数组
  • 代码随想录|图论|09沉没孤岛
  • LSTM每个变量的shape分析
  • 从输入到路径:AI赋能的地图语义解析与可视化探索之旅
  • 通过ETL从MySQL同步到GaussDB
  • 喜讯 | Mediatom斩获2025第十三届TopDigital创新营销奖「年度程序化广告平台」殊荣
  • LINUX625 DNS反向解析
  • 基于 Spring Boot + Vue 3的现代化社区团购系统
  • 科技如何影响我们的生活?
  • 工业电子 | 什么是SerDes,为何工业和汽车应用需要它?
  • HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页
  • 金蝶云星空客户端自定义控件插件-WPF实现自定义控件
  • 使用Docker部署mysql8
  • 社会工程--如何使用对方的语言
  • JDBC入门:Java连接数据库全指南
  • AI辅助编写前端VUE应用流程
  • 树状dp(dfs)(一道挺基础的)
  • Spring Boot 项目问题:while constructing a mapping found duplicate key api
  • 微信小程序封装loading 修改
  • 常见网络安全威胁和防御措施