news 2026/3/4 4:13:22

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/3/4 1:23:10

科哥开发的FunASR语音识别WebUI使用全解析|支持多模型与实时录音

科哥开发的FunASR语音识别WebUI使用全解析&#xff5c;支持多模型与实时录音 1. 引言 1.1 语音识别技术背景 随着人工智能技术的发展&#xff0c;语音识别&#xff08;Automatic Speech Recognition, ASR&#xff09;已成为人机交互的重要入口。从智能助手到会议记录、视频字…

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

惊艳效果展示:Qwen3-Reranker-0.6B在代码检索中的应用

惊艳效果展示&#xff1a;Qwen3-Reranker-0.6B在代码检索中的应用 1. 引言&#xff1a;代码检索的挑战与重排序技术的价值 在现代软件开发中&#xff0c;代码检索已成为开发者日常工作中不可或缺的一环。无论是查找开源项目中的实现范例&#xff0c;还是在企业级代码库中定位…

作者头像 李华
网站建设 2026/3/2 17:38:51

AI智能文档扫描仪入门必看:无需模型权重的纯算法扫描方案

AI智能文档扫描仪入门必看&#xff1a;无需模型权重的纯算法扫描方案 1. 引言 在日常办公与学习中&#xff0c;纸质文档的数字化需求日益增长。传统扫描仪体积大、成本高&#xff0c;而手机拍照虽便捷却存在角度倾斜、阴影干扰、背景杂乱等问题。为此&#xff0c;“AI 智能文…

作者头像 李华
网站建设 2026/3/4 0:47:31

Qwen3-4B如何提升响应质量?用户偏好对齐机制实战解析

Qwen3-4B如何提升响应质量&#xff1f;用户偏好对齐机制实战解析 1. 背景与技术演进 大语言模型在通用能力上的持续进化&#xff0c;正推动AI系统从“能回答”向“答得好”转变。阿里云推出的 Qwen3-4B-Instruct-2507 是Qwen系列中面向指令理解和高质量文本生成的40亿参数规模…

作者头像 李华
网站建设 2026/3/4 0:47:45

USB驱动无法识别?深度排查方法汇总

USB驱动无法识别&#xff1f;别慌&#xff0c;一文打通飞控通信“任督二脉” 你有没有过这样的经历&#xff1a; 手握最新款F7飞控&#xff0c;满心期待打开betaflight configurator调参&#xff0c;结果刷新十遍也找不到设备&#xff1b; 设备管理器里清清楚楚显示一个“未…

作者头像 李华
网站建设 2026/2/23 12:02:51

OCR模型选型攻略:cv_resnet18适用于哪些业务场景?

OCR模型选型攻略&#xff1a;cv_resnet18适用于哪些业务场景&#xff1f; 1. 技术背景与选型需求 在当前数字化转型加速的背景下&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术已成为文档处理、信息提取和自动化流程中的关键环节。面对多样化的业务场景——从证件…

作者头像 李华