Red neuronal para mejorar la calidad de las fotos.
En este repositorio se puede encontrar en Jupyter notebook con el código de una red neuronal convolucional desarrollada con Tensorflow (Keras). Esta red se encarga de corregir mala calidad en las fotos (desenfoque y ruido).
La arquitectura que mejor ha rendido hasta el momento puede encontrarse en el cuaderno.
Junto a el cuaderno se encuentra un script python 128_128_gen.py
que toma una imagen "grande" y la divide en secciones de 128x128 píxeles ya que la red neuronal trabaja sobre porciones de estas dimensiones.
El conjunto de entrenamiento se compone de 812 imágenes descargadas de internet (no se proporciona debido a su peso 1,1G y porque no estoy seguro de que sus derechos lo permitan).
De todos modos, para realizar nuevos entrenamientos, basta con:
- Copiar las fotos originales (con la mejor calidad posible) a la carpeta
data/good
. - Ejecutar el script
128_128_gen.py
. Esto genera imágenes de 128x128 píxeles a partir de las originales en las carpetascrops_bad
(empeoradas) ycrops_good
(originales). - Modificar las rutas (si es necesario) en el cuaderno
Los resultados conseguidos hasta la fecha pueden verse en el cuaderno (error medio de 5 en cada canal RGB).
Algunos ejemplos son (izquierda, corregida y derecha, empeorada):
- Configurar nuevas arquitecturas
- Probar más y diferentes conjuntos de entrenamiento
- Modificar el método
make_image
para que haga un "gradiente" de opacidad en los límites de cada "cuadrado" para evitar que en algunas fotos salgan "mallas" (debido al padding de los filtros de la red).