Downloads · 30 days
0
adityashirsatrao007/solar-panel-dust-xai
solar-panel-dust-xai is a image classification model from adityashirsatrao007. Use it when you need a label for an image. It is set up for scikit-learn. The card lists the license as mit.
Hybrid EfficientNet-B2 (frozen) + RBF-SVM model for classifying a single RGB image of a photovoltaic (PV) panel as clean or dirty, with a focus on cross-dataset generalisation and explainability (Grad-CAM, Score-CAM,…
Downloads · 30 days
0
Access
Public
Updated Aug 30, 2026
Repo size
22.2 MB
Likes
0
Public
Click a slice to open those files.
.pkl22.2 MB · 100%
From the Hugging Face model README
Hybrid EfficientNet-B2 (frozen) + RBF-SVM model for classifying a single RGB image of a photovoltaic (PV) panel as clean or dirty, with a focus on cross-dataset generalisation and explainability (Grad-CAM, Score-CAM, Integrated Gradients, SHAP, LIME).
C=10, gamma=auto), class_weight="balanced".v007).| Metric | Value |
|---|---|
| Test accuracy (merged held-out, 381 imgs) | 90.29% |
| AUC-ROC | 0.9596 |
| 5-fold CV accuracy | 86.38% |
| External: Dusty/Clean (2,562 imgs) | 98.24% (98.0% dirty recall) |
| External: Faulty-panel clean/dirty (383 imgs) | 99.74% (100% dirty recall) |
svm_classifier.pkl — trained RBF-SVM head (joblib).scaler.pkl — fitted StandardScaler applied to pooled features.pipeline_meta.json — full training metadata and per-metric scores.class_names.json — label order (["clean", "dirty"]).demo.py — self-contained inference script.pip install tensorflow scikit-learn joblib numpy pillow
python demo.py panel.jpg # print label, confidence, dustiness
python demo.py clean.jpg dirty.jpg # batch
The first run downloads the EfficientNet-B2 ImageNet weights (~80 MB) from TensorFlow via
keras.
A single-source model overfits one acquisition pipeline and collapses on new data (observed: ~6% dirty recall on external sets). The fix was to merge three public PV-dust sources into one 3,787-image corpus and retrain:
| Split | Clean | Dirty | Total |
|---|---|---|---|
| Train | 1,750 | 1,279 | 3,029 |
| Val | 218 | 159 | 377 |
| Test | 220 | 161 | 381 |
| All | 2,188 | 1,599 | 3,787 |
The frozen representation + margin-based SVM then transfers far better across acquisition sources (see external-validation metrics above).
Full experimental details, the IEEE-format paper, and the five-method XAI module live in the companion project repo.