当前位置: 首页 > news >正文

Gradio-YOLOv5-YOLOv7 搭建Web GUI

目录

  • 0 相关资料:
  • 1 Gradio介绍
  • 2 环境搭建
  • 3 Gradio+YOLOv5
  • 4 Gradio+YOLOv7
  • 5 源码解释

0 相关资料:

Gradio-YOLOv5-Det:https://gitee.com/CV_Lab/gradio_yolov5_det

【手把手带你实战YOLOv5-入门篇】YOLOv5 Gradio搭建Web GUI: https://www.bilibili.com/video/BV1LP411Z7nk

YOLOv5 Gradio 搭建Web GUI:https://blog.csdn.net/weixin_41987016/article/details/129891804

How to Load local YOLOv7 model using PyTorch torch.hub: https://androidkt.com/how-to-load-local-yolov7-model-using-pytorch-torch-hub/

1 Gradio介绍

官网:https://www.gradio.app/
Gradio是一个开源的Python库,用于构建机器学习演示和Web应用。内置丰富的组件,并且实现了前后端的交互逻辑,无需额外编写代码。

2 环境搭建

开始前,我用conda创建了虚拟环境yolo,然后安装了torch
这里还需要安装gradio

pip install gradio

还需要安装yolov5

git clone https://gitee.com/YFwinston/yolov5.git
cd yolov5
pip install -r requirements.txt 

测试是否安装成功

python detect.py --source ./data/images/bus.jpg

yolov7的安装方法类似,就不重复了

3 Gradio+YOLOv5

在yolov5的目录下,创建main.py,内容如下:

import torch
import gradio as grmodel = torch.hub.load("./","custom",path="yolov5s.pt",source="local")
gr.Interface(inputs=["image"],outputs=["image"],fn=lambda img:model(img).render()[0]).launch()

执行:

python main.py

在这里插入图片描述

在这里插入图片描述

4 Gradio+YOLOv7

在yolov7的目录下,创建main.py,内容如下:

import torch
import gradio as grmodel = torch.hub.load('./', 'custom', 'yolov7_HRW_4.2k.pt',force_reload=True, source='local',trust_repo=True)
gr.Interface(inputs=["image"],outputs=["image"],fn=lambda img:model(img).render()[0]).launch()

备注:这里我用的我自己训练的yolov7模型yolov7_HRW_4.2k.pt
执行:

python main.py

在这里插入图片描述

在这里插入图片描述

5 源码解释

import torch
import gradio as grmodel = torch.hub.load("./","custom",path="yolov5s.pt",source="local")
gr.Interface(inputs=["image"],outputs=["image"],fn=lambda img:model(img).render()[0]).launch()

当中的各个参数的意思如下:

  1. torch.hub.load() 是用于从 Torch Hub 加载预训练模型的函数。它的参数如下:

    • "./":指定模型所在的本地文件路径。可以根据实际情况修改为正确的路径。
    • "custom":指定要加载的模型的名称。
    • path="yolov5s.pt":指定要加载的模型文件的路径。在此示例中,yolov5s.pt 是模型文件的名称。
    • source="local":指定模型文件的来源。在此示例中,模型文件是从本地加载的。
  2. gr.Interface() 是 Gradio 库中用于创建交互式界面的类。它的参数如下:

    • inputs=["image"]:指定输入的类型和名称。在此示例中,输入是一个图像,名称为 “image”。
    • outputs=["image"]:指定输出的类型和名称。在此示例中,输出是一个图像,名称为 “image”。
    • fn=lambda img:model(img).render()[0]:指定要在用户输入上执行的函数。在此示例中,该函数接受一个图像作为输入,并使用加载的模型对图像进行推断,然后返回推断结果中的第一个图像。
    • launch():启动 Gradio 接口,使其可以在浏览器中访问。

注意:以上是对参数的解释,实际上的参数值可能需要根据具体情况进行修改。

import torch
import gradio as grmodel = torch.hub.load('./', 'custom', 'yolov7_HRW_4.2k.pt',force_reload=True, source='local',trust_repo=True)
gr.Interface(inputs=["image"],outputs=["image"],fn=lambda img:model(img).render()[0]).launch()

