NeuralVista / app.py
BhumikaMak's picture
Add: support for yolov8
71b8b5d
raw
history blame
1.26 kB
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()