news 2026/4/23 15:51:44

YOLO11批量预测图片,save=True自动保存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO11批量预测图片,save=True自动保存

YOLO11批量预测图片,save=True自动保存

前言

在计算机视觉任务中,YOLO11作为Ultralytics最新推出的高效目标检测与实例分割模型,凭借其高精度、轻量化和多任务支持能力,正在被广泛应用于工业检测、自动驾驶、智能安防等领域。本文聚焦于YOLO11的批量图像预测功能,重点讲解如何通过设置save=True实现推理结果的自动保存,并结合实际代码演示完整流程。

我们将基于已训练好的YOLO11模型,对一个包含多张图像的文件夹进行批量推理,输出带标注框、分割掩膜和标签信息的结果图,并将这些可视化结果及文本格式的检测数据自动保存到指定目录。整个过程无需手动干预,适合部署在自动化流水线或边缘设备中。


1. 环境准备与项目结构

1.1 使用YOLO11镜像环境

本文所使用的深度学习环境基于YOLO11完整可运行镜像构建,集成了以下核心组件:

  • Python 3.9
  • PyTorch 1.13.1 + CUDA 支持(NVIDIA A30 GPU)
  • Ultralytics 8.3.7 框架
  • Jupyter Notebook / SSH 远程访问支持

该镜像提供了开箱即用的YOLO11开发环境,用户可通过Jupyter或SSH方式连接并执行训练与推理任务。

1.2 项目目录结构

进入容器后,首先进入YOLO11项目主目录:

cd ultralytics-8.3.9/

标准项目结构如下:

ultralytics-8.3.9/ ├── datasets/ # 存放测试图像数据 │ └── test_images/ ├── runs/ │ └── segment/ │ └── train2/ # 训练输出路径,含best.pt权重 ├── weights/ # 预训练权重存放目录 ├── train.py # 自定义训练脚本 └── infer.py # 推理脚本(本文重点)

确保你的测试图像已放入datasets/test_images/目录下,且模型权重(如best.pt)位于训练输出路径中。


2. 批量预测原理与参数解析

2.1 YOLO11批量推理机制

YOLO11的model.predict()方法支持多种输入源,包括:

  • 单张图像路径(字符串)
  • 图像文件夹路径
  • 视频文件
  • 摄像头设备ID(如0表示默认摄像头)
  • 网络流URL

当输入为文件夹路径时,系统会自动遍历其中所有支持的图像格式(.jpg,.png,.bmp等),逐帧进行推理,实现“批量预测”。

关键优势:

  • 无需循环调用:内部自动处理批处理逻辑
  • GPU加速:利用CUDA并行计算提升吞吐量
  • 结果统一管理:所有输出集中保存至指定目录

2.2 核心参数详解:save=True 的作用

save=True是控制是否将推理结果保存为图像文件的关键参数。启用后,YOLO11会在运行时自动生成带有边界框、分割掩膜、类别标签和置信度的可视化图像,并保存到默认或指定路径。

以下是predict()中与保存相关的参数说明:

参数类型默认值功能
saveboolFalse是否保存可视化图像
save_txtboolFalse是否将检测结果保存为.txt文件
save_confboolFalsesave_txt基础上是否保存置信度
save_cropboolFalse是否保存裁剪出的目标区域图像
projectstrruns/detect保存项目的根目录
namestrexp子目录名称,用于区分不同实验

提示:若未指定projectname,结果将默认保存在runs/detect/exp/下,每次运行自动递增编号(如 exp2, exp3)。


3. 完整代码实现:批量预测并自动保存

3.1 编写推理脚本 infer.py

创建infer.py脚本,内容如下:

from ultralytics import YOLO # 加载训练好的最佳权重 model = YOLO("runs/segment/train2/weights/best.pt") # 执行批量预测 results = model.predict( source="datasets/test_images/", # 输入图像文件夹路径 conf=0.45, # 置信度阈值 iou=0.6, # NMS IoU 阈值 imgsz=640, # 输入图像尺寸 device=None, # 自动选择设备(CPU/GPU) max_det=300, # 每张图像最多检测目标数 show=False, # 不显示实时画面(适用于非GUI环境) save=True, # ✅ 启用结果图像保存 save_txt=True, # 保存检测结果为txt文件 save_conf=False, # 不单独保存置信度(可选) save_crop=False, # 不保存裁剪图像 show_labels=True, # 显示类别标签 show_conf=True, # 显示置信度 show_boxes=True, # 显示边界框 line_width=2, # 边框线宽 project="runs/predict", # 自定义保存路径 name="test_batch" # 实验名称 )

3.2 参数配置说明

  • source="datasets/test_images/":指定待预测图像所在的文件夹。
  • conf=0.45:过滤低置信度预测,避免误检。
  • save=True:开启后,每张推理图像都会生成一张带标注的.jpg.png文件。
  • save_txt=True:生成对应.txt文件,格式为 YOLO 标签格式(class_id x_center y_center width height),可用于后续分析或评估。
  • projectname组合决定最终保存路径:runs/predict/test_batch/

4. 运行推理并查看结果

4.1 执行脚本

在终端运行:

python infer.py

输出日志示例:

Loading model... Predicting images from 'datasets/test_images/'... image 1/5: 640x640 tensor([[[...]]]) Results saved to runs/predict/test_batch Speed: 12.3ms preprocess, 45.6ms inference, 8.7ms postprocess per image

4.2 查看保存结果

推理完成后,进入输出目录查看结果:

ls runs/predict/test_batch/

