08实战经验yoloV8部署(2026年01月)

1.下载代码

GitHub - ultralytics/ultralytics: Ultralytics YOLO 🚀https://github.com/ultralytics/ultralytics2.使用自己配置好的环境,在终端进行激活自己的环境

3.安装所需文件架包

复制代码
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

等待安装完成

4.进行数据集划分

找到你制作好的数据集

由上面的结构转换为yolo格式的数据集,进行8:2划分

复制代码
D:\data\YanJi\
├── yolo_data/           # 图像文件夹(jpg/png)
└── labels_txt/         # 对应的 YOLO 格式标签(.txt 文件)

变为

复制代码
D:\data\YanJi\my_dataset/
├── images/
│   ├── train/     → 包含所有训练图片
│   └── val/       → 包含验证图片(可选)
└── labels/
    ├── train/     → 对应 .txt 标签
    └── val/       → 对应 .txt 标签

划分代码如下

复制代码
import os
import shutil
from pathlib import Path

# 设置路径
image_dir = Path(r"D:\data\YanJi\yolo_data")
label_dir = Path(r"D:\data\YanJi\labels_txt")
output_dir = Path(r"D:\data\YanJi\my_dataset")

# 创建输出目录
output_dir.mkdir(exist_ok=True)
for folder in ["images", "labels"]:
    (output_dir / folder).mkdir(exist_ok=True)
    for split in ["train", "val"]:
        (output_dir / folder / split).mkdir(exist_ok=True)

# 获取所有文件名(去掉后缀)
files = [f.stem for f in image_dir.glob("*.jpg") if f.stem in [f.stem for f in label_dir.glob("*.txt")]]

# 划分训练/验证(8:2)
train_ratio = 0.8
train_count = int(len(files) * train_ratio)

train_files = files[:train_count]
val_files = files[train_count:]

# 复制文件
for fname in train_files:
    img_src = image_dir / f"{fname}.jpg"
    label_src = label_dir / f"{fname}.txt"
    img_dst = output_dir / "images" / "train" / f"{fname}.jpg"
    label_dst = output_dir / "labels" / "train" / f"{fname}.txt"
    shutil.copy(img_src, img_dst)
    shutil.copy(label_src, label_dst)

for fname in val_files:
    img_src = image_dir / f"{fname}.jpg"
    label_src = label_dir / f"{fname}.txt"
    img_dst = output_dir / "images" / "val" / f"{fname}.jpg"
    label_dst = output_dir / "labels" / "val" / f"{fname}.txt"
    shutil.copy(img_src, img_dst)
    shutil.copy(label_src, label_dst)

print("✅ 数据集已成功划分!")

5.开始训练

复制代码
# train_guo.py
from ultralytics import YOLO
import torch

# 检查 GPU 是否可用(这部分可以放在外面,因为不涉及多进程启动)
print(f"✅ CUDA 可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"🎮 使用 GPU: {torch.cuda.get_device_name(0)}")

# ✅ 关键:将训练逻辑包裹在 if __name__ == '__main__': 中
if __name__ == '__main__':
    # 加载模型
    model = YOLO("yolov8n.pt")

    # 开始训练
    results = model.train(
        data="data/my_data.yaml",
        epochs=100,
        imgsz=640,
        batch=4,
        device=0,           # 使用 GPU
        half=True,          # 启用 FP16 半精度(节省显存)
        name="guo_detection",
        cache=False,
        workers=2           # 启用 2 个子进程加载数据(Windows 必须加主模块保护)
    )

    print(f"✅ 训练完成!最佳模型保存在: {results.save_dir}/weights/best.pt")
相关推荐
棒棒的皮皮8 小时前
【深度学习】YOLO模型评估之指标、可视化曲线分析
人工智能·深度学习·yolo·计算机视觉
MF_AI10 小时前
大型烟雾火灾检测识别数据集:25w+图像,2类,yolo标注
图像处理·人工智能·深度学习·yolo·计算机视觉
AI小怪兽11 小时前
基于YOLO11的航空安保与异常无人机检测系统(Python源码+数据集+Pyside6界面)
开发语言·人工智能·python·yolo·计算机视觉·无人机
源来猿往11 小时前
yolov8n结构化剪枝
算法·yolo·剪枝
才不做选择16 小时前
基于 YOLOv8 的部落冲突 (Clash of Clans) 目标检测系统
人工智能·python·yolo·目标检测
棒棒的皮皮1 天前
【深度学习】YOLO核心原理介绍
人工智能·深度学习·yolo·计算机视觉
熬夜不洗澡2 天前
如何在pycharm中使用Yolo
ide·yolo·pycharm
智驱力人工智能2 天前
从占座到智座 非授权人员座位占用监测系统的产品化思考与实践 椅位占用检测 非员工座位占用AI预警 边缘计算非授权座位识别设备
人工智能·opencv·算法·安全·yolo·计算机视觉·边缘计算
AI浩2 天前
SPDC-YOLO:基于改进YOLOv8的高效无人机航拍图像小目标检测网络
yolo·目标检测·无人机