SRGAN in Astrophotography

Published:

Processing and Enhancement of Planetary Astrophotography Using Generative Adversarial Networks

Repository

GitHub

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

Results on the Moon Results on the Moon Results on Saturn Results on Jupiter


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
  1. Create a Virtual Environment
    python -m venv venv
    source venv/bin/activate  # On Windows, use venv\\Scripts\\activate
    
  2. Install Dependencies
    pip install -r requirements.txt
    

Usage Instructions

  1. Prepare Your Data • Place low-resolution planetary images in data/low_res/. • If available, place high-resolution images in data/high_res/ for training.

  2. Train the Model

    python train.py --config configs/train_config.yaml
    

Modify the configuration file as needed for different datasets.

  1. 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!

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Added feature X').
  5. Push to the branch (git push origin feature-branch).
  6. 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

GitHub

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

Resultados en la Luna Resultados en la Luna Resultados en Saturno Resultados en Júpiter


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
  1. Crear un Entorno Virtual
    python -m venv venv
    source venv/bin/activate  # En Windows, usa venv\\Scripts\\activate
    
  2. Instalar Dependencias
    pip install -r requirements.txt
    

Instrucciones de Uso

  1. 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.

  2. 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.

  1. 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!

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature-branch).
  3. Realiza tus cambios.
  4. Haz commit de tus cambios (git commit -m 'Added feature X').
  5. Sube la rama (git push origin feature-branch).
  6. 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