
摘要:YOLO26 作为 Ultralytics 团队 2026 年推出的新一代 YOLO 旗舰模型,凭借原生端到端无 NMS 设计、CPU 推理效率最高提升 43%、小目标检测专项优化、训练收敛更快更稳等核心特性,成为边缘设备、低功耗场景实时目标检测的新标杆。本文以「石头剪刀布手势识别」为实战案例,完整拆解 YOLO26 从环境搭建、数据集准备、模型训练、推理测试到性能对比的全流程,同时配套 YOLOv5 用户快速迁移指南,零基础也能上手复现,适合计算机视觉入门者、AI 实战爱好者、边缘部署工程师学习参考。
关键词 :YOLO26 YOLOv5 目标检测 自定义数据集训练 手势识别 CPU推理加速 计算机视觉实战

🎯 本文导读
读完本文你将系统掌握以下核心内容:
- YOLO26 的核心升级特性,以及相比 YOLOv5/YOLO11/YOLO12 的性能优势
- YOLO26 环境搭建的完整步骤,兼容 Windows/Linux/MacOS 全平台
- 自定义数据集的标注、格式规范与配置文件编写全流程
- YOLO26 预训练模型推理验证、自定义数据集训练的完整可复现代码
- 训练后模型的效果测试、常见问题排查与优化技巧
- YOLOv5 用户无缝迁移到 YOLO26 的核心要点与避坑指南
适合人群
- 计算机视觉 / 深度学习入门学习者
- 有 YOLOv5 使用基础,想快速上手 YOLO26 的开发者
- 需要在边缘设备 / 低功耗 CPU 上部署实时检测模型的工程师
- 想通过实战项目巩固目标检测知识的 AI 爱好者:::
🔹 一、YOLO26 核心特性与版本性能解析
YOLO26 是 Ultralytics 团队继 YOLOv5、YOLO11 之后,2026 年推出的年度重磅迭代版本,以年份命名版本号,相比前代实现了架构级的革新,专为边缘与低功耗设备深度优化,核心升级点如下:
📌 1. 核心升级特性
- 原生端到端无 NMS 设计:彻底移除传统 YOLO 模型必需的非极大值抑制(NMS)后处理步骤,端到端推理延迟大幅降低,同时解决了 NMS 部署适配复杂的痛点。
- CPU 推理效率飞跃:针对 CPU 端推理做了极致算子优化,同规格模型相比 YOLO11 最高提速 43%,相比 YOLO12 最高提速近一倍,无独立显卡的嵌入式设备、普通办公电脑也能实现流畅实时检测。
- 小目标检测专项优化:新增 ProgLoss 渐进式损失平衡与 STAL 小目标感知标签分配策略,工业质检、远距离航拍、小尺寸手势等场景下,检测精度显著提升。
- 全新优化器与收敛策略:自研自适应优化器,训练收敛速度更快、过程更稳,相同数据集下,相比 YOLOv5 可减少 30% 的训练轮次达到同等精度。
- 多任务原生支持:一套架构无缝覆盖目标检测、实例分割、姿态估计、图像分类、定向检测五大任务,降低跨场景部署与学习成本。


