A convolutional neural network (CNN) designed to classify deep-sky objects (DSOs) as galaxies or nebulae from raw or minimally processed astrophotography data. This project is built on DSLR images and tailored specifically for real-world amateur astronomy conditions.
The Novalunosis Algorithm is a deep-learning pipeline that ingests astrophotography frames and predicts whether the target object is a:
- Nebula (e.g., Orion, Rosette, Horsehead, Flame, North America, Pleiades)
- Galaxy (e.g., Whirlpool, Pinwheel, Triangulum, Sunflower, Andromeda)
The model was trained on a curated dataset of over 1000 DSLR images and evaluated at above 85% accuracy on a held-out test set.
Most astronomy computer-vision models are trained on survey data (SDSS, Hubble, etc.), which look very different from what amateur astrophotographers produce.
This project focuses on:
- Realistic amateur data containing noise, gradients, tracking errors, and light pollution
- An end-to-end pipeline from raw frames to predictions
- A practical tool for astrophotographers to auto-organize and classify their own datasets
- Binary CNN classifier for nebula vs galaxy
- Training and evaluation scripts with metrics and confusion matrix
- Configurable data loaders for train/validation/test splits
- Augmentations designed for astrophotography images
- Support for RAW-to-RGB preprocessing (e.g., Nikon NEF files)
- Easily extendable to additional deep-sky object classes
Adjust this section based on actual folder names as needed.
The-Novalunosis-Algorithm/
├─ data/
│ ├─ raw/ # RAW images (not tracked in git)
│ ├─ processed/ # Preprocessed/resized frames
│ └─ metadata.csv # Paths and labels
├─ notebooks/
│ ├─ 01_exploration.ipynb
│ ├─ 02_training.ipynb
│ └─ 03_evaluation.ipynb
├─ src/
│ ├─ dataset.py
│ ├─ model.py
│ ├─ train.py
│ ├─ evaluate.py
│ └─ utils.py
├─ requirements.txt
└─ README.md