YOLO26如何训练自己的数据集 | (NEU-DET为案列)

简介: 本文详解YOLO26全新架构:移除DFL、端到端无NMS推理、ProgLoss+STAL损失策略及MuSGD优化器;并以NEU-DET数据集为例,详述训练全流程(含预训练/优化器选择/模型缩放对比),附结构图、代码与可视化结果。

 💡💡💡本文主要内容:YOLO26全新发布(原理介绍+代码详见+结构框图)| YOLO26如何训练自己的数据集(NEU-DET为案列)

image.gif

结构框图如下:

image.gif

 博主简介

image.gif 编辑

AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者

深耕计算机视觉与深度学习领域,专注于视觉检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。

💡 未来方向与使命

秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。


1.YOLO26原理介绍

image.gif

论文:https://arxiv.org/pdf/2509.25164

摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。除架构外,本研究将YOLO26定位为多任务框架,支持目标检测、实例分割、姿态/关键点估计、定向检测及分类。我们在NVIDIA Jetson Nano与Orin等边缘设备上呈现了YOLO26的性能基准测试,并将其结果与YOLOv8、YOLOv11、YOLOv12、YOLOv13及基于Transformer的检测器进行比较。本文进一步探讨了其实时部署路径、灵活的导出选项(ONNX、TensorRT、CoreML、TFLite)以及INT8/FP16量化技术。文章重点展示了YOLO26在机器人、制造业及物联网等领域的实际应用案例,以证明其跨行业适应性。最后,讨论了关于部署效率及更广泛影响的见解,并展望了YOLO26及YOLO系列的未来发展方向。

关键词:YOLO26;边缘人工智能;多任务目标检测;无NMS推理;小目标识别;YOLO(You Only Look Once);目标检测;MuSGD优化器

image.gif

Detection (COCO)

image.gif

结构框图如下:

image.gif

1.1  YOLO11 vs YOLO26结构差异性

image.gif

1.1.1 SPPF 核心差异对比

1)池化次数灵活性:YOLO11 的 3 次池化是硬编码的,要修改必须改源码;YOLO26 通过n参数可灵活调整(比如设为 2 次或 4 次),无需改核心逻辑。

2)Shortcut 设计:YOLO26 新增的残差连接能缓解深层网络的梯度消失问题,提升特征复用能力,而 YOLO11 无此设计。

3)激活函数控制:YOLO26 禁用 Conv1 的激活函数,让特征在池化前保持更 “原始” 的状态,是工程上对特征提取的优化。

image.gif

源码位置:ultralytics/nn/modules/block.py

1.1.2 C3k2 核心差异对比

1)注意力机制的新增:YOLO26 的 C3k2 首次引入PSABlock(金字塔注意力模块)通过attn参数控制是否启用,这是两者最核心的功能差异 —— 启用后模块会先通过 Bottleneck 提取基础特征,再通过 PSABlock 增强关键区域的特征权重,提升小目标 / 复杂场景的检测效果。

2)分支逻辑的扩展:YOLO11 的分支仅受c3k控制,而 YOLO26 的分支逻辑优先级为attn > c3k,即只要attn=True,会优先启用注意力模块,忽略c3k的配置。

image.gif

重复模块m (n次迭代):
┌─────────────────────────────────────────────────────────┐
│                                                         │
│  如果 attn=True:                                        │
│    Sequential(                                          │
│        Bottleneck(self.c, self.c),                     │  ←─ 先特征提取
│        PSABlock(self.c, attn_ratio=0.5, num_heads=...) │  ←─ 后注意力增强
│    )                                                    │
│                                                         │
│  否则如果 c3k=True:                                     │
│    C3k(self.c, self.c, 2)                             │  ←─ 同YOLOv11
│                                                         │
│  否则:                                                  │
│    Bottleneck(self.c, self.c)                         │  ←─ 同YOLOv11
│                                                         │
└─────────────────────────────────────────────────────────┘

image.gif

YOLO26 C3k2代码:    

源码位置:ultralytics/nn/modules/block.py

1.2 YOLO26核心创新点

