Image Segmentation
PEFT
Safetensors
English
cloud
segmentation
remote-sensing
satellite
earth-observation
lora
Instructions to use uga-gaim/CLIPSeg-CloudSEN12Plus-LoRA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use uga-gaim/CLIPSeg-CloudSEN12Plus-LoRA with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
| license: cc-by-4.0 | |
| datasets: | |
| - isp-uv-es/CloudSEN12Plus | |
| base_model: | |
| - CIDAS/clipseg-rd64-refined | |
| language: | |
| - en | |
| pipeline_tag: image-segmentation | |
| tags: | |
| - cloud | |
| - segmentation | |
| - remote-sensing | |
| - satellite | |
| - earth-observation | |
| - lora | |
| - peft | |
| # CLIPSeg Fine-tuned for Cloud Segmentation (LoRA, 100% Data) | |
| LoRA-adapted version of [CIDAS/clipseg-rd64-refined](https://huggingface.co/CIDAS/clipseg-rd64-refined) | |
| for cloud segmentation on Sentinel-2 satellite imagery using the CloudSEN12+ dataset. | |
| This model is part of the research presented in: | |
| > **Low-Data Supervised Adaptation Outperforms Prompting for Cloud Segmentation Under Domain Shift** | |
| > Harshith Kethavath, Weiming Hu | |
| > EarthVision Workshop @ CVPR 2026 | |
| All models from this paper: [https://huggingface.co/collections/uga-gaim/2026-cloudprompts](https://huggingface.co/collections/uga-gaim/2026-cloudprompts) | |
| ## Model Description | |
| CLIPSeg is a vision-language segmentation model trained on natural images. This variant | |
| uses Low-Rank Adaptation (LoRA) to adapt CLIPSeg to Sentinel-2 satellite imagery for | |
| four-class cloud segmentation: clear, thick cloud, thin cloud, and cloud shadow. | |
| Compared to full fine-tuning, LoRA trains only a small fraction of parameters (~16MB | |
| adapter weights vs. ~603MB full model), making it a lightweight alternative. | |
| - **Developed by:** Harshith Kethavath, Weiming Hu | |
| - **Lab:** Lab for Geoinformatics and AI Modeling (GAIM), University of Georgia | |
| - **License:** CC BY 4.0 | |
| - **Base model:** CIDAS/clipseg-rd64-refined | |
| - **PEFT method:** LoRA (rank 32, α = 64) | |
| ## How to Get Started | |
| ```python | |
| from transformers import CLIPSegProcessor, CLIPSegForImageSegmentation | |
| from peft import PeftModel | |
| import torch | |
| from PIL import Image | |
| base_model = CLIPSegForImageSegmentation.from_pretrained("CIDAS/clipseg-rd64-refined") | |
| model = PeftModel.from_pretrained(base_model, "uga-gaim/CLIPSeg-CloudSEN12Plus-LoRA") | |
| processor = CLIPSegProcessor.from_pretrained("uga-gaim/CLIPSeg-CloudSEN12Plus-LoRA") | |
| image = Image.open("your_sentinel2_image.png") | |
| prompts = ["clear", "thick cloud", "thin cloud", "cloud shadow"] | |
| inputs = processor( | |
| text=prompts, | |
| images=[image] * len(prompts), | |
| return_tensors="pt", | |
| padding=True | |
| ) | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| logits = outputs.logits # shape: (4, H, W) | |
| predicted_class = logits.argmax(dim=0) # per-pixel class prediction | |
| ``` | |
| ## Training Details | |
| ### Training Data | |
| Trained on the [CloudSEN12+](https://huggingface.co/datasets/isp-uv-es/CloudSEN12Plus) | |
| dataset, the largest expert-labeled cloud segmentation benchmark for Sentinel-2 imagery. | |
| 100% of the training split was used (full data setting). | |
| ### Training Hyperparameters | |
| | Hyperparameter | Value | | |
| |----------------|-------| | |
| | Optimizer | AdamW | | |
| | Learning rate | 2e-4 | | |
| | Weight decay | 0.01 | | |
| | Warmup ratio | 0.03 | | |
| | Epochs | 15 | | |
| | Batch size | 16 | | |
| | LoRA rank (r) | 32 | | |
| | LoRA alpha (α) | 64 | | |
| | LoRA dropout | 0.05 | | |
| | Precision | fp16 | | |
| ### Loss Function | |
| Combined segmentation loss: weighted sum of Focal loss, Tversky loss, and Boundary loss. | |
| ## Evaluation Results | |
| Evaluated on the CloudSEN12+ test split. Per-class IoU: | |
| | Class | Zero-Shot (baseline) | This model (LoRA 100%) | | |
| |-------|---------------------|----------------------| | |
| | Clear | 0.5205 | 0.8269 | | |
| | Thick Cloud | 0.2773 | 0.7488 | | |
| | Thin Cloud | 0.0898 | 0.3820 | | |
| | Cloud Shadow | 0.1325 | 0.4389 | | |
| | **mIoU** | **0.2550** | **0.5991** | | |
| ## Citation | |
| ```bibtex | |
| @InProceedings{Kethavath_2026_CVPR, | |
| author = {Kethavath, Harshith and Hu, Weiming}, | |
| title = {Low-Data Supervised Adaptation Outperforms Prompting for Cloud Segmentation Under Domain Shift}, | |
| booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops}, | |
| month = {June}, | |
| year = {2026}, | |
| pages = {7960-7969} | |
| } | |
| ``` |