news 2026/5/3 9:40:12

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/5/2 0:29:33

如何选择AI证件照方案?本地部署vs云端服务成本对比分析

如何选择AI证件照方案&#xff1f;本地部署vs云端服务成本对比分析 1. 引言&#xff1a;AI智能证件照的兴起与选型挑战 随着人工智能技术在图像处理领域的深入应用&#xff0c;传统证件照制作模式正经历一场静默而深刻的变革。过去依赖照相馆拍摄、Photoshop手动修图的流程&a…

作者头像 李华
网站建设 2026/5/2 6:20:25

小白也能懂!BGE-M3文本嵌入模型保姆级教程

小白也能懂&#xff01;BGE-M3文本嵌入模型保姆级教程 1. 引言&#xff1a;为什么选择 BGE-M3&#xff1f; 在构建检索增强生成&#xff08;RAG&#xff09;系统时&#xff0c;高质量的文本嵌入模型是决定效果的核心组件之一。传统的嵌入模型往往只支持单一模式——要么是语义…

作者头像 李华
网站建设 2026/5/2 8:59:15

开源大模型趋势分析:Qwen2.5支持128K上下文的行业应用前景

开源大模型趋势分析&#xff1a;Qwen2.5支持128K上下文的行业应用前景 1. 技术背景与趋势演进 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;正从“通用能力竞争”逐步转向“场景深度适配”的发展阶段。随着企业对长文本理解、结构化输出和多语言支持的需求日益增…

作者头像 李华
网站建设 2026/5/1 9:10:27

5个开源Embedding模型测评:BAAI/bge-m3镜像免配置推荐

5个开源Embedding模型测评&#xff1a;BAAI/bge-m3镜像免配置推荐 1. 引言 在构建现代AI应用&#xff0c;尤其是检索增强生成&#xff08;RAG&#xff09;系统时&#xff0c;高质量的文本向量化能力是决定系统性能的核心因素之一。语义嵌入&#xff08;Embedding&#xff09;…

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

Z-Image-ComfyUI常见问题:网页打不开?实例配置详解

Z-Image-ComfyUI常见问题&#xff1a;网页打不开&#xff1f;实例配置详解 1. 引言 随着AIGC技术的快速发展&#xff0c;文生图大模型在创意设计、内容生成等领域展现出巨大潜力。阿里最新推出的 Z-Image 系列模型凭借其高效推理与多语言支持能力&#xff0c;迅速成为开发者和…

作者头像 李华
网站建设 2026/4/23 18:38:06

Emotion2Vec+ Large前端界面解析:Gradio组件布局与交互逻辑

Emotion2Vec Large前端界面解析&#xff1a;Gradio组件布局与交互逻辑 1. 引言 1.1 项目背景与开发动机 在语音情感识别技术快速发展的背景下&#xff0c;Emotion2Vec Large作为阿里达摩院推出的大规模预训练模型&#xff0c;凭借其在42526小时多语种数据上的深度训练&#…

作者头像 李华