news 2026/4/23 10:56:04

YOLO26保姆级教程:从零开始搭建目标检测模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26保姆级教程:从零开始搭建目标检测模型

YOLO26保姆级教程:从零开始搭建目标检测模型

你是不是也经历过——下载了最新YOLO代码,配环境配到怀疑人生;改了十遍data.yaml,训练还是报错路径找不到;好不容易跑通推理,想换张图试试,结果source参数填错又卡住?别急,这篇教程就是为你写的。

这不是一份“理论上能跑”的文档,而是一份真实在服务器上敲过每一行命令、截图过每一个终端输出、踩过所有典型坑的实操指南。我们用的是CSDN星图镜像广场上已验证可用的「最新YOLO26官方版训练与推理镜像」,开箱即用,不编译、不降级、不手动装CUDA——所有依赖早已就位,你只需要专注在“怎么让模型认出你的目标”。

全文没有晦涩术语堆砌,不讲backbone结构、不推导loss函数,只说:
该敲什么命令、
文件该放哪、
参数填什么才不报错、
结果在哪看、
模型训完怎么拿走用。

准备好终端,我们这就开始。

1. 镜像启动后第一件事:激活环境 & 复制代码到工作区

镜像启动后,你看到的不是空白桌面,而是一个预装好全部工具的深度学习工作站。但注意:它默认没进YOLO专用环境,代码也锁在系统盘里——直接改会失效,重启就丢。所以第一步,必须做两件事:切对环境 + 把代码挪到安全位置

1.1 激活 conda 环境

镜像内置两个环境:torch25(默认)和yolo(YOLO26专用)。不切换,后续所有命令都会提示ModuleNotFoundError: No module named 'ultralytics'

在终端中输入:

conda activate yolo

你会看到命令行前缀变成(yolo),说明环境已成功激活。这一步不能跳,也不能靠“我以为进了”蒙混过关。

1.2 把官方代码复制到 workspace

镜像把YOLO26源码放在/root/ultralytics-8.4.2,但它位于系统盘(只读分区),你修改的任何文件,重启后都会消失。

正确做法是:复制整份代码到/root/workspace/(这是镜像为你准备的持久化工作区):

cp -r /root/ultralytics-8.4.2 /root/workspace/

执行后,用ls /root/workspace/确认目录已存在。然后进入它:

cd /root/workspace/ultralytics-8.4.2

现在你拥有了一个可自由编辑、永久保存的YOLO26项目根目录。所有后续操作,都基于这个路径展开。

提示:别再用cd /root/ultralytics-8.4.2——那是系统盘,改了白改。

2. 三分钟跑通推理:用一张图验证环境是否真正常

别急着训模型,先确保“预测”这条路完全打通。我们用镜像自带的示例图zidane.jpg和预训练权重yolo26n-pose.pt,完成一次端到端推理。

2.1 创建 detect.py 脚本

在当前目录(/root/workspace/ultralytics-8.4.2)下,新建一个 Python 文件:

nano detect.py

粘贴以下内容(注意:路径必须严格匹配,大小写、斜杠都不能错):

from ultralytics import YOLO if __name__ == '__main__': model = YOLO(model=r'yolo26n-pose.pt') model.predict( source=r'./ultralytics/assets/zidane.jpg', save=True, show=False )

保存并退出(Ctrl+O → Enter → Ctrl+X)。

2.2 执行推理并查看结果

运行命令:

python detect.py

几秒后,终端会打印类似这样的信息:

Predicting... Ultralytics 8.4.2 Python-3.9.5 torch-1.10.0+cu121 CUDA:0 (Tesla T4) ... Results saved to runs/detect/predict

关键来了:结果图在哪?

打开文件浏览器,导航至:

/root/workspace/ultralytics-8.4.2/runs/detect/predict/zidane.jpg

双击打开——你将看到一张带人体关键点和边界框的图片,说明:
PyTorch + CUDA 调用正常,
Ultralytics 库加载成功,
权重文件可读,
OpenCV 图像保存无误。

如果卡在ImportErrorFileNotFoundError,请立刻回头检查第1节——90%的问题都出在没激活yolo环境或路径写错。

3. 推理进阶:一张图、一段视频、一个摄像头,全搞定

上面只是“单图测试”,实际使用中,你肯定要处理更多类型的数据源。YOLO26 的predict()方法统一支持三种输入,只需改一个参数:

输入类型source 参数值说明
单张图片'./ultralytics/assets/bus.jpg'支持 JPG/PNG/BMP 等常见格式,路径必须存在
视频文件'./ultralytics/assets/video.mp4'自动逐帧推理,结果保存为新视频
本地摄像头0笔记本自带摄像头或 USB 摄像头,数字代表设备索引

3.1 快速切换:改一行,换一种输入

比如你想用摄像头实时检测,只需把detect.py中这一行:

source=r'./ultralytics/assets/zidane.jpg',

改成:

source=0,

