Gradio-YOLOv5-YOLOv7 搭建Web GUI

2023-08-02 23:21:30

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/

B站:https://www.bilibili.com/video/BV18h4y1r7xR/

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 gr

model = 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 gr

model = 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 gr

model = 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 gr

model = 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 接口,使其可以在浏览器中访问。

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

更多推荐

STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI

SPI相关基础知识SPI基本概念请自行百度,参考:百度百科SPI简介.我们讲重点和要注意的地方。master模式下要关注的地方接线一一对应也就是说主控的MISO,MOSI,SCLK,[CSn]分别和设备的MISO,MOSI,SCLK,[CSn]一一对应相连,不交叉,不交叉,不交叉…(重要的事情说三遍)。从设备的时序图这

arcgis js 缓冲区分析(GP服务)

arcgis文档中的有提供缓冲区的接口geometryService,但要4.19后版本才提供案例中使用的版本为4.16,因此这里的缓冲区分析借助gp工具新建服务1、打开arcmap选择工具将要存放的文件夹,右键=>new=>Toolbox对新建好的工具的model(右键工具new=>model)进行编辑,如图2、打开

[当人工智能遇上安全] 9.基于API序列和深度学习的恶意家族分类实例详解

您或许知道,作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好地帮助初学者,更加成体系的分享新知识。该系列文

laravel 使用mpdf将html转化成pdf

安装方式composerrequirempdf/mpdf常用配置$defaultConfig=(new\Mpdf\Config\ConfigVariables())->getDefaults();//获取默认的字体包文件路径$fontDirs=$defaultConfig['fontDir'];$defaultFont

基于SpringBoot+Vue的MOBA类游戏攻略分享平台

1简介MOBA类游戏攻略分享平台,为用户随时随地查看游戏攻略信息提供了便捷的方法,更重要的是大大的简化了管理员管理MOBA类游戏攻略信息的方式方法,更提供了其他想要了解MOBA类游戏攻略信息及运作情况以及挑选方便快捷的可靠渠道。相比于传统游戏攻略管理方法,这样的电子信息管理更为简洁方便,在MOBA类游戏攻略维护信息反馈

软件测试面试题 —— 整理与解析(3)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。📡主页地址:【Austin_zhai】🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。阅读目录1.接上回2.题目解析2.1请介

day14 02-Shell控制条件与循环详解

文章目录1.9.条件控制1.9.1.if条件语句-单分支1.9.2.if条件语句-多分支1.9.3.case1.10.循环1.10.1.for循环1.10.2.while循环1.9.条件控制1.9.1.if条件语句-单分支if-else语句,是非常简单,也是非常基础的条件语句。在Java中我们已经非常熟悉它的逻辑了,在

乒乓球廉价底板和套胶对比分析

手机最近没办法写微博,在火车上没事,折腾了下,升级后可以了,我近期又打了很多套胶,我还录了段粘拍的视频一会分享。这次我还是说几款底板和套胶的感受,最近买了dj200不带A底板,paliocc和银河cn2,套胶方面用的更多一一解读。首先说为什么买dj200底板,作为我这种低端用户来说,我认为dj200就是我的天花板,这个

前后端分离毕设项目之基于springboot+vue的笔记记录分享网站设计与实现(内含源码+文档+部署教程)

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌🍅由于篇幅限制,想要获取完整文章或者源码,或者代做,拉到文章底部即可看到个人VX。🍅2023年-2024年最新计算机毕业设计本科选题大全汇总感兴趣的可以先收藏

Docker 的使用

一、Docker的作用和优势软件集装箱化平台,可让开发者构建应用程序时,将它与环境一起打包到一个容器中,发布应用到任意平台中。能在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,如:Tomcat运行在一个Docker,MySQL运行在另外一个Docker,两者可以运行在同一个服务器。1.1

QT实现qq登录

1、登录界面头文件#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include<QMessageBox>#include<QDebug>#include"second.h"//第二个界面头文件#include"third.h"//注册界面头文件#

热文推荐