§ 简介
YOLOv8是由Ultralytics公司开发的最新一代目标检测模型,它是YOLO(You Only Look Once)系列的延续,旨在提供实时、高精度的目标检测能力。YOLOv8在保持高速度的同时,也注重精度的提升,适用于各种物体检测任务。
YOLOv8系列提供多种模型,每种模型都专门用于计算机视觉中的特定任务,如物体检测、实例分割、姿态/关键点检测、定向物体检测和分类等。
yolov5和yolov8为同一作者,yolov5在yolov8上作了集成,可以在yolov8上运行yolov5模型。
§ 简单上手
YOLOv8 环境安装参考教程:【手把手带你实战YOLOv8-入门篇】YOLOv8 环境安装
pip源码安装:
cmd激活yolov8环境,cd到存放代码的文件夹,然后输入命令:
pip install -e .
查看虚拟环境中安装的包
pip list
使用:
yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg
命令解释:
yolo task=detect model=predict model=./yolov8n.pt source="./ultralytics/assets/bus.jpg"
- yolo:启动命令
- task=detect:指定了要执行的任务类型,这里是 detect,意味着进行目标检测。
- model=predict:模型的作用,预测、训练、验证……
- model=./yolov8n.pt:使用什么模型
- source=“./ultralytics/assets/bus.jpg”:指定输入图像的路径,指向 ultralytics/assets/bus.jpg 文件。
§ 数据集构建
数据准备
图片类型数据:无需额外处理,直接可以进行标注
视频类型数据:进行抽帧处理,导出为图片
抽帧处理
import cv2
import matplotlib.pyplot as plt
video = cv2.VideoCapture('1.avi')
num = 0
step = 44 # 间隔帧数
while True:
ret, frame = video.read()
if not ret:
break
num += 1
if num % step == 0:
cv2.imwrite("./1/" + "" + str(num) + ".jpg", frame)
1、./是当前目录(可省略)
2、…/是父级目录
3、/是根目录
pip install labelimg
打开labelimg进行标注
快捷键:
w:标框
a:上一张图片
d:下一张图片
标图网站
在线标注,加载预训练模型辅助标注
寻找公开数据集
roboflow 公开数据集
地址:
https://public.roboflow.com/object-detection
https://universe.roboflow.com/
§ 模型训练
训练前准备
数据集准备:
images:存放图片
- trgin:训练集图片
- val:验证集图片
labels:存放标签
- train:训练集标签文件,要与训练集图片名称-一对应
- val:验证集标签文件,要与验证集图片名称–对应
配置yaml文件
# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)