Introducción a la superresolución mediante Deep Learning

La superresolución es el proceso de recuperación de una imagen de alta resolución (HR) a partir de una imagen de baja resolución (LR). Una imagen puede tener una «menor resolución» debido a una menor resolución espacial (es decir, tamaño) o debido a un resultado de degradación (como el desenfoque). Podemos relacionar las imágenes HR y LR mediante la siguiente ecuación: LR = degradation(HR)

Una imagen de baja resolución conservada junto a su versión de alta resolución. (Foto de Jarrad Horne en Unsplash)

Claramente, al aplicar una función de degradación, obtenemos la imagen LR a partir de la imagen HR. Pero, ¿podemos hacer la inversa? En el caso ideal, ¡sí! Si conocemos la función de degradación exacta, aplicando su inversa a la imagen LR, podemos recuperar la imagen HR.

Pero, ahí está el problema. Normalmente no conocemos la función de degradación de antemano. Estimar directamente la función de degradación inversa es un problema mal planteado. A pesar de esto, las técnicas de Deep Learning han demostrado ser eficaces para la Super Resolución.

Este blog se centra principalmente en proporcionar una introducción a la realización de la Super Resolución utilizando Deep Learning mediante el uso de métodos de entrenamiento supervisado. También se discuten algunas funciones de pérdida y métricas importantes. Gran parte del contenido se deriva de esta revisión de la literatura que el lector puede consultar.

Métodos Supervisados

Como se mencionó anteriormente, el aprendizaje profundo se puede utilizar para estimar la imagen de alta resolución (HR) dada una imagen de baja resolución (LR). Utilizando la imagen de alta resolución como objetivo (o verdad de base) y la imagen de baja resolución como entrada, podemos tratar esto como un problema de aprendizaje supervisado.

En esta sección, agrupamos varios enfoques de aprendizaje profundo en la forma en que se organizan las capas de convolución. Antes de pasar a los grupos, se presenta una introducción sobre la preparación de los datos y los tipos de convolución. Las funciones de pérdida utilizadas para optimizar el modelo se presentan por separado hacia el final de este blog.

Preparación de los datos

Un método fácil de obtener datos LR es degradar los datos HR. Esto se suele hacer difuminando o añadiendo ruido. Las imágenes de menor resolución espacial también pueden ser escaladas por un método clásico de upsampling como la interpolación bilineal o bicúbica. También se pueden introducir artefactos JPEG y de cuantificación para degradar la imagen.

Degradación de una imagen de alta resolución para obtener una versión de baja resolución de la misma. (Foto de Jarrad Horne en Unsplash)

Una cosa importante a tener en cuenta es que se recomienda almacenar la imagen de RH en un formato sin comprimir (o comprimido sin pérdidas). Esto es para evitar la degradación de la calidad de la imagen HR debido a la compresión con pérdidas, que puede dar un rendimiento sub-óptimo.

Tipos de Convoluciones

Además de las clásicas Convoluciones 2D, se pueden utilizar varias variantes interesantes en las redes para mejorar los resultados. Las convoluciones dilatadas (Atrous) pueden proporcionar un mayor campo de visión efectivo, por lo que utilizan información que está separada por una gran distancia. Las conexiones de salto, la agrupación de pirámides espaciales y los bloques densos motivan la combinación de características de bajo y alto nivel para mejorar el rendimiento.

Estrategias de diseño de redes. (Fuente)

La imagen anterior menciona una serie de estrategias de diseño de redes. Puede consultar este documento para obtener más información. Para una cartilla sobre los diferentes tipos de convoluciones comúnmente utilizados en el aprendizaje profundo, puede consultar este blog.

Grupo 1 – Pre-Upsampling

En este método, las imágenes de baja resolución se interpolan primero para obtener una imagen de alta resolución «gruesa». A continuación, se utilizan las CNN para aprender un mapeo de extremo a extremo desde las imágenes de baja resolución interpoladas hasta las imágenes de alta resolución. La intuición fue que puede ser más fácil primero muestrear las imágenes de baja resolución utilizando métodos tradicionales (como la interpolación bilineal) y luego refinar el resultado que aprender un mapeo directo desde un espacio de baja dimensión a un espacio de alta dimensión.

