CHRIS-PROBA1 — Cloud and shadow segmentation

Cloud and cloud-shadow segmentation for CHRIS/PROBA-1 imagery. The model is a two-network ensemble (RegNetY-004 + ConvNeXtV2-nano, U-Net heads) finetuned on RGBN bands and unified so the same weights handle both DN and TOA inputs.

Open In Colab

Install

pip install mlstac
# runtime dependencies for this model:
pip install torch segmentation-models-pytorch pytorch-lightning timm rasterio numpy

Usage

import mlstac

# 1. Load the metadata and download the model files
model = mlstac.load(
    "https://huggingface.co/isp-uv-es/CHRIS-PROBA1/resolve/main/mlm.json"
)
local = model.download("CHRIS-PROBA1")

# 2. Build the ensemble (loads both checkpoints)
net = local.compiled_model(device="cuda")

# 3a. Segment a raw CHRIS GeoTIFF end to end.
#     mode_n is the CHRIS acquisition mode; source is 'dn' or 'toa'
#     (or None to guess it from the file name).
mask = local.module.predict_chris(
    "image_mode_1/scene_DN.tif", model=net, mode_n=1, source="dn"
)

# 3b. Mode 6 is CHRIS mode 20: 4 raw bands, DN only (no TOA).
mask20 = local.module.predict_chris(
    "image_mode_20/scene_DN.tif", model=net, mode_n=6, source="dn"
)

If you already have a 4-band RGBN array (4, H, W), you can skip the CHRIS preprocessing and call the model directly:

mask = local.module.predict_large(rgbn_array, model=net)

Output classes

Value Class
0 clear
1 thick cloud
2 thin cloud
3 shadow
99 nodata

Supported CHRIS modes

The loader builds the RGBN stack (Red, Green, Blue, NIR) from the raw cube according to the acquisition mode. Modes 1-5 average several bands per channel and exist in both DN and TOA. Mode 6 is CHRIS mode 20: it has 4 bands used directly (no averaging) and DN only.

mode_n CHRIS mode DN TOA
1 1
2 2
3 3
4 4
5 5
6 20

DN and TOA use different radiometric scales before a fixed clip, so passing the correct source matters. Pass source='dn' or source='toa', or leave it as None to infer it from the file name.

Example scenes

The examples/ folder holds one paired scene per mode (image_mode_1 ... image_mode_5 with DN and TOA, image_mode_20 with DN only) to try the model.

Citation

If you use this model, please cite the CHRIS/PROBA-1 cloud segmentation work from the Image and Signal Processing (ISP) group, Universitat de València.

License

MIT

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support