news 2026/4/22 8:09:47

YOLO26 predict参数不会设?source/save详解教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26 predict参数不会设?source/save详解教程

YOLO26 predict参数不会设?source/save详解教程

你是不是也遇到过这样的情况:刚拿到YOLO26官方镜像,打开detect.py准备跑推理,结果卡在model.predict()这一行——source到底填什么?save=Truesave=False差别有多大?show开了却没窗口弹出来?别急,这篇教程不讲原理、不堆参数、不画架构图,就用最直白的话,带你把predict里最关键的四个参数彻底搞明白。

我们用的是最新发布的YOLO26官方训练与推理镜像,它不是魔改版,不是精简版,而是直接基于YOLO26官方代码库构建的完整环境。所有依赖都已预装,CUDA、PyTorch、OpenCV全配齐,连权重文件都提前下好了,你唯一要做的,就是把代码跑起来、把参数设对、把结果存下来。


1. 镜像环境说明

这个镜像不是“能用就行”的凑合版本,而是为工程落地专门打磨过的稳定组合。所有组件版本经过实测兼容,避免了你自己装环境时常见的“pip install完报错、conda update后崩掉”这类无效时间消耗。

  • 核心框架:pytorch == 1.10.0(专为YOLO26优化的稳定版本,比新版更少出奇奇怪怪的tensor shape错误)
  • CUDA版本:12.1(匹配主流A10/A100显卡,启动快、显存占用稳)
  • Python版本:3.9.5(兼顾新语法支持与旧库兼容性,不会因为一个:=海象运算符就让yaml加载失败)
  • 关键依赖:torchvision==0.11.0,opencv-python,numpy,tqdm,pandas等一应俱全,连绘图用的matplotlib和统计用的seaborn都给你备好了——你不需要为画个PR曲线再折腾环境。

这个环境配置不是随便选的。比如cudatoolkit=11.3看似和CUDA 12.1不一致,其实是PyTorch官方编译时绑定的运行时版本,强行升级反而会导致CUDA error: no kernel image is available。我们踩过坑,才敢说“开箱即用”。


2. 快速上手:从激活环境到第一张检测图

镜像启动后,界面看起来干干净净,但其实后台已经默默准备好了所有东西。接下来这几步,每一步都有明确目的,不是为了走流程,而是为了让你真正掌控整个过程。

2.1 激活环境与切换工作目录

镜像默认进入的是基础conda环境(比如torch25),但YOLO26需要的是独立隔离的yolo环境。这一步不能跳:

conda activate yolo

为什么必须激活?因为ultralytics包只装在yolo环境里。不激活就直接跑python detect.py,你会看到熟悉的ModuleNotFoundError: No module named 'ultralytics'——不是代码错了,是环境没切对。

接着,把代码从系统盘复制到数据盘:

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

这步很多人忽略,但它决定了你后续能不能顺利修改代码。系统盘是只读挂载的,直接在/root/ultralytics-8.4.2里改detect.py,保存会失败;而/root/workspace/是可写数据盘,改完立刻生效。

最后进入工作目录:

cd /root/workspace/ultralytics-8.4.2

到这里,你的操作台就绪了:环境对了、路径对了、权限也对了。

2.2 模型推理:predict四大参数逐个击破

现在看最关键的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)

别被model.predict()这个函数名吓住,它就像一个智能快递柜——你只需要告诉它“收件人是谁(model)”、“寄什么(source)”、“要不要留底单(save)”、“要不要当面签收(show)”。下面拆开讲透:

2.2.1 model参数:不是路径,是“身份凭证”

model=r'yolo26n-pose.pt'这行里的.pt文件,不是普通模型文件,而是YOLO26的“能力身份证”。它里面不仅有网络权重,还自带模型结构定义(.yaml已内嵌)。所以你不用额外指定配置文件,也不用担心model.yaml.pt不匹配。

正确用法:

  • model='yolo26n-pose.pt'(镜像里已预置,直接用)
  • model='runs/train/exp/weights/best.pt'(你自己训练完的模型)