Una red típica de pre-muestreo. (Fuente)

Puede consultar en la página 5 de este documento algunos modelos que utilizan esta técnica. La ventaja es que como el upsampling se maneja con métodos tradicionales, la CNN sólo necesita aprender a refinar la imagen gruesa, lo cual es más sencillo. Además, como no utilizamos convoluciones transpuestas, se pueden evitar los artefactos de tablero de ajedrez. Sin embargo, la desventaja es que los métodos de sobremuestreo predefinidos pueden amplificar el ruido y causar desenfoque.

Grupo 2- Post-Muestreo

En este caso las imágenes de baja resolución se pasan a las CNNs como tales. El upsampling se realiza en la última capa utilizando una capa aprendible.

Una red típica de post-upsampling. (Fuente)

La ventaja de este método es que la extracción de características se realiza en el espacio de menor dimensión (antes del upsampling) y, por tanto, se reduce la complejidad computacional. Además, al utilizar una capa de upsampling aprendible, el modelo puede ser entrenado de principio a fin.

Grupo 3- Upsampling progresivo

En el grupo anterior, aunque la complejidad computacional se redujo, sólo se utilizó una única convolución de upsampling. Esto hace que el proceso de aprendizaje sea más difícil para factores de escala grandes. Para abordar este inconveniente, se adoptó un marco de upsampling progresivo en trabajos como Laplacian Pyramid SR Network (LapSRN) y Progressive SR (ProSR). Los modelos en este caso utilizan una cascada de CNNs para reconstruir progresivamente imágenes de alta resolución a factores de escala más pequeños en cada paso.

Una típica red de remuestreo progresivo. (Fuente)

Al descomponer una tarea difícil en otras más sencillas, se reduce en gran medida la dificultad de aprendizaje y se puede obtener un mejor rendimiento. Además, pueden integrarse estrategias de aprendizaje como el aprendizaje curricular para reducir aún más la dificultad de aprendizaje y mejorar el rendimiento final.

Grupo 4 – Muestreo iterativo ascendente y descendente

Otra arquitectura de modelo popular es la estructura de reloj de arena (o red U). Algunas variantes, como la red de reloj de arena apilado, utilizan varias estructuras de reloj de arena en serie, alternando efectivamente entre el proceso de muestreo ascendente y descendente.

Una típica red de muestreo iterativo ascendente y descendente. (Fuente)

Los modelos bajo este marco pueden extraer mejor las relaciones profundas entre los pares de imágenes LR-HR y, por lo tanto, proporcionar resultados de reconstrucción de mayor calidad.

Funciones de pérdida

Las funciones de pérdida se utilizan para medir la diferencia entre la imagen de alta resolución generada y la imagen de alta resolución real. Esta diferencia (error) se utiliza para optimizar el modelo de aprendizaje supervisado. Existen varias clases de funciones de pérdida, cada una de las cuales penaliza un aspecto diferente de la imagen generada.

A menudo, se utiliza más de una función de pérdida ponderando y sumando los errores obtenidos de cada función de pérdida individualmente. Esto permite que el modelo se centre en los aspectos aportados por múltiples funciones de pérdida simultáneamente.

total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

En esta sección exploraremos algunas clases populares de funciones de pérdida utilizadas para el entrenamiento de los modelos.

Pérdida de píxeles

La pérdida de píxeles es la clase más simple de funciones de pérdida en la que cada píxel de la imagen generada se compara directamente con cada píxel de la imagen verdadera. Se utilizan funciones de pérdida populares como la pérdida L1 o L2 o variantes avanzadas como la pérdida Smooth L1.

Planificación de la pérdida Smooth L1. (Fuente)

La métrica PSNR (analizada a continuación) está muy correlacionada con la diferencia de píxeles, por lo que minimizar la pérdida de píxeles maximiza directamente el valor de la métrica PSNR (lo que indica un buen rendimiento). Sin embargo, la pérdida de píxeles no tiene en cuenta la calidad de la imagen y el modelo suele producir resultados insatisfactorios desde el punto de vista de la percepción (a menudo carecen de detalles de alta frecuencia).

