# Face hallucination

Face hallucination es una técnica de súper-resolución que permite obtener una imagen de alta resolución a partir de una imagen de entrada de baja resolución. Se aplica en sistemas de reconocimiento facial para que la identificación y análisis de un rostro sea más fácil y eficaz.
Debido a la importancia de las imágenes en los sistemas de reconocimiento facial, en los últimos años face hallucination se ha convertido en un área de interés para los investigadores.

## Diferencia con súper-resolución de imágenes

La súper-resolución de imágenes es un conjunto de técnicas que permiten obtener una imagen de alta resolución, normalmente a partir de una secuencia de imágenes de baja resolución. La principal diferencia entre ambas técnicas es que face hallucination es la súper-resolución de una imagen de una cara humana.

## Medidas

Una imagen se considera de alta resolución cuando tiene una medida de 128x96 píxeles. Por lo tanto, el objetivo es hacer que la imagen de entrada alcance ese número de píxeles. Los valores más comunes de la imagen de entrada suele ser de 32x24 píxeles o de 16x12 píxeles.
Además, debido a que la mayoría de métodos usan un conjunto de imágenes entrenadas, otro reto es hacer que la imagen de entrada esté alineada con las imágenes entrenadas. Un mal alineamiento puede degradar cualquier método y resultado.

## El algoritmo

En las últimas décadas, se han presentado un gran número de algoritmos específicos para llevar a cabo esta técnica ya que se puede hacer de distintas maneras. A pesar de que se han conseguido grandes éxitos con los métodos existentes, aún hay un gran margen de mejora.
Los algoritmos más comunes normalmente se basan en dos pasos: El primer paso genera una imagen global del rostro que mantiene las principales características de la realidad utilizando el método probabilístico del máximo a posteriori (MAP). En el segundo paso se produce la diferencia de la imagen para compensar el resultado del primer paso. Además, un gran número de algoritmos se basan en un conjunto de pares de imágenes de alta y baja resolución entrenadas.
Cualquier algoritmo de face hallucination debe cumplir con tres restricciones:
Restricción de datos
La imagen de salida debe ser parecida a la de entrada cuando está siendo diezmada.
Restricción global
La imagen de salida debe tener todas las características comunes de una cara humana. Las características faciales deben ser siempre coherentes. Sin esta restricción la imagen de salida puede contener ruido.
Restricción local
La imagen resultante debe tener siempre características muy específicas de un rostro. Sin esta restricción la imagen resultante podría ser demasiado lisa.

## Métodos

Face hallucination mejora las características de un rostro humano aumentando su resolución mediante distintos métodos. El método más fácil para incrementar la resolución de una imagen es la interpolación de la intensidad de los píxeles. La interpolación se puede hacer usando el algoritmo del vecino más cercano, la interpolación bilineal o variantes de la cubic spline interpolation.
También se puede hacer una interpolación con un conjunto de imágenes de alta resolución entrenadas junto a la imagen correspondiente de baja calidad. Sin embargo, la interpolación directa tiene unos resultados muy pobres ya que no se añade nunca nueva información en el proceso. Es por eso que se han propuesto nuevos métodos en los últimos años.

### Face Hallucination basado en la formulación Bayesiana

Este método fue desarrollado por Baker y Kanade, quienes son considerados los pioneros de la técnica face hallucination. El algoritmo está basado en la formulación MAP (Máximo a posteriori) bayesiana y usa gradiente descendiente para optimizar el objetivo de la función. Genera los detalles de alta frecuencia a partir de una estructura de matriz con la ayuda de muestras entrenadas.

### Súper-resolución usando aprendizaje de imágenes

Capel y Zisserman fueron los primeros en proponer el método basado en la imagen local de alta resolución. Este algoritmo divide la imagen de la cara en cuatro regiones clave: Los ojos, la nariz, la boca y las áreas de las mejillas. Para cada área, hace un análisis de componentes principales (PCA) y reconstruye cada área por separado. Sin embargo, en la imagen reconstruida se pueden observar pequeños artefactos entre cada región.

### Face Hallucination via Sparse Coding

Este método fue desarrollado por J. Yang y H. Tang y se basa en una aproximación de la factorización de la matriz no negativa (NMF) explotando las características faciales para aprender un subespacio basado en la parte localizada. Este subespacio es eficaz para recuperar la estructura de la cara global y las principales características locales para la imagen de salida.
Para mejorar más la información de los detalles locales, se emplea la técnica de sparse representation.

### Face Hallucination por Eigentransformation

El método propuesto por Wang y Tang usa una eigentransformation. Este método ve la solución al problema como una transformación entre diferentes estilos de imagen y utiliza un análisis de componentes principales (PCA) que se aplica en la imagen de baja resolución. Seleccionando el número de eigenfaces, se puede extraer una gran cantidad de información facial de la imagen de baja resolución a la vez que eliminamos el ruido. Es decir, la imagen de salida es la combinación lineal de un conjunto de imágenes de entrenamiento de alta resolución con los coeficientes extraídos con el análisis de componentes principales de la imagen de baja resolución.
El algoritmo mejora la resolución de la imagen añadiendo detalles de alta frecuencia. Debido a la similitud estructural que hay entre diferentes rostros, existe una fuerte correlación entre la banda de alta frecuencia y la de baja frecuencia.

### Two-Step approach

Este método desarrollado por C. Liu y Shum usa un modelo global paramétrico y un modelo local no paramétrico. El modelo global paramétrico generaliza bien con las caras comunes y el modelo local no paramétrico está basado en el campo aleatorio Markov (MRF) que aprende las texturas locales de un ejemplo de rostros.
En el primer paso se aprende la relación entre la imagen de alta resolución y la misma pero diezmada y en el segundo paso se modela la resta entre la original de alta resolución y la de alta resolución reconstruida después de haber aplicado un modelo lineal de aprendizaje con la red de Markov no paramétrica para capturar un alto contenido de píxeles. Es decir, para obtener la imagen de alta resolución primero se hace un entrenamiento con una larga colección de rostros en alta definición. Con este conjunto de imágenes, derivamos un modelo global lineal y hacemos la resta entre este conjunto de imágenes. La resta entre estas dos es modelado por la red de Markov para capturar la alta frecuencia de los rostros.

### Face hallucination based on MCA

Este algoritmo trata la súper-resolución como un problema de descomposición de la imagen y propone un método basado en análisis de componentes morfológicos (MCA).
El método se lleva a cabo en tres pasos. En el primero, la imagen de entrada es muestreada con una interpolación. La imagen interpolada se puede representar como la superposición de la imagen de alta resolución global y una máscara de desenfoque. En el segundo paso, la imagen interpolada se descompone en una imagen de alta resolución mediante el uso de un análisis de componentes morfológicos. Finalmente, se realiza una compensación de residuo en la cara global para mejorar la calidad visual.

### Otros métodos

* Face hallucination by tensor patch super-resolution and coupled residue compensation.
* Súper-resolución a través de sparse representation para secuencias de vídeo.
* Hallucinating face by position patch.
* Position-based.
* LPH super-resolution and neighbor reconstruction for residue compensation.

## Resultados

Todos los métodos presentados anteriormente tienen resultados muy satisfactorios y que cumplen con lo esperado. Sin embargo, es difícil determinar qué método es el más efectivo y cual da un mejor resultado. Aun así, se puede afirmar que:
* El método de Baker y Kanade puede distorsionar los rasgos característicos de un rostro.
* El resultado del método desarrollado por Wang y Tang puede crear efecto ringing.