Spaces:
Runtime error
Runtime error
from ultralytics import YOLO | |
import os | |
def load_fault_model(): | |
model_path = "pole_fault_model.pt" | |
if os.path.exists(model_path): | |
print(f"Loading custom model: {model_path}") | |
return YOLO(model_path) | |
else: | |
print(f"Warning: {model_path} not found. Falling back to YOLOv8s.") | |
return YOLO("yolov8s.pt") # Fallback to pre-trained YOLOv8s | |
fault_model = load_fault_model() | |
def detect_pole_faults(image_path): | |
try: | |
results = fault_model(image_path) | |
flagged = [] | |
for r in results: | |
# Check if model is custom-trained with fault_type (for custom models) | |
if hasattr(r, 'fault_type') and r.conf > 0.6: | |
flagged.append({"fault_type": r.fault_type, "confidence": r.conf}) | |
# Fallback for generic YOLOv8 models (no fault_type) | |
elif r.names and r.conf > 0.6: | |
flagged.append({"fault_type": r.names[int(r.cls)], "confidence": r.conf}) | |
return flagged | |
except Exception as e: | |
print(f"Error in fault detection: {e}") | |
return [] |