BhumikaMak commited on
Commit
d545606
·
1 Parent(s): d2d1a78

Fix: resolved model access methodology

Browse files
Files changed (1) hide show
  1. app.py +7 -8
app.py CHANGED
@@ -12,7 +12,6 @@ from PIL import Image
12
  import gradio as gr
13
  from ultralytics import YOLO
14
 
15
- # Load a COCO-pretrained YOLOv3n model
16
  # Global Color Palette
17
  COLORS = np.random.uniform(0, 255, size=(80, 3))
18
 
@@ -47,7 +46,7 @@ def load_yolo_model(version="yolov5"):
47
  if version == "yolov5":
48
  model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
49
  elif version == "yolov8":
50
- model = YOLO("yolov8n.pt") # YOLOv8 is part of the yolov5 repo starting from v7.0
51
  elif version == "yolov10":
52
  model = torch.hub.load('ultralytics/yolov5', 'yolov5m', pretrained=True) # Placeholder for YOLOv10 (use an appropriate version if available)
53
  else:
@@ -57,7 +56,6 @@ def load_yolo_model(version="yolov5"):
57
  model.cpu()
58
  return model
59
 
60
- # Main function for Grad-CAM visualization
61
  # Main function for Grad-CAM visualization
62
  def process_image(image, yolo_versions=["yolov5"]):
63
  image = np.array(image)
@@ -76,7 +74,7 @@ def process_image(image, yolo_versions=["yolov5"]):
76
  for yolo_version in yolo_versions:
77
  # Load the model based on YOLO version
78
  model = load_yolo_model(yolo_version)
79
- target_layers = [model.model.model.model[-2]] # Assumes last layer is used for Grad-CAM
80
 
81
  # Run YOLO detection
82
  results = model([rgb_img])
@@ -102,20 +100,21 @@ def process_image(image, yolo_versions=["yolov5"]):
102
 
103
  return result_images
104
 
 
105
  interface = gr.Interface(
106
  fn=process_image,
107
  inputs=[
108
  gr.Image(type="pil", label="Upload an Image"),
109
  gr.CheckboxGroup(
110
- choices=["yolov5", "yolov8", "yolov10"],
111
  value=["yolov5"], # Set the default value (YOLOv5 checked by default)
112
  label="Select Model(s)",
113
  )
114
  ],
115
- outputs = gr.Gallery(label="Results", elem_id="gallery", rows=2, height=500),
116
- title="Visualising the key image features that drive decisions with our explainable AI tool.",
117
  description="XAI: Upload an image to visualize object detection of your models.."
118
  )
119
 
120
  if __name__ == "__main__":
121
- interface.launch()
 
12
  import gradio as gr
13
  from ultralytics import YOLO
14
 
 
15
  # Global Color Palette
16
  COLORS = np.random.uniform(0, 255, size=(80, 3))
17
 
 
46
  if version == "yolov5":
47
  model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
48
  elif version == "yolov8":
49
+ model = YOLO("yolov8n.pt") # YOLOv8 is part of the ultralytics library
50
  elif version == "yolov10":
51
  model = torch.hub.load('ultralytics/yolov5', 'yolov5m', pretrained=True) # Placeholder for YOLOv10 (use an appropriate version if available)
52
  else:
 
56
  model.cpu()
57
  return model
58
 
 
59
  # Main function for Grad-CAM visualization
60
  def process_image(image, yolo_versions=["yolov5"]):
61
  image = np.array(image)
 
74
  for yolo_version in yolo_versions:
75
  # Load the model based on YOLO version
76
  model = load_yolo_model(yolo_version)
77
+ target_layers = [model.model[-1]] # Fix: Access the correct last layer in YOLOv8
78
 
79
  # Run YOLO detection
80
  results = model([rgb_img])
 
100
 
101
  return result_images
102
 
103
+ # Gradio interface
104
  interface = gr.Interface(
105
  fn=process_image,
106
  inputs=[
107
  gr.Image(type="pil", label="Upload an Image"),
108
  gr.CheckboxGroup(
109
+ choices=["yolov5", "yolov8", "yolov10"],
110
  value=["yolov5"], # Set the default value (YOLOv5 checked by default)
111
  label="Select Model(s)",
112
  )
113
  ],
114
+ outputs=gr.Gallery(label="Results", elem_id="gallery", rows=2, height=500),
115
+ title="Visualizing the key image features that drive decisions with our explainable AI tool.",
116
  description="XAI: Upload an image to visualize object detection of your models.."
117
  )
118
 
119
  if __name__ == "__main__":
120
+ interface.launch()