Skip to content
ModelListedExternal
Download

Bdappv Models

Baseline models for the BDAPPV dataset — aerial images of rooftop photovoltaic installations in France and Belgium.

KindOtherVersionRevision cdc4997

Model source

Kind
Other
File size
93.2–233 MB
Version
vRevision cdc4997
Updated
Sep 17, 2026
Downloads
0
Source
Hugging Face

Source description

BDAPPV Models

Baseline models for the BDAPPV dataset — aerial images of rooftop photovoltaic installations in France and Belgium.

Paper: Kasmi et al., Scientific Data, 2023 — arXiv:2209.03726


Models

Two architectures, trained independently on each imagery provider:

FileTaskArchitectureProvider
deeplab_google_best.pthSegmentationDeepLabV3-ResNet101Google
deeplab_ign_best.pthSegmentationDeepLabV3-ResNet101IGN
inception_google_best.pthClassificationInceptionV3Google
inception_ign_best.pthClassificationInceptionV3IGN

Note on training data and licensing. Checkpoints fine-tuned on the Google subset of BDAPPV (*_google_*) derive from imagery distributed under CC-BY-NC 4.0; commercial users should prefer the IGN-trained checkpoints (*_ign_*, CC-BY 4.0 imagery) or assess accordingly. All models are initialized from Mayer et al. (2022) checkpoints — see their repository for base model licensing.


Benchmark protocol

Three evaluation tracks are defined:

Track 1 — Segmentation (single provider) Train and evaluate on the same provider. Report IoU and F1 on the test split.

Track 2 — Classification (single provider) Train and evaluate on the same provider. Report accuracy and F1 on the test split.

Track 3 — Distribution shift (cross-provider) Train on Google, evaluate on IGN test split. This is the primary robustness benchmark. Report IoU.

Rules:

  • The test split must not be used for model selection or hyperparameter tuning — validation split only.
  • The spatial holdout by department must not be modified. Re-splitting invalidates comparability with published results.
  • For Track 3, only the Google training split may be used for training.

Results

Models evaluated on the official test split (spatial holdout by French department — see dataset card for details).

Segmentation (DeepLabV3-ResNet101)

TrainTestIoUF1n (test)
GoogleGoogle0.8840.9371,935
IGNIGN0.7350.8441,239
GoogleIGN0.5610.7091,239
IGNGoogle0.6570.7861,935

Classification (InceptionV3)

TrainTestAccuracyPrecisionRecallF1n (test)
GoogleGoogle0.9520.9900.9120.9493,884
IGNIGN0.6400.8310.3090.4512,593
GoogleIGN0.5920.8150.1880.3062,593
IGNGoogle0.5431.0000.0830.1533,884

Note on classification cross-provider results: the IGN-trained model collapses on Google imagery (Recall=0.08, Precision=1.0), indicating the model rarely predicts positives — a degenerate operating point. This illustrates the severity of the distribution shift documented in Kasmi et al. (2025).


Usage

A model.py helper is included in this repo to simplify loading:

from huggingface_hub import hf_hub_download
import importlib.util

path = hf_hub_download("gabrielkasmi/bdappv-models", "model.py")
spec = importlib.util.spec_from_file_location("bdappv_model", path)
mod  = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)

seg = mod.load_segmentation_model("google")    # or "ign"
clf = mod.load_classification_model("google")  # or "ign"

Both functions return the model in eval() mode. An optional device argument is supported ("cpu", "cuda", "mps").


Training

Models trained on the official BDAPPV splits using:

  • Optimizer: AdamW (lr=1e-4, weight_decay=1e-4)
  • Scheduler: Cosine annealing
  • Effective batch size: 32 (batch 16 × grad accum 2)
  • Early stopping: patience=7 epochs on validation metric
  • Input size: 400×400 px
  • Initialization: checkpoints from Mayer et al. (2022), who fine-tuned DeepLabV3-ResNet101 and InceptionV3 on 10 cm/px orthoimagery from North Rhine-Westphalia (Germany) for rooftop PV detection. These checkpoints were then further fine-tuned on BDAPPV using the splits above.

