vps_model / app.py
supritg's picture
Added all the files
1e54fbd
raw
history blame contribute delete
No virus
2.26 kB
import numpy as np
import pandas as pd
import cv2
import gradio as gr
import torch
from ultralyticsplus import YOLO, render_result
import matplotlib.pyplot as plt
# Creating a function to perform predictions
def prediction(image: gr.Image = None,
image_size: gr.Slider = 640,
conf_threshold: gr.Slider = 0.4,
iou_threshold: gr.Slider = 0.50):
model = YOLO("best.pt")
results = model.predict(
source=image,
conf=conf_threshold,
iou=iou_threshold,
imgsz=image_size
)
image = cv2.imread(image)
for result in results[0].obb:
point_1_x = float(result.xyxyxyxy[0][0][0])
point_1_y = float(result.xyxyxyxy[0][0][1])
point_2_x = float(result.xyxyxyxy[0][1][0])
point_2_y = float(result.xyxyxyxy[0][1][1])
point_3_x = float(result.xyxyxyxy[0][2][0])
point_3_y = float(result.xyxyxyxy[0][2][1])
point_4_x = float(result.xyxyxyxy[0][3][0])
point_4_y = float(result.xyxyxyxy[0][3][1])
cls = int(result.cls)
if cls == 1:
color = (0, 255, 0)
else:
color = (255, 0, 0)
conf = float(result.conf)
text = f"{cls} : {np.round(conf) * 100}%"
points = np.array([[point_1_x, point_1_y],
[point_2_x, point_2_y],
[point_3_x, point_3_y],
[point_4_x, point_4_y]], np.int32)
points = points.reshape((-1, 1, 2))
cv2.polylines(image, [points], isClosed = True, color = color, thickness = 2)
return image
inputs = [
gr.Image(type="filepath", label="Select an image"),
gr.Slider(minimum=320, maximum=1280, value=640, step=32, label="Image Size"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.25, step=0.05, label="Confidence Threshold"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.45, step=0.05, label="IOU Threshold")
]
outputs = gr.Image(type = "filepath", label="Output Image")
yolo_app = gr.Interface(
fn = prediction,
inputs = inputs,
outputs = outputs,
title = "VPS Model"
)
yolo_app.launch(debug = True, share = True)