Saqib772's picture
Updated reamde due to configuration errors
0184c53 verified

A newer version of the Streamlit SDK is available: 1.55.0

Upgrade
metadata
title: Astronomy Image Classification
emoji: ๐ŸŒŒ
colorFrom: blue
colorTo: purple
sdk: streamlit
sdk_version: 1.28.0
app_file: app.py
pinned: false
license: mit

๐ŸŒŒ Astronomy Image Classification - Ensemble Model

A deep learning ensemble system for classifying astronomy images into 6 categories using ResNet50 and DenseNet121 models with soft voting.

Model Performance

  • ResNet50 Accuracy: 64.86%
  • DenseNet121 Accuracy: 63.96%
  • Ensemble Expected Accuracy: 70-75%
  • Target Accuracy: >95%
  • Architecture: ResNet50 + DenseNet121 Ensemble
  • Framework: PyTorch
  • Input Size: 224x224 pixels

Ensemble Method

This system uses soft voting to combine predictions from both models:

  1. Each model makes independent predictions
  2. Probabilities are averaged across models
  3. Final prediction is the class with highest average probability
  4. Provides higher accuracy than individual models

๐Ÿ“Š Classes

  1. ๐ŸŒŸ Constellation - Star patterns forming recognizable shapes (Orion, Big Dipper)
  2. ** Cosmos** - General space scenes and cosmic phenomena
  3. ** Galaxies** - Spiral, elliptical, and irregular galaxies (Andromeda, Milky Way)
  4. ๐Ÿ’ซ Nebula - Gas clouds and stellar nurseries (Orion Nebula, Eagle Nebula)
  5. ๐Ÿช Planets - Solar system planets and planetary features (Jupiter, Saturn, Mars)
  6. โญ Stars - Individual stars and stellar objects

๐Ÿš€ Usage

  1. Upload an astronomy image (JPG, PNG, JPEG)
  2. View individual model predictions
  3. See ensemble prediction with confidence scores
  4. Explore all class probabilities

๐Ÿ”ง Technical Details

  • Models: ResNet50 (95MB) + DenseNet121 (30MB)
  • Preprocessing: Resize to 224x224, ImageNet normalization
  • Augmentation: Albumentations library
  • Optimization: AdamW with cosine scheduling
  • Loss Function: CrossEntropy with class weights
  • Ensemble: Soft voting (average probabilities)

๐Ÿ“ˆ Individual Model Results

Model Accuracy Precision Recall F1-Score
ResNet50 64.86% 0.6594 0.6486 0.6452
DenseNet121 63.96% 0.6461 0.6396 0.6172
Ensemble ~70% Higher Higher Higher

๐ŸŽจ Sample Images

Upload images of:

  • Constellations: Star patterns, asterisms
  • Galaxies: Spiral, elliptical, irregular galaxies
  • Nebulae: Emission, reflection, dark nebulae
  • Planets: Solar system planets, planetary features
  • Stars: Individual stars, stellar phenomena
  • Cosmos: Deep space, cosmic phenomena

๐Ÿš€ Deployment Features

  • โœ… Interactive Web Interface - Easy image upload
  • โœ… Real-time Predictions - Instant classification
  • โœ… Ensemble Results - Both individual and combined predictions
  • โœ… Confidence Scores - Visual confidence indicators
  • โœ… All Class Probabilities - Complete probability breakdown
  • โœ… Mobile Friendly - Responsive design
  • โœ… Error Handling - Robust error management

๐Ÿ”ฎ Future Improvements

  • Test Time Augmentation (TTA) - Multiple augmented predictions
  • More Models - Add EfficientNet, Vision Transformer
  • Advanced Ensemble - Weighted voting based on performance
  • Progressive Training - Multi-stage training approach
  • Data Augmentation - More aggressive augmentation
  • Transfer Learning - Pre-training on larger datasets

##๏ธ Local Testing

# Install dependencies
pip install -r requirements.txt

# Run locally
streamlit run app.py

๐Ÿ“ Model Files

  • best_resnet50.pth - ResNet50 model weights (95MB)
  • best_densenet121.pth - DenseNet121 model weights (30MB)
  • model.py - Model architecture definition
  • inference.py - Inference pipeline with ensemble
  • app.py - Streamlit web application

  • Built with โค๏ธ for astronomy enthusiasts and data scientists*
    ๐ŸŽฏ Target: >95% accuracy through ensemble methods and advanced techniques