File size: 2,814 Bytes
b6618a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82c7859
b6618a8
82c7859
b6618a8
82c7859
b6618a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82c7859
 
b6618a8
 
 
82c7859
 
 
b6618a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
license: apache-2.0
tags:
- computer-vision
- image-segmentation
- satellite-imagery
- remote-sensing
- pytorch
- uncertainty-estimation
datasets:
- 38-cloud
metrics:
- iou
- dice
- precision
- recall
- f1
---

# 🌍 AERIS β€” Cloud Detection for Landsat 8

AERIS (Automated Environmental Remote Imaging System) is a deep learning model for **cloud segmentation in Landsat 8 satellite imagery** with built-in **uncertainty quantification** using Monte Carlo Dropout.

The model performs high-accuracy binary segmentation on 4-channel satellite inputs (RGB + NIR).

---

## πŸ”Ž Model Description

- **Architecture:** U-Net  
- **Encoder:** ResNet34  
- **Input:** 4-channel (Red, Green, Blue, Near-Infrared)  
- **Input Size:** 256 Γ— 256  
- **Output:** Binary cloud segmentation mask  
- **Framework:** PyTorch + segmentation-models-pytorch  
- **Uncertainty Estimation:** MC Dropout (30 stochastic forward passes)

AERIS not only predicts cloud masks but also provides calibrated confidence estimates for more reliable remote sensing workflows.

---

## πŸ“Š Performance

Evaluation on the **38-Cloud dataset**:

| Metric | Score |
|--------|--------|
| Validation IoU | **92.20%** |
| Dice Coefficient | **94.28%** |
| Precision | 92.15% |
| Recall | 96.73% |
| F1 Score | 94.28% |
| Expected Calibration Error (ECE) | **0.70%** |

Low ECE indicates strong confidence calibration.

---

## πŸ‹οΈ Training Details

- **Dataset:** 38-Cloud (16,800 training patches)  
- **Loss Function:** Combined Dice + Binary Cross-Entropy  
- **Optimizer:** AdamW (learning rate = 1e-4)  
- **Epochs:** 30  
- **Hardware:** NVIDIA RTX 4060  

---

## πŸš€ Usage

### Installation

```bash
pip install torch torchvision
pip install segmentation-models-pytorch
```

### Load Model

```python
import torch
import segmentation_models_pytorch as smp

model = smp.Unet(
    encoder_name="resnet34",
    in_channels=4,
    classes=1
)

model.load_state_dict(torch.load("Aeris_Model.pth", map_location="cpu"))
model.eval()
```

### Inference

```python
with torch.no_grad():
    output = model(input_tensor)  # input_tensor shape: [B, 4, 256, 256]
```

For uncertainty estimation, run multiple stochastic forward passes with dropout enabled.

---

## πŸ“Œ Intended Use

- Satellite image preprocessing  
- Atmospheric correction pipelines  
- Cloud cover estimation  
- Weather monitoring systems  
- Remote sensing research  

---

## ⚠️ Limitations

- Trained only on Landsat 8 imagery  
- Input size fixed at 256Γ—256 patches  
- Performance may degrade on unseen satellite domains  
- Binary cloud detection (does not classify cloud types)

---

## πŸ“œ License

This model is released under the **Apache 2.0 License**.

---

## 🀝 Contributions

Contributions, improvements, and research collaborations are welcome.