再运行python detect.py,就会弹出一个窗口,实时显示检测画面(注意:show=True才能看到窗口,否则只保存不显示)。

3.2 输出控制:存不存?显不显?怎么存?

predict()还有三个关键开关,务必理解它们的作用:

  • save=True必须打开。不加这句,结果只在内存里闪一下,硬盘上啥也没有。
  • show=True:按需开启。笔记本有屏幕时可开;远程服务器无图形界面时,必须设为False,否则报错。
  • projectname:控制保存路径。默认是runs/detect/predict,如果你想每次结果分开存,可以加:
model.predict( source=0, save=True, show=False, project='runs/detect', name='my_camera_test' )

这样结果会存到runs/detect/my_camera_test/,避免和上次覆盖。

小技巧:用ls runs/detect/快速查看所有历史结果文件夹。

4. 训练自己的模型:从准备数据到跑出第一个 epoch

推理通了,下一步就是让YOLO26认识你自己的目标——比如产线上的螺丝、农田里的病虫害、仓库里的托盘。训练分三步:准备数据 → 配置文件 → 启动训练。我们跳过理论,直给可复用的操作流。

4.1 数据准备:YOLO格式,四步到位

YOLO26 只认一种格式:每张图配一个.txt标签文件,内容是归一化的class x_center y_center width height。别手写!用工具生成。

你只需做:

  1. 把所有图片放进一个文件夹,如/root/workspace/my_dataset/images/train
  2. 把所有标注.txt放进同级labels/train文件夹
  3. 同理建images/vallabels/val(验证集)
  4. /root/workspace/my_dataset/下新建data.yaml

data.yaml内容模板如下(请按你的真实路径修改):

train: ../my_dataset/images/train val: ../my_dataset/images/val nc: 3 # 类别数,比如:0=defect, 1=nut, 2=bolt names: ['defect', 'nut', 'bolt'] # 类别名,顺序必须和 nc 一致

注意:trainval的路径是相对于 data.yaml 文件所在位置的相对路径。如果你把data.yaml放在/root/workspace/my_dataset/data.yaml,那../my_dataset/images/train就是对的;如果放错位置,训练时会报No images found

4.2 修改 train.py:填对路径,避开最大坑

镜像里没给你现成的train.py,需要自己新建。在/root/workspace/ultralytics-8.4.2/下创建:

nano train.py

填入以下精简版代码(已去除冗余警告、适配镜像环境):

from ultralytics import YOLO if __name__ == '__main__': # 加载模型配置(不是权重!是 .yaml 定义网络结构) model = YOLO('ultralytics/cfg/models/26/yolo26.yaml') # 开始训练(指定 data.yaml、调参、输出位置) model.train( data='/root/workspace/my_dataset/data.yaml', # 填你自己的 data.yaml 绝对路径 imgsz=640, epochs=100, batch=64, # 根据显存调整:T4建议 ≤64,A10建议 ≤128 workers=4, # 数据加载进程数,设为 CPU 核心数一半 device='0', # 使用第0块GPU(单卡必填) project='runs/train', name='my_first_yolo26', cache=False # 小数据集可开,大数据集关(省显存) )

重点检查:

  • data=后面是绝对路径,且指向你真实的data.yaml
  • device='0'不要写成'cuda:0'0(YOLO26要求字符串)
  • batch别贪大,OOM(显存溢出)时会直接中断,看日志里有没有CUDA out of memory

4.3 启动训练 & 实时看进度

保存后,运行:

python train.py

你会看到类似这样的输出:

Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 1/100 2.1G 1.2456 0.8765 1.0234 128 640 2/100 2.1G 1.1987 0.8213 0.9876 128 640 ...

左上角GPU_mem显示显存占用(如2.1G),说明CUDA正在工作;
box_loss等数值随 epoch 下降,说明模型在学习;
最后一行会提示Results saved to runs/train/my_first_yolo26

训练完成后,去这个路径下找:

  • weights/best.pt:精度最高的模型
  • weights/last.pt:最后一个 epoch 的模型
  • results.csv:每个 epoch 的 mAP、loss 全记录(可用 Excel 打开)

5. 模型导出与部署:训完的模型,怎么拿去用?

训出来的best.pt是 PyTorch 格式,不能直接塞进手机App或嵌入式设备。YOLO26 支持一键导出多种工业级格式,我们选最通用的 ONNX(几乎所有推理引擎都支持)。

5.1 导出 ONNX 模型

/root/workspace/ultralytics-8.4.2/下运行:

yolo export model=runs/train/my_first_yolo26/weights/best.pt format=onnx dynamic=True

几秒后,你会看到:

ONNX export success saved as runs/train/my_first_yolo26/weights/best.onnx

这个.onnx文件就是你的“成品模型”,体积小、跨平台、无需Python环境,可直接用 OpenCV、ONNX Runtime、TensorRT 加载。

5.2 本地下载模型文件

