Gradio-YOLOv5-YOLOv7 搭建Web GUI

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

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

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Gradio是一个Python库,可以用于构建交互式的用户界面,而YOLOv5是一个目标检测算法模型。Gradio提供了一种简单的方式来封装YOLOv5模型,使其可以通过用户界面进行交互和使用。 要封装YOLOv5模型,首先需要将模型加载到Python中。YOLOv5模型可以使用Torchvision库加载,并通过Gradio提供的接口与用户界面进行交互。接下来,我们可以使用Gradio的Interface类和传入的模型来创建用户界面。 在用户界面中,我们可以提供图像上传的功能,以便用户可以选择一张图片。一旦用户上传了图片,我们可以使用YOLOv5模型对图片进行目标检测。这可以使用Gradio提供的函数进行实现,将图像传递给YOLOv5模型并获得预测的结果。预测结果可以通过用户界面展示给用户。 此外,我们还可以为用户提供一些控制选项,例如调整目标检测的阈值或选择不同的YOLOv5模型权重。这些选项可以通过添加额外的功能部件或参数来实现,并与模型进行交互。 最后,我们可以使用Gradio的接口类将所有组件整合在一起,并启动用户界面。用户可以通过界面上传图片并查看YOLOv5模型的目标检测结果。这种封装方式使得用户可以通过直观的界面与YOLOv5模型进行交互,而无需编写任何代码。 总而言之,通过Gradio库的封装,我们可以使用简单的代码将YOLOv5模型封装在一个交互式的用户界面中,使用户可以方便地使用和体验目标检测功能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值