YOLO26引入了多项关键架构创新,使其区别于前几代YOLO模型。这些增强不仅提高了训练稳定性和推理效率,还从根本上重塑了实时边缘设备的部署流程。本节将详细描述YOLO26的四项主要贡献:(i)移除分布焦点损失(DFL),(ii)引入端到端无NMS推理,(iii)新颖的损失函数策略,包括渐进损失平衡(ProgLoss)和小目标感知标签分配(STAL),以及(iv)开发用于稳定高效收敛的MuSGD优化器。我们将详细讨论每一项架构增强,并通过对比分析突显其相对于YOLOv8、YOLOv11、YOLOv12和YOLOv13等早期YOLO版本的优势。

image.gif

1.2.1 创新点1:移除分布焦点损失(DFL)

YOLO26最重要的架构简化之一是移除了分布焦点损失(DFL)模块(图3a),该模块曾存在于YOLOv8和YOLOv11等早期YOLO版本中。DFL最初旨在通过预测边界框坐标的概率分布来改进边界框回归,从而实现更精确的目标定位。虽然该策略在早期模型中展示了精度提升,但也带来了不小的计算开销和导出困难。在实践中,DFL在推理和模型导出期间需要专门处理,这使针对ONNX、CoreML、TensorRT或TFLite等硬件加速器的部署流程变得复杂。

源码位置:ultralytics/utils/loss.py

通过reg_max 设置为1,移除了分布焦点损失(DFL)

class BboxLoss(nn.Module):
    """Criterion class for computing training losses for bounding boxes."""
    def __init__(self, reg_max: int = 16):
        """Initialize the BboxLoss module with regularization maximum and DFL settings."""
        super().__init__()
        self.dfl_loss = DFLoss(reg_max) if reg_max > 1 else None

image.gif

1.2.2 创新点2:端到端无NMS推理

YOLO26从根本上重新设计了预测头,以直接产生非冗余的边界框预测,无需NMS。这种端到端设计不仅降低了推理复杂度,还消除了对手动调优阈值的依赖,从而简化了集成到生产系统的过程。对比基准测试表明,YOLO26实现了比YOLOv11和YOLOv12更快的推理速度,其中nano模型在CPU上的推理时间减少了高达43%。这使得YOLO26对于移动设备、无人机和嵌入式机器人平台特别有利,在这些平台上,毫秒级的延迟可能产生重大的操作影响。

源码位置:ultralytics/utils/nms.py

1.2.3 创新点3:ProgLoss和STAL:增强训练稳定性和小目标检测

训练稳定性和小目标识别仍然是目标检测中持续存在的挑战。YOLO26通过整合两种新颖策略来解决这些问题:渐进损失平衡(ProgLoss)和小目标感知标签分配(STAL),如图(图3c)所示。

ProgLoss在训练期间动态调整不同损失分量的权重,确保模型不会过拟合于主导物体类别,同时防止在稀有或小类别上表现不佳。这种渐进式再平衡改善了泛化能力,并防止了训练后期的不稳定。另一方面,STAL明确优先为小目标分配标签,由于像素表示有限且易被遮挡,小目标尤其难以检测。ProgLoss和STAL共同为YOLO26在包含小目标或被遮挡目标的数据集(如COCO和无人机图像基准)上带来了显著的精度提升。

1.2.4 创新点4:用于稳定收敛的MuSGD优化器

YOLO26的最后一项创新是引入了MuSGD优化器(图3d),它结合了随机梯度下降(SGD)的优势与最近提出的Muon优化器(一种受大型语言模型训练中使用的优化策略启发而发展的技术)。MuSGD利用SGD的鲁棒性和泛化能力,同时融入了来自Muon的自适应特性,能够在不同数据集上实现更快的收敛和更稳定的优化。

源码位置:ultralytics/optim/muon.py

2.如何训练YOLO11模型

2.1 如何训练NEU-DET数据集

2.1.1 数据集介绍

直接搬运YOLO11的就能使用

image.gif

2.1.2 超参数修改

位置如下default.yaml

image.gif

2.2 训练可视化对比

2.2.1  不使用预训练模型

训练方式:

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/26/yolo26n.yaml')
    #model.load('yolo26n.pt') # loading pretrain weights
    model.train(data='data/NEU-DET.yaml',
                cache=False,
                imgsz=640,
                epochs=200,
                batch=16,
                close_mosaic=10,
                workers=2,
                device='0',
                #optimizer='SGD',   # using SGD,auto
                project='runs/train',
                name='exp',
                )

image.gif

训练结果可视化结果

