简介:本文将介绍如何使用Streamlit框架部署YOLOv5目标检测模型,实现Web界面的实时目标检测功能,并提供详细的步骤和代码示例。
YOLOv5(You Only Look Once version 5)是一种流行的实时目标检测模型,因其高效的性能和易用性而广受欢迎。而Streamlit则是一个开源框架,可以快速创建数据应用和Web界面。将YOLOv5与Streamlit结合,可以实现一个实时目标检测的Web应用。本文将详细介绍如何部署这样的应用。
在开始之前,请确保你已经安装了以下依赖:
你可以使用pip来安装这些依赖:
pip install torch torchvisionpip install streamlit
前往YOLOv5的官方GitHub仓库(https://github.com/ultralytics/yolov5)下载模型文件。这里我们选择一个预训练好的模型,如yolov5s.pt(小型版本),它可以在大多数设备上实现实时检测。
创建一个新的Python文件,如app.py,然后添加以下代码:
```python
import streamlit as st
import torch
import cv2
from PIL import Image
from matplotlib import pyplot as plt
import ultralytics as ul
model = ul.models.attempt_load(‘yolov5s.pt’, map_location=torch.device(‘cpu’))
def detect_objects(image_path):
img = cv2.imread(image_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = Image.fromarray(img)
results = model(img)# 绘制检测结果results.render()# 将图像转换回BGR格式并保存img = results.imgs[0][:, :, ::-1]img = cv2.cvtColor(np.uint8(img), cv2.COLOR_RGB2BGR)return img
st.title(‘YOLOv5目标检测’)
st.write(‘上传一张图片进行目标检测:’)
uploaded_file = st.file_uploader(‘选择文件’, type=[‘jpg’, ‘png’, ‘jpeg’])
if uploaded