Spaces:
Sleeping
Sleeping
File size: 2,360 Bytes
64c11ed 6b2a8f7 64c11ed 6b2a8f7 64c11ed 6b2a8f7 64c11ed 84e0d1c 6b2a8f7 64c11ed 0e01414 64c11ed 0e01414 e3a2ad8 0e01414 e3a2ad8 0e01414 e3a2ad8 64c11ed 0e01414 64c11ed e3a2ad8 64c11ed e3a2ad8 64c11ed 0e01414 64c11ed 6b2a8f7 64c11ed 6b2a8f7 64c11ed 6b2a8f7 64c11ed 6b2a8f7 1a4be85 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import gradio as gr
import cv2
import os
from ultralytics import YOLO
# Remove the URLs containing 'mp4'
file_urls = [
'Cyst.jpg',
'Stone.jpg'
]
# Do not download files from URLs, use local files directly
model = YOLO('best.pt')
path = [['Cyst.jpg'], ['Stone.jpg'],['Normal.jpg']]
def detect_objects_on_image(image_path):
image = cv2.imread(image_path)
model = YOLO("best.pt")
results = model.predict(image_path)
result = results[0]
output = []
for box in result.boxes:
x1, y1, x2, y2 = [round(x) for x in box.xyxy[0].tolist()]
class_id = box.cls[0].item()
prob = round(box.conf[0].item(), 2)
output.append([x1, y1, x2, y2, result.names[class_id], prob])
cv2.rectangle(
image,
(x1, y1),
(x2, y2),
color=(0, 0, 255),
thickness=2,
lineType=cv2.LINE_AA
)
# Change font and size
font = cv2.FONT_HERSHEY_SIMPLEX
font_size = 0.5 # Adjust the font size as needed
cv2.putText(image, result.names[class_id], (x1, y1), font, font_size, (36, 255, 12), 1)
return cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
inputs_image = [
gr.components.Image(type="filepath", label="Input Image"),
]
outputs_image = [
gr.components.Image(type="numpy", label="Output Image"),
]
interface_image = gr.Interface(
fn=detect_objects_on_image,
inputs=inputs_image,
outputs=outputs_image,
title="Kidney Stone and Cyst detection",
examples=path,
cache_examples=False,
)
'''
def show_preds_video(video_path):
cap = cv2.VideoCapture(video_path)
while(cap.isOpened()):
ret, frame = cap.read()
if ret:
frame_copy = frame.copy()
outputs = model.predict(source=frame)
results = outputs[0].cpu().numpy()
for i, det in enumerate(results.boxes.xyxy):
cv2.rectangle(
frame_copy,
(int(det[0]), int(det[1])),
(int(det[2]), int(det[3])),
color=(0, 0, 255),
thickness=2,
lineType=cv2.LINE_AA
)
yield cv2.cvtColor(frame_copy, cv2.COLOR_BGR2RGB)
'''
gr.TabbedInterface(
[interface_image],
tab_names=['Shamim MD Jony']
).launch(share=True)
|