当中的各个参数的意思如下:

  1. torch.hub.load() 是用于从 Torch Hub 加载预训练模型的函数。它的参数如下:

    • "./":指定模型所在的本地文件路径。可以根据实际情况修改为正确的路径。
    • "custom":指定要加载的模型的名称。
    • "yolov7_HRW_4.2k.pt":指定要加载的模型文件的路径。在此示例中,yolov7_HRW_4.2k.pt 是模型文件的名称。
    • force_reload=True:强制重新加载模型文件,即使已经存在缓存的模型。
    • source="local":指定模型文件的来源。在此示例中,模型文件是从本地加载的。
    • trust_repo=True:信任 Torch Hub 仓库,以便加载模型文件。
  2. gr.Interface() 是 Gradio 库中用于创建交互式界面的类。它的参数如下:

    • inputs=["image"]:指定输入的类型和名称。在此示例中,输入是一个图像,名称为 "image"。
    • outputs=["image"]:指定输出的类型和名称。在此示例中,输出是一个图像,名称为 "image"。
    • fn=lambda img:model(img).render()[0]:指定要在用户输入上执行的函数。在此示例中,该函数接受一个图像作为输入,并使用加载的模型对图像进行推断,然后返回推断结果中的第一个图像。
    • launch():启动 Gradio 接口,使其可以在浏览器中访问。

注意:以上是对参数的解释,实际上的参数值可能需要根据具体情况进行修改。

相关文章:

Gradio-YOLOv5-YOLOv7 搭建Web GUI

目录 0 相关资料:1 Gradio介绍2 环境搭建3 GradioYOLOv54 GradioYOLOv75 源码解释 0 相关资料: Gradio-YOLOv5-Det:https://gitee.com/CV_Lab/gradio_yolov5_det 【手把手带你实战YOLOv5-入门篇】YOLOv5 Gradio搭建Web GUI: https://www.bi…...

HTML模板生成word,pdf文档