Pérdida de contenido

Esta pérdida evalúa la calidad de la imagen basándose en su calidad perceptiva. Una forma interesante de hacerlo es comparando las características de alto nivel de la imagen generada y la imagen de referencia. Podemos obtener estas características de alto nivel pasando ambas imágenes por una red de clasificación de imágenes previamente entrenada (como una VGG-Net o una ResNet).

Pérdida de contenido entre una imagen real y una imagen generada. (Fuente)

La ecuación anterior calcula la pérdida de contenido entre una imagen real y una imagen generada, dada una red preentrenada (Φ) y una capa (l) de esta red preentrenada en la que se calcula la pérdida. Esta pérdida fomenta que la imagen generada sea perceptualmente similar a la imagen verdadera. Por esta razón, también se conoce como pérdida perceptual.

Pérdida de textura

Para que la imagen generada tenga el mismo estilo (textura, color, contraste, etc.) que la imagen de verdad, se utiliza la pérdida de textura (o pérdida de reconstrucción de estilo). La textura de una imagen, tal y como la describen Gatys et. al, se define como la correlación entre diferentes canales de características. Los canales de características suelen obtenerse a partir de un mapa de características extraído mediante una red de clasificación de imágenes previamente entrenada (Φ).

Cálculo de la matriz de Gram. (Fuente)

La correlación entre los mapas de características está representada por la matriz Gram (G), que es el producto interno entre los mapas de características vectorizados i y j en la capa l (mostrada arriba). Una vez calculada la matriz Gram para ambas imágenes, el cálculo de la pérdida de textura es sencillo, como se muestra a continuación:

Cálculo de la pérdida de textura. (Fuente)

Al utilizar esta pérdida, el modelo está motivado para crear texturas realistas y resultados visualmente más satisfactorios.

Pérdida por variación total

La pérdida por variación total (TV) se utiliza para suprimir el ruido en las imágenes generadas. Toma la suma de las diferencias absolutas entre píxeles vecinos y mide cuánto ruido hay en la imagen. Para una imagen generada, la pérdida de TV se calcula como se muestra a continuación:

Pérdida de variación total utilizada en una imagen de alta resolución generada. (Fuente)

Aquí, i,j,k itera sobre la altura, la anchura y los canales respectivamente.

Pérdida Adversarial

Las Redes Adversariales Generativas (GANs) se han utilizado cada vez más para varias aplicaciones basadas en imágenes, incluyendo la Super Resolución. Las GAN suelen consistir en un sistema de dos redes neuronales -el Generador y el Discriminador- que se baten en duelo.

Dado un conjunto de muestras objetivo, el Generador intenta producir muestras que puedan engañar al Discriminador haciéndole creer que son reales. El Discriminador trata de distinguir las muestras reales (objetivo) de las falsas (generadas). Utilizando este enfoque de entrenamiento iterativo, terminamos con un Generador que es realmente bueno en la generación de muestras similares a las muestras objetivo. La siguiente imagen muestra la estructura de un GAN típico.

GANs en acción. (Fuente)

Se han introducido avances en la arquitectura básica de los GAN para mejorar su rendimiento. Por ejemplo, Park et. al. utilizaron un discriminador a nivel de características para capturar más atributos potenciales significativos de imágenes reales de alta resolución. Puede consultar este blog para ver un estudio más elaborado sobre los avances en los GANs.

Típicamente, los modelos entrenados con pérdida adversarial tienen mejor calidad perceptiva aunque puedan perder en PSNR en comparación con los entrenados con pérdida de píxeles. Un pequeño inconveniente es que, el proceso de entrenamiento de los GANs es un poco difícil e inestable. Sin embargo, se está trabajando activamente en métodos para estabilizar el entrenamiento de los GANs.

Métrica

