news 2026/10/7 2:49:21

从零开始跑通yolov8基线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零开始跑通yolov8基线

从零开始跑通yolov8基线

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

一、环境的搭建

1.1 下载python3.10

cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8# 创建 conda 环境conda create-p./envs/yolov8python=3.10-y

激活环境

conda activate /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/envs/yolov8

设置短别名
以后直接 act_yolo 就能激活。

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

升级pip

pipinstall--upgradepip

1.2、安装 PyTorch 2.5.1 + CUDA 12.4

pipinstalltorch==2.5.1torchvision==0.20.1torchaudio==2.5.1\-f https://mirrors.tuna.tsinghua.edu.cn/pytorch-wheels/cu124/torch_stable.html

检查安装结果

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

pipinstallultralytics==8.3.54"protobuf==4.25.3"

检查

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

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 数据集配置文件

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

# OGSOD2 RGB baseline# 3 classes, val = test (temporary)path:/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/data/OGSOD2/rgbtrain:train/imagesval:test/imagestest:test/imagesnc:3names:0:Bridge1:Harbor2:Oil-tank

数据集根目录

YOLOv8 图像与标签简化写法


类别




我们之前做的项目有多个配置文件
1、数据集配置文件————》yolov8里只需要这一个配置文件
2、模型结构————》在下载预训练权重时附带
3、学习率、优化器、epoch超参数————》在命令行里显示指定
4、日志、checkpoint等————》
5、主配置文件,继承上面四个


下载预训练权重

cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/weightcurl-L-oyolov8n.pt https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.ptls-lhyolov8n.pt
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 训练命令

cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8 yolo detect traindata=configs/ogsod2_rgb.yamlmodel=weight/yolov8n.ptepochs=1imgsz=256batch=64project=runs/detectname=smoke_testexist_ok=True


五、输出结果

5.1 日志

5.2 权重

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

六、完整训练

cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8mkdir-plogsls-lah
cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8nohupyolo detect traindata=configs/ogsod2_rgb.yamlmodel=weight/yolov8n.ptepochs=100imgsz=256batch=64cache=Trueworkers=8project=runs/detectname=rgb_baselineexist_ok=True>logs/rgb_baseline.log2>&1&



成功会输出类似:

[1]12345

立即看日志确认启动

tail-n30logs/rgb_baseline.log

确认进程在跑

jobs

nvidia-smi

补充:

1、快速打开本项目

cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8 act_yolo
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 2:49:06

stixel_world中CoordinateTransform结构体公式推导

根据之前的文篇,可以得到相关的公式 像素坐标系相机坐标系自车ego坐标系世界坐标系 双目立体视觉视差推导与 StereoRectify 算法原理报告 坐标系旋转推导和符号约定 针孔相机视差相似三角形推导 stixel-world柱状物检测公式推导 Slanted-Stixels柱状物斜坡检测…

作者头像 李华
网站建设 2026/10/7 2:47:20

代码活化石:版本判断如何安全拆除与预防

你打开任何一个有点年头的项目&#xff0c;大概率都能在某个角落翻到一行if (version < 1.0)或者if (version > "2.0")这样的判断。乍一看莫名其妙&#xff0c;为什么要判断一个几乎没有变化的常量&#xff1f;写得稍微讲究点的&#xff0c;旁边还会配一行注释…

作者头像 李华
网站建设 2026/10/7 2:46:23

【leetcode】(九)哈希函数与哈希表

(一)哈希函数和哈希表的实现认识哈希函数和哈希表的实现1.哈希函数的定义f(in)out(1)in->∞,out->s.比如md5算法输出的范围是0~2^64-1,SHA1算法的输入范围是0~2^128-1;(2)same in ->same out.不随机(3)dif in ->same out.(哈希碰撞)(4)均匀分布,散列表.固定区域的点…

作者头像 李华
网站建设 2026/10/7 2:46:21

重学网工之-ftp、telnet服务配置

任务1&#xff1a;在R2上开启FTP服务 要求&#xff1a;账号&#xff1a;ftptest 密码&#xff1a;1234 设置下载路径 登录等级为3级配置命令&#xff1a; [AR2]aaa [AR2-aaa]local-user ftptest password cipher 1234 #设置FTPtest的账号密码 [AR2-aaa]local-user ftptest serv…

作者头像 李华
网站建设 2026/10/7 2:46:20

Linux磁盘空间排查实战:从du原理到定位文件占用

生产服务器告警&#xff0c;磁盘占用率95%&#xff0c;作为运维或者后端开发&#xff0c;第一反应肯定是查清楚哪个目录吃掉了空间。这时候Linux的du命令是绕不开的基础工具。du全称disk usage&#xff0c;用来统计文件和目录在磁盘上的实际占用情况。别看命令本身很简单&#…

作者头像 李华