detect-rhino / app.py
adi-123's picture
Update app.py
fe70c63 verified
raw
history blame
1.12 kB
import os
import streamlit as st
import cv2
import numpy as np
from ultralytics import YOLO
from PIL import Image
import tempfile
# Directly set the path for the model
MODEL_PATH = 'best.pt'
# Initialize YOLO model with custom trained weights
model = YOLO(MODEL_PATH)
def detect_rhino_image(image):
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
results = model(image)[0]
for box in results.boxes.data.tolist():
x1, y1, x2, y2, score, class_id = box
if score > 0.5:
cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 4)
cv2.putText(image, results.names[int(class_id)].upper(), (int(x1), int(y1 - 10)), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0, 255, 0), 3, cv2.LINE_AA)
return image
st.title('Rhinoceros Detection App')
st.write("Upload an image for rhino detection.")
file = st.file_uploader("Choose a file...", type=["jpg", "jpeg", "png"])
if file is not None:
if file.type.split('/')[0] == 'image':
image = Image.open(file)
st.image(detect_rhino_image(image), caption='Processed Image', use_column_width=True)