File size: 7,244 Bytes
914013b
47354f8
 
 
 
 
daa6b5a
47354f8
 
6474302
 
 
 
 
914013b
 
 
74e1a32
 
 
914013b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74e1a32
6474302
914013b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6474302
 
914013b
 
 
74e1a32
 
914013b
 
 
 
74e1a32
914013b
 
 
 
74e1a32
914013b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74e1a32
914013b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74e1a32
914013b
 
 
74e1a32
914013b
 
74e1a32
 
 
 
6474302
74e1a32
 
67b1e08
74e1a32
67b1e08
914013b
 
 
74e1a32
91df5aa
914013b
 
 
 
 
 
 
 
74e1a32
 
 
 
 
 
 
 
 
 
 
 
914013b
 
 
6474302
 
914013b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74e1a32
914013b
 
 
 
 
1f06a2a
6474302
74e1a32
914013b
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
---
title: Satellite Classification Dashboard
emoji: ๐Ÿ›ฐ๏ธ
colorFrom: blue
colorTo: purple
sdk: streamlit
sdk_version: "1.47.0"
app_file: app.py
pinned: false
preload_from_hub:
  - Bhavi23/Custom_CNN/best_multimodal_model.keras
  - Bhavi23/MobilenetV2/multi_input_model_v1.keras
  - Bhavi23/EfficientNet_B0/efficientnet_model.keras
  - Bhavi23/DenseNet/densenet_model.keras
---

# ๐Ÿ›ฐ๏ธ Satellite Classification Dashboard

A comprehensive deep learning application for classifying satellite images using multiple state-of-the-art neural network models. This interactive dashboard allows you to compare different models, analyze their performance, and classify satellite images in real-time.

## ๐ŸŒŸ Features

### ๐Ÿ  Dashboard Overview
- Interactive web interface built with Streamlit
- Multi-page navigation system
- Real-time image classification
- Comprehensive model comparison
- Performance analytics and visualizations

### ๐Ÿค– Multiple Model Support
- **Custom CNN**: Tailored architecture for satellite imagery (95.2% accuracy)
- **MobileNetV2**: Lightweight model optimized for speed (92.8% accuracy, 18ms inference)
- **EfficientNetB0**: Best accuracy-efficiency balance (96.4% accuracy)
- **DenseNet121**: Complex pattern recognition capabilities (94.7% accuracy)

### ๐ŸŽฏ Classification Categories
The system can classify 11 different types of satellites and space objects:

- AcrimSat
- Aquarius
- Aura
- Calipso
- Cloudsat
- CubeSat
- Debris
- Jason
- Sentinel-6
- TRMM
- Terra

## ๐Ÿš€ Quick Start

### Try the Live Demo
Visit the Hugging Face Space to use the application directly in your browser.

### Local Installation
1. Clone the repository
```bash
git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git
cd satellite-classification-dashboard
```

2. Install dependencies
```bash
pip install -r requirements.txt
```

3. Run the application
```bash
streamlit run app.py
```

4. Open your browser and navigate to http://localhost:7860

## ๐Ÿ“ฆ Dependencies
- streamlit==1.47.0
- tensorflow-cpu==2.15.0
- numpy==1.26.4
- pandas==2.2.2
- plotly==5.22.0
- Pillow==10.4.0
- requests==2.32.3
- protobuf<4.0.0

## ๐ŸŽฎ How to Use

### 1. Home Page
- Overview of the system capabilities
- Class distribution visualization
- Quick navigation to other features

### 2. Model Comparison
- Side-by-side performance metrics
- Interactive charts comparing accuracy, speed, and model size
- Model selection recommendations

### 3. Image Classification
- Upload satellite images (PNG, JPG, JPEG)
- Select one or multiple models for prediction
- View confidence scores and detailed probabilities
- Get model recommendations based on performance

### 4. Performance Analytics
- Detailed performance breakdowns
- Efficiency metrics analysis
- Comprehensive model comparison tables

### 5. About Models
- Technical specifications for each model
- Strengths and use cases
- Model architecture details

## ๐Ÿ“Š Model Performance

