Skip to content

Tusm11/SkySense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkySense: AI-Based Celestial Object Identification 🌌

SkySense is an AI-powered system that helps users identify celestial objects observed in the night sky.

📖 Project Overview

The project is designed for two types of users:

  1. Curious observers (no equipment): Users describe what they saw in natural language (e.g., “a bright moving dot with a short trail”).
  2. Knowledgeable users / hobbyists: Users enter approximate observational parameters like brightness, motion, duration, or color.

Using multiple machine learning models trained on NASA and Kaggle datasets, SkySense predicts whether the observed object is a:

  • Star
  • Exoplanet Candidate
  • Asteroid
  • Meteor
  • Artificial Satellite

🚀 How to Run

Prerequisites

  • Python 3.8+
  • Node.js (for optional development)

1. Install Dependencies

pip install -r requirements.txt
# OR individually:
pip install fastapi uvicorn streamlit pandas scikit-learn numpy joblib

2. Start the Backend API

The FastAPI backend serves the prediction models.

python src/app.py
  • Server runs at: http://localhost:8000
  • API Docs: http://localhost:8000/docs

3. Start the Frontend App

The Streamlit application provides the user interface.

streamlit run app/ui.py
  • App runs at: http://localhost:8501

🧠 System Architecture

graph LR
    A[User Input] --> B{Input Type}
    B -->|Text Description| C[NLP Model]
    B -->|Numeric Features| D[Feature Model]
    C --> E[Prediction]
    D --> E
    E --> F[UI Display]
Loading

🤖 Models Used

  1. Natural Language Model

    • Type: Logistic Regression + TF-IDF
    • Purpose: Handles free-text descriptions.
    • Accuracy: ~96.7%
  2. Feature-Based Model

    • Type: Random Forest Classifier
    • Purpose: Handles structured observational data.
    • Accuracy: ~100% (on synthetic ruleset)

📂 File Structure

  • src/app.py: FastAPI backend.
  • app/ui.py: Streamlit frontend.
  • src/train_models.py: Script to train ML models.
  • src/evaluate_models.py: Script to check model accuracy.
  • data/: Contains raw and processed datasets.
  • models/: Stores trained model artifacts (.joblib).

📊 Evaluation Results

You can verify the model performance by running:

python src/evaluate_models.py

Feature-Based Model Performance:

  • Precision/Recall: 1.00 for all classes.

NLP Model Performance:

  • Meteor: 100% precision.
  • Satellite: 99% precision.
  • Exoplanet: 100% precision.

Educational tool. Predictions are probabilistic and not for scientific validation.

About

AI-powered celestial object identification using ML

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors