news 2026/4/3 6:29:43

YOLO26上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26上手指南

YOLO26当前支持目标检测、实例分割、图像分类、姿态识别、旋转框检测、目标跟踪六大计算机视觉任务,是当前最好用的框架之一。

本文为YOLO26标准仓库ultralytics[1]的使用教程。

安装环境

ultralytics支持两种基本运行模式,源码运行和命令行运行。

下面主要以源码运行为例,进行各项功能的使用。

克隆代码:

git clone https://github.com/ultralytics/ultralytics.git

用uv安装环境:

uv sync

激活环境:

source .venv/bin/activate

目标检测

模型训练

创建一个新的py文件,输入以下命令,即可开始一轮模型训练。

fromultralyticsimportYOLO# Load a COCO-pretrained YOLO26n modelmodel=YOLO("yolo26n.pt")# Train the model on the COCO8 example dataset for 1 epochsresults=model.train(data="ultralytics/cfg/datasets/coco8.yaml",epochs=1,imgsz=640)

其中:

  • “yolo26n.pt”:指的是用型号官方提供的yolo26n这款预训练模型为基础,进行参数初始化,类似可选的模型共有5种:n/s/m/l/x,参数量和性能依次从小到大,如下表所示:

  • ultralytics/cfg/datasets/coco8.yaml:指的是用该路径的配置文件,配置文件由两部分构成:数据集路径和类别标签。

path:coco8train:images/trainval:images/valtest:# test images (optional)# Classesnames:0:person1:bicycle2:car

path为项目根路径,train表示以项目根路径为基准,训练集的路径;val表示以项目根路径为基准,验证集的路径;test表示以项目根路径为基准,验证集的路径。

验证集的路径是必须要有的,因为模型在每次训练完之后,默认会执行一轮验证,保存验证集上最佳的模型权重。

测试集可以不需要填写,如果要验证模型的泛化性能的话,可以填写,并在后面做验证时,需要指定测试集。

运行上面的代码后,会自动下载coco8这个数据集,8张图片,4张训练,4张验证。

数据集默认的存放路径为../dataset

一个标准的训练数据集需要按照以下的文件结构排列,标签必须是labels文件夹,名称不可随意修改。

coco8/ ├── images/ │ ├── train/ │ │ ├── 0001.jpg │ │ ├── 0002.jpg │ │ └── ... │ └── val/ │ ├── 0101.jpg │ ├── 0102.jpg │ └── ... ├── labels/ │ ├── train/ │ │ ├── 0001.txt │ │ ├── 0002.txt │ │ └── ... │ └── val/ │ ├── 0101.txt │ ├── 0102.txt │ └── ...

在每一个txt标签中,单个目标以以下五个值排列,例如:

16 0.606687 0.341381 0.544156 0.51

这五个值分别表示:类别id、中心点横坐标、中心点纵坐标、目标宽度、目标高度,宽度和高度是归一化之后的值。

<class_id> <x_center> <y_center> <width> <height>

如果要训练其它的数据集,只需要按照以上规则进行处理即可。

训练完成后,模型默认保存在以下路径:

runs/detect/train/weights

其中,有两个模型:

  • best.pt:在验证集上效果最好的模型权重
  • last.pt:最后一轮训练保存的模型权重

在训练时,如果gpu是nvidia的gpu,会自动用cuda进行训练。

如果是macOS系统,会自动用cpu,需要指定device为mps,才能加速训练。

model.train的这个接口,还可以传递更多参数:

核心训练参数:

参数类型默认值说明
datastr-数据集配置文件路径(如coco8.yaml
epochsint100训练轮数
timefloat-最大训练小时数,设置后覆盖epochs
patienceint100早停机制,验证指标不提升的等待轮数
batchint16批次大小,-1 表示自动批次
imgszint/list640训练/验证图像尺寸
saveboolTrue是否保存训练检查点和预测结果
save_periodint-1每 N 轮保存一次检查点,< 1 则禁用
cachebool/strFalse缓存图片到 RAM (True/‘ram’) 或磁盘 ('disk')
deviceint/str/list-训练设备:0/[0,1,2,3]/'cpu'/'mps'-1自动选择空闲 GPU
workersint8数据加载工作线程数

优化器与学习率参数:

参数类型默认值说明
optimizerstrauto优化器:SGD/Adam/Adamax/AdamW/NAdam/RAdam/RMSProp/auto
lr0float0.01初始学习率(SGD=1e-2,Adam=1e-3)
lrffloat0.01最终学习率比例,最终 LR = lr0 × lrf
momentumfloat0.937SGD 动量或 Adam beta1
weight_decayfloat0.0005权重衰减(L2 正则化)
warmup_epochsfloat3.0热身轮数(支持小数)
cos_lrboolFalse使用余弦学习率调度器

数据增强参数:

参数类型默认值说明
hsv_hfloat0.015HSV 色调增强幅度
hsv_sfloat0.7HSV 饱和度增强幅度
hsv_vfloat0.4HSV 亮度增强幅度
degreesfloat0.0旋转角度(±)
translatefloat0.1平移比例(±)
scalefloat0.5缩放增益(±)
shearfloat0.0剪切角度(±)
perspectivefloat0.0透视变换比例(0–0.001)
flipudfloat0.0垂直翻转概率
fliplrfloat0.5水平翻转概率
mosaicfloat1.0Mosaic 数据增强概率
mixupfloat0.0MixUp 增强概率
cutmixfloat0.0CutMix 增强概率
copy_pastefloat0.0分割 copy-paste 概率
close_mosaicint10最后 N 轮禁用 mosaic 增强
erasingfloat0.4分类随机擦除概率(仅分类任务)

训练控制参数:

参数类型默认值说明
projectstr-项目名称(结果保存根目录)
namestr-实验名称(结果保存在project/name
exist_okboolFalse是否覆盖同名实验目录
pretrainedbool/strTrue使用预训练权重(布尔值)或从路径加载权重(字符串)
resumeboolFalse从运行目录中最后一个检查点恢复训练
fractionfloat1.0使用训练集的比例(1.0 = 全部)
freezeint/list-冻结前 N 层(整数)或特定层索引(列表)
multi_scalefloat0.0多尺度训练(变化图像尺寸)
compilebool/strFalse启用torch.compile()

验证与日志参数:

参数类型默认值说明
valboolTrue训练时是否运行验证
splitstrval验证集分割:val/test/train
plotsboolTrue保存训练/验证过程中的图表和图像
save_jsonboolFalse保存结果到 COCO JSON 用于外部评估
conffloat-置信度阈值(预测默认 0.25,验证默认 0.001)
ioufloat0.7NMS 使用的 IoU 阈值
max_detint300每张图最大检测数
verboseboolTrue打印详细日志
seedint0随机种子,保证可复现性
deterministicboolTrue启用确定性操作(可复现但可能更慢)
ampboolTrue自动混合精度(AMP)训练

损失函数权重参数:

参数类型默认值说明
boxfloat7.5边界框损失权重
clsfloat0.5分类损失权重
dflfloat1.5分布焦点损失权重
posefloat12.0姿态损失权重(仅姿态任务)
kobjfloat1.0关键点目标损失权重(仅姿态任务)
rlefloat1.0RLE 损失权重(仅姿态任务)
anglefloat1.0旋转角度损失权重(仅 OBB 任务)

任务特定参数参数:

分割任务:

  • overlap_mask: bool = True(训练时合并实例掩码)
  • mask_ratio: int = 4(掩码下采样比例)

分类任务:

  • dropout: float = 0.0(分类头 dropout)

模型验证

模型验证用于在数据的验证集/测试集上,验证训练完的模型性能。

下面是一个基本用法:

fromultralyticsimportYOLO model=YOLO("runs/detect/train/weights/best.pt")metrics=model.val(data="coco8.yaml",imgsz=640)

model.val还支持以下参数:

参数类型默认值说明
datastr-数据集配置文件路径(如coco8.yaml
imgszint/list640验证图像尺寸(方形或 [h,w])
batchint16批次大小,-1 表示自动批次
deviceint/str/list-验证设备:0/[0,1,2,3]/'cpu'/'mps'
workersint8数据加载工作线程数
splitstrval数据集分割:val/test/train
rectboolTrue是否使用矩形批次(val 方法默认启用)
save_jsonboolFalse保存结果到 COCO JSON 用于外部评估
conffloat0.001置信度阈值(验证默认 0.001)
ioufloat0.7NMS 使用的 IoU 阈值
max_detint300每张图最大检测数
halfboolFalse如果支持,使用半精度(FP16)
dnnboolFalse使用 OpenCV DNN 进行 ONNX 推理
plotsboolTrue保存验证过程中的图表和图像
projectstr-项目名称(结果保存根目录)
namestr-实验名称(结果保存在project/name
exist_okboolFalse是否覆盖同名实验目录
verboseboolTrue打印详细日志
cachebool/strFalse缓存图片到 RAM (True/‘ram’) 或磁盘 ('disk')

模型推理

模型推理用于对指定图片/图片文件夹进行检测。

下面是一个基本用法:

fromultralyticsimportYOLO model=YOLO("runs/detect/train/weights/best.pt")results=model.predict("ultralytics/assets/bus.jpg",save=True)

结果默认保存在 runs/detect/predict 路径中。

model.predict 还支持以下参数:

核心参数:

参数类型默认值说明
sourcestr/Path/int/PIL/np.ndarray/tensor/list必填图像/视频源:文件路径、URL、摄像头索引、PIL 图像、numpy 数组、torch 张量
conffloat0.25置信度阈值(预测默认 0.25,低于此值的检测将被过滤)
ioufloat0.7NMS 使用的 IoU 阈值
imgszint/list640输入图像尺寸(方形或 [h,w])
batchint1批次大小(predict 方法默认为 1)
deviceint/str/list-推理设备:0/[0,1,2,3]/'cpu'/'mps'
streamboolFalse流模式(视频/摄像头建议开启)

输出控制参数:

参数类型默认值说明
showboolFalse在窗口中显示图像/视频
saveboolFalse保存预测结果图像
save_txtboolFalse保存结果为.txt文件(xywh 格式)
save_confboolFalse在结果中保存置信度分数
save_cropboolFalse保存裁剪的预测区域到文件
save_framesboolFalse保存视频预测的每一帧
projectstr-项目名称(结果保存根目录)
namestr-实验名称(结果保存在project/name
exist_okboolFalse是否覆盖同名实验目录
verboseboolTrue打印详细日志

可视化参数:

参数类型默认值说明
show_labelsboolTrue在图像上绘制类别标签
show_confboolTrue在图像上绘制置信度值
show_boxesboolTrue在图像上绘制边界框
line_widthint-边界框线宽(未设置则根据图像尺寸自动缩放)
retina_masksboolFalse使用高分辨率分割掩码(仅分割任务)
vid_strideint1视频源每隔 N 帧读取一帧
stream_bufferboolFalseTrue 缓存所有帧;False 只保留最新帧(低延迟流)

其它参数:

参数类型默认值说明
augmentboolFalse预测时应用测试时增强(TTA)
agnostic_nmsboolFalse类别无关 NMS
max_detint300每张图最大检测数
halfboolFalse如果支持,使用半精度(FP16)
dnnboolFalse使用 OpenCV DNN 进行 ONNX 推理
visualizeboolFalse可视化模型特征(预测)或 TP/FP/FN 混淆矩阵(验证)
embedlist[int]-从指定层索引返回特征嵌入
prompts--SAM 类模型的提示词

模型转换

模型转换值得是将pytorch模型格式转换成其它格式,用来加速推理或特定用途。

以pt转onnx为例,代码如下:

fromultralyticsimportYOLO model=YOLO("runs/detect/train/weights/best.pt")model.export(format="onnx")

其它支持的格式和对应的参数有:

格式参数值说明适用场景
PyTorchtorchscriptTorchScript通用部署
ONNXonnxOpen Neural Network Exchange跨平台部署
OpenVINOopenvinoIntel OpenVINOIntel 硬件加速
TensorRTengineNVIDIA TensorRTNVIDIA GPU 推理加速
CoreMLcoremlApple CoreMLiOS/macOS 部署
TensorFlowsaved_modelTF SavedModelTensorFlow 生态
TFLitetfliteTensorFlow Lite移动端/嵌入式
TensorFlow.jstfjsTensorFlow.jsWeb/Node.js 部署
PaddlePaddlepaddlePaddlePaddle百度生态
MNNmnn阿里 MNN移动端部署
NCNNncnn腾讯 NCNN移动端/嵌入式
pbpbTensorFlow Frozen GraphTensorFlow 1.x
Edge TPUedgetpuGoogle Edge TPUGoogle Coral 设备
IMXimxNXP i.MXNXP 芯片
RKNNrknnRockchip RKNN瑞芯微芯片

核心参数:

参数类型默认值说明
formatstrtorchscript导出格式(见上表)
imgszint/list640输入图像尺寸(方形或 [h,w])
batchint1导出模型的批次大小
devicestr-导出使用的设备:0/'cpu'/'mps'
halfboolFalse导出为 FP16 半精度
int8boolFalse导出为 INT8 精度(需要校准数据)
dynamicboolFalse动态输入尺寸(支持变化图像大小)
simplifyboolTrueONNX/engine 图简化
opsetint-ONNX opset 版本(未设置则使用测试过的默认值)
workspacefloat-TensorRT 工作空间大小(GiB),如4
nmsboolFalse将 NMS 融入导出的模型
optimizeboolFalseTorchScript 移动端优化
kerasboolFalseTF SavedModel 启用 Keras 层

了解完目标检测之后,其它几个计算机视觉任务,接口都是差不多的,ultralytics在接口一致性上做的很好。

实例分割

下面是实例分割的推理代码,接口和上面完全一致,只是换了一个模型。

fromultralyticsimportYOLO model=YOLO("yolo26n-seg.pt")results=model.predict("ultralytics/assets/zidane.jpg",save=True)

图像分类

图像分类的推理只需把模型后缀改成cls。

fromultralyticsimportYOLO model=YOLO("yolo26n-cls.pt")results=model.predict("ultralytics/assets/zidane.jpg",save=True)

姿态识别

姿态识别的推理只需把模型后缀改成pose。

fromultralyticsimportYOLO model=YOLO("yolo26n-pose.pt")results=model.predict("ultralytics/assets/zidane.jpg",save=True)

旋转框检测

旋转框检测的推理只需把模型后缀改成obb。

fromultralyticsimportYOLO model=YOLO("yolo26n-obb.pt")results=model.predict("ultralytics/assets/zidane.jpg",save=True)

目标跟踪

目标跟踪会有点不一样,它仍然是基于检测模型去做,但是传入的是视频,并且需要指定跟踪算法。

示例代码如下:

fromultralyticsimportYOLO model=YOLO("yolo26n.pt")results=model.track(source="video.mp4",stream=True,show=True,tracker="botsort.yaml")

跟踪算法除了botsort,还支持bytetrack

这两个跟踪算法的具体参数,可以在 ultralytics/cfg/trackers 的相应配置文件下去进行调整。

ultralytics除了支持YOLO26以外,还支持从YOLOv3开始的一系列YOLO算法和RT-DETR算法,模型结构具体可在 ultralytics/cfg/models 中进行查看。

参考

[1] https://github.com/ultralytics/ultralytics

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 16:08:52

Llama3-8B企业级部署案例:生产环境中的稳定性调优实践

Llama3-8B企业级部署案例&#xff1a;生产环境中的稳定性调优实践 1. 引言&#xff1a;企业级大模型部署的挑战与选型背景 随着大语言模型在企业场景中的广泛应用&#xff0c;如何在有限硬件资源下实现高性能、高可用的推理服务成为关键课题。Meta于2024年4月发布的Llama3-8B…

作者头像 李华
网站建设 2026/3/31 23:10:42

通义千问3-14B性能优化:RTX4090上80token/s加速秘籍

通义千问3-14B性能优化&#xff1a;RTX4090上80token/s加速秘籍 1. 引言&#xff1a;为何Qwen3-14B成为消费级显卡推理首选&#xff1f; 随着大模型从“参数竞赛”转向“效率优化”&#xff0c;如何在单张消费级GPU上实现高质量、低延迟的推理&#xff0c;已成为AI工程落地的…

作者头像 李华
网站建设 2026/3/23 1:09:19

针对毕业论文选题需求,国内Top10优质平台推荐榜单及详细指南

10大论文选题工具核心对比 排名 工具名称 核心功能 效率评分 适用场景 1 aicheck 智能选题大纲生成 ★★★★★ 完全无头绪时的选题生成 2 aibiye 选题优化可行性分析 ★★★★☆ 已有初步方向的优化调整 3 知网 学术资源库选题参考 ★★★★☆ 专业领域深度…

作者头像 李华
网站建设 2026/3/21 6:06:41

BGE-M3部署教程:负载均衡与自动扩展配置指南

BGE-M3部署教程&#xff1a;负载均衡与自动扩展配置指南 1. 引言 1.1 业务场景描述 在现代信息检索系统中&#xff0c;文本嵌入模型作为语义理解的核心组件&#xff0c;广泛应用于搜索、推荐和问答系统。BGE-M3 是由 FlagAI 团队推出的多功能嵌入模型&#xff0c;在语义匹配…

作者头像 李华
网站建设 2026/3/17 3:56:06

看完就想试!Qwen3-4B创作的Python游戏代码展示

看完就想试&#xff01;Qwen3-4B创作的Python游戏代码展示 1. 引言&#xff1a;当AI成为你的编程搭档 在传统开发流程中&#xff0c;编写一个完整可运行的小型游戏往往需要数小时甚至更久——从设计逻辑、组织结构到调试运行&#xff0c;每一步都依赖开发者自身的经验积累。然…

作者头像 李华