你会看到:

  • image_001.jpg→ 带有检测框和分割掩膜的可视化图像
  • image_001.txt→ 对应的检测结果文本文件(如果启用了save_txt

可视化图像中包含:

  • 彩色分割掩膜(instance segmentation)
  • 边界框(bounding box)
  • 类别标签(如 "person", "car")
  • 置信度分数(如 0.95)

5. 结果分析与常见问题解决

5.1 输出文件结构解析

以一张图像test_img.jpg为例:

文件内容
test_img.jpg原图叠加检测结果的可视化图像
test_img.txt检测结果,每行代表一个目标:
<class_id> <x_center> <y_center> <width> <height> [confidence]

注意:save_txt仅保存归一化后的边界框坐标,不包含分割掩膜坐标。若需保存掩膜,需自行从results对象提取。

5.2 常见问题与解决方案

❌ 问题1:保存路径被覆盖?

原因:重复使用相同project/name导致目录冲突。

解决方案

  • 设置exist_ok=True允许覆盖
  • 或动态生成时间戳命名:
import time timestamp = time.strftime("%Y%m%d_%H%M%S") name = f"batch_predict_{timestamp}"
❌ 问题2:GPU显存不足?

现象:报错CUDA out of memory

解决方案

  • 降低imgsz(如改为 320 或 480)
  • 减小批量大小(YOLO11默认单张推理,影响较小)
  • 使用半精度half=True提升效率
results = model.predict(..., half=True)
❌ 问题3:中文标签乱码?

现象:图像上中文标签显示为方框或问号

解决方案: 目前 Ultralytics 默认字体不支持中文。建议后期用 OpenCV 手动绘制中文标签,或改用英文类别名。


6. 总结

6. 总结

本文详细介绍了如何使用 YOLO11 实现批量图像预测并自动保存结果的核心流程。我们从环境搭建、参数配置、代码实现到结果验证进行了全流程演示,重点强调了save=True在自动化推理中的关键作用。

主要收获包括:

  1. 批量预测无需循环:只需将source设为图像文件夹路径,YOLO11 自动完成遍历与推理。
  2. 结果自动保存:通过save=Truesave_txt=True,可同时获得可视化图像和结构化文本结果,便于后续分析。
  3. 灵活的输出控制:支持自定义保存路径、文件命名、是否保留置信度等细节。
  4. 工程实用性强:适用于质检、监控、遥感等需要离线批量处理图像的场景。

此外,结合 CSDN 提供的 YOLO11 镜像环境,开发者可以快速部署并运行模型,无需繁琐的依赖安装过程,极大提升了开发效率。

未来可进一步扩展方向:

  • 将推理结果上传至数据库或云存储
  • 集成 Flask/Django 构建 Web API 接口
  • 结合 ONNX 导出实现跨平台部署

获取更多AI镜像

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

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

Z-Image-Turbo适合个人开发者?轻量级部署实战指南

Z-Image-Turbo适合个人开发者&#xff1f;轻量级部署实战指南 1. 引言&#xff1a;Z-Image-Turbo为何值得个人开发者关注 随着AI图像生成技术的快速发展&#xff0c;越来越多的开发者希望在本地或低成本云环境中部署高效的文生图模型。然而&#xff0c;许多主流模型如Stable …

作者头像 李华
网站建设 2026/4/23 14:16:13

hal_uart_transmit常见问题与解决方法(新手篇)

HAL_UART_Transmit常见问题与解决方法&#xff08;新手篇&#xff09;从一个“无输出”的串口说起你有没有遇到过这样的场景&#xff1a;代码烧录成功&#xff0c;开发板上电&#xff0c;信心满满地打开串口助手——结果屏幕上一片空白&#xff1f;没有“Hello World”&#xf…

作者头像 李华
网站建设 2026/4/23 14:35:49

Heygem功能测评:音频驱动口型同步有多精准?

Heygem功能测评&#xff1a;音频驱动口型同步有多精准&#xff1f; 在虚拟人、AI主播、智能客服等应用场景快速发展的今天&#xff0c;口型同步&#xff08;Lip Sync&#xff09;技术的精度直接决定了数字人的“真实感”与用户信任度。Heygem数字人视频生成系统作为一款基于AI…

作者头像 李华
网站建设 2026/4/23 11:35:08

AI智能二维码工坊部署失败?常见错误排查与修复教程

AI智能二维码工坊部署失败&#xff1f;常见错误排查与修复教程 1. 引言 1.1 学习目标 本文旨在帮助开发者和运维人员快速定位并解决在部署 AI 智能二维码工坊&#xff08;QR Code Master&#xff09; 镜像过程中可能遇到的各类问题。通过本教程&#xff0c;您将掌握&#xf…

作者头像 李华
网站建设 2026/4/23 13:17:40

FSMN VAD模型压缩:1.7M小体积背后的知识蒸馏技术探秘

FSMN VAD模型压缩&#xff1a;1.7M小体积背后的知识蒸馏技术探秘 1. 引言&#xff1a;轻量级VAD的需求与挑战 语音活动检测&#xff08;Voice Activity Detection, VAD&#xff09;是语音处理系统中的关键前置模块&#xff0c;广泛应用于语音识别、语音增强、会议转录等场景。…

作者头像 李华
网站建设 2026/4/23 15:47:35

轻量应用:Qwen2.5-0.5B指南

轻量应用&#xff1a;Qwen2.5-0.5B指南 1. 引言 随着大模型技术的快速发展&#xff0c;如何在资源受限的设备上实现高效、流畅的AI对话体验成为边缘计算和轻量化部署的重要课题。传统的大型语言模型虽然性能强大&#xff0c;但对硬件要求高&#xff0c;难以在无GPU支持的环境…

作者头像 李华