YOLO-v5入门必看:Jupyter环境下目标检测代码实例详解

YOLO-v5入门必看:Jupyter环境下目标检测代码实例详解

1. 技术背景与学习目标

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎。经过多个版本迭代,YOLOv5在保持实时性的同时进一步提升了检测精度和易用性,成为工业界和学术界广泛应用的目标检测方案之一。

本文面向初学者,旨在通过一个完整的Jupyter Notebook示例,帮助读者快速掌握如何在预配置的YOLOv5镜像环境中进行目标检测任务。我们将从环境介绍、工具使用到实际代码运行,逐步讲解关键步骤,并提供可复现的代码实例。

学习完本教程后,您将能够:

  • 理解YOLOv5的基本工作流程
  • 掌握Jupyter环境下加载YOLOv5模型的方法
  • 实现图像目标检测并处理输出结果
  • 熟悉常见操作如结果显示、保存与裁剪

2. YOLO-V5 镜像环境概述

2.1 镜像简介

该镜像基于YOLOv5算法构建,集成了完整的计算机视觉开发环境。预装了以下核心组件:

  • PyTorch 1.13+:主流深度学习框架,支持GPU加速
  • Ultralytics YOLOv5 官方仓库:包含所有预训练模型和工具脚本
  • OpenCV、Pillow、NumPy:常用图像处理库
  • Jupyter Notebook:交互式编程界面,便于调试与演示

此镜像极大简化了环境配置过程,用户无需手动安装依赖即可直接开始目标检测任务。

2.2 使用方式概览

镜像支持两种主要访问方式:Jupyter Notebook 和 SSH 远程连接。

Jupyter Notebook 使用方式

推荐用于快速实验和教学场景。启动实例后,可通过浏览器访问Jupyter界面,创建或打开.ipynb文件进行交互式编码。

登录成功后进入主目录界面,可查看预置的yolov5项目文件夹。

SSH 使用方式

适用于需要长期运行任务或集成到CI/CD流程中的高级用户。

通过SSH连接后,可在终端中执行批处理脚本或后台服务。

3. 在Jupyter中运行YOLOv5检测示例

3.1 准备工作

首先确保已进入正确的项目路径。在Jupyter Notebook单元格中执行以下命令切换至YOLOv5根目录:

cd /root/yolov5/

注意:若未找到该目录,请确认镜像是否正确加载或重新拉取最新版本。

3.2 加载预训练模型

YOLOv5提供了多个规模的模型以适应不同硬件条件和性能需求:

模型参数量(M)推理速度(FPS)适用场景
yolov5n1.9~160边缘设备、低延迟要求
yolov5s7.2~90平衡精度与速度
yolov5m21.2~50中等资源平台
yolov5l46.5~30高精度需求
yolov5x86.7~20服务器级部署

我们选择最常用的yolov5s模型作为示例:

import torch # Load a YOLOv5 model (options: yolov5n, yolov5s, yolov5m, yolov5l, yolov5x) model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Default: yolov5s

首次运行时会自动下载模型权重(约14MB),后续调用将直接从本地缓存加载。

3.3 输入数据准备

YOLOv5支持多种输入格式,包括:

  • 图像URL(远程)
  • 本地文件路径
  • PIL图像对象
  • OpenCV帧(numpy array)
  • 批量图像列表

本例使用官方提供的测试图像链接:

img = "https://ultralytics.com/images/zidane.jpg" # Example image

该图像包含人物、球衣号码等丰富语义信息,适合展示多类别检测能力。

3.4 执行推理

调用模型即可完成端到端推理。YOLOv5内部自动处理图像预处理(归一化、缩放、填充)和后处理(NMS非极大值抑制):

# Perform inference (handles batching, resizing, normalization automatically) results = model(img)

返回的results对象封装了检测框坐标、置信度分数、类别标签等完整信息。

3.5 结果处理与可视化

YOLOv5提供了丰富的结果操作接口,便于后续分析与应用。

打印检测结果
results.print()

输出示例:

zidane.jpg: 2 persons, 1 tie, 1 sports ball, Done. (0.012s)

显示每类物体的数量及其检测耗时。

显示检测图像
results.show()

弹出窗口展示带标注框的图像,颜色区分不同类别,文本标注类别名与置信度。

保存检测结果
results.save()

将结果图像保存至runs/detect/exp/目录下。若存在同名文件夹,则自动生成exp2,exp3等递增命名。

裁剪检测区域

提取特定目标区域用于下游任务(如分类、OCR):

cropped_images = results.crop(save=True)

每个检测框对应的区域将被单独裁剪并保存。

4. 常见问题与优化建议

4.1 常见问题解答

Q1:为什么第一次运行很慢?
A:首次加载模型需从GitHub下载权重文件,建议在网络稳定环境下运行一次后断网使用本地缓存。

Q2:如何使用本地图片?
A:只需将图像上传至Jupyter文件系统,并传入相对路径即可:

img = "./data/images/test.jpg" results = model(img)

Q3:能否批量处理多张图像?
A:可以,传入图像路径列表即可实现批量推理:

