| import streamlit as st |
| import cv2 |
| from PIL import Image |
| import numpy as np |
| import torch |
|
|
| |
| model = torch.hub.load('./yolov5', 'custom', path='./yolo/best.pt', source='local', force_reload=True) |
|
|
| st.title("YOLO Object Detection Web App") |
|
|
| |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) |
|
|
| if uploaded_file is not None: |
| |
| image = Image.open(uploaded_file) |
| st.image(image, caption="Uploaded Image", use_column_width=True) |
| st.write("Processing...") |
|
|
| |
| image_np = np.array(image) |
| image_cv = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR) |
|
|
| |
| results = model(image_cv) |
|
|
| |
| detected_image = np.squeeze(results.render()) |
|
|
| |
| st.image(detected_image, caption="Detected Image", use_column_width=True) |