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")
相关推荐
2501_9413331021 小时前
数字识别与检测_YOLOv3_C3k2改进模型解析
人工智能·yolo·目标跟踪
xsc-xyc1 天前
RuntimeError: Dataset ‘/data.yaml‘ error ❌ ‘_lz
人工智能·深度学习·yolo·计算机视觉·视觉检测
张3蜂1 天前
我希望做的是识别身份证正反面,我需要标注多少张图片?
yolo
AAD555888991 天前
YOLOv8-MAN-Faster电容器缺陷检测:七类组件识别与分类系统
yolo·分类·数据挖掘
AI浩1 天前
YOLO-IOD:面向实时增量目标检测
yolo·目标检测·目标跟踪
wfeqhfxz25887821 天前
YOLOv8-BiFPN鸟巢目标检测与识别实战教程
yolo·目标检测·目标跟踪
Katecat996631 天前
基于YOLOv8和MAFPN的骆驼目标检测系统实现
人工智能·yolo·目标检测
ZCXZ12385296a1 天前
YOLOv8_HSPAN_机器人视觉系统中的球体目标检测与追踪_1
yolo·目标检测·机器人
BestSongC1 天前
基于 YOLO11 的智能行人摔倒检测系统
人工智能·深度学习·yolo·目标检测
2501_941333101 天前
【工业视觉检测】基于YOLOv8的皮带输送机关键部件检测与识别系统完整实现
人工智能·yolo·视觉检测