1.获取html模板 public static void main(String[] args) {String htmlContent getHtmlFileContent(templateName,dataMap);String exportType "pdf";if (exportType.equals("pdf")){convertToPdf(htmlContent,filePath);}else {exportWord(htmlContent…...

ssl单向证书和双向证书校验测试及搭建流程

零、前提准备 首先了解下HTTP和HTTPS的区别: HTTPS与HTTP有什么不同? HTTP是过去很长一段时间我们经常用到的一种传输协议。HTTP协议传输的数据都是未加密的,这就意味着用户填写的密码、账号、交易记录等机密信息都是明文,随时…...

【2种方法,jmeter用一个正则提取器提取多个值!】

jmeter中,用json提取器,一次提取多个值,这个很多人都会。但是,用正则提取器一次提取多个,是否可以呢? 肯定,很多人都自信满满的说,可以!形如:token":&q…...

012-堆,结构体

012-堆,结构体 堆空间的申请和释放 堆空间特点? ​ 栈空间的特点是,自动申请自动释放 ​ 堆空间由用户自己主动申请,主动释放 ​ 利用函数malloc进行堆空间的申请 ​ 利用函数free进行堆空间使用完毕后的释放 问题: ​ 局部变量的存储空间在栈区; ​ 全局变量的存储空…...

GDAL C++ API 学习之路 OGRGeometry 多边形类 OGRPolygon

OGRPolygon class OGRPolygon 是 OGR 几何图形库中的一个类,用于表示多边形的几何图形。它是一种封闭的多边形,由一个或多个外环(OGRLinearRing)和零个或多个内环(OGRLinearRing)组成。多边形是平…...

文件传输协议FTP与托管文件传输MFT有什么区别?

传输敏感数据是日常业务中不可或缺的一环。但是,在把敏感数据从A点搬到B点的过程中,保证该敏感数据的安全是组织的重要任务,因此最好选择一种能够确保文件安全的方案。 FTP与MFT有什么不同? FTP(文件传输协议&#xf…...

js实现按照句号将一段文本进行分段

/*** 将给定的文本按照300字并且按照句号分为多个p标签** param text 给定的文本* returns 返回分割后的多个p标签的数组*/ function splitTextByParagraph(text) {// 将文本按照句号分割成多个句子const sentences text.split(。);// 初始化一个空数组来存储生成的p标签const…...

环形链表的进一步探究

茕茕白兔,东走西顾,衣不如新,人不如故 往期回顾: 数据结构——双向链表 数据结构——单链表 数据结构——顺序表 文章目录 如何判断一个链表是否为环形链表 环形链表的判断的深入探究 例1:沸羊羊追美羊羊 例…...

flink任务性能优化

1、使用异步算子,异步执行操作 2、将下游数据需要的数据以参数的形式向下传递 3、当服务器资源有限的情况下,慎用RocksDBStateBackend RocksDBStateBackend performance will be poor because of the current Flink memory configuration! RocksDB wi…...

vue2 el-carousel轮播图和文字一起改变

vue项目的话 安装一下element依赖 npm i element-ui -S在main入口文件引入element包 我在app文件里边去写的 <template><div class"w"><el-carousel height"460px"><el-carousel-item v-for"item in items" :key"i…...

LangChain:打造自己的LLM应用 | 京东云技术团队

1、LangChain是什么 LangChain是一个框架&#xff0c;用于开发由LLM驱动的应用程序。可以简单认为是LLM领域的Spring&#xff0c;以及开源版的ChatGPT插件系统。核心的2个功能为&#xff1a; 1&#xff09;可以将 LLM 模型与外部数据源进行连接。 2&#xff09;允许与 LLM 模…...

字节跳动测试岗,3面都过了,HR告诉我这个原因被刷了...

说在前面 面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到下面几个原因&#xff1a; 虚报工资&#xff0c;比实际高30%&#xff1b; 有更好的人选&#xff0c;这个可能性不大&#xff0c;我看还在…...

Android 14重要更新预览

Android 14重要更新预览 国际化 Android 14 在 Android 13 的基础上进一步扩展了按应用设定语言功能&#xff0c;提供了一些额外的功能&#xff1a; 自动生成应用的 localeConfig&#xff1a;从 Android Studio Giraffe Canary 7 和 AGP 8.1.0-alpha07 开始&#xff0c;您可以…...

快速上手字符串函数

文章目录 前言一、求字符串的长度strlen函数strlen函数学习使用strlen函数模拟实现strlen函数模拟实现方法1&#xff1a;计数器法strlen函数模拟实现方法2&#xff1a;指针减指针法strlen函数模拟实现方法3&#xff1a;递归方法 二、字符串的拷贝&#xff0c;拼接和比较strcpy函…...

linux(centos) docker 安装 nginx

​1、拉取nginx最新版本镜像 docker pull nginx:latest 查看镜像 docker images 或者 docker images -a 2.启动nginx容器 docker run -d -p 80:80 --name nginx nginx 使用docker run命令&#xff0c;启动nginx容器。 --name&#xff0c;设置容器名。为方便记忆&#xff…...

SpringBoot 整合 Minio

官网&#xff1a; MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议&#xff0c;项目地址是 https://github.com/minio/minio 。 它适合存储海量的非结构化的数据&#xff0c;例如说图片、音频、视频等常见文件&#xff0c;备份数据、…...

《吐血整理》高级系列教程-吃透Fiddler抓包教程(24)-Fiddler如何优雅地在正式和测试环境之间来回切换-中篇

1.简介 在开发或者测试的过程中&#xff0c;由于项目环境比较多&#xff0c;往往需要来来回回地反复切换&#xff0c;那么如何优雅地切换呢&#xff1f;宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考。 2.实际工作场景 2.1问题场景 &#xff08;1&#xff09;已发布线上…...

探索 GPTCache|GPT-4 将开启多模态 AI 时代,GPTCache + Milvus 带来省钱秘籍

世界正处于数字化的浪潮中&#xff0c;为了更好理解和分析大量数据&#xff0c;人们对于人工智能&#xff08;AI&#xff09;解决方案的需求呈爆炸式增长。 此前&#xff0c;OpenAI 推出基于 GPT-3.5 模型的智能对话机器人 ChatGPT&#xff0c;在自然语言处理&#xff08;NLP&a…...

纯css实现登录表单动效

效果图&#xff1a; 代码展示 // 我这边用的是elementUI表单校验&#xff0c;更改的样式。 <el-form:model"form":rules"rules"ref"fromList":hide-required-asterisk"true"><el-form-item prop"account"><…...

从分立逻辑到单片机:基于ATmega8的MIDI通道分析仪设计与实现

1. 项目概述&#xff1a;从分立逻辑到单片机的MIDI通道分析仪进化史二十年前&#xff0c;当我在《Elektor》杂志上发表第一版MIDI通道分析仪时&#xff0c;整个数字音乐世界还处于一个相当“硬核”的阶段。那个版本的设计&#xff0c;用今天的话来说&#xff0c;简直就是一场“…...

Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy自动化效率翻倍的秘密&#xff1a;从零搭建高可靠多步骤任务流的7步黄金流程 Lindy自动化平台以“越久越可靠”为设计哲学&#xff0c;将经典软件工程原则与现代可观测性实践深度融合。其核心优势…...

CentOS服务器上VNC连接失败?手把手教你排查并修复个人端口问题(附重启命令)

CentOS服务器VNC连接故障深度排查指南&#xff1a;从原理到实战当你在深夜赶项目时&#xff0c;突然发现VNC连接不上服务器&#xff0c;那种焦虑感我深有体会。去年参与半导体器件仿真项目时&#xff0c;我也曾被这个问题困扰整整两天。本文将分享一套经过实战检验的排查方法论…...

深度解析:JetBrains IDE试用期重置机制的技术实现

深度解析&#xff1a;JetBrains IDE试用期重置机制的技术实现 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在软件开发工作流中&#xff0c;JetBrains IDE试用期管理是一个常见的技术挑战&#xff0c;尤其是在多…...

Claude Agent SDK 从 0 到 1 快速上手教程

Claude Agent SDK 从 0 到 1 快速上手教程 什么是 Claude Agent SDK? Claude Agent SDK 是 Anthropic 官方推出的用于构建 AI 智能体的开发工具包。它基于 Claude Code 构建,让开发者能够以编程方式创建、扩展和定制由 Claude 驱动的应用程序。与简单的聊天机器人不同,基于…...

Metabase:零代码 BI 数据可视化工具,自建数据看板

Metabase&#xff1a;零代码 BI 数据可视化工具&#xff0c;自建数据看板 在数据驱动决策的时代&#xff0c;能快速看到业务数据的变化趋势至关重要。然而&#xff0c;专业 BI 工具&#xff08;如 Tableau、Power BI&#xff09;价格昂贵&#xff0c;而让每个业务同学都学 SQL …...

使用libusb-win32驱动复活老旧USB硬件:以Elektor Magic Eye为例

1. 项目概述&#xff1a;让老硬件在新时代焕发新生手头有一台十多年前的《Elektor》杂志上刊登的“Magic Eye EM84”复古VFD显示屏项目&#xff0c;想把它接到Windows 10电脑上当个酷炫的CPU占用率显示器&#xff0c;却发现官方提供的“AVR309”USB驱动在新系统上彻底罢工了。这…...

8款网盘直链下载助手:彻底告别限速烦恼,实现高速下载自由

8款网盘直链下载助手&#xff1a;彻底告别限速烦恼&#xff0c;实现高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移…...

鸿蒙HarmonyOS 5与Unity跨运行时通信实战指南

1. 这不是“调个API”那么简单&#xff1a;为什么鸿蒙Unity通信总在临门一脚卡住我第一次把Unity打包的AR模块塞进HarmonyOS 5 App里时&#xff0c;信心满满——毕竟文档里写着“支持JS/ArkTS调用Native能力”&#xff0c;Unity也标榜“跨平台通用”。结果呢&#xff1f;App一启…...

绝了!原来毕业论文还能这样写?2026降AIGC工具推荐合集

还在为查重率爆红、AI痕迹太明显、格式乱成一团而发愁&#xff1f;2026 年的 AI 论文工具早已不只是写文章那么简单&#xff0c;从选题构思到降AIGC率、去AI痕迹、查重优化&#xff0c;全流程智能辅助&#xff0c;帮你把论文写作变得简单高效&#xff0c;告别熬夜改稿的焦虑&am…...