镜像在云服务器上,模型在runs/.../best.onnx,怎么拿到本地电脑?用 Xftp(或其他SFTP工具):

  • 连接服务器(IP、用户名、密码同镜像登录信息)
  • 左侧定位到你本地电脑的存放文件夹(如D:\models\
  • 右侧导航到/root/workspace/ultralytics-8.4.2/runs/train/my_first_yolo26/weights/
  • 鼠标双击best.onnx→ 自动开始下载(不要拖拽!双击最稳)

下载完成后,你就有了一套完整的私有目标检测能力:
📸 采集图像 → 🧠 用best.onnx推理 → 输出坐标和类别。

6. 常见问题快查:90%的报错,这里都有解

训练/推理时遇到报错?先别百度,对照下面高频问题自查:

问题现象最可能原因一句话解决
ModuleNotFoundError: No module named 'ultralytics'没激活yolo环境执行conda activate yolo
FileNotFoundError: No images found in ...data.yamltrain路径写错ls /your/path/to/images确认路径真实存在
CUDA out of memorybatch设太大改小batch=32batch=16,再试
KeyError: 'names'data.yaml缺少names:行或格式错检查names: ['a','b']是否顶格、有冒号、英文引号
OSError: [Errno 121] Remote I/O errorXftp下载中断关闭Xftp重连,双击文件下载(别拖拽)
推理结果图是黑的/全是框没内容show=True但服务器无图形界面改成show=False,确保save=True

记住:YOLO26 是个成熟框架,绝大多数报错都不是模型问题,而是路径、权限、环境的小疏漏。逐行核对,比重装环境快十倍。

7. 总结:你已经掌握了YOLO26落地的核心闭环

回看一下,你刚刚完成了目标检测工程中最关键的五步:

  1. 环境就绪:用conda activate yolo切到专用环境,把代码复制到workspace永久保存;
  2. 推理验证:3分钟跑通zidane.jpg,确认整个链路畅通;
  3. 多源适配:一张图、一段视频、一个摄像头,改source就切换;
  4. 自主训练:准备YOLO格式数据 → 写data.yaml→ 改train.pypython train.py
  5. 成果交付yolo export导出 ONNX → Xftp 下载 → 拿到本地直接集成。

这不再是“调通一个demo”,而是构建了一条可复用、可迭代、可交付的AI能力流水线。下次新数据来了,你只需要:
① 放进my_dataset/images/train
② 标注生成labels/train/*.txt
python train.py
④ 下载新的best.onnx

整个过程不再依赖任何人,也不需要重新配环境——因为镜像已经替你封好了所有变量。

真正的生产力,从来不是“能不能做”,而是“要不要做”。而你现在,已经拥有了说“要”的底气。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

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

文档解析新范式:PaddleOCR-VL-WEB两阶段架构深度解读

文档解析新范式:PaddleOCR-VL-WEB两阶段架构深度解读 1. 前言:小模型如何颠覆文档解析格局 你有没有遇到过这样的场景?一份扫描版PDF合同,表格错位、公式模糊、手写批注混杂其中,传统OCR工具识别后满屏“乱码”&…

作者头像 李华
网站建设 2026/4/16 16:04:12

解锁音频自由:3种方案破解加密音乐格式限制

解锁音频自由:3种方案破解加密音乐格式限制 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 音频格式转换是数字音乐管理中的基础技能,而加密音乐破解则是解决平台专有格式限制的关键技术。本文将系统剖析音频…

作者头像 李华
网站建设 2026/4/21 0:01:50

Unity资源提取与优化实战指南:从基础操作到高级应用

Unity资源提取与优化实战指南:从基础操作到高级应用 【免费下载链接】AssetStudio AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles. 项目地址: https://gitcode.com/gh_mirrors/as/AssetStudio 破解资源依赖迷宫&a…

作者头像 李华
网站建设 2026/4/22 16:36:10

探索LibreCAD多语言本地化:从界面优化到全球协作

探索LibreCAD多语言本地化:从界面优化到全球协作 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C14 using the Qt framework. It can read DXF and DWG files and can write DXF, PDF and SVG files. The user interface is h…

作者头像 李华
网站建设 2026/4/18 4:15:24

3步颠覆定时任务配置:可视化Cron工具让表达式生成效率提升10倍

3步颠覆定时任务配置:可视化Cron工具让表达式生成效率提升10倍 【免费下载链接】no-vue3-cron 这是一个 cron 表达式生成插件,基于 vue3.0 与 element-plus 实现 项目地址: https://gitcode.com/gh_mirrors/no/no-vue3-cron 你是否曾在配置定时任务时&#x…

作者头像 李华
网站建设 2026/4/20 22:08:48

突破实时渲染瓶颈:3D高斯泼溅技术全栈应用指南

突破实时渲染瓶颈:3D高斯泼溅技术全栈应用指南 【免费下载链接】gsplat CUDA accelerated rasterization of gaussian splatting 项目地址: https://gitcode.com/GitHub_Trending/gs/gsplat gsplat是一个基于CUDA加速的3D高斯泼溅渲染开源库,通过…

作者头像 李华