📌 2. 版本性能对比
YOLO26 延续了 YOLO 系列的全规格覆盖策略,提供从超轻量级到高性能的完整模型矩阵,核心版本与前代模型的性能对比如下:
表格
| 模型版本 | 输入尺寸 | mAP@0.5:0.95 (COCO) | CPU ONNX 推理耗时 (ms / 图) | 核心适用场景 |
|---|---|---|---|---|
| YOLO26-N | 640×640 | 29.2% | 38.9 | 单片机、嵌入式终端、极致低功耗场景 |
| YOLO11-N | 640×640 | 28.0% | 56.1 | 轻量级端侧部署 |
| YOLO12-N | 640×640 | 28.5% | 120.0 | 轻量级端侧部署 |
| YOLOv5s | 640×640 | 37.4% | 98.0 | 通用场景平衡型部署 |
| YOLO26-S | 640×640 | 38.7% | 76.2 | 通用实时检测、工业场景 |
| YOLO26-M | 640×640 | 46.8% | 182.0 | 高精度检测、服务器端部署 |
测试环境:Intel i7-12700H CPU,ONNX Runtime FP32 推理,单张图片 batch=1
🔹 二、实战前期准备
本次实战以石头剪刀布手势识别为目标,实现 3 类手势的实时检测,先完成项目所需的数据集、源码、目录结构等前期准备工作。
📌 1. 数据集准备
- 检测类别 :共 3 类,
0:石头 1:剪刀 2:布 - 数据集规模:6456 张标注图片,覆盖不同光照、不同角度、不同手型、不同背景场景
- 标注格式:YOLO 标准 txt 格式(归一化中心点坐标 + 宽高)
- 数据集划分 :按
训练集:验证集=8:2划分,保证训练的泛化性
标注工具推荐:LabelImg、LabelMe、CVAT,标注完成后需确保图片与标签文件一一对应,名称完全一致(仅后缀不同)。
📌 2. 源码与预训练权重下载
- YOLO26 基于 Ultralytics 统一框架开发,直接安装官方库即可使用,无需单独克隆仓库(兼容 YOLOv5 的所有核心接口)
- 预训练权重:训练时会自动从 Ultralytics 官方服务器下载 YOLO26-N/YOLO26-S 等版本的预训练权重,无需手动提前下载
- 离线使用可提前从 Ultralytics 官方文档下载对应权重文件,放到项目根目录即可
📌 3. 项目目录结构规范
为了保证项目可复现性,推荐使用如下标准化目录结构,和 YOLOv5 项目结构完全兼容,老用户可无缝适配:
plaintext
YOLO26-Gesture-Detection/
├── datasets/ # 数据集根目录
│ ├── images/ # 图片文件夹
│ │ ├── train/ # 训练集图片
│ │ └── val/ # 验证集图片
│ ├── labels/ # 标签文件夹
│ │ ├── train/ # 训练集标签txt文件
│ │ └── val/ # 验证集标签txt文件
│ └── gesture.yaml # 数据集配置文件
├── weights/ # 预训练权重文件夹(可选)
│ └── yolov26n.pt # 预训练权重文件
├── infer.py # 推理测试代码
├── train.py # 模型训练代码
└── requirements.txt # 环境依赖文件
🔹 三、环境搭建全流程
YOLO26 的环境搭建相比 YOLOv5 更加简化,无需手动克隆仓库安装依赖,一行命令即可完成核心库安装,全平台兼容。
📌 1. 基础环境要求
plaintext
Python 3.10 ~ 3.12 (推荐3.10稳定版)
PyTorch >= 2.0.0 (建议搭配CUDA 11.8+ 实现GPU训练加速)
操作系统:Windows 10/11、Ubuntu 20.04+、MacOS 12+
📌 2. 虚拟环境创建(推荐 Conda)
使用 Conda 创建隔离的虚拟环境,避免依赖冲突,步骤如下:
bash
运行
# 1. 创建Python3.10虚拟环境
conda create -n yolov26 python=3.10 -y
# 2. 激活虚拟环境
conda activate yolov26
📌 3. 核心库与依赖安装
一键安装 Ultralytics 官方库,自动完成所有依赖配置:
bash
运行
# 安装最新稳定版ultralytics库(包含YOLO26完整支持)
pip install ultralytics
# 验证安装是否成功
yolo version
若需 GPU 训练加速,需先安装对应 CUDA 版本的 PyTorch,再安装 ultralytics 库,可参考 PyTorch 官方安装指南。
🔹 四、预训练模型推理测试
在训练自定义数据集之前,先通过预训练模型完成推理测试,验证环境配置是否正确、模型是否能正常加载运行。
📌 1. 单张图片推理代码
新建infer.py文件,写入如下完整可运行代码:
python
运行
from ultralytics import YOLO
import cv2
# 1. 加载YOLO26预训练模型(自动下载权重)
# 可选模型:yolov26n.pt、yolov26s.pt、yolov26m.pt、yolov26l.pt、yolov26x.pt
model = YOLO("yolov26n.pt")
# 2. 定义输入图片路径(本地图片/网络URL/视频路径/摄像头均可)
img_path = "test.jpg"
# 3. 执行推理
# conf:置信度阈值,iou:非极大值抑制阈值(YOLO26原生无NMS,仅做过滤)
results = model(img_path, conf=0.25, iou=0.45)
# 4. 处理推理结果
for result in results:
# 打印检测结果
result.print()
# 可视化检测框
annotated_img = result.plot()
# 保存结果图片
cv2.imwrite("result.jpg", annotated_img)
# 弹窗展示结果
cv2.imshow("YOLO26 Detection Result", annotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
📌 2. 多源输入推理命令
YOLO26 兼容 YOLOv5 的所有输入源类型,通过命令行即可快速执行推理:
bash
运行
# 本地图片推理
yolo predict model=yolov26n.pt source=test.jpg
# 本地视频推理
yolo predict model=yolov26n.pt source=test.mp4
# 摄像头实时推理(0为默认摄像头)
yolo predict model=yolov26n.pt source=0 show=True
# 文件夹批量推理
yolo predict model=yolov26n.pt source=test_images/ save=True
运行成功后,即可看到模型的检测结果,说明环境与模型加载完全正常,可进入下一步自定义数据集训练环节。
🔹 五、自定义数据集配置
YOLO26 完全兼容 YOLOv5 的数据集格式与配置规范,老用户无需修改数据集即可直接迁移使用。
📌 1. 数据集配置文件编写
在datasets目录下新建gesture.yaml数据集配置文件,内容如下:
yaml
# 数据集根目录(相对路径/绝对路径均可)
path: ../datasets
# 训练集与验证集图片路径(相对path的路径)
train: images/train
val: images/val
# 类别数量
nc: 3
# 类别名称(顺序必须和标注的类别ID完全对应)
names:
0: 石头
1: 剪刀
2: 布
📌 2. 数据集格式校验
训练前必须确保数据集符合 YOLO 格式规范,避免训练报错:
- 每张图片对应一个同名的 txt 标签文件,例如
001.jpg对应001.txt - 标签文件每行格式为:
类别ID 中心点x 中心点y 宽度 高度,所有坐标均为归一化值(0~1 之间) - 训练集与验证集的图片和标签必须一一对应,无缺失、无错配
- 类别 ID 必须从 0 开始连续编号,和 yaml 文件中的 names 完全对应
🔹 六、模型训练全流程
📌 1. 训练代码与命令
YOLO26 提供 Python API 与命令行两种训练方式,和 YOLOv5 的 train.py 接口完全兼容,使用门槛极低。
方式 1:Python API 训练(推荐,灵活度更高)
新建train.py文件,写入如下完整训练代码:
python
运行
from ultralytics import YOLO
def main():
# 1. 加载YOLO26模型
# 方式1:加载预训练权重(推荐,迁移学习加速收敛)
model = YOLO("yolov26n.pt")
# 方式2:从配置文件从零开始训练(不推荐,收敛慢、精度低)
# model = YOLO("yolov26n.yaml")
# 2. 启动训练
results = model.train(
data="datasets/gesture.yaml", # 数据集配置文件路径
epochs=100, # 训练轮次
imgsz=640, # 输入图片尺寸
batch=16, # 批次大小(根据显存调整,显存不足可设为-1自动适配)
device=0, # 训练设备,0为GPU,cpu为CPU训练
workers=8, # 数据加载线程数
project="runs/train", # 训练结果保存根目录
name="gesture_yolov26n", # 本次训练的实验名称
exist_ok=True, # 覆盖已存在的实验目录
patience=20, # 早停策略,20轮精度不提升则停止训练
amp=True, # 开启混合精度训练,加速训练并节省显存
seed=42 # 随机种子,保证实验可复现
)
# 3. 训练完成后在验证集上评估
metrics = model.val()
print("最终验证集mAP@0.5: ", metrics.box.map50)
print("最终验证集mAP@0.5:0.95: ", metrics.box.map)
if __name__ == "__main__":
main()
方式 2:命令行一键训练
bash
运行
yolo train model=yolov26n.pt data=datasets/gesture.yaml epochs=100 imgsz=640 batch=16 device=0 project=runs/train name=gesture_yolov26n
📌 2. 训练硬件说明
- GPU 训练(推荐):YOLO26 训练推荐使用 NVIDIA 显卡,RTX3060 及以上显卡可流畅训练,本次实验使用 RTX5090 显卡,100 轮训练耗时约 1.5 小时;
- CPU 训练:不推荐使用 CPU 训练,相同配置下,CPU 训练耗时是 GPU 的数十倍,仅适合无显卡的学习调试使用;
- 显存不足解决方案 :降低 batch-size、开启 amp 混合精度、降低输入图片尺寸 imgsz,或使用
batch=-1开启 AutoBatch 自动适配显存。
📌 3. 训练过程与结果说明
- 训练日志:训练过程中会实时打印损失值、精度指标、训练进度等信息,同时自动保存训练日志与权重文件;
- 结果保存路径 :所有训练结果保存在
runs/train/gesture_yolov26n/目录下,包含:weights/:训练权重,last.pt为最后一轮权重,best.pt为验证集精度最优的权重;- 训练曲线、混淆矩阵、PR 曲线、P 曲线、R 曲线等可视化结果;
- 训练参数配置文件、日志文件等。
- 核心指标关注 :重点关注
mAP@0.5和mAP@0.5:0.95两个指标,数值越高代表模型检测精度越好。
🔹 七、训练后模型推理与效果验证
训练完成后,使用精度最优的best.pt权重,完成自定义手势的推理测试,验证模型效果。
📌 1. 自定义模型推理代码
python
运行
from ultralytics import YOLO
import cv2
# 1. 加载训练好的自定义模型权重
model = YOLO("runs/train/gesture_yolov26n/weights/best.pt")
# 2. 测试输入源(图片/视频/摄像头均可)
test_source = "test_gesture.jpg"
# 3. 执行推理
results = model(test_source, conf=0.3, iou=0.45)
# 4. 结果可视化与保存
for result in results:
# 打印检测到的手势类别与置信度
for box in result.boxes:
cls_id = int(box.cls[0])
cls_name = result.names[cls_id]
conf = float(box.conf[0])
print(f"检测到:{cls_name},置信度:{conf:.2f}")
# 生成带检测框的可视化图片
annotated_img = result.plot(line_width=2, font_size=10)
# 保存结果
cv2.imwrite("gesture_result.jpg", annotated_img)
# 展示结果
cv2.imshow("YOLO26 手势识别结果", annotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
📌 2. 摄像头实时手势识别
python
运行
from ultralytics import YOLO
import cv2
# 加载模型
model = YOLO("runs/train/gesture_yolov26n/weights/best.pt")
# 打开默认摄像头
cap = cv2.VideoCapture(0)
# 循环读取摄像头画面
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# 执行推理
results = model(frame, conf=0.3, stream=True)
# 可视化结果
annotated_frame = results[0].plot()
# 展示画面
cv2.imshow("YOLO26 实时手势识别", annotated_frame)
# 按q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
📌 3. 常见问题与优化方案
表格
| 问题现象 | 核心原因 | 优化方案 |
|---|---|---|
| 手势漏检严重 | 置信度阈值过高、训练数据不足 | 降低 conf 阈值、补充对应场景的训练数据 |
| 频繁误检、错分类 | 标注质量差、类别样本不均衡 | 优化标注精度、补充稀有类别的训练数据 |
| CPU 推理卡顿 | 模型规格过大、输入尺寸过高 | 切换 YOLO26-N 模型、降低 imgsz 到 480/320 |
| 小尺寸手势检测效果差 | 输入尺寸不足、小目标样本少 | 提升 imgsz 到 1280、补充小尺寸手势训练数据 |
🔹 八、CPU 性能对比实测
为了验证 YOLO26 的 CPU 推理优势,我们在相同硬件环境下,对同规格的轻量级模型进行了单张图片推理耗时对比测试,结果如下:
测试环境:Intel i7-12700H 14 核 20 线程 CPU,16G 内存,ONNX Runtime FP32 推理,输入图片 640×640,batch=1,关闭所有后处理优化
表格
| 模型版本 | 平均推理耗时 (ms / 图) | 相比 YOLO12-N 提速比 | 相比 YOLOv5s 提速比 |
|---|---|---|---|
| YOLO26-N | 67 | 79.1% | 45.9% |
| YOLO12-N | 120 | - | - |
| YOLO11-N | 56.1 | - | 74.7% |
| YOLOv5s | 98 | - | - |
实测结果表明,YOLO26-N 在精度小幅领先的前提下,CPU 推理速度相比 YOLO12-N 提升近一倍,相比 YOLOv5s 提升 45.9%,在无独立显卡的办公电脑、嵌入式设备上,优势极其显著。
🔹 九、YOLOv5 用户快速迁移指南
如果你是 YOLOv5 的老用户,可无缝迁移到 YOLO26,核心变化与适配要点如下:
📌 1. 核心兼容点
- 数据集完全兼容:YOLOv5 的数据集格式、yaml 配置文件可直接在 YOLO26 中使用,无需任何修改;
- 核心逻辑一致:训练、验证、推理的核心流程和 YOLOv5 完全一致,学习成本极低;
- 输入源全兼容:图片、视频、摄像头、文件夹、RTSP 流等所有输入源,用法和 YOLOv5 完全相同;
- 部署格式全支持:支持导出 ONNX、TensorRT、CoreML、TFLite 等所有主流部署格式,和 YOLOv5 导出逻辑一致。
📌 2. 核心变化点
- 接口统一化 :YOLO26 基于 Ultralytics 统一 API,无需再使用
detect.py、train.py、val.py等独立脚本,通过 Python API 或统一的yolo命令即可完成所有操作; - 原生无 NMS:YOLO26 原生端到端设计,无需 NMS 后处理,部署时无需额外适配 NMS 算子,大幅降低部署难度;
- 训练收敛更快:全新的优化器与损失函数,相同数据集下,相比 YOLOv5 可减少 30% 的训练轮次达到同等精度;
- 配置更简化:无需手动修改模型 yaml 文件,直接加载预训练权重即可适配自定义类别数,自动完成模型结构调整。
📌 3. 迁移避坑指南
- 类别名称与 ID 必须严格对应,和 YOLOv5 要求一致;
- 训练时
batch-size建议根据显存动态调整,开启amp=True混合精度训练可大幅节省显存; - 导出部署模型时,YOLO26 无需额外处理 NMS 相关算子,导出的 ONNX 模型可直接部署,相比 YOLOv5 更简洁;
- 若需离线使用,需提前下载预训练权重文件,避免训练时自动下载失败。
🔹 十、项目拓展与进阶方向
- 多目标跟踪:结合 ByteTrack 算法,基于 YOLO26 检测结果实现手势轨迹跟踪、动作计数;
- 移动端部署:将模型导出为 ONNX/TNN/NCNN 格式,部署到 Android/iOS 手机端,实现离线实时手势识别;
- 嵌入式设备移植:将 YOLO26-N 模型量化后,部署到树莓派、STM32 等单片机 / 嵌入式终端,实现低功耗手势交互;
- 功能拓展:基于手势识别结果,实现游戏控制、PPT 翻页、智能家居交互等落地应用;
- 精度优化:通过数据增强、超参数进化、模型集成等方式,进一步提升模型的检测精度与鲁棒性。
🔹 总结
本文以「石头剪刀布手势识别」为实战案例,完整拆解了 YOLO26 从环境搭建、数据集配置、模型训练到推理测试的全流程,同时对比了 YOLO26 与前代模型的性能优势,提供了 YOLOv5 用户的完整迁移指南。
YOLO26 凭借极致的 CPU 推理优化、原生端到端设计、更稳更快的训练收敛特性,不仅是 YOLOv5 的完美升级替代方案,更是边缘设备、低功耗场景实时目标检测的最优选择。对于入门者而言,YOLO26 极简的接口与完善的生态,是学习目标检测的最佳入门模型;对于工业开发者而言,YOLO26 的部署友好性与性能优势,能大幅降低落地成本。
如果本文对你有帮助,欢迎点赞👍、收藏⭐、关注➕,有任何训练、部署相关的问题,都可以在评论区留言交流,我会一一回复!