2026/4/21 3:50:06
网站建设
项目流程
网站开发工程师薪资待遇,手机网页图片显示不出来,网站开发网页制作教程,少儿编程加盟哪个品牌好YOLO26 predict参数不会设#xff1f;source/save详解教程
你是不是也遇到过这样的情况#xff1a;刚拿到YOLO26官方镜像#xff0c;打开detect.py准备跑推理#xff0c;结果卡在model.predict()这一行——source到底填什么#xff1f;saveTrue和saveFalse差别有多大…YOLO26 predict参数不会设source/save详解教程你是不是也遇到过这样的情况刚拿到YOLO26官方镜像打开detect.py准备跑推理结果卡在model.predict()这一行——source到底填什么saveTrue和saveFalse差别有多大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加载失败关键依赖:torchvision0.11.0,opencv-python,numpy,tqdm,pandas等一应俱全连绘图用的matplotlib和统计用的seaborn都给你备好了——你不需要为画个PR曲线再折腾环境。这个环境配置不是随便选的。比如cudatoolkit11.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.pyfrom ultralytics import YOLO if __name__ __main__: model YOLO(modelryolo26n-pose.pt) model.predict(sourcer./ultralytics/assets/zidane.jpg, saveTrue, showFalse)别被model.predict()这个函数名吓住它就像一个智能快递柜——你只需要告诉它“收件人是谁model”、“寄什么source”、“要不要留底单save”、“要不要当面签收show”。下面拆开讲透2.2.1 model参数不是路径是“身份凭证”modelryolo26n-pose.pt这行里的.pt文件不是普通模型文件而是YOLO26的“能力身份证”。它里面不仅有网络权重还自带模型结构定义.yaml已内嵌。所以你不用额外指定配置文件也不用担心model.yaml和.pt不匹配。正确用法modelyolo26n-pose.pt镜像里已预置直接用modelruns/train/exp/weights/best.pt你自己训练完的模型❌ 常见错误modelyolo26.yaml只有结构没有权重会报KeyError: modelmodel/wrong/path/model.pt路径错报FileNotFoundError但错误信息很隐晦容易误判为代码问题2.2.2 source参数输入源远比你想的灵活sourcer./ultralytics/assets/zidane.jpg是最常被低估的参数。它不只接受图片路径而是YOLO26的“万能输入口”支持五种形态输入类型写法示例说明单张图片zidane.jpg相对路径或绝对路径均可图片文件夹test_images/自动遍历所有.jpg/.png/.jpeg文件视频文件video.mp4支持MP4、AVI、MOV等常见格式摄像头0或0调用默认摄像头笔记本自带或USB摄像头RTSP流rtsp://admin:12345192.168.1.64:554/stream1工业场景直接接入IPC设备注意如果source是文件夹或视频saveTrue时结果会自动按原文件名生成对应子文件夹或同名视频如果是摄像头saveTrue会持续录制带框的视频流文件名带时间戳。2.2.3 save参数存还是不存这是个实际问题saveTrue看似简单但它决定的是“结果是否留下证据”。默认值是False也就是说——YOLO26默认不保存任何结果只在终端打印坐标和置信度。这意味着如果你没设saveTrue跑完detect.py屏幕一闪而过一堆数字然后啥也没留下如果你设了saveTrue结果会自动存到runs/detect/predict/首次运行或runs/detect/predict2/第二次等递增命名的文件夹里存储内容包括带检测框的图片/视频、labels/文件夹里的txt标注文件YOLO格式、results.csv汇总表。实用技巧想批量处理100张图并保留所有结果只要sourcebatch_test/saveTrue30秒搞定不用写循环。2.2.4 show参数显示≠弹窗别被名字骗了showFalse的真实含义是“不调用OpenCV的cv2.imshow()弹窗”。它和save完全独立——你可以showTrue且saveFalse只看不存也可以showFalse且saveTrue只存不看甚至showFalse且saveFalse纯后台计算适合服务器无GUI环境。但要注意showTrue在无桌面环境如纯命令行服务器下会直接报错cv2.error: OpenCV(4.5.5) ... : error: (-215:Assertion failed)所以生产环境务必设showFalse开发调试时再打开。安全写法import os show_flag True if os.environ.get(DISPLAY) else False model.predict(sourcezidane.jpg, saveTrue, showshow_flag)2.2.5 补充其他高频实用参数虽然标题聚焦source/save但这两个参数常和另外三个“黄金搭档”一起出现conf0.25置信度阈值。设太低如0.1满屏小框设太高如0.7可能漏检。日常用0.25~0.4之间平衡。iou0.7NMS交并比阈值。值越小重叠框剔除越狠适合密集小目标如蚂蚁、芝麻粒。device0指定GPU编号。多卡服务器必须显式指定否则可能默认用CPU慢10倍以上。3. 模型训练data.yaml和train.py怎么配才不翻车推理搞明白了训练才是重头戏。YOLO26训练不难但有三个地方最容易栽跟头数据路径、配置文件、权重加载。3.1 data.yaml路径写错训练直接“找不到家”YOLO26要求数据集必须是标准YOLO格式dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yamldata.yaml内容必须严格对应train: ../dataset/images/train val: ../dataset/images/val nc: 3 names: [person, car, dog]关键细节路径是相对路径以data.yaml所在位置为起点train和val指向images文件夹不是labelsncnumber of classes必须和names列表长度一致否则训练中途报错IndexError: index out of range。3.2 train.py预训练权重加载的两种姿势你看到的代码里有这行model.load(yolo26n.pt)这不是必须的而是“选择题”做迁移学习比如你数据少想借官方权重加速收敛→ 保留这行❌做消融实验或从头训比如验证某个模块改进效果→ 注释掉这行让YOLO26自动初始化权重。另外注意model.train()里的project和name共同决定输出路径。projectruns/trainnameexp→ 结果存到runs/train/exp/。下次再训改成nameexp_v2就不会覆盖上次结果。4. 权重文件与下载镜像里已备好用前先确认镜像启动后进/root/workspace/ultralytics-8.4.2/目录你会看到这些预置权重yolo26n.pt轻量级通用检测模型适合边缘设备yolo26n-pose.pt带姿态估计的版本识别人体关键点yolo26s.pt速度与精度平衡版yolo26m.pt中等规模适合大多数业务场景它们不是链接是真实文件大小从15MB到120MB不等。使用前建议先校验MD5md5sum yolo26n-pose.pt # 应该返回a1b2c3d4e5f6...官方发布页可查训练完的模型默认存在runs/train/exp/weights/best.pt下载时推荐用Xftp右侧远程服务器 → 左侧本地电脑拖拽即下载文件双击单文件快速传输大文件如完整runs/文件夹先压缩成.zip再传节省70%以上时间。5. 常见问题直击那些没人明说但你一定遇到的坑Qsource0没画面终端卡住不动A检查摄像头是否被其他程序占用如Zoom、Teams执行lsof /dev/video0查看。或者换source1试试第二个摄像头。QsaveTrue但runs/detect/里啥都没有A先确认source路径是否真实存在ls ./ultralytics/assets/看看有没有zidane.jpg再检查磁盘空间df -h/root分区满会导致静默失败。Q训练时提示CUDA out of memoryA不是显存真不够而是batch128太大。改成batch64或32配合workers4基本能跑通A10。Qmodel.predict()报错AttributeError: NoneType object has no attribute shapeAsource路径错导致图片读取失败返回None。加一行调试import cv2 img cv2.imread(zidane.jpg) print(Image loaded:, img is not None) # 必须打印True6. 总结predict参数的本质是控制“输入-处理-输出”三环节回看开头那个让人纠结的model.predict()它从来就不是黑盒。source是入口决定喂给模型什么save是出口决定结果是否留存show是观察窗决定是否实时反馈model是处理器决定用什么能力干活。你不需要记住所有参数只要抓住这四点source填对路径或设备号就能喂进去saveTrue结果就落盘不怕丢失show按需开关开发开、生产关model用镜像预置的.pt省心又可靠。YOLO26不是越复杂越好而是越简单越能落地。当你不再纠结“参数怎么设”而是专注“我要解决什么问题”才算真正入门。--- **获取更多AI镜像** 想探索更多AI镜像和应用场景访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_sourcemirror_blog_end)提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。