CoolFace
Apppublic

iamrobothahaha/Analyzes_Floating_Solar_Anomalies

sourceHugging Facemitupdated 1mo agoView on Hugging Face
0likes
App README

☀️ Floating Solar Thermal Anomaly Analysis

![🤗 Live Demo](https://huggingface.co/spaces/iamrobothahaha/AnalyzesFloatingSolar_Anomalies) ![Model-blue)](https://github.com/ultralytics/ultralytics) ![License: MIT](https://opensource.org/licenses/MIT)

Detect anomalies on floating solar farms from drone thermal images. Upload DJI thermal photos → the app finds hot spots and bypass-diode faults, pins them on a satellite map using the GPS embedded in each photo, and exports an Excel report plus a Google Earth (KMZ) file.

<!-- TODO: add a screenshot or GIF here, e.g. [image] -->

▶ Try it live: https://huggingface.co/spaces/iamrobothahaha/AnalyzesFloatingSolar_Anomalies

How it works

Thermal image (DJI drone)
        │
        ├─► YOLOv8 (fine-tuned best.pt) ──► bounding boxes + confidence
        │
        └─► ExifTool ──► GPS lat/lon from EXIF/XMP metadata
                              │
        ┌─────────────────────┘
        ▼
  Interactive map (Folium) · Results table · Excel report · Google Earth KMZ

Features

FeatureDetails
AI DetectionYOLOv8 fine-tuned on floating solar thermal images
Anomaly ClassesHot spot, Bypass diode
GPS ExtractionReads EXIF/XMP GPS metadata via ExifTool (DJI drone compatible)
Interactive MapSatellite map with colour-coded anomaly markers and image popups
Batch ModeProcess many images at once with progress bar and summary metrics
Filterable ResultsFilter the results table by status and anomaly type
Lightbox PreviewClick any thumbnail to view the annotated image full-size
ExportExcel report (.xlsx) + Google Earth file (.kmz) with embedded images

Model

Base modelYOLOv8n (nano)
Fine-tuned onDrone thermal images of floating solar panels
Labeling toolsRoboflow + LabelImg
Classes (2)Hot spot, Bypass diode
Weights filebest.pt (repo root)

Metrics

<!-- TODO: fill in real numbers. Get them by running: yolo val model=best.pt data=path/to/data.yaml or from runs/detect/train/results.csv of your training run. -->

MetricValue
mAP@0.5TBD
mAP@0.5:0.95TBD
PrecisionTBD
RecallTBD
Training imagesTBD

Usage

  • —Single File Analysis — upload one image for a detailed view: original vs. annotated side-by-side, per-detection confidence, GPS map.
  • —Multiple Files Analysis — batch process many images and get a full report: summary metrics, anomaly map, filterable table, Excel + KMZ downloads.
  • —Confidence slider — only detections above the threshold are shown (default 0.40).

Run locally

bash
# 1. Install Python dependencies
pip install -r requirements.txt

# 2. Install ExifTool (needed for GPS extraction)
#    - Windows: download from https://exiftool.org, rename to exiftool.exe,
#      and place it in the project root (the app auto-detects it there)
#    - Linux:   sudo apt install libimage-exiftool-perl
#    - macOS:   brew install exiftool

# 3. Start the app
streamlit run app.py

Optional — GPU acceleration (local machines with NVIDIA GPU):

bash
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
The Hugging Face Space runs on CPU (free tier); GPU only applies when running locally.

Project structure

├── app.py              # Main Streamlit application
├── best.pt             # Fine-tuned YOLOv8 weights
├── requirements.txt    # Python dependencies
└── packages.txt        # System packages for HF Spaces (ExifTool)

Limitations

  • —Trained on a limited dataset — detects 2 anomaly classes only; other defects (soiling, vegetation shading, string outages, cracked cells) are not yet recognised.
  • —Reports bounding boxes and confidence, not actual temperatures — radiometric ΔT readout from DJI thermal data is planned.
  • —GPS accuracy depends on the drone's metadata; images without GPS tags still get analysed but won't appear on the map.
  • —Tested primarily with DJI drone thermal JPEGs.

Roadmap

  • —[ ] Sample images folder so visitors can test without their own data
  • —[ ] Severity scoring (Critical / Major / Minor) per detection
  • —[ ] Radiometric temperature (ΔT) extraction from DJI XMP data
  • —[ ] More anomaly classes + larger base model (YOLOv8s / YOLOv11)
  • —[ ] PDF inspection report export
  • —[ ] Cluster nearby detections into single faults (DBSCAN)

Credits

Built with Ultralytics YOLOv8, Streamlit, Folium, and ExifTool.