SRGAN in Astrophotography
Published:
Processing and Enhancement of Planetary Astrophotography Using Generative Adversarial Networks
Repository
Authors
- Diego Antonio Villalba González
- Arantxa Camil Junco Flores
- Jonathan Alexis Hernández Cuevas
Abstract
This project presents the development of a Generative Adversarial Network (GAN) combined with planetary image processing to enhance resolution, detail, and contrast from low-resolution and high-noise images.
We achieved satisfactory results, applicable to various image processing fields, such as security cameras, medical imaging (ultrasounds), and astronomy.
Example Results

Introduction
1.1 Astrophotography
Astrophotography is a technique that combines astrophysics and photography to capture images of celestial objects. It has evolved from photographic plates to high-resolution digital cameras.
Technological advances have enabled shorter exposure times, real-time image visualization, and improved post-processing techniques. However, challenges such as light pollution, digital noise, and tracking stability of telescopes still impact image quality.
1.2 SRGANs (Super-Resolution GANs)
SRGANs are a type of deep learning model that consists of two competing neural networks: a generator and a discriminator. The generator takes a low-resolution image and attempts to create a high-resolution version, while the discriminator learns to differentiate between real and generated images.
By competing against each other, both networks improve, resulting in higher-quality image reconstruction.
1.3 Problem Statement
Planetary astrophotography is particularly challenging because:
- Planets appear small and move quickly in the night sky.
- Atmospheric turbulence and motion blur reduce image quality.
- Typical photography resolution is limited by video capture quality.
A common solution is video stacking, where multiple video frames are combined to reduce noise and improve detail. However, this method is still constrained by video resolution limits.
Our project enhances planetary images by applying SRGANs, allowing for higher resolution and improved details even when starting with low-quality sources.
Installation
1. Clone the Repository
git clone https://github.com/your_username/your_repo.git
cd your_repo
- Create a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows, use venv\\Scripts\\activate - Install Dependencies
pip install -r requirements.txt
Usage Instructions
Prepare Your Data • Place low-resolution planetary images in data/low_res/. • If available, place high-resolution images in data/high_res/ for training.
Train the Model
python train.py --config configs/train_config.yaml
Modify the configuration file as needed for different datasets.
- Generate Super-Resolution Images
Once trained, use the model to enhance new images:
python generate.py --input data/low_res/ --output results/high_res/
Contributing
We welcome contributions!
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes.
- Commit your changes (
git commit -m 'Added feature X'). - Push to the branch (
git push origin feature-branch). - Open a Pull Request.
For major changes, please open an issue first to discuss them
License
This project is licensed under the MIT License. See the LICENSE file for details.
References
The main reference for this project is the following paper:
- Ledig, C., Theis, L., Huszár, F., Caballero, J., Cunningham, A., Acosta, A., Aitken, A., Tejani, A., Totz, J., Wang, Z., & Shi, W. (2017).
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network.
arXiv:1609.04802.
For further details, you can access the original paper here.
Contact
For any questions or collaboration opportunities: • Diego Villalba
Procesamiento y Mejora de Astrofotografía Planetaria Usando Redes Generativas Antagónicas
Repositorio
Autores
- Diego Antonio Villalba González
- Arantxa Camil Junco Flores
- Jonathan Alexis Hernández Cuevas
Resumen
Este proyecto presenta el desarrollo de una Red Generativa Antagónica (GAN) combinada con procesamiento de imágenes planetarias para mejorar la resolución, el detalle y el contraste de imágenes de baja resolución y alto ruido.
Logramos resultados satisfactorios, aplicables a diversos campos de procesamiento de imágenes, como cámaras de seguridad, imagenología médica (ultrasonidos) y astronomía.
Resultados de Ejemplo

Introducción
1.1 Astrofotografía
La astrofotografía es una técnica que combina astrofísica y fotografía para capturar imágenes de objetos celestes. Ha evolucionado desde placas fotográficas hasta cámaras digitales de alta resolución.
Los avances tecnológicos han permitido tiempos de exposición más cortos, visualización de imágenes en tiempo real y mejores técnicas de post-procesamiento. Sin embargo, retos como la contaminación lumínica, el ruido digital y la estabilidad de seguimiento de los telescopios siguen afectando la calidad de la imagen.
1.2 SRGANs (GANs de Super-Resolución)
Las SRGANs son un tipo de modelo de deep learning compuesto por dos redes neuronales que compiten entre sí: un generador y un discriminador. El generador toma una imagen de baja resolución e intenta crear una versión de alta resolución, mientras que el discriminador aprende a diferenciar entre imágenes reales y generadas.
Al competir entre sí, ambas redes mejoran, dando como resultado una reconstrucción de imagen de mayor calidad.
1.3 Planteamiento del Problema
La astrofotografía planetaria es particularmente desafiante porque:
- Los planetas se ven pequeños y se mueven rápido en el cielo nocturno.
- La turbulencia atmosférica y el desenfoque por movimiento reducen la calidad de la imagen.
- La resolución típica de fotografía está limitada por la calidad de captura de video.
Una solución común es el apilado de video (video stacking), donde múltiples cuadros de video se combinan para reducir el ruido y mejorar el detalle. Sin embargo, este método sigue estando limitado por la resolución del video.
Nuestro proyecto mejora imágenes planetarias aplicando SRGANs, permitiendo mayor resolución y detalles mejorados incluso partiendo de fuentes de baja calidad.
Instalación
1. Clonar el Repositorio
git clone https://github.com/your_username/your_repo.git
cd your_repo
- Crear un Entorno Virtual
python -m venv venv source venv/bin/activate # En Windows, usa venv\\Scripts\\activate - Instalar Dependencias
pip install -r requirements.txt
Instrucciones de Uso
Prepara tus Datos • Coloca las imágenes planetarias de baja resolución en data/low_res/. • Si están disponibles, coloca imágenes de alta resolución en data/high_res/ para entrenamiento.
Entrena el Modelo
python train.py --config configs/train_config.yaml
Modifica el archivo de configuración según sea necesario para distintos conjuntos de datos.
- Genera Imágenes de Super-Resolución
Una vez entrenado, usa el modelo para mejorar nuevas imágenes:
python generate.py --input data/low_res/ --output results/high_res/
Contribuciones
¡Las contribuciones son bienvenidas!
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature-branch). - Realiza tus cambios.
- Haz commit de tus cambios (
git commit -m 'Added feature X'). - Sube la rama (
git push origin feature-branch). - Abre un Pull Request.
Para cambios mayores, por favor abre primero un issue para discutirlos.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Referencias
La referencia principal de este proyecto es el siguiente artículo:
- Ledig, C., Theis, L., Huszár, F., Caballero, J., Cunningham, A., Acosta, A., Aitken, A., Tejani, A., Totz, J., Wang, Z., & Shi, W. (2017). Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network. arXiv:1609.04802.
Para más detalles, puedes acceder al artículo original aquí.
Contacto
Para preguntas u oportunidades de colaboración: • Diego Villalba
