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")
相关推荐
qq_252941316811 小时前
日本道路病害检测数据集 | 道路病害 裂缝检测 坑洼识别 市政巡检9287期
人工智能·深度学习·yolo·目标检测·计算机视觉·道路检测
qq_252941316812 小时前
伊蚊检测数据集 | 伊蚊检测 病媒生物 公共卫生 目标检测9304期
人工智能·yolo·目标检测·计算机视觉·蚊子·尹蚊
qq_252941316820 小时前
无人机视角公路两侧滑坡检测数据集 | 公路巡检 滑坡检测 地质灾害 无人机航拍9302期
yolo·目标检测·目标跟踪·无人机·地质灾害·无人机视角·滑坡检测
向哆哆1 天前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪
燃烧的枫2 天前
Windows 下 YOLO11 Pose 的 TensorRT C++ 部署
windows·yolo·tensorrt·1024程序员节·yolo11-pose
磁场转动100万匹2 天前
道路巡检系统检测案例:YOLOv5 + Flask + PyQt 全栈实现
python·yolo
alwaysrun2 天前
YOLOv8n INT8量化实战
yolo·模型量化
城南皮卡丘3 天前
苹果果实成熟度检测数据集 4195张+YOLO格式
深度学习·yolo·目标检测·计算机视觉·数据集
微尘hjx3 天前
【数据集 11】面向城市道路的坑洞检测数据集(含8760张,已按比例划分训练、验证、测试集,支持YOLO全系列训练)
人工智能·yolo·目标检测·数据集·道路坑洞·路坑数据集·路坑
William一直在路上5 天前
把轻量化 YOLO 模型部署到你的手机上
yolo·智能手机