| Model | Accuracy | Precision | Recall | F1-Score | Inference Time | Model Size |
|-------|----------|-----------|---------|----------|----------------|------------|
| EfficientNetB0 | 96.4% | 96.1% | 96.2% | 96.1% | 35ms | 20.1MB |
| Custom CNN | 95.2% | 94.8% | 95.1% | 94.9% | 45ms | 25.3MB |
| DenseNet121 | 94.7% | 94.2% | 94.5% | 94.3% | 52ms | 32.8MB |
| MobileNetV2 | 92.8% | 92.1% | 92.5% | 92.3% | 18ms | 8.7MB |

## ๐ŸŽฏ Model Selection Guide
- ๐Ÿ† **Best Overall Accuracy**: EfficientNetB0 (96.4%)
- โšก **Fastest Inference**: MobileNetV2 (18ms)
- ๐Ÿ’พ **Most Lightweight**: MobileNetV2 (8.7MB)
- ๐ŸŽฏ **Best Balance**: EfficientNetB0 (High accuracy + efficiency)
- ๐Ÿ“ฑ **Mobile/Edge Deployment**: MobileNetV2
- ๐Ÿ”ฌ **Research/High Accuracy**: EfficientNetB0 or DenseNet121

## ๐Ÿ—๏ธ Architecture

### Model Sources
All models are hosted on Hugging Face Model Hub:
- Custom CNN: Bhavi23/Custom_CNN
- MobileNetV2: Bhavi23/MobilenetV2
- EfficientNetB0: Bhavi23/EfficientNet_B0
- DenseNet121: Bhavi23/DenseNet

### Data Pipeline
- **Image Upload**: Supports PNG, JPG, JPEG formats
- **Preprocessing**: Resize to 224x224, normalize to [0,1]
- **Model Inference**: Multi-model prediction with timing
- **Post-processing**: Confidence scoring and recommendations

## ๐Ÿ”ง Technical Details

### Input Requirements
- **Image Format**: PNG, JPG, JPEG
- **Input Size**: 224x224x3 (RGB)
- **Preprocessing**: Automatic resizing and normalization

### Output Format
- **Class Prediction**: One of 11 satellite categories
- **Confidence Score**: Percentage confidence (0-100%)
- **Inference Time**: Milliseconds for prediction
- **Probability Distribution**: Full softmax output for all classes

## ๐Ÿ“ˆ Performance Optimization
- **Model Caching**: Models are cached using @st.cache_resource
- **Lazy Loading**: Models loaded only when needed
- **Efficient Preprocessing**: Optimized image pipeline
- **Memory Management**: Automatic cleanup of model objects

## ๐Ÿšข Deployment

### Hugging Face Spaces
The application is deployed on Hugging Face Spaces using:
- **Runtime**: Python 3.9
- **Framework**: Streamlit
- **Resources**: CPU-optimized for inference

### Docker Deployment
```dockerfile
FROM python:3.9-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
EXPOSE 7860

CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]
```

## ๐Ÿค Contributing
We welcome contributions! Please follow these steps:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit changes (`git commit -m 'Add amazing feature'`)
4. Push to branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

### Development Setup
```bash
# Clone your fork
git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -r requirements.txt

# Run in development mode
streamlit run app.py --logger.level=debug
```

## ๐Ÿ“„ License
This project is licensed under the MIT License - see the LICENSE file for details.

## ๐Ÿ™ Acknowledgments
- **Dataset**: Spark 2021 dataset used for training
- **Frameworks**: TensorFlow, Streamlit, Plotly
- **Models**: Pre-trained architectures from TensorFlow/Keras
- **Hosting**: Hugging Face Spaces for deployment

## ๐Ÿ“ž Support
- **Issues**: GitHub Issues
- **Discussions**: GitHub Discussions
- **Email**: bhavithrass@gmail.com

## ๐Ÿ”ฎ Future Enhancements
- [ ] Real-time Video Classification
- [ ] Batch Processing for multiple images
- [ ] Model Fine-tuning Interface
- [ ] Custom Model Upload
- [ ] Export Predictions (CSV/JSON)
- [ ] API Endpoint for programmatic access
- [ ] Mobile App version
- [ ] Advanced Visualization with satellite orbit data

## ๐Ÿ“Š Usage Statistics
Track your application usage:
- **Classifications Performed**: Real-time counter
- **Popular Models**: Usage analytics
- **Performance Metrics**: Response time tracking

---

Built with โค๏ธ using Streamlit and TensorFlow

For more information, visit our [Hugging Face Space](https://huggingface.co/spaces/Bhavi23/satellite-classification-dashboard)