海东市网站建设_网站建设公司_定制开发_seo优化
2026/1/21 7:54:32 网站建设 项目流程

YOLO11预测推理怎么用?后续操作指南

1. 快速上手YOLO11:从环境到推理全流程

你是不是已经听说了YOLO11的惊人表现——更快的速度、更高的精度,还有更强的泛化能力?但问题来了:拿到镜像之后,到底该怎么用它来做预测推理?训练完模型又该做什么?

别急。这篇文章就是为你准备的“后续操作手册”。无论你是刚跑通第一个demo的新手,还是想快速验证效果的开发者,都能在这里找到清晰、可执行的操作路径。

我们不讲复杂的原理,只说你能立刻上手的事:

  • 如何使用预训练模型做图像检测
  • 如何加载自己训练好的模型进行推理
  • 推理结果怎么看、怎么保存
  • 后续还能做什么(比如导出为ONNX、部署到边缘设备)

准备好开始了吗?咱们一步步来。

2. 环境准备与项目结构说明

2.1 镜像环境简介

你使用的这个YOLO11镜像是一个开箱即用的深度学习环境,内置了:

  • Python 3.10+
  • PyTorch 2.x + CUDA 支持
  • Ultralytics 官方库(已安装或源码提供)
  • Jupyter Notebook 和 SSH 访问支持

这意味着你不需要再手动配置依赖,可以直接进入项目目录运行代码。

2.2 进入项目目录

根据文档提示,首先进入主项目文件夹:

cd ultralytics-8.3.9/

注意:虽然名字叫ultralytics-8.3.9,但这其实是支持 YOLOv11 的版本分支。Ultralytics 团队沿用了原有仓库结构,通过 YAML 配置文件区分不同模型架构。

在这个目录下,你应该能看到以下关键文件和文件夹:

ultralytics/ ├── cfg/ # 模型配置文件(yolo11s.yaml 就在这) ├── models/ # 模型定义 └── utils/ # 工具函数 train.py # 训练脚本 detect.py # 推理脚本(如果没有,可以自己创建) datasets/ # 数据集目录 runs/ # 训练输出保存路径

如果你没有detect.py,别担心,下面我会教你写一个。

3. 使用YOLO11进行预测推理

3.1 加载模型的两种方式

在做推理之前,先搞清楚你要用哪种模型:

类型适用场景加载方式
预训练权重快速测试通用物体检测YOLO('yolo11s.pt')
自定义训练模型检测特定目标(如口罩、车牌)YOLO('runs/detect/train/weights/best.pt')
方法一:使用官方预训练模型(快速体验)
from ultralytics import YOLO # 自动下载并加载YOLO11-small预训练模型 model = YOLO('yolo11s.pt') # 开始推理 results = model('test.jpg') # 可以是图片路径、URL、numpy数组等 results[0].show() # 显示第一张图的结果

首次运行会自动从Hugging Face下载权重文件,之后就本地缓存了。

方法二:加载你自己训练的模型

假设你已经用train.py跑完训练,最佳模型保存在:

runs/detect/train/weights/best.pt

那么你可以这样加载:

from ultralytics import YOLO # 加载本地训练好的模型 model = YOLO('runs/detect/train/weights/best.pt') # 推理单张图片 results = model('my_test_image.jpg') results[0].save(filename='result_with_box.jpg') # 保存带框的结果图

3.2 批量推理:处理多张图片

实际应用中,往往需要处理一批图片。可以用列表传入:

import os # 图片文件夹路径 img_dir = 'test_images/' image_files = [os.path.join(img_dir, img) for img in os.listdir(img_dir) if img.endswith(('.jpg', '.png'))] # 批量推理 results = model(image_files) # 逐个保存结果 for i, r in enumerate(results): r.save(filename=f'result_{i}.jpg')

也可以设置stream=True来节省内存,适合大批次:

results = model(image_files, stream=True) for r in results: r.save(filename='output.jpg') # 覆盖式保存或按需命名

3.3 视频推理:让YOLO11“看”视频

YOLO11也能处理视频流!只需把视频路径传进去:

# 处理本地视频 results = model('input_video.mp4', save=True, conf=0.5) # 结果会自动保存为 output.avi 或 mp4 格式

参数说明:

  • save=True:保存带检测框的视频
  • conf=0.5:置信度阈值,低于此值的框不显示
  • 默认保存在runs/detect/predict/目录下

如果你想实时查看,可以用 OpenCV 结合推理做实时展示(适用于摄像头):

import cv2 model = YOLO('yolo11s.pt') cap = cv2.VideoCapture(0) # 0表示默认摄像头 while cap.isOpened(): ret, frame = cap.read() if not ret: break results = model(frame, conf=0.6) annotated_frame = results[0].plot() # 绘制检测框 cv2.imshow('YOLO11 Real-time Detection', annotated_frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()

