从零开始跑通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
相关推荐
FL162386312914 小时前
智慧医疗X光图像小儿手腕外伤检测数据集VOC+YOLO格式2538张9类别
人工智能·yolo·机器学习
YOLO数据集集合16 小时前
红外无人机与鸟类目标检测数据集 | 红外检测 无人机识别 鸟类检测 低空安防 反无人机 yolov11模型9151期
yolo·目标检测·无人机
牧子川1 天前
YOLO-AMC:裂缝检测再进化,给 YOLOv11 换上更合适的「注意力」
yolo·目标检测·yolo11·裂缝检测
FL16238631292 天前
无人机视角海边沙滩垃圾检测数据集VOC+YOLO格式603张3类别
人工智能·yolo
YOLO数据集集合2 天前
光伏组件异常检测数据集 | 光伏组件 异常检测 红外检测 热斑识别 光伏巡检9147期
人工智能·yolo·目标检测·语言模型·太阳能板·光伏组件
FL16238631292 天前
车内饰品缺陷车内部件表面缺陷检测数据集VOC+YOLO格式1491张4类别
yolo
深蓝电商API2 天前
用YOLO训练验证码目标检测模型的全流程
爬虫·yolo·目标检测·目标跟踪
YOLO数据集集合2 天前
河道环境智能检测系统(YOLO + DeepSeek) | 河道巡检 YOLO DeepSeek 大语言模型 智慧水利 9144期
人工智能·yolo·目标检测·语言模型·河道污染·城市治理
YOLO数据集集合2 天前
光伏组件热斑与缺陷检测数据集 | 光伏组件 热斑检测 PID识别 红外检测 光伏巡检9148期
人工智能·yolo·目标检测·光伏·红外光伏·红外检测