从零开始跑通yolov8基线

从零开始跑通yolov8基线

  • 一、环境的搭建
    • [1.1 下载python3.10](#1.1 下载python3.10)
    • [1.2、安装 PyTorch 2.5.1 + CUDA 12.4](#1.2、安装 PyTorch 2.5.1 + CUDA 12.4)
    • [1.3 安装 Ultralytics](#1.3 安装 Ultralytics)
  • 二、初步了解YOLOv8
    • [2.1 Ultralytics类似于mmseg 而yolo类似于segformer](#2.1 Ultralytics类似于mmseg 而yolo类似于segformer)
    • [2.2 操作以及训练的区别](#2.2 操作以及训练的区别)
  • 三、数据集OGSOD2
  • 四、开始训练(以RGB为例子)
    • [4.1 数据集配置文件](#4.1 数据集配置文件)
    • 下载预训练权重
    • [4.3 先跑一个epoch验证整条链路(数据加载 → 模型 → GPU → 保存)都通。](#4.3 先跑一个epoch验证整条链路(数据加载 → 模型 → GPU → 保存)都通。)
      • [4.3.1 训练的一些量级单位](#4.3.1 训练的一些量级单位)
      • [4.3.2 训练命令](#4.3.2 训练命令)
  • 五、输出结果
    • [5.1 日志](#5.1 日志)
    • [5.2 权重](#5.2 权重)
  • 六、完整训练
  • 补充:

一、环境的搭建

1.1 下载python3.10

bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

# 创建 conda 环境
conda create -p ./envs/yolov8 python=3.10 -y

激活环境

bash 复制代码
conda activate /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/envs/yolov8

设置短别名

以后直接 act_yolo 就能激活。

bash 复制代码
echo "alias act_yolo='conda activate /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/envs/yolov8'" >> ~/.bashrc
source ~/.bashrc
bash 复制代码
act_yolo

升级pip

bash 复制代码
pip install --upgrade pip

1.2、安装 PyTorch 2.5.1 + CUDA 12.4

bash 复制代码
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 \-f https://mirrors.tuna.tsinghua.edu.cn/pytorch-wheels/cu124/torch_stable.html

检查安装结果

bash 复制代码
python -c "
import torch
print('PyTorch:', torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('CUDA version:', torch.version.cuda)
print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')
print('cuDNN:', torch.backends.cudnn.is_available())
"

1.3 安装 Ultralytics

bash 复制代码
pip install ultralytics==8.3.54 "protobuf==4.25.3"

检查

bash 复制代码
python -c "
import torch
from ultralytics import YOLO
print('PyTorch:', torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('CUDA version:', torch.version.cuda)
print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')
print('cuDNN:', torch.backends.cudnn.is_available())
print('Ultralytics imported OK')
"

二、初步了解YOLOv8

2.1 Ultralytics类似于mmseg 而yolo类似于segformer

类比

区别

2.2 操作以及训练的区别

Ultralytics源码位置

一般的普通训练

创新改进算法

三、数据集OGSOD2

bash 复制代码
OGSOD2/
├── rgb/                          ← 光学(可见光)模态
│   ├── train/
│   │   ├── images/   18773 张 .png
│   │   └── labels/   18773 个 .txt(YOLO 格式)
│   └── test/
│       ├── images/    4676 张 .png
│       └── labels/    4676 个 .txt
│
├── sar/                          ← SAR(合成孔径雷达)模态
│   ├── images/{train,test}/     同上,18773 + 4676
│   ├── labels/{train,test}/     同上
│   └── annotations/             3 个 COCO 格式 json
│
├── *.py                         前人写的工具脚本
│   ├── check.py                 COCO json 校验
│   ├── yolo-json.py             YOLO → COCO 转换
│   ├── sort.py                  批量重命名
│   ├── draw.py, label_vis.py    标注可视化
│   ├── predict_vis.py           推理可视化
│   ├── findblank.py             找空标注
│   └── rename.py                重命名

四、开始训练(以RGB为例子)

4.1 数据集配置文件

告诉代码数据集位置,结构,标签名

yaml 复制代码
# OGSOD2 RGB baseline

# 3 classes, val = test (temporary)



path: /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/data/OGSOD2/rgb

train: train/images

val: test/images

test: test/images



nc: 3

names:

  0: Bridge

  1: Harbor

  2: Oil-tank

数据集根目录

YOLOv8 图像与标签简化写法

类别

我们之前做的项目有多个配置文件

1、数据集配置文件------------》yolov8里只需要这一个配置文件

2、模型结构------------》在下载预训练权重时附带

3、学习率、优化器、epoch超参数------------》在命令行里显示指定

4、日志、checkpoint等------------》

5、主配置文件,继承上面四个

下载预训练权重

bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/weight

curl -L -o yolov8n.pt https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt
ls -lh yolov8n.pt
bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

4.3 先跑一个epoch验证整条链路(数据加载 → 模型 → GPU → 保存)都通。

4.3.1 训练的一些量级单位

一个 iteration一次迭代:迭代一次更新一次参数
Batch 批次:一次喂给模型一组Batch (一组样本集合)

Batch Size== 批量:一组样本集合有多少张图片

Epoch== 轮次: 整个训练集完整过一遍

4.3.2 训练命令

bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

yolo detect train data=configs/ogsod2_rgb.yaml model=weight/yolov8n.pt epochs=1 imgsz=256 batch=64 project=runs/detect name=smoke_test exist_ok=True

五、输出结果

5.1 日志

5.2 权重

这里只保存 best 和 last,可以再续训练

六、完整训练

bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

mkdir -p logs
ls -lah
bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

nohup yolo detect train data=configs/ogsod2_rgb.yaml model=weight/yolov8n.pt epochs=100 imgsz=256 batch=64 cache=True workers=8 project=runs/detect name=rgb_baseline exist_ok=True > logs/rgb_baseline.log 2>&1 &

成功会输出类似:

bash 复制代码
[1] 12345

立即看日志确认启动

bash 复制代码
tail -n 30 logs/rgb_baseline.log

确认进程在跑

bash 复制代码
jobs
bash 复制代码
nvidia-smi

补充:

1、快速打开本项目

bash 复制代码
cd /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8

act_yolo
相关推荐
程序猿编码4 小时前
YOLOv5/v7/YOLOX 全支持:基于 TensorRT 的工业视觉推理底座详解
c++·yolo·机器学习·推理·模型推理
JulyLi20191 天前
yolo检测适配昇腾Atlas300IDuo笔记
yolo·1024程序员节
IT研究室1 天前
最新计算机毕业设计选题推荐-基于深度学习的面部关键特征识别与检测-运行部署-文档指导-深度学习-YOLO
人工智能·深度学习·yolo·课程设计
AI棒棒牛2 天前
基于 IDEAL 思想的 YOLO26 双分支适配:差异证据与不确定性门控,RGB+IR双分支创新!
人工智能·深度学习·yolo·目标检测·yolo26
qq_25294131683 天前
多模态屋顶损伤与杂物检测数据集 | 屋顶检测 多模态 红外可见光 建筑巡检 目标检测9232期
人工智能·深度学习·yolo·目标检测·计算机视觉·屋顶
jay神3 天前
基于 YOLOv11 的无人机航拍小目标检测系统
人工智能·深度学习·yolo·目标检测·计算机视觉·无人机·计算机毕业设计
jay神3 天前
基于 YOLOv8 的手势识别系统
人工智能·深度学习·yolo·机器学习·计算机视觉·目标跟踪·课程设计
qq_25294131683 天前
不同成熟度番茄果实多模态图像数据集 | 番茄成熟度 多模态检测 可见光深度红外 智慧农业 语义分割 目标检测9233期
人工智能·yolo·目标检测·目标跟踪·番茄多模态
jay神3 天前
基于 YOLOv8 的垃圾分类识别系统
人工智能·深度学习·yolo·机器学习·目标跟踪·分类·计算机毕业设计
qq_25294131683 天前
航拍地面垃圾检测数据集 | 垃圾检测 航拍巡检 环境治理 目标检测 YOLO格式9224期
人工智能·yolo·目标检测·计算机视觉·垃圾检测·航拍地面