YOLOv5 入门:使用 Gradio 搭建 Web GUI

YOLOv5是一个先进的对象检测模型,在多个计算机视觉任务中表现优异。随着该模型的流行,越来越多的开发者希望以更直观的方式使用它。Gradio是一个开源Python库,可以快速创建Web界面,使模型的使用变得更加简单易懂。在本文中,我们将介绍如何使用Gradio为YOLOv5模型搭建一个Web GUI。

环境准备

首先,确保你已经安装了YOLOv5及其所有依赖项。可以通过以下步骤进行安装:

  1. 克隆YOLOv5代码库bash git clone https://github.com/ultralytics/yolov5.git cd yolov5

  2. 安装依赖bash pip install -r requirements.txt

  3. 安装Gradiobash pip install gradio

模型加载

在搭建Web GUI之前,我们需要加载训练好的YOLOv5模型。接下来,我们将构建一个简单的函数,用于加载模型并对上传的图片进行预测。

以下是加载YOLOv5模型并进行预测的基本代码:

import torch
from PIL import Image
import numpy as np

# 加载模型
model = torch.hub.load('ultralytics/yolov5:v6.0', 'yolov5s', pretrained=True)

def predict(image):
    # 将PIL图像转换为numpy数组
    img = np.array(image)

    # 使用YOLOv5进行预测
    results = model(img)

    # 获取预测结果
    results_img = results.render()  # 生成绘制后的图片
    return Image.fromarray(results_img[0])  # 返回第一张结果图

搭建Gradio界面

现在,我们将使用Gradio创建一个简单的Web界面,使用户能够上传图片并查看YOLOv5的检测结果。

以下是创建Gradio界面的代码:

import gradio as gr

iface = gr.Interface(
    fn=predict,                      # 预测函数
    inputs=gr.inputs.Image(type="pil"),  # 上传图片的输入组件
    outputs=gr.outputs.Image(type="pil"), # 预测结果的输出组件
    title="YOLOv5 对象检测",            # 界面标题
    description="上传一张图片,YOLOv5将检测其中的对象。"  # 界面描述
)

iface.launch()  # 启动应用

运行和测试

将上述代码保存为一个Python文件,例如app.py。然后在命令行中运行:

python app.py

启动后,Gradio会在本地服务器上启动应用,并提供一个链接。打开浏览器访问该链接,你会看到一个简单的界面,可以上传图片进行对象检测。

总结

通过上述步骤,我们成功地基于YOLOv5模型和Gradio库搭建了一个Web GUI界面。这使得用户可以方便地上传图片,并实时查看YOLOv5的对象检测结果。Gradio的简便性使得模型的分享和演示更加易于实现,也为后续的项目开发提供了良好的基础。

希望本教程能够帮助你更好地理解YOLOv5的使用,以及如何利用Gradio加速模型的应用开发。无论是在研究中还是在工业应用中,构建友好的用户界面都是提升工作效率的有效手段。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部