❌ 常见错误:

  • model='yolo26.yaml'(只有结构没有权重,会报KeyError: 'model'
  • model='/wrong/path/model.pt'(路径错,报FileNotFoundError,但错误信息很隐晦,容易误判为代码问题)
2.2.2 source参数:输入源,远比你想的灵活

source=r'./ultralytics/assets/zidane.jpg'是最常被低估的参数。它不只接受图片路径,而是YOLO26的“万能输入口”,支持五种形态:

输入类型写法示例说明
单张图片'zidane.jpg'相对路径或绝对路径均可
图片文件夹'test_images/'自动遍历所有.jpg/.png/.jpeg文件
视频文件'video.mp4'支持MP4、AVI、MOV等常见格式
摄像头0'0'调用默认摄像头(笔记本自带或USB摄像头)
RTSP流'rtsp://admin:12345@192.168.1.64:554/stream1'工业场景直接接入IPC设备

注意:如果source是文件夹或视频,save=True时结果会自动按原文件名生成对应子文件夹或同名视频;如果是摄像头,save=True会持续录制带框的视频流(文件名带时间戳)。

2.2.3 save参数:存还是不存?这是个实际问题

save=True看似简单,但它决定的是“结果是否留下证据”。默认值是False,也就是说——YOLO26默认不保存任何结果,只在终端打印坐标和置信度

这意味着:

  • 如果你没设save=True,跑完detect.py,屏幕一闪而过一堆数字,然后啥也没留下;
  • 如果你设了save=True,结果会自动存到runs/detect/predict/(首次运行)或runs/detect/predict2/(第二次)等递增命名的文件夹里;
  • 存储内容包括:带检测框的图片/视频、labels/文件夹里的txt标注文件(YOLO格式)、results.csv汇总表。

实用技巧:想批量处理100张图并保留所有结果?只要source='batch_test/'+save=True,30秒搞定,不用写循环。

2.2.4 show参数:显示≠弹窗,别被名字骗了

show=False的真实含义是:“不调用OpenCV的cv2.imshow()弹窗”。它和save完全独立——你可以show=Truesave=False(只看不存),也可以show=Falsesave=True(只存不看),甚至show=Falsesave=False(纯后台计算,适合服务器无GUI环境)。

但要注意:show=True在无桌面环境(如纯命令行服务器)下会直接报错:

cv2.error: OpenCV(4.5.5) ... : error: (-215:Assertion failed)

所以生产环境务必设show=False,开发调试时再打开。

安全写法:

import os show_flag = True if os.environ.get('DISPLAY') else False model.predict(source='zidane.jpg', save=True, show=show_flag)
2.2.5 补充:其他高频实用参数

虽然标题聚焦source/save,但这两个参数常和另外三个“黄金搭档”一起出现:

  • conf=0.25:置信度阈值。设太低(如0.1)满屏小框;设太高(如0.7)可能漏检。日常用0.25~0.4之间平衡。
  • iou=0.7:NMS交并比阈值。值越小,重叠框剔除越狠,适合密集小目标(如蚂蚁、芝麻粒)。
  • device='0':指定GPU编号。多卡服务器必须显式指定,否则可能默认用CPU(慢10倍以上)。

3. 模型训练:data.yaml和train.py怎么配才不翻车

推理搞明白了,训练才是重头戏。YOLO26训练不难,但有三个地方最容易栽跟头:数据路径、配置文件、权重加载。

3.1 data.yaml:路径写错,训练直接“找不到家”

YOLO26要求数据集必须是标准YOLO格式:

dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yaml

data.yaml内容必须严格对应:

train: ../dataset/images/train val: ../dataset/images/val nc: 3 names: ['person', 'car', 'dog']

关键细节:

  • 路径是相对路径,以data.yaml所在位置为起点;
  • trainval指向images文件夹,不是labels
  • nc(number of classes)必须和names列表长度一致,否则训练中途报错IndexError: index out of range

3.2 train.py:预训练权重加载的两种姿势

你看到的代码里有这行:

model.load('yolo26n.pt')

这不是必须的,而是“选择题”:

  • 做迁移学习(比如你数据少,想借官方权重加速收敛)→ 保留这行;
  • 做消融实验或从头训(比如验证某个模块改进效果)→ 注释掉这行,让YOLO26自动初始化权重。

另外注意:model.train()里的projectname共同决定输出路径。project='runs/train'+name='exp'→ 结果存到runs/train/exp/。下次再训,改成name='exp_v2',就不会覆盖上次结果。


4. 权重文件与下载:镜像里已备好,用前先确认

镜像启动后,进/root/workspace/ultralytics-8.4.2/目录,你会看到这些预置权重:

  • yolo26n.pt:轻量级通用检测模型(适合边缘设备)
  • yolo26n-pose.pt:带姿态估计的版本(识别人体关键点)
  • yolo26s.pt:速度与精度平衡版
  • yolo26m.pt:中等规模,适合大多数业务场景

它们不是链接,是真实文件,大小从15MB到120MB不等。使用前建议先校验MD5:

md5sum yolo26n-pose.pt # 应该返回:a1b2c3d4e5f6...(官方发布页可查)

训练完的模型默认存在runs/train/exp/weights/best.pt,下载时推荐用Xftp:

  • 右侧远程服务器 → 左侧本地电脑:拖拽即下载;
  • 文件双击:单文件快速传输;
  • 大文件(如完整runs/文件夹)先压缩成.zip再传,节省70%以上时间。

5. 常见问题直击:那些没人明说但你一定遇到的坑

  • Q:source=0没画面,终端卡住不动?
    A:检查摄像头是否被其他程序占用(如Zoom、Teams),执行lsof /dev/video0查看。或者换source=1试试第二个摄像头。

  • Q:save=Trueruns/detect/里啥都没有?
    A:先确认source路径是否真实存在(ls ./ultralytics/assets/看看有没有zidane.jpg);再检查磁盘空间(df -h),/root分区满会导致静默失败。

  • Q:训练时提示CUDA out of memory
    A:不是显存真不够,而是batch=128太大。改成batch=6432,配合workers=4,基本能跑通A10。

  • Q:model.predict()报错AttributeError: 'NoneType' object has no attribute 'shape'
    A:source路径错导致图片读取失败,返回None。加一行调试:

    import cv2 img = cv2.imread('zidane.jpg') print("Image loaded:", img is not None) # 必须打印True

6. 总结:predict参数的本质,是控制“输入-处理-输出”三环节

回看开头那个让人纠结的model.predict(),它从来就不是黑盒。source是入口,决定喂给模型什么;save是出口,决定结果是否留存;show是观察窗,决定是否实时反馈;model是处理器,决定用什么能力干活。

你不需要记住所有参数,只要抓住这四点:

  • source填对路径或设备号,就能喂进去;
  • save=True,结果就落盘,不怕丢失;
  • show按需开关,开发开、生产关;
  • model用镜像预置的.pt,省心又可靠。

YOLO26不是越复杂越好,而是越简单越能落地。当你不再纠结“参数怎么设”,而是专注“我要解决什么问题”,才算真正入门。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:16:53

3步掌握资源提取与流媒体解析:从痛点到解决方案

3步掌握资源提取与流媒体解析:从痛点到解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 作为经常需要获取网络媒体资源的用户,你是否也遇到过这些困扰:想保…

作者头像 李华
网站建设 2026/4/18 7:01:57

YimMenu进阶攻略:打造个性化GTA5游戏体验

YimMenu进阶攻略:打造个性化GTA5游戏体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 一、…

作者头像 李华
网站建设 2026/4/19 3:42:27

YimMenu完全掌握指南:从入门到精通的GTA5辅助工具使用手册

YimMenu完全掌握指南:从入门到精通的GTA5辅助工具使用手册 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/…

作者头像 李华
网站建设 2026/4/18 4:36:35

PingFangSC网页字体全攻略:从技术原理到跨平台实践指南

PingFangSC网页字体全攻略:从技术原理到跨平台实践指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 引言:网页字体的技术革新 …

作者头像 李华
网站建设 2026/4/19 3:21:05

YimMenu完整指南:从安全配置到高阶应用的实用攻略

YimMenu完整指南:从安全配置到高阶应用的实用攻略 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …

作者头像 李华
网站建设 2026/4/19 1:39:48

Llama3-8B支持哪些编程语言?代码生成能力实测部署案例

Llama3-8B支持哪些编程语言?代码生成能力实测部署案例 1. 为什么是Llama3-8B:轻量与能力的平衡点 很多人一听到“80亿参数”,第一反应是“这算大模型吗?”——其实恰恰相反,Llama3-8B不是“小而弱”,而是…

作者头像 李华