Una gran pregunta es cómo evaluamos cuantitativamente el rendimiento de nuestro modelo. Para ello se utilizan varias técnicas (o métricas) de Evaluación de la Calidad de la Imagen (IQA). Estas métricas pueden clasificarse a grandes rasgos en dos categorías: métricas subjetivas y métricas objetivas.

Las métricas subjetivas se basan en la evaluación perceptiva del observador humano, mientras que las métricas objetivas se basan en modelos computacionales que intentan evaluar la calidad de la imagen. Las métricas subjetivas suelen ser más «precisas desde el punto de vista de la percepción»; sin embargo, algunas de estas métricas son incómodas, requieren mucho tiempo o son caras de calcular. Otro problema es que estas dos categorías de métricas pueden no ser coherentes entre sí. Por lo tanto, los investigadores suelen mostrar los resultados utilizando métricas de ambas categorías.

En esta sección, exploraremos brevemente un par de métricas ampliamente utilizadas para evaluar el rendimiento de nuestro modelo de superresolución.

PSNR

La relación señal-ruido máxima (PSNR) es una métrica objetiva comúnmente utilizada para medir la calidad de reconstrucción de una transformación con pérdidas. La PSNR es inversamente proporcional al logaritmo del error cuadrático medio (MSE) entre la imagen real y la imagen generada.

Cálculo de la PSNR. (Fuente)

En la fórmula anterior, L es el valor máximo posible del píxel (para las imágenes RGB de 8 bits, es 255). Como es lógico, dado que el PSNR sólo se preocupa de la diferencia entre los valores de los píxeles, no representa tan bien la calidad perceptiva.

SSIM

La similitud estructural (SSIM) es una métrica subjetiva utilizada para medir la similitud estructural entre imágenes, basada en tres comparaciones relativamente independientes, a saber, la luminancia, el contraste y la estructura. De forma abstracta, la fórmula del SSIM puede mostrarse como un producto ponderado de la comparación de la luminancia, el contraste y la estructura calculada de forma independiente.

El SSIM es un producto ponderado de comparaciones como el descrito anteriormente. (Fuente)

En la fórmula anterior, alfa, beta y gamma son los pesos de las funciones de comparación de luminancia, contraste y estructura respectivamente. La representación comúnmente utilizada de la fórmula SSIM es la siguiente:

Representación comúnmente utilizada de la fórmula SSIM. (Fuente)

En la fórmula anterior μ(I)representa la media de una imagen concreta, σ(I)representa la desviación estándar de una imagen concreta,σ(I,I')representa la covarianza entre dos imágenes, y C1, C2 son constantes establecidas para evitar la inestabilidad. Por razones de brevedad, el significado de los términos y la derivación exacta no se explican en este blog y el lector interesado puede consultar la sección 2.3.2 de este documento.

Debido a la posible distribución desigual de las características estadísticas de la imagen o de las distorsiones, evaluar la calidad de la imagen localmente es más fiable que aplicarla globalmente. El SSIM medio (MSSIM), que divide la imagen en múltiples ventanas y promedia el SSIM obtenido en cada ventana, es uno de esos métodos para evaluar la calidad localmente.

En cualquier caso, dado que el SSIM evalúa la calidad de la reconstrucción desde la perspectiva del Sistema Visual Humano, cumple mejor los requisitos de la evaluación perceptiva.

Otras puntuaciones IQA

A continuación se enumeran otros métodos para evaluar la calidad de la imagen. El lector interesado puede consultar este documento para obtener más detalles.

  • Puntuación media de la opinión (MOS)
  • Evaluación basada en tareas
  • Criterio de fidelidad de la información (IFC)
  • Fidelidad de la información visual (VIF)

Conclusión

Este artículo del blog ha cubierto algunos materiales y procedimientos introductorios para el entrenamiento de modelos de aprendizaje profundo para la Superresolución. De hecho, hay técnicas más avanzadas introducidas por la investigación del estado del arte que pueden dar un mejor rendimiento. Además, la investigación en vías como la superresolución no supervisada, mejores técnicas de normalización y mejores métricas representativas podría hacer avanzar mucho este campo. Se anima al lector interesado a experimentar con sus ideas innovadoras participando en retos como el PIRM Challenge.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.