YOLO
提示
该文档依据B站大佬视频 林亿饼-合集-YOLO系列 进行编写。所以各个软件版本也和视频中一致。
警告
TMD!显卡挂了,目前进度在《YOLO训练入门(下)》视频刚开始,暂停更新。
环境
速览
源码:ultralytics_v8.3.163,下载zip
模型:releases_ultralytics/assets 或者 release_v8.3.0_ultralytics/assets,检索
yolo11n,并下载以下模型:python 3.11.x
torch==2.5.0
torchvision==0.20.0
torchaudio==2.5.0
1. 虚拟环境
# 创建
conda create -n yolo python=3.11
# 激活
conda activate yolo
2. PyTorch
重要
以Nvidia非50系显卡为例,50系请观看视频。
打开 PyTorch官网
下滑到
Install PyTorch(有可以选择下载命令地方),点击 Previous versions of PyTorch 按钮下滑找到
V2.5.0->Wheel->LINUX AND WINDOWS中的安装命令
# CUDA 11.8
# 这个可以使用官方源下载
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu118
# 实在不行再使用aliyun镜像
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 -f https://mirrors.aliyun.com/pytorch-wheels/cu118
# 50系显卡
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
最后出来一大堆包名就代表安装完毕
测试
pip show torch # 显示 Version: 2.5.0+cu118 代表成功# 先打开 python python # 每行依次键入 + 回车 import torchvision import torch torch.cuda.is_available() # 输出 True 代表成功 torch.randn(1).cuda() # 输出 tensor([随机数], device='cuda:0') 代表成功
3. 源码内的库
4. IDEA虚拟环境
Ctrl+Shift+Alt+S- SDKs
- Add Python SDK for disk
- Local -> Select existing
- 选择Conda安装路径下的可执行文件以及选择创建好的yolo环境
测试
这个命令的作用是用 yolo11n.pt 这个目标检测模型预测源码下 \ultralytics\assets 文件夹中的两张图片
yolo detect predict
出现这些代表yolo运行成功:
Results saved to runs\detect\predict
之后去 \ultralytics-8.3.163\runs\detect\predict 文件夹下看结果。
模型
版本含义
- 一个Ultralytics库版本可以支持多个YOLO模型版本
- 例如:ultralytics 8.3.163 同时支持:
- YOLOv8模型
- YOLOv9模型
- YOLOv10模型
- YOLOv11模型
提示
库是工具,模型是产品,工具可以处理多个版本的产品。
后缀含义
模型尺寸(从小到大):
n- Nano(最小,速度最快)s- Smallm- Mediuml- Largex- XLarge(最大,精度最高)
版本类型:
v8,v9,v10,v11- YOLO版本号seg- 实例分割模型(给物体自身加上蒙版)pose- 姿态估计模型cls- 分类模型(图像分类)obb- 定向边界框检测(旋转目标检测)x6- 6个输出层(x为3个,输入分辨率更高+多尺度,更好的小目标检测)yolov8x6-500
- "500":表示在Objects365数据集上预训练
- Objects365有365个类别,500万+标注框
- 适合需要检测大量日常物体的场景
yolov8x6-oiv7**
"oiv7":Open Images V7 数据集预训练
Open Images V7有600个类别
类别更丰富,覆盖更广的物体类型
c) yolov8x6-coco
"coco":标准的COCO数据集(80个类别)
最常用,通用性最好
示例:
yolo11n.pt- YOLOv11 Nano版本(目标检测)yolo11s-seg.pt- YOLOv11 Small版本(实例分割)yolo11m-pose.pt- YOLOv11 Medium版本(姿态估计)yolo11l-cls.pt- YOLOv11 Large版本(图像分类)
性能关系:
- n/s:速度快,精度较低,适合移动端
- m:平衡版本
- l/x:精度高,速度慢,适合服务器端
提示
名称中的 v 代表具体YOLO版本号,模型名称不带 v 的(如yolo11n、yolo11x)是简写形式,实际上与带 v 的相同,只是命名上没有带 v 。
(经测试,yolov8x.pt 以及 yolov8x-pose.pt 效果最好)
训练
原理:从Github上下载训练集.zip,并解压到项目下 /datasets 文件夹内。
提示
ultralytics-8.3.163/ultralytics/cfg/datasets 里面都是预设训练集的yaml配置文件,每一个文件就对应一个数据集。其中 download 就是下载URL。
path:数据集解压路径train:训练集图片路径(暗示 标签 路径,就是把路径中的images换成labels)val:验证集图片路径(暗示 标签 路径,就是把路径中的images换成labels)test:测试集图片路径names:数据集中包含的物体类型
示例最小化代码:
# 训练
from ultralytics import YOLO
if __name__ == '__main__':
# 虽然指定了模型,但是好像还是会下载最新的 `yolo11n.pt` 来进行训练
model = YOLO(r'models/yolov8n.pt')
print('任务类型:',model.task)
print(model.ckpt_path)
model.train(
data=r'ultralytics/cfg/datasets/coco8.yaml',
# 轮次
epochs=30,
imgsz=640,
# 批次
batch=2,
cache=False,
workers=0,
pretrained=False, # 不下载预训练权重
resume=False, # 不从检查点恢复
)
提示
建议先使用最小的yolo模型(例如后缀 *n.pt )跑通测试。
之后查看结果输出这样即为成功:
# `weights` 文件夹下面的 `best.pt` 就算成功
Results saved to runs\detect\train
labelimg
数据集 label 的可视化 查看/编辑 器。同样也可以查看验证集标签。
环境
conda create -n labelimg python=3.8
提示
如果需要,点此查看 换源 步骤
安装
pip install labelimg
使用
# 直接打开可视化
labelimg
# 给参数打开可视化
labelimg <images-dir-path> <classes.txt-path> <labels-dir-path>
images-dir-path:图片文件夹路径(例如\datasets\coco8\images\train)classes.txt: 类型文件路径(训练集.yaml的names属性里的值,复制过来,删掉序号、冒号、空格,然后分别放到labels下各个集的文件夹里。例如\datasets\coco8\labels\train\classes.txt)labels-dir-path:标签文件夹路径(例如\datasets\coco8\labels\train)
提示
View->Display Labels:显示标签名A/D:切换 上一张/下一张
