Revelando lo invisible
Revealing Invisible
Ver/ Abrir
Identificadores
URI: http://hdl.handle.net/10902/22459Registro completo
Mostrar el registro completo DCAutoría
Cano Ortiz, Saúl
Fecha
2021-06-15Director/es
Derechos
Atribución-NoComercial-SinDerivadas 3.0 España
Palabras clave
Aprendizaje automático
Visión artificial
Procesado de imágenes
Machine Learning
Computer Vision
Image Processing
Resumen/Abstract
RESUMEN: El proyecto Revealing Invisible, perteneciente al Observatorio Tecnológico HP 2020/21, tiene como objetivo magnificar los cambios aparentemente imperceptibles en secuencias de vídeo. Se abordó el problema utilizando redes neuronales convolucionales (CNNs), utilizando librerías de alto nivel como PyTorch y OpenCV. La propuesta se basa en que la CNN, se entrena con dos imágenes de entrada (original y original ligeramente magnificada), para dar como salida una imagen de salida magnificada (groundtruth). Para ello, no se parte de un conjunto de imágenes de entrenamiento y su respectivo conjunto de validación (imágenes magnificadas), sino que éstas se generan en caliente, de manera dinámica (producción sintética del dataset). En definitiva, el procesado de imágenes comprende los siguientes pasos: realizar una copia de la imagen original, extraer una ventana aleatoria de la misma, aumentar su tamaño en un factor de escala y pegar dicha ventana magnificada en la copia, de manera centrada respecto a la posición de extracción. Dicho pegado se realizará mediante el método de alpha blending, tomando como coeficiente el valor de la gaussiana. Por ende, las únicas diferencias entre la imagen ligeramente aumentada (entrada) y la de groundtruth, serían el factor de escala y el valor de la gaussiana en el borde. Por tanto, la red neuronal propuesta debe aprender a magnificar dichos cambios imperceptibles a partir del método de procesado explicado previamente. Es decir, se entrenará y validará con imágenes, y cuando se aplique a vídeos, las secuencias de vídeo se dividirán en imágenes (frames), se pasarán por la red y se aunarán, para formar el vídeo magnificado. En relación a la optimización de la red, se probarán distintas arquitecturas: capas convolucionales (ConvNets), con bloques residuales (ResNets) y bloque denso (DenseNets). A su vez, para cada arquitectura se ensayarán distintos algoritmos de optimización del descenso por gradiente: SGD, RMSprop y Adam. La evaluación de resultados, se realizará en base a la métrica de validación Mean Square Error (MSE), además de un estudio de las curvas de entrenamiento y validación. Tras escoger la estructura de la red, se confeccionará el estudio de distintos hiperparámetros: learning rate, número de capas y weight decay. La decisión de la arquitectura, algoritmo de optimización e hiperparámetros óptimos, se llevará a cabo en base al estudio teórico realizado inicialmente, teniendo en cuenta criterios como overfitting, vanishing gradient, degradación de la función de coste o métricas de validación. Además, en el modelo final propuesto también se aplicarán métricas de calidad de imagen (image quality assessment) como PSNR, SSIM o MS SSIM. Finalmente, el modelo definitivo se entrenará para un mayor número de épocas y se utilizará en la magnificación de secuencias de vídeos.
ABSTRACT: The Revealing Invisible project, part of the HP Technology Observatory 2020/21, aims to magnify seemingly imperceptible changes in video sequences. The problem was approached using convolutional neural networks (CNNs), utilising high-level libraries such as PyTorch and OpenCV. The proposal is based on the fact that the CNN is trained with two input images (original and slightly magnified original), to produce as output a magnified image (groundtruth). For this, we do not start from a set of training images and their respective validation set (magnified images), but these are generated dynamically (synthetic production of the dataset). In short, image processing comprises the following steps: make a copy of the original image, extract a random window from it, increase its size by a scale factor and paste the magnified window into the copy in a way that is centered with respect to the extraction position. This pasting will be done using the method of alpha blending, taking as a coefficient the value of the Gaussian. Therefore, the only differences between the slightly enlarged image (input) and the groundtruth image would be the scale factor and the value of the Gaussian at the edge. Therefore, the proposed neural network must learn to magnify such imperceptible changes from the processing method explained previously. That is, it will be trained and validated with images, while when applied to videos, the video sequences will be divided into images (frames), passed through the network and joined together, to form the magnified video. In relation to the network optimization, different architectures will be tested: convolutional layers (ConvNets), with residual blocks (ResNets) and dense block (DenseNets). In turn, for each architecture, different gradient descent optimization algorithms will be tested: SGD, RMSprop and Adam. The evaluation of results will be carried out based on the validation metric Mean Square Error (MSE), in addition to a study of the training and validation curves. After choosing the network structure, the study of different hyperparameters will be carried out: learning rate, number of layers and weight decay. The decision of the optimal architecture, optimization algorithm and hyperparameters will be made based on the initial theoretical study, taking into account criteria such as overfitting, vanishing gradient, cost function degradation or validation metrics. In addition, image quality metrics (image quality assessment) such as PSNR, SSIM or MS-SSIM will also be applied in the proposed final model. Finally, the final model will be trained for a larger number of epochs and will be used in the magnification of video sequences.