imgs = ["img1.jpg", "img2.jpg", "https://example.com/img3.jpg"] results = model(imgs)

4.2 性能优化建议

  • 启用GPU加速:确保CUDA可用,模型默认会使用GPU(如果可用)
print(torch.cuda.is_available()) # 应返回 True
  • 调整图像尺寸:对于小目标较多的场景,可增大输入分辨率提升召回率:
model = torch.hub.load("ultralytics/yolov5", "yolov5s", _verbose=False) model.imgsz = 640 # 默认为640,可设为1280提升精度
  • 设置置信度阈值:过滤低质量预测:
model.conf = 0.5 # 默认0.25 results = model(img)

5. 总结

本文详细介绍了如何在预配置的YOLOv5镜像环境中,利用Jupyter Notebook快速实现目标检测任务。主要内容包括:

  1. 环境理解:掌握了YOLOv5镜像的核心组成与访问方式;
  2. 模型加载:学会了使用torch.hub.load加载不同规模的预训练模型;
  3. 推理执行:实现了从单一图像到批量输入的完整推理流程;
  4. 结果处理:熟练运用.print(),.show(),.save(),.crop()等方法进行结果解析;
  5. 实践优化:了解了常见问题解决方案与性能调优技巧。

通过本教程,您已经具备了在真实项目中集成YOLOv5的基础能力。下一步可尝试:

  • 训练自定义数据集
  • 导出ONNX模型用于生产部署
  • 集成至Web或移动端应用

获取更多AI镜像

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1180124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Glyph部署实战:Kubernetes集群部署的YAML配置示例

Glyph部署实战:Kubernetes集群部署的YAML配置示例 1. 引言 1.1 Glyph-视觉推理 在大模型处理长文本上下文的场景中,传统基于Token的上下文扩展方法面临计算开销大、显存占用高、推理延迟显著等问题。为突破这一瓶颈,智谱AI提出了Glyph——…

YOLOv8部署总报错?独立引擎零依赖解决方案实战指南

YOLOv8部署总报错?独立引擎零依赖解决方案实战指南 1. 引言:为何YOLOv8部署常遇问题? 在工业级目标检测应用中,YOLOv8 凭借其卓越的推理速度与高精度表现,已成为众多开发者的首选模型。然而,在实际部署过程…

Grade 7 Math (Poker)

上面那题目说真的&#xff0c;我都不想说了&#xff0c;乱七八糟的初中数学扑克问题&#xff0c;分析题基于以上的测算&#xff0c;只能得到初步的结算&#xff0c;7张牌从1到7的结果&#xff1a;有a张扑克&#xff0c;翻动b张&#xff0c;b < a&#xff1b;1&#xff09;什…

Python 高阶函数必学:map () 函数原理、实战与避坑指南

目录[TOC](目录)引言一、map()函数的官方定义与核心作用二、map()函数的完整语法&#xff08;两种核心格式&#xff09;✅ 语法格式1&#xff1a;处理单个可迭代对象【最常用】✅ 语法格式2&#xff1a;处理多个可迭代对象【进阶用法】三、基础实战案例&#xff1a;一个例子看懂…

通义千问2.5显存优化:FlashAttention-2集成部署案例

通义千问2.5显存优化&#xff1a;FlashAttention-2集成部署案例 1. 引言 1.1 业务场景描述 随着大语言模型在企业级应用中的广泛落地&#xff0c;如何在有限硬件资源下高效部署高性能模型成为关键挑战。通义千问 2.5-7B-Instruct 作为一款定位“中等体量、全能型、可商用”的…

UTF-8 BOM \ufeff U+FEFF

AI 复制文件或者操作文件经常出来的问题&#xff0c;导致项目代码乱码&#xff01;&#xff01;&#xff01;错误信息中的 非法字符: \ufeff 表明&#xff0c;你的 Java 源文件开头包含了一个 UFEFF&#xff08;零宽空格&#xff09;字符&#xff0c;这是 UTF-8 BOM 编码的标志…

Qwen3-Embedding-0.6B调用报错?Python接口避坑指南一文详解

Qwen3-Embedding-0.6B调用报错&#xff1f;Python接口避坑指南一文详解 1. 背景与问题定位 在当前大模型应用快速落地的背景下&#xff0c;文本嵌入&#xff08;Text Embedding&#xff09;作为信息检索、语义匹配和向量化搜索的核心技术&#xff0c;正被广泛应用于推荐系统、…

知识图谱(七)之数据处理

一数据标注回顾1.1整体思路现在我们有txt和txtroiginal.txt里面是标注数据,txtoriginal里面是原始数据,数据如下:txt:txtoriginal:根据标注数据和标签类型构建字典这是标签类型:遍历原始数据,通过索引和标签的字典,给想引得位置打上标签.通过索引查字典,如果能查到则将对应的va…

Z-Image-Turbo实战分享:构建多语言AI绘画平台的经验

Z-Image-Turbo实战分享&#xff1a;构建多语言AI绘画平台的经验 1. 背景与选型动因 随着AIGC技术的快速发展&#xff0c;文生图模型在创意设计、内容生成和跨语言表达等场景中展现出巨大潜力。然而&#xff0c;许多开源模型在生成速度、显存占用和多语言支持方面存在明显短板…

