yolo V8 学习:

yolo V8 训练自己的模型(标注数据,更改训练配置文件等)

了解yolo的发展历程

一、环境配置:

1、安装 Anaconda

下载安装包安装即可

2、创建虚拟环境

# 创建虚拟环境,注意使用Anaconda Prompt命令行
conda create --name yolotest python=3.8.19

3、创建虚拟环境成功后,安装yolo

# 进入虚拟环境
conda activate yolotest
# 安装之前可以配置一下镜像源,提升下载安装速度
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
# 安装yolo
pip install yolo

在这里插入图片描述

# 安装ultralytics
pip install ultralytics
# 安装标注工具
pip install labelimg

在这里插入图片描述

# 安装ncnn 本次不使用,可以不安装
pip install ncnn
Yolo 命令解释:
yolo 命令行工具用于处理 YOLOv8 模型的不同任务。以下是一些基本用法的中文解释:
训练检测模型:训练一个 YOLOv8 检测模型,使用 Yolo train 命令,指定数据、模型文件、训练轮数和初始学习率。
例如:yolo train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01

预测视频:使用一个预训练的分割模型对YouTube 视频进行预测,指定图像大小。
例如:yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320

验证模型:对一个预训练的检测模型进行验证,设置批次大小和图像大小。
例如:yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640

导出模型:将 YOLOV8 分类模型导出为 ONNX格式,指定图像大小。
例如:yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128

数据集探索:使用 Utralytics Explorer API浏览数据集,支持语义搜索和 SQL查询。
例如:yolo explorer data=data.yaml model=yolov8n.pt

实时摄像头推理:使用 Streamlit 启动一个实时摄像头推理界面。
例如:yolo streamlit-predict

二、新建训练文件夹

1、创建yolotrain文件并在该文件夹下创建images、labels,

2、images、labels文件夹下分别都创建 train、val文件夹(images文件夹下多创建一个test文件夹)
在这里插入图片描述

三、标注数据

将准备好的图片放到 images/train文件夹,下面并且复制一份到 images/val文件夹
在命令控制台,输入labelimg命令,即可打开labelimg程序,进行图片标注。

  1. 点击Open Dir按钮,选择到你的 images/train文件夹即可,例如E:/yolotest/images/train。
  2. 点击Change Save Dir 按钮,选择到你的 labels/train文件夹即可,例如E:/yolotest/labels/train。
  3. 点击Save 下面的格式按钮,注意调整到 YOLO格式的模式再保存,请看下图

在这里插入图片描述

四、模型训练

再训练模型之前还需要一些必要的准备工作,除了准备必要的数据,还需要一些文件。

在这里插入图片描述

Arial文件是字体文件,如果需要自定义字体,那么需要安装一下,点击复制路径Atial.ttf即可;否则可以不使用。

blood文件是yaml类型,配置信息如下:

path: E:/yolotrain
train: images/train
val: images/val
test: images/test
nc: 2
names: ["armor","blood"]

labeling 文件是 中文版的图片标注程序,可以不使用。

pnnx-20240618-windows 文件用于模型转换导出,本次也未用到,可以不使用

yolov8s.pt文件是yolo已经训练好的模型,本次训练是在该模型的基础上训练的,必须使用。

准备好必要文件 yaml配置文件 和 .pt 两个必须文件(可以去yolo官网下载即可)
放入yolotrain项目文件夹后可以开始训练模型:

# 训练模型
yolo detect train data=e:/yolotrain/blood.yaml model=e:/yolotrain/yolov8s.pt epochs=20 imgsz=2100

在这里插入图片描述

在这里插入图片描述

五 、测试模型
# 训练后的模型存储路径
E:\yolotrain\runs\detect\train\weights\best.pt
from ultralytics import YOLO
import cv2
# Load a COCO-pretrained YOLOv8n model
model = YOLO(model="./best.pt")

# 视频路径
video_path = "./val.mp4"
# 读取视频
cap = cv2.VideoCapture(video_path)

while cap.isOpened():
    # 读取视频播放状态、视频帧
    status, frame = cap.read()
    if not status:
        break
    # 使用模型预测
    results = model.predict(source=frame)
    # 多个结果,取第一个展示
    result = results[0]
    # 画标注框
    anno_frame = result.plot()

    # 调整帧大小
    # 获取原始帧的高度和宽度
    height, width, _ = anno_frame.shape
    # 计算调整后的宽度
    new_width = int((width / height) * 600)
    # 调整帧大小并保持纵横比
    anno_frame_resized = cv2.resize(anno_frame, (new_width, 600))

    # 创建固定大小的窗口并展示调整大小后的结果
    cv2.namedWindow("yy", cv2.WINDOW_NORMAL)
    cv2.resizeWindow("yy", 1100, 600)

    # 展示结果
    cv2.imshow("yy", anno_frame)
    # 退出代码
    key = cv2.waitKey(1)
    if key & 0xFF == ord('q') or key == 27:  # 检查按键是否为 'q' 或者 Esc 键的 ASCII 值
        break
# 资源释放
cap.release()
cv2.destroyAllWindows()

工具:

# 将视频转为图片放到文件夹
import cv2
import os

# 打开视频文件
video = cv2.VideoCapture('./train.mp4')

# 视频帧计数
frame_count = 0

# 指定保存图片的文件夹
output_folder = "E:/yolotrain/images/train/"

# 确保输出文件夹存在,如果不存在则创建它
os.makedirs(output_folder, exist_ok=True)

# 循环读取视频帧
while True:
    success, frame = video.read()
    if not success:
        break

    # 保存当前帧为图片文件
    cv2.imwrite(output_folder + "frame%d.jpg" % frame_count, frame)
    frame_count += 1

video.release()
cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值