YOLO 模型训练:自定义数据集完整流程

10 分钟阅读
自定义数据集完整训练流程 Ultralytics 统一训练代码 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 from ultralytics import YOLO # 加载模型 # model = YOLO("yolov8n.yaml") # 从头训练 # model = YOLO("yolo11n.pt") # 基于预训练权重 model = YOLO("yolo26n.pt") # 2026推荐,边缘部署首选 # 开始训练 results = model.train( # 基础配置 data="data.yaml", # 数据集配置 epochs=100, # 训练轮数 imgsz=640, # 输入尺寸 batch=16, # 批次大小 workers=8, # 数据加载线程数 # 优化器配置 optimizer="auto", # YOLO26自动使用MuSGD lr0=0.01, # 初始学习率 lrf=0.01, # 最终学习率因子 momentum=0.937, # SGD动量 weight_decay=0.0005, # 权重衰减 # 数据增强 mosaic=1.0, mixup=0.1, copy_paste=0.1, # 其他配置 device=0, # GPU设备,"cpu"为CPU project="runs/train", # 保存路径 name="yolo26_exp1", # 实验名称 exist_ok=False, # 是否覆盖 pretrained=True, # 使用预训练 verbose=True, # 详细日志 seed=42, # 随机种子 ) # 验证模型 metrics = model.val() print(f"mAP50: {metrics.box.map50:.3f}") print(f"mAP50-95: {metrics.box.map:.3f}") 各版本训练参数差异 参数 YOLOv8 YOLO11 YOLO26 默认优化器 SGD SGD MuSGD DFL 损失 ✅ ✅ ❌ 已移除 NMS 后处理 ✅ ✅ ❌ 原生无 NMS 小目标优化 一般 较好 最佳 (STAL) CPU 推理速度 基准 +25% +43% 损失函数详解 YOLO 的损失函数由三部分组成,每部分针对不同的学习目标:
YOLO 模型训练 深度学习 调优
继续阅读 →

VictoriaMetrics指标流聚合三年回顾与现状(2026)

6 分钟阅读
前言 距离上一篇文章 《VictoriaMetrics的指标流聚合能力应用》 发布于 2023年3月,至今已经整整三年。这三年里,VictoriaMetrics生态发生了翻天覆地的变化——让我们一起来回顾这篇博客提出的问题,看看官方解决了多少,我们的 stream-metrics-route 项目又在今天的位置。
VictoriaMetrics Prometheus 指标聚合 Vmagent Stream-Metrics-Route
继续阅读 →

FXLMS 与主动降噪系统架构

7 分钟阅读
主动降噪(ANC, Active Noise Control)的核心思路是用扬声器发出一个与噪声相位相反、幅值相同的声波,通过相消干涉抵消掉目标区域的噪声。落地到硬件系统,需要解决两个问题:用什么传感器感知噪声,以及用哪种控制策略生成抗噪声。这两点决定了 ANC 系统的架构分类——前馈、反馈和混合式。
ANC FXLMS 前馈降噪 反馈降噪 次级路径
继续阅读 →

YOLO 数据集制作:标注工具与格式转换

10 分钟阅读
数据标注工具使用 LabelImg 安装与使用 bash 1 2 3 4 5 # 安装 pip install labelImg # 启动 labelImg 标注流程: Open Dir → 选择图片文件夹 Change Save Dir → 选择标注保存文件夹 选择 YOLO 格式 Create RectBox → 框选目标 → 输入类别名 Save 保存 LabelMe 安装与使用 bash 1 2 pip install labelme labelme CVAT 自托管标注平台 CVAT(Computer Vision Annotation Tool)是由 Intel 开源的强大标注平台,支持 Docker 自托管部署,适合团队协作和大规模标注项目。
YOLO 数据集 数据标注 数据增强
继续阅读 →

BBR 拥塞控制算法深度解析