4. 推理结果解析与后处理

4.1 看懂输出内容

每次推理返回的是一个Results对象列表,每个对象包含:

result = results[0] print(result.boxes) # 检测框信息:坐标、类别、置信度 print(result.names) # 类别名称字典,如 {0: 'person', 1: 'car'} print(result.orig_img) # 原始图像

例如打印result.boxes输出可能是:

boxes (tensor): [x1, y1, x2, y2, confidence, class]

你可以提取这些数据用于后续逻辑判断:

for box in result.boxes: x1, y1, x2, y2 = box.xyxy[0].cpu().numpy().astype(int) conf = box.conf.item() cls = int(box.cls.item()) label = result.names[cls] print(f"检测到 {label},置信度 {conf:.2f},位置 [{x1}, {y1}, {x2}, {y2}]")

4.2 自定义可视化样式

默认绘图颜色可能不够醒目,可以自定义:

results[0].plot( line_width=3, font_size=12, labels=True, boxes=True, show_conf=True )

或者完全关闭某些元素:

# 只保留高置信度目标,并隐藏标签 results[0].plot(conf=False, labels=False)

4.3 导出为JSON或其他格式

如果要做数据分析或集成到系统里,可以把结果转成结构化数据:

import json detections = [] for box in result.boxes: detections.append({ "class": result.names[int(box.cls)], "confidence": float(box.conf), "bbox": box.xyxy[0].cpu().numpy().tolist() }) with open('detection_result.json', 'w') as f: json.dump(detections, f, indent=2)

这样就能轻松对接Web服务、数据库或报表系统。

5. 推理后的进阶操作建议

5.1 导出为ONNX格式(便于部署)

训练完模型后,下一步通常是部署到生产环境。YOLO11支持一键导出为 ONNX:

from ultralytics import YOLO model = YOLO('runs/detect/train/weights/best.pt') model.export(format='onnx', dynamic=True, simplify=True)

生成的.onnx文件可以在:

  • Windows/Linux 上用 ONNX Runtime 推理
  • 移动端(Android/iOS)集成
  • 边缘设备(如 Jetson Nano)运行

5.2 在Jupyter中交互式调试

镜像支持 Jupyter,非常适合边调边看。

启动方式参考文档中的图片指引,通常是在浏览器访问类似地址:

http://<your-server-ip>:8888

然后打开.ipynb文件,逐行运行代码,实时查看图像和结果,特别适合调参和演示。

5.3 通过SSH远程操作(适合服务器用户)

如果你是在云服务器上运行,可以通过 SSH 登录操作:

ssh username@server_ip -p port

登录后就可以:

  • 上传测试图片
  • 运行推理脚本
  • 下载结果文件

配合scp命令传输文件非常方便:

# 上传图片 scp test.jpg user@server:/path/to/project/ # 下载结果 scp user@server:/path/to/project/result.jpg ./

6. 常见问题与解决方法

6.1 报错 “No module named ‘ultralytics’”

说明库没装好。尝试手动安装:

pip install ultralytics

或者进入ultralytics-8.3.9/目录执行:

pip install -e .

6.2 GPU显存不足怎么办?

降低batch-size,或者在推理时指定更小的输入尺寸:

results = model('test.jpg', imgsz=320) # 默认是640

也可以强制使用CPU:

results = model('test.jpg', device='cpu')

6.3 检测不到目标?试试这几个方法

  • 提高置信度阈值:conf=0.3
  • 更换模型大小:yolo11m.ptyolo11l.pt更适合小目标
  • 检查图片是否过暗/模糊
  • 确认类别是否在COCO 80类之内(预训练模型只认识这些)

6.4 如何识别自定义物体?

必须先用自己的数据集训练模型。步骤如下:

  1. 准备标注数据(VOC或YOLO格式)
  2. 写好data.yaml文件
  3. 修改train.py中的data=参数指向你的配置
  4. 运行训练
  5. 用训练好的模型做推理

训练完成后,模型就知道你的特殊目标了。

7. 总结:YOLO11推理全链路回顾

1. 我们学到了什么?

本文带你走完了 YOLO11 从环境使用到预测推理的完整流程:

  • 如何进入项目目录并确认结构
  • 两种模型加载方式:预训练 vs 自训练
  • 单图、批量、视频三种推理模式
  • 结果解析、可视化与数据导出
  • 后续可做的部署与优化动作
  • 常见问题排查思路

2. 下一步你可以做什么?

  • 把模型导出为 ONNX,在树莓派或手机上跑起来
  • 搭建一个简单的 Web 页面,上传图片自动检测
  • 结合 Flask/FastAPI 做成 API 服务
  • 用 TensorRT 加速推理速度

YOLO11 不只是一个算法,而是一整套可用的工具链。你现在掌握的,正是把它变成真正生产力的关键一步。


获取更多AI镜像

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询