Spaces:
Running
Running
File size: 997 Bytes
247d0f4 fb6f7e3 247d0f4 fb6f7e3 | 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 | from __future__ import annotations
from pathlib import Path
from PIL import Image
from app.services.image_detector import ImageDetector
from app.services.gradcam_service import generate_gradcam as _generate_gradcam
def generate_gradcam(
detector: ImageDetector,
image: Image.Image,
verification_id: str,
outputs_dir: Path,
) -> dict[str, Any]:
if not detector.is_loaded or detector.model is None:
return {
"checked": False,
"status": "not_available",
"method": "Grad-CAM",
"heatmap_url": None,
"overlay_url": None,
"boxed_image_url": None,
"hotspots": [],
"warning": "Classifier is not loaded; Grad-CAM was skipped.",
}
tmp = outputs_dir / f"{verification_id}_gradcam_input.jpg"
image.convert("RGB").save(tmp, quality=95)
return _generate_gradcam(detector.model, str(tmp), detector.transform, detector.device, 1, str(outputs_dir), verification_id)
|