12 分钟阅读
BBR(Bottleneck Bandwidth and Round-trip propagation time)由 Google 的 Neal Cardwell、Yuchung Cheng 等人开发,是目前最先进的基于模型的拥塞控制算法之一。与传统的基于丢包的算法(如 Reno、CUBIC)不同,BBR 通过直接测量网络的瓶颈带宽和传播延迟来建模网络路径,在瓶颈点以 BDP(带宽延迟积)速率发送数据。
TCP BBR 拥塞控制 Google 拥塞控制算法
继续阅读 →

图像基础与 OpenCV 起步

6 分钟阅读
数字图像的本质 计算机视觉处理的对象是数字图像。数字图像本质上就是一个二维像素数组。 像素与灰度图 灰度图是最简单的数字图像——每个像素存储一个亮度值,范围 0(纯黑)到 255(纯白)。在 Python 中,一张宽 W、高 H 的灰度图就是一个形状为 (H, W) 的二维数组。
计算机视觉 OpenCV 图像处理 像素
继续阅读 →

YOLO 快速实战:模型加载与推理

7 分钟阅读
各版本模型加载与推理 Ultralytics 统一 API(v8/11/26 通用) python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from ultralytics import YOLO # ========== YOLOv8 ========== model_v8 = YOLO("yolov8n.pt") # nano model_v8 = YOLO("yolov8s.pt") # small model_v8 = YOLO("yolov8m.pt") # medium model_v8 = YOLO("yolov8l.pt") # large model_v8 = YOLO("yolov8x.pt") # extra large # ========== YOLO11 ========== model_11 = YOLO("yolo11n.pt") # nano model_11 = YOLO("yolo11s.pt") # small model_11 = YOLO("yolo11m.pt") # medium model_11 = YOLO("yolo11l.pt") # large model_11 = YOLO("yolo11x.pt") # extra large # ========== YOLO26 (2026最新) ========== model_26 = YOLO("yolo26n.pt") # nano 推荐边缘部署 model_26 = YOLO("yolo26s.pt") # small model_26 = YOLO("yolo26m.pt") # medium model_26 = YOLO("yolo26l.pt") # large model_26 = YOLO("yolo26x.pt") # extra large 图片检测实战 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from ultralytics import YOLO # 加载模型(以YOLO26为例) model = YOLO("yolo26n.pt") # 单张图片检测 results = model("test.jpg", conf=0.25, iou=0.45) # 结果处理 for result in results: boxes = result.boxes # 检测框 masks = result.masks # 分割掩码 probs = result.probs # 分类概率 # 打印检测结果 for box in boxes: print(f"类别: {result.names[int(box.cls)]}, " f"置信度: {box.conf.item():.3f}, " f"坐标: {box.xyxy.tolist()[0]}") # 保存可视化结果 result.save("result.jpg") 视频检测实战 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from ultralytics import YOLO model = YOLO("yolo26n.pt") # 视频文件检测 results = model.predict( source="input.mp4", save=True, # 保存结果视频 conf=0.3, show=False, # 是否实时显示 stream=True # 流式处理,节省内存 ) # 逐帧处理 for result in results: # 自定义后处理逻辑 pass 摄像头实时检测 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 from ultralytics import YOLO import cv2 model = YOLO("yolo26n.pt") # 打开摄像头 cap = cv2.VideoCapture(0) # 0为默认摄像头 while cap.isOpened(): ret, frame = cap.read() if not ret: break # 推理 results = model(frame, verbose=False) # 绘制结果 annotated_frame = results[0].plot() # 显示 cv2.imshow("YOLO Real-time", annotated_frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() 各版本代码差异说明 特性 YOLOv8 YOLO11 YOLO26 YOLOv9 YOLOv10 API 统一 ✅ ✅ ✅ ❌ 独立仓库 ❌ 独立仓库 无 NMS ❌ ❌ ✅ ❌ ✅ DFL 模块 ✅ ✅ ❌ 已移除 ✅ ✅ MuSGD 优化器 ❌ ❌ ✅ ❌ ❌ 导出兼容性 良好 良好 最佳 一般 一般 Results 对象 API 详解 model() 或 model.predict() 返回的是一个 Results 对象列表。每个 Results 对象封装了单张图片的所有推理输出。理解其内部结构是进行后续处理的基础。
YOLO 计算机视觉 Python 推理
继续阅读 →