Corrección automática de imágenes subexpuestas y sobreexpuestas con técnicas de aprendizaje automático

Bookmark (0)
Please login to bookmark Close

Este proyecto, el cual recibe el título de “Corrección automática de imágenes subexpuestas y sobreexpuestas con técnicas de aprendizaje automático”, tiene como fin la creación de un modelo de aprendizaje automático propio para realizar la investigación de las técnicas y arquitecturas necesarias para llevar a cabo la corrección automática de errores de exposición tales como la subexposición y la sobreexposición. Este tipo de errores son muy comunes en el ámbito de la fotografía, y aunque su corrección es posible a través del uso de herramientas y aplicaciones externas, la realización de estas modificaciones y el manejo de dichos recursos resulta complejo para un usuario no especializado. Por todo ello, el proyecto realiza el estudio de un modelo de aprendizaje automático capaz de llevar a cabo la tarea de corrección de errores de exposición, donde se busca la sustitución total de la intervención del usuario.
El estado del arte presenta diversos sistemas como solución al problema propuesto, destacando algunos con resultados muy positivos. Sin embargo, los modelos existentes utilizan arquitecturas bastante complejas y elaboradas. En este proyecto se busca el diseño de una solución más sencilla pero ambiciosa, donde se pretenden alcanzar resultados comparables con los ofrecidos en las publicaciones del estado del arte utilizadas como referencia.
Para la realización de la solución propuesta se utiliza una arquitectura de red tipo U-net convolucional contractiva, a través del desarrollo de código fuente en el lenguaje de programación Python. De esta manera se utilizan diversas librerías especializadas en el diseño de modelos de aprendizaje automático como Tensorflow y Keras, junto a librerías utilizadas para el procesado de imágenes como Scikit-image o Matplotlib. También se desarrollan funciones propias para poder realizar diferentes labores, necesarias para el correcto funcionamiento del modelo. Se proponen así una función de pérdida contractiva propia, un sistema de adaptación de las imágenes de entrada y una aplicación de técnicas de weight clipping, entre otras.
El desarrollo de la red pasa así por cuatro etapas. En la primera de ellas se comienza con la documentación, junto a la implementación de la arquitectura inicial y de la estructura del código fuente. Tras ello se realiza la adaptación y preprocesado de las imágenes de entrada, provenientes de la base de datos escogida. Después, se lleva a cabo el entrenamiento y validación del modelo, etapa en la que se realizan diversos entrenamientos de prueba. Finalmente se conduce la etapa de pruebas para obtener las imágenes predichas por el modelo implementado. Cabe destacar que se sigue un modelo de trabajo iterativo, por lo que la arquitectura final de la red es desarrollada a través de una serie de iteraciones en función de los resultados obtenidos en los entrenamientos de prueba y en la etapa de pruebas.
En esta memoria se procede a mostrar, explicar y analizar los resultados de los entrenamientos de prueba y de sus respectivas imágenes resultantes, para comprobar cuál es el efecto de las técnicas y de los hiperparámetros que son utilizados a lo largo del desarrollo del modelo. Esto se refleja en las métricas aplicadas, donde se utilizan las impuestas por el estado del arte, junto a otras que se han considerado de importancia para medir el desempeño de la red.
Finalmente, los resultados alcanzados concluyen en la creación de un modelo que puede considerarse como base para la implementación de un modelo más avanzado, capaz de llevar a cabo el objetivo final. Se ofrecen así direcciones futuras para poder desarrollar la red especificada, en función de los comportamientos analizados a lo largo del desarrollo de las pruebas.
Este proyecto supone además un impacto positivo en la actualidad, debido a la investigación que proporciona y a sus futuras contribuciones en el ámbito social y medioambiental, detallando también su aportación a los Objetivos de Desarrollo Sostenible.
Abstract:
This project, titled “Automatic Correction of Underexposed and Overexposed Images Using Machine Learning Techniques,” aims to develop a custom machine learning model to explore the techniques and architectures required for the automatic correction of exposure errors such as underexposure and overexposure. These types of errors are common in photography, and while they can be corrected using external tools and applications, doing so can be complex for non-specialized users. Therefore, this project focuses on developing a machine learning model capable of performing exposure error corrections autonomously, eliminating the need for user intervention.
The state of the art presents various systems as solutions to the proposed problem, with some achieving very positive results. However, existing models often rely on complex and elaborate architectures. This project seeks to design a simpler yet ambitious solution, aiming to achieve results comparable to those presented in state-of-the-art references.
The proposed solution utilizes a U-Net convolutional contractive architecture, developed using Python. The project employs specialized libraries for designing machine learning models, such as TensorFlow and Keras, alongside image processing libraries like Scikit-image and Matplotlib. Additionally, custom functions are developed to perform various tasks which are essential for the model’s proper functioning. These include a custom contractive loss function, an input image adaptation system, and the application of weight clipping techniques, among others.
The development of the network progresses through four stages. The first stage involves documentation, as well as the implementation of the initial architecture and source code structure. Next, the input images, sourced from the selected database, are adapted and preprocessed. Following this, the model goes through training and validation stages, during which multiple test trainings are conducted. Finally, the testing stage is carried out to obtain the images predicted by the implemented model. An iterative work model is followed, so the final network architecture is developed through a series of iterations based on the results obtained from test trainings and the testing phase.
This report presents, explains, and analyzes the results of the test trainings and the corresponding resulting images to assess the impact of the techniques and hyperparameters used throughout the model’s development. This is reflected in the applied metrics, which include those established by the state of the art, as well as others considered important for measuring the network’s performance.
Ultimately, the results achieved lead to the creation of a model that can serve as a foundation for implementing a more advanced model capable of fulfilling the final objective. Future directions for further developing the specified network are also provided, based on the behaviors analyzed during the training phase and the testing phase.
Moreover, this project has a positive impact due to the research it provides and its potential future contributions in the social and environmental spheres, aligning with the Sustainable Development Goals.

