Spaces:
Sleeping
Sleeping
Commit
·
53bfd89
1
Parent(s):
41ccda6
Fix: No module named utils.google_utils.
Browse files
app.py
CHANGED
@@ -10,6 +10,7 @@ from pytorch_grad_cam import EigenCAM
|
|
10 |
from pytorch_grad_cam.utils.image import show_cam_on_image, scale_cam_image
|
11 |
from PIL import Image
|
12 |
import gradio as gr
|
|
|
13 |
# Global Color Palette
|
14 |
COLORS = np.random.uniform(0, 255, size=(80, 3))
|
15 |
|
@@ -39,15 +40,14 @@ def draw_detections(boxes, colors, names, img):
|
|
39 |
lineType=cv2.LINE_AA)
|
40 |
return img
|
41 |
|
42 |
-
|
43 |
# Load the appropriate YOLO model based on the version
|
44 |
def load_yolo_model(version="yolov5"):
|
45 |
if version == "yolov3":
|
46 |
model = torch.hub.load('ultralytics/yolov3', 'yolov3', pretrained=True)
|
47 |
elif version == "yolov5":
|
48 |
-
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
|
49 |
elif version == "yolov8":
|
50 |
-
model = torch.hub.load('ultralytics/yolov5:v7.0', 'yolov5', pretrained=True) # YOLOv8 is part of
|
51 |
else:
|
52 |
raise ValueError(f"Unsupported YOLO version: {version}")
|
53 |
|
@@ -55,7 +55,6 @@ def load_yolo_model(version="yolov5"):
|
|
55 |
model.cpu()
|
56 |
return model
|
57 |
|
58 |
-
# Main function for Grad-CAM visualization
|
59 |
# Main function for Grad-CAM visualization
|
60 |
def process_image(image, yolo_versions=["yolov5"]):
|
61 |
image = np.array(image)
|
@@ -74,10 +73,10 @@ def process_image(image, yolo_versions=["yolov5"]):
|
|
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.model
|
78 |
|
79 |
# Run YOLO detection
|
80 |
-
results = model(
|
81 |
boxes, colors, names = parse_detections(results)
|
82 |
detections_img = draw_detections(boxes, colors, names, rgb_img.copy())
|
83 |
|
|
|
10 |
from pytorch_grad_cam.utils.image import show_cam_on_image, scale_cam_image
|
11 |
from PIL import Image
|
12 |
import gradio as gr
|
13 |
+
|
14 |
# Global Color Palette
|
15 |
COLORS = np.random.uniform(0, 255, size=(80, 3))
|
16 |
|
|
|
40 |
lineType=cv2.LINE_AA)
|
41 |
return img
|
42 |
|
|
|
43 |
# Load the appropriate YOLO model based on the version
|
44 |
def load_yolo_model(version="yolov5"):
|
45 |
if version == "yolov3":
|
46 |
model = torch.hub.load('ultralytics/yolov3', 'yolov3', pretrained=True)
|
47 |
elif version == "yolov5":
|
48 |
+
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True) # Load yolov5 small model
|
49 |
elif version == "yolov8":
|
50 |
+
model = torch.hub.load('ultralytics/yolov5:v7.0', 'yolov5', pretrained=True) # YOLOv8 is part of yolov5 repo starting v7.0
|
51 |
else:
|
52 |
raise ValueError(f"Unsupported YOLO version: {version}")
|
53 |
|
|
|
55 |
model.cpu()
|
56 |
return model
|
57 |
|
|
|
58 |
# Main function for Grad-CAM visualization
|
59 |
def process_image(image, yolo_versions=["yolov5"]):
|
60 |
image = np.array(image)
|
|
|
73 |
for yolo_version in yolo_versions:
|
74 |
# Load the model based on YOLO version
|
75 |
model = load_yolo_model(yolo_version)
|
76 |
+
target_layers = [model.model.model[-2]] # Assumes last layer is used for Grad-CAM
|
77 |
|
78 |
# Run YOLO detection
|
79 |
+
results = model(rgb_img)
|
80 |
boxes, colors, names = parse_detections(results)
|
81 |
detections_img = draw_detections(boxes, colors, names, rgb_img.copy())
|
82 |
|