Spaces:
Running
Running
Download app/services/explainability.py from Jaykay73/Bitcheck-image: direct link, hf CLI and curl.
- Browser
- Download file 997 Bytes
-
https://huggingface.co/spaces/Jaykay73/Bitcheck-image/resolve/main/app/services/explainability.py
- Command line
-
hf download hf://spaces/Jaykay73/Bitcheck-image/app/services/explainability.py
-
curl -L -o explainability.py https://huggingface.co/spaces/Jaykay73/Bitcheck-image/resolve/main/app/services/explainability.py
997 Bytes
| 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) | |