news 2026/1/24 11:12:41

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/1/23 3:08:39

5个步骤掌握散热智控:电脑散热优化实战指南

5个步骤掌握散热智控:电脑散热优化实战指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanContro…

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

3步搞定音频解密与格式转换:无损保留音质的NCM文件处理指南

3步搞定音频解密与格式转换:无损保留音质的NCM文件处理指南 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 【问题篇:当加密音频成为跨设备播放的绊脚石】…

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

如何解决Obsidian表格痛点?Advanced Tables全能力解析

如何解决Obsidian表格痛点?Advanced Tables全能力解析 【免费下载链接】obsidian-better-codeblock Add title, line number to Obsidian code block 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-better-codeblock 在Obsidian中进行表格编辑时&am…

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

Android投屏与跨设备控制完全指南:从痛点解决到效率倍增

Android投屏与跨设备控制完全指南:从痛点解决到效率倍增 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcp…

作者头像 李华