Spaces:
Sleeping
Sleeping
File size: 1,256 Bytes
60af537 d5e1bd6 60af537 d5e1bd6 60af537 d5e1bd6 71b8b5d 4ddc91d d5e1bd6 60af537 f9e81bd 60af537 4ddc91d d5e1bd6 71b8b5d d5e1bd6 4ddc91d 60af537 d5e1bd6 60af537 4ddc91d 71b8b5d d5e1bd6 9acd672 d5e1bd6 4ddc91d b63af6d d5e1bd6 60af537 d5e1bd6 |
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 |
import numpy as np
import cv2
from PIL import Image
import torchvision.transforms as transforms
import gradio as gr
from yolov5 import xai_yolov5
from yolov8 import xai_yolov8
def process_image(image, yolo_versions=["yolov5"]):
image = np.array(image)
image = cv2.resize(image, (640, 640))
result_images = []
for yolo_version in yolo_versions:
if yolo_version == "yolov5":
result_images.append(xai_yolov5(image))
elif yolo_version == "yolov8":
result_images.append(xai_yolov8(image))
else:
result_images.append((Image.fromarray(image), f"{yolo_version} not yet implemented."))
return result_images
interface = gr.Interface(
fn=process_image,
inputs=[
gr.Image(type="pil", label="Upload an Image"),
gr.CheckboxGroup(
choices=["yolov5", "yolov8", "yolov10"],
value=["yolov5"], # Set default selection to YOLOv5
label="Select Model(s)",
)
],
outputs=gr.Gallery(label="Results", elem_id="gallery", rows=2, height=500),
title="Explainable AI for YOLO Models",
description="Upload an image to visualize YOLO object detection with Grad-CAM."
)
if __name__ == "__main__":
interface.launch() |