​Este proyecto, el cual recibe el título de “Corrección automática de imágenes subexpuestas y sobreexpuestas con técnicas de aprendizaje automático”, tiene como fin la creación de un modelo de aprendizaje automático propio para realizar la investigación de las técnicas y arquitecturas necesarias para llevar a cabo la corrección automática de errores de exposición tales como la subexposición y la sobreexposición. Este tipo de errores son muy comunes en el ámbito de la fotografía, y aunque su corrección es posible a través del uso de herramientas y aplicaciones externas, la realización de estas modificaciones y el manejo de dichos recursos resulta complejo para un usuario no especializado. Por todo ello, el proyecto realiza el estudio de un modelo de aprendizaje automático capaz de llevar a cabo la tarea de corrección de errores de exposición, donde se busca la sustitución total de la intervención del usuario.
El estado del arte presenta diversos sistemas como solución al problema propuesto, destacando algunos con resultados muy positivos. Sin embargo, los modelos existentes utilizan arquitecturas bastante complejas y elaboradas. En este proyecto se busca el diseño de una solución más sencilla pero ambiciosa, donde se pretenden alcanzar resultados comparables con los ofrecidos en las publicaciones del estado del arte utilizadas como referencia.
Para la realización de la solución propuesta se utiliza una arquitectura de red tipo U-net convolucional contractiva, a través del desarrollo de código fuente en el lenguaje de programación Python. De esta manera se utilizan diversas librerías especializadas en el diseño de modelos de aprendizaje automático como Tensorflow y Keras, junto a librerías utilizadas para el procesado de imágenes como Scikit-image o Matplotlib. También se desarrollan funciones propias para poder realizar diferentes labores, necesarias para el correcto funcionamiento del modelo. Se proponen así una función de pérdida contractiva propia, un sistema de adaptación de las imágenes de entrada y una aplicación de técnicas de weight clipping, entre otras.
El desarrollo de la red pasa así por cuatro etapas. En la primera de ellas se comienza con la documentación, junto a la implementación de la arquitectura inicial y de la estructura del código fuente. Tras ello se realiza la adaptación y preprocesado de las imágenes de entrada, provenientes de la base de datos escogida. Después, se lleva a cabo el entrenamiento y validación del modelo, etapa en la que se realizan diversos entrenamientos de prueba. Finalmente se conduce la etapa de pruebas para obtener las imágenes predichas por el modelo implementado. Cabe destacar que se sigue un modelo de trabajo iterativo, por lo que la arquitectura final de la red es desarrollada a través de una serie de iteraciones en función de los resultados obtenidos en los entrenamientos de prueba y en la etapa de pruebas.
En esta memoria se procede a mostrar, explicar y analizar los resultados de los entrenamientos de prueba y de sus respectivas imágenes resultantes, para comprobar cuál es el efecto de las técnicas y de los hiperparámetros que son utilizados a lo largo del desarrollo del modelo. Esto se refleja en las métricas aplicadas, donde se utilizan las impuestas por el estado del arte, junto a otras que se han considerado de importancia para medir el desempeño de la red.
Finalmente, los resultados alcanzados concluyen en la creación de un modelo que puede considerarse como base para la implementación de un modelo más avanzado, capaz de llevar a cabo el objetivo final. Se ofrecen así direcciones futuras para poder desarrollar la red especificada, en función de los comportamientos analizados a lo largo del desarrollo de las pruebas.
Este proyecto supone además un impacto positivo en la actualidad, debido a la investigación que proporciona y a sus futuras contribuciones en el ámbito social y medioambiental, detallando también su aportación a los Objetivos de Desarrollo Sostenible.
Abstract:
This project, titled “Automatic Correction of Underexposed and Overexposed Images Using Machine Learning Techniques,” aims to develop a custom machine learning model to explore the techniques and architectures required for the automatic correction of exposure errors such as underexposure and overexposure. These types of errors are common in photography, and while they can be corrected using external tools and applications, doing so can be complex for non-specialized users. Therefore, this project focuses on developing a machine learning model capable of performing exposure error corrections autonomously, eliminating the need for user intervention.
The state of the art presents various systems as solutions to the proposed problem, with some achieving very positive results. However, existing models often rely on complex and elaborate architectures. This project seeks to design a simpler yet ambitious solution, aiming to achieve results comparable to those presented in state-of-the-art references.
The proposed solution utilizes a U-Net convolutional contractive architecture, developed using Python. The project employs specialized libraries for designing machine learning models, such as TensorFlow and Keras, alongside image processing libraries like Scikit-image and Matplotlib. Additionally, custom functions are developed to perform various tasks which are essential for the model’s proper functioning. These include a custom contractive loss function, an input image adaptation system, and the application of weight clipping techniques, among others.
The development of the network progresses through four stages. The first stage involves documentation, as well as the implementation of the initial architecture and source code structure. Next, the input images, sourced from the selected database, are adapted and preprocessed. Following this, the model goes through training and validation stages, during which multiple test trainings are conducted. Finally, the testing stage is carried out to obtain the images predicted by the implemented model. An iterative work model is followed, so the final network architecture is developed through a series of iterations based on the results obtained from test trainings and the testing phase.
This report presents, explains, and analyzes the results of the test trainings and the corresponding resulting images to assess the impact of the techniques and hyperparameters used throughout the model’s development. This is reflected in the applied metrics, which include those established by the state of the art, as well as others considered important for measuring the network’s performance.
Ultimately, the results achieved lead to the creation of a model that can serve as a foundation for implementing a more advanced model capable of fulfilling the final objective. Future directions for further developing the specified network are also provided, based on the behaviors analyzed during the training phase and the testing phase.
Moreover, this project has a positive impact due to the research it provides and its potential future contributions in the social and environmental spheres, aligning with the Sustainable Development Goals. Read More