5分钟部署Glyph视觉推理,让大模型‘看懂’百万token文本

5分钟部署Glyph视觉推理&#xff0c;让大模型‘看懂’百万token文本 1. 上下文瓶颈&#xff1a;大模型的隐形天花板 在大语言模型&#xff08;LLM&#xff09;快速演进的今天&#xff0c;上下文长度&#xff08;Context Length&#xff09;已成为衡量模型能力的关键指标之一。…

一键启动Qwen3-Embedding-4B:SGlang镜像开箱即用指南

一键启动Qwen3-Embedding-4B&#xff1a;SGlang镜像开箱即用指南 1. 引言&#xff1a;为什么选择SGlang部署Qwen3-Embedding-4B&#xff1f; 随着大模型在信息检索、语义理解与跨语言任务中的广泛应用&#xff0c;高效、低延迟的文本嵌入服务成为构建智能应用的核心基础设施。…

FST ITN-ZH林业行业案例:林木数据标准化处理

FST ITN-ZH林业行业案例&#xff1a;林木数据标准化处理 1. 引言 在林业信息化管理过程中&#xff0c;大量野外调查、资源统计和监测报告中包含非结构化的中文文本数据。这些数据常以自然语言形式表达数量、时间、单位等信息&#xff0c;例如“树高约二十五米”、“胸径一百二…

PyTorch-2.x-Universal-Dev-v1.0部署教程:A800/H800显卡CUDA 12.1兼容性测试

PyTorch-2.x-Universal-Dev-v1.0部署教程&#xff1a;A800/H800显卡CUDA 12.1兼容性测试 1. 引言 随着大模型训练和深度学习研究的不断深入&#xff0c;对高性能GPU计算平台的需求日益增长。NVIDIA A800 和 H800 显卡作为面向数据中心与高性能计算场景的重要硬件&#xff0c;…

未来已来!Open-AutoGLM开启手机自动化新时代

未来已来&#xff01;Open-AutoGLM开启手机自动化新时代 1. 背景与技术演进 近年来&#xff0c;AI Agent 的发展正从“对话助手”向“行动执行者”跃迁。传统大模型擅长理解与生成语言&#xff0c;但无法直接与物理或数字环境交互。而 Open-AutoGLM 的出现&#xff0c;标志着…

FSMN-VAD服务启动失败?检查这五个关键点

FSMN-VAD服务启动失败&#xff1f;检查这五个关键点 在部署基于 ModelScope 的 FSMN-VAD 离线语音端点检测服务时&#xff0c;尽管流程看似简单&#xff0c;但实际操作中仍可能遇到服务无法正常启动的问题。本文将结合常见错误场景&#xff0c;系统性地梳理 五个最关键的排查方…

跨国公司员工管理:AI工坊统一生成全球分支机构证件照

跨国公司员工管理&#xff1a;AI工坊统一生成全球分支机构证件照 1. 引言 1.1 业务场景描述 在全球化运营的跨国企业中&#xff0c;人力资源管理面临诸多挑战&#xff0c;其中之一便是员工证件照的标准化采集。无论是入职档案、门禁系统、工牌制作还是内部通讯录更新&#x…

Altium Designer中Gerber导出核心要点一文说清

Altium Designer中Gerber导出核心要点一文说清&#xff1a;从设计到制造的无缝衔接 为什么一次正确的Gerber输出能省下整整一周&#xff1f; 在硬件开发的冲刺阶段&#xff0c;最怕什么&#xff1f;不是原理图改了三次&#xff0c;也不是Layout布线返工——而是 打样回来的板…

开源可商用小模型推荐:Qwen2.5-0.5B+弹性算力部署指南

开源可商用小模型推荐&#xff1a;Qwen2.5-0.5B弹性算力部署指南 1. 引言&#xff1a;边缘智能时代的小模型需求 随着AI应用场景向终端设备延伸&#xff0c;对轻量化、低延迟、高能效的推理模型需求日益增长。传统大模型虽性能强大&#xff0c;但受限于显存占用和算力要求&am…

HY-MT1.5-1.8B模型性能基准:不同硬件平台的对比测试

HY-MT1.5-1.8B模型性能基准&#xff1a;不同硬件平台的对比测试 1. 引言 1.1 背景与技术趋势 随着多语言交流需求的快速增长&#xff0c;神经机器翻译&#xff08;NMT&#xff09;正从传统的云端集中式部署向终端侧轻量化运行演进。尤其是在移动设备、边缘计算和低带宽场景中…

基于SAM3大模型镜像的开放词汇分割实践|附Gradio交互部署

基于SAM3大模型镜像的开放词汇分割实践&#xff5c;附Gradio交互部署 在计算机视觉领域&#xff0c;图像语义理解正从封闭类别识别迈向开放词汇&#xff08;Open-Vocabulary&#xff09;感知的新阶段。传统分割模型受限于预定义类别&#xff0c;难以应对“穿红帽子的小孩”或“…