Training scripts available in the BDAPPV dataset repository.


Citation

If you use these models, please cite:

@article{kasmi2022towards,
  title={Towards unsupervised assessment with open-source data of the accuracy of deep learning-based distributed PV mapping},
  author={Kasmi, Gabriel and Dubus, Laurent and Blanc, Philippe and Saint-Drenan, Yves-Marie},
  journal={arXiv preprint arXiv:2207.07466},
  year={2022}
}

References

Sources

1 source
Hugging FacePrimaryVersion cdc499752f52a3ef04b00a64280ae55c16df8c65
huggingface.co/gabrielkasmi/bdappv-models/tree/cdc499752f52a3ef04b00a64280ae55c16df8c65

Verified Sep 17

Model artifacts

4 artifacts

deeplab_google_best.pth

pth · 233 MB · SHA-256 bd9e7b951d02…853b · Hugging Face

Download

deeplab_ign_best.pth

pth · 233 MB · SHA-256 bd31838b45f0…f431 · Hugging Face

Download

inception_google_best.pth

pth · 93.2 MB · SHA-256 ba031e7d0eac…b008 · Hugging Face

Download

inception_ign_best.pth

pth · 93.2 MB · SHA-256 4486bcd61e18…85d1 · Hugging Face

Download

Source excerpts

2 excerpts

--- license: cc-by-4.0 tags: - image-segmentation - image-classification - solar-panels - photovoltaic - remote-sensing - aerial-imagery - pytorch datasets: - gabrielkasmi/bdappv --- # BDAPPV Models Baseline models for the [BDAPPV dataset](https://huggingface.co/datasets/gabrielkasmi/bdappv) — aerial images of rooftop photovoltaic installations in France and Belgium. **Paper:** [Kasmi et al., Scientific Data, 2023](https://doi.org/10.1038/s41597-023-01951-4) — [arXiv:2209.03726](https://arxiv.org/abs/2209.03726) --- ## Models Two architectures, trained independently on each imagery provider: | File | Task | Architecture | Provider | |------|------|-------------|----------| | `deeplab_google_best.pth` | Segmentation | DeepLabV3-ResNet101 | Google | | `deeplab_ign_best.pth` | Segmentation | DeepLabV3-ResNet101 | IGN | | `inception_google_best.pth` | Classification | InceptionV3 | Google | | `inception_ign_best.pth` | Classification | InceptionV3 | IGN | **Note on training data and licensing.** Checkpoints fine-tuned on the Google subset of BDAPPV (`*_google_*`) derive from imagery distributed under CC-BY-NC 4.0; commercial users should prefer the IGN-trained checkpoints (`*_ign_*`, CC-BY 4.0 imagery) or assess accordingly. All models are initialized from Mayer et al. (2022) checkpoints — see their repository for base model licensing. --- ## Benchmark protocol Three evaluation tracks are defined: **Track 1 — Segmentation (single provider)** Train and evaluate on the same provider. Report IoU and F1 on the test split. **Track 2 — Classification (single provider)** Train and evaluate on the same provider. Report accuracy and F1 on the test split. **Track 3 — Distribution shift (cross-provider)** Train on Google, evaluate on IGN test split. This is the primary robustness benchmark. Report IoU. Rules: - The test split must not be used for model selection or hyperparameter tuning — validation split only. - The spatial holdout by department must not be modified. Re-splitting invalidates comparability with published results. - For Track 3, only the Google training split may be used for training. --- ## Results Models evaluated on the official test split (spatial holdout by French department — see dataset card for details). ### Segmentation (DeepLabV3-ResNet101) | Train | Test | IoU | F1 | n (test) | |-------|------|-----|----|----------|...

Source context: 0 downloads · 2 likes · Pipeline image-classification · Repo gabrielkasmi/bdappv-models