YOLO26n summary (fused): 122 layers, 2,376,006 parameters, 0 gradients, 5.2 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 16/16 3.2it/s 5.1s
                   all        486       1069      0.631      0.608      0.657      0.345
               crazing         69        149      0.489      0.161      0.321      0.104
             inclusion         87        222      0.599      0.712      0.703      0.358
               patches         92        243      0.721      0.844      0.861      0.522
        pitted_surface         93        130      0.777      0.644      0.757      0.437
       rolled-in_scale         81        171      0.554      0.465        0.5      0.215
             scratches         90        154      0.647      0.821      0.798      0.437

image.gif

image.gif

2.2.2  不使用预训练模型+optimizer='SGD'

训练方式:optimizer有auto改为 yolo11使用的SGD

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/26/yolo26n.yaml')
    #model.load('yolo26n.pt') # loading pretrain weights
    model.train(data='data/NEU-DET.yaml',
                cache=False,
                imgsz=640,
                epochs=200,
                batch=16,
                close_mosaic=10,
                workers=2,
                device='0',
                optimizer='SGD',   # using SGD,auto
                project='runs/train',
                name='exp',
                )

image.gif

训练结果可视化结果

YOLO26 summary (fused): 122 layers, 2,376,006 parameters, 0 gradients, 5.2 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 16/16 3.2it/s 5.0s
                   all        486       1069      0.599      0.573      0.622      0.321
               crazing         69        149      0.476      0.094      0.272     0.0921
             inclusion         87        222      0.604      0.653      0.673      0.338
               patches         92        243      0.637      0.844      0.842      0.487
        pitted_surface         93        130      0.788      0.708      0.783      0.444
       rolled-in_scale         81        171      0.534      0.449      0.486       0.21
             scratches         90        154      0.555      0.688      0.676      0.353

image.gif

image.gif

2.2.3  使用预训练模型

训练方式:

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/26/yolo26n.yaml')
    model.load('yolo26n.pt') # loading pretrain weights
    model.train(data='data/NEU-DET.yaml',
                cache=False,
                imgsz=640,
                epochs=200,
                batch=16,
                close_mosaic=10,
                workers=2,
                device='0',
                #optimizer='SGD',   # using SGD,auto
                project='runs/train',
                name='exp',
                )

image.gif

训练结果可视化结果

YOLO26n summary (fused): 122 layers, 2,376,006 parameters, 0 gradients, 5.2 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 16/16 3.1it/s 5.1s
                   all        486       1069      0.734      0.693      0.747      0.432
               crazing         69        149      0.499      0.369      0.407      0.149
             inclusion         87        222      0.749      0.761      0.797      0.427
               patches         92        243      0.875      0.856       0.92      0.607
        pitted_surface         93        130      0.864      0.777      0.845      0.543
       rolled-in_scale         81        171      0.647      0.558      0.643      0.315
             scratches         90        154       0.77      0.838      0.867      0.554

image.gif

image.gif

2.2.4  使用预训练模型+yolo26s

训练方式:

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/26/yolo26s.yaml')
    #model.load('yolo26n.pt') # loading pretrain weights
    model.train(data='data/NEU-DET.yaml',
                cache=False,
                imgsz=640,
                epochs=200,
                batch=16,
                close_mosaic=10,
                workers=2,
                device='0',
                #optimizer='SGD',   # using SGD,auto
                project='runs/train',
                name='exp',
                )

image.gif

训练结果可视化结果

YOLO26s summary (fused): 122 layers, 9,467,502 parameters, 0 gradients, 20.5 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 16/16 2.3it/s 6.9s
                   all        486       1069      0.642      0.645      0.678      0.372
               crazing         69        149      0.588      0.228      0.343      0.114
             inclusion         87        222      0.624      0.734      0.747      0.388
               patches         92        243      0.737      0.881      0.897      0.582
        pitted_surface         93        130      0.728      0.715       0.76      0.444
       rolled-in_scale         81        171      0.542      0.509      0.536      0.231
             scratches         90        154      0.635      0.805      0.784      0.471

image.gif

image.gif

2.3 训练结果对比可视化

R   mAP50  mAP50-95 GFLOPs
yolo26n+不使用预训练模型 0.631 0.608 0.657 0.345 5.2
yolo26n+不使用预训练模型+optimizer='SGD' 0.599 0.573 0.622 0.321 5.2
yolo26n+使用预训练模型 0.734 0.693 0.747 0.432 5.2
yolo26s+不使用预训练模型 0.642 0.645 0.678 0.372 20.5


image.gif 编辑

目录
相关文章
|
机器学习/深度学习 算法 数据可视化
YOLO26如何训练自己的分割数据集 | (裂缝分割为案列)
YOLO26全新发布!本文详解其核心创新:移除DFL、端到端无NMS推理、ProgLoss+STAL损失策略、MuSGD优化器,并附结构框图;同时以裂缝分割为例,手把手演示自定义数据集训练全流程(含预训练与非预训练对比)。
506 0
|
机器学习/深度学习 数据可视化 测试技术
YOLO26如何训练自己的关键点pose数据集 | (手部关键点为案列)
本文详解YOLO26全新发布:原理创新(移除DFL、无NMS推理、ProgLoss/STAL损失、MuSGD优化器)、结构框图及手部关键点数据集训练全流程,含代码实现与可视化效果,助力高效落地边缘端多任务检测。
493 1
|
5月前
|
机器学习/深度学习 监控 算法
基于 YOLO26的5类人体行为姿态智能检测(中英文双版) | 附完整源码与效果演示
本文介绍了基于YOLO26的人体行为姿态智能检测系统的设计与实现。该系统采用YOLO26作为基础模型,实现了对5种人体行为姿态的实时检测。系统的主要特点包括: 高精度:采用YOLO26作为基础模型,结合数据增强和模型优化技术,提高了检测精度。 实时性:YOLO26的推理速度快,能够实现实时人体行为姿态检测。 多场景适应性:模型在不同场景下都能保持较好的检测性能。 易于部署:系统的安装和部署过程简单,便于在实际应用中使用。 基于YOLO26的人体行为姿态智能检测系统在智能安防、体育训练、智能家居等领域具有广泛的应用前景。未来,我们将进一步优化模型,提高检测精度和速度,拓展检测的行为类别,为更多
|
3月前
|
数据采集 监控 人机交互
人体部位细粒度检测数据集(7000张,5类)|YOLO训练数据集 人体检测 姿态分析 智能安防
本数据集含7000张高质量图像,涵盖人体、身体、头部、手部、脚部5类细粒度目标,YOLO标准格式,标注精准、场景多样、姿态丰富,专为人体部位检测、姿态分析与智能安防等任务优化,开箱即用,支持YOLOv5/v8快速训练。
|
7月前
|
存储 缓存 监控
JDK自带调优五件套(Jstat/Jinfo/Jmap/Jhat/Jstack)深度解析+实战指南
本文深入解析JDK自带的5款JVM调优工具(Jstat、Jinfo、Jmap、Jhat、Jstack),帮助开发者高效定位线上系统性能问题。Jstat实时监控GC状态,Jinfo查看修改JVM参数,Jmap生成内存快照,Jhat分析堆内存泄漏,Jstack诊断线程死锁。通过企业级实战案例,展示工具协同使用流程,并给出缓存优化等解决方案。这些轻量级工具无需额外部署,是Java开发者必备的性能调优利器,能有效应对内存泄漏、CPU过载等常见问题。
1986 3
|
12月前
|
机器学习/深度学习 人工智能 API
一篇说人话的文章,告诉你 Django、Flask、FastAPI 到底怎么选
Django 是功能齐全的“全家桶”,适合快速搭建完整应用;Flask 灵活轻量,适合小型项目与自定义开发;FastAPI 性能强劲,专为高并发与 API 设计。三者定位不同,适用场景各异,学习顺序建议:FastAPI → Django,提升开发效率与理解深度。
785 10
|
机器学习/深度学习 数据采集 数据可视化
基于YOLOv8的PCB缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8实现PCB缺陷检测,提供一站式解决方案。包含完整训练代码、标注数据集、预训练权重及PyQt5图形界面,支持图片、文件夹、视频和摄像头四种检测模式。项目开箱即用,适合科研、工业与毕业设计。核心功能涵盖模型训练、推理部署、结果保存等,检测类型包括缺孔、鼠咬缺口、开路、短路、飞线和杂铜。项目具备高性能检测、友好界面、灵活扩展及多输入源支持等优势,未来可优化模型轻量化、多尺度检测及报告生成等功能。
基于YOLOv8的PCB缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
28470 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
27246 3

热门文章

最新文章