Amplía ese reflejo y compensa la imagen, quizás podamos ver la cara del asesino. ¿Mitos de CSI? Tal vez no… Leticia Aguilar de la Red Escuela Politécnica Superior, Ingeniero de Telecomunicación Email: leticia.aguilar87@gmail.com Resumen En este trabajo vamos a abordar la principal problemática de cómo obtener imágenes en alta resolución (HR) a partir de imágenes de baja resolución (LR) empleando diversas técnicas matemáticas según la fuente de dichas imágenes. En caso de disponer de video, utilizaremos técnicas de block matching y de interpolación utilizando la información temporal disponible. En el caso de disponer de imágenes independientes (still images), utilizaremos una técnica de deep learning conocida como sparse-coding que utiliza subespacios vectoriales de un elevado número de dimensiones. Introducción Seguro que todos hemos visto en la televisión como el guionista aplica grandes derroches de imaginación para salvar la trama en un momento determinado. Que si un “amplía y compensa” para ver el reflejo del asesino en el brillo de la cabeza de un tornillo, estilo CSI o una ampliación de la región de un video para reconocer una cara, como hacen en Underworld. Todos sabemos que esto no es posible, pero el uso y abuso de este recurso ha llegado hasta tal punto que en Futurama han decidido parodiarlo (ver Figura 1). Pero… ¿tienen razón? ¿Es verdad que no se puede hacer? Una imagen digital es un muestreo periódico en 2 dimensiones de la luz que se percibe, y como sabemos, al muestrear una señal, se pierde información. ¿Podemos recuperar esa información de alguna forma? La comunidad científica dice que sí, y lo han demostrado. Este proceso conocido como super resolución utiliza distintas técnicas para conseguirlo. Cuales aplicar depende de la naturaleza de esas imágenes y si estas provienen de un video o es una única imagen. Por definición, una imagen contiene únicamente información espacial, pero si disponemos de un video, podemos combinar la información espacial con la información temporal para conseguir recuperar la información perdida. La clave está 1 Figura 1: al intentar hacer un upsampling de una señal muestreada es necesario hacer una estimación de la información que ha sido descartada en el proceso de muestreo. Esto normalmente se lleva a cabo mediante procesos de interpolación, procesos que no consiguen recuperar la información perdida y que por lo tanto dan lugar a imágenes ampliadas de poca calidad. en el muestreo que hablábamos antes: dado que un pixel es una muestra en una posición fija, si en el siguiente frame del video hay un ligero desplazamiento a nivel de sub-pixel, podemos usar la información recuperada por el 2º frame en el 1º, lo que nos permitirá hacer la ampliación. Conseguir este desplazamiento no es difícil: si hablamos de una cámara de un móvil, los pequeños temblores producidos por el pulso de la persona que sujeta la cámara son suficientes. En el caso de una cámara fija, si esta está en espacios abiertos, puede ser el viento el que proporcione esos movimientos. ¿Se puede aplicar super resolución cuando solo disponemos de una imagen? Es más difícil y los resultados obtenidos son mucho más limitados que en múltiples imágenes, pero si se puede y con cierta calidad. ¿De dónde obtenemos la información que nos falta? ¿Estamos seguros de que esta no se encuentra presente en la propia imagen y no hemos sido capaces de verlo? ¿Se podría usar información de otras imágenes que no tuvieran nada que ver (como por ejemplo de flores) para reconstruir imágenes de tráfico? Necesidades Por lo general, la mayoría de las aplicaciones que obtienen imágenes o vídeos de HR suelen estar basadas en el análisis y procesamiento posterior de las imágenes adquiridas. La mayor calidad de las imágenes de HR facilita la interpretación humana y ayuda también a su procesado mediante técnicas de inteligencia artificial. La resolución de la imagen determina el nivel de detalle con el que la imagen ha sido captada, a mayor resolución, mayor será el nivel de detalle de la imagen. 2 Una imagen digital está compuesta de pequeños elementos pictóricos llamados píxeles. Pueden distinguirse distintos tipos de resolución de una imagen: la resolución de píxeles (la cantidad de píxeles por unidad de superficie en una impresión o en una imagen en pantalla), resolución espacial (referida al número de píxeles por unidad de superficie de la escena de una imagen), resolución espectral, resolución temporal y resolución radiométrica. La resolución espacial de una imagen digital está limitada por el tipo de sensor utilizado en la cámara digital. En la actualidad los sensores de las cámaras suelen ser de tecnología CCD1 (charge-coupled device: dispositivo de cargas eléctricas interconectadas) o de tecnología CMOS2 (complementary metal-oxide-semiconductor: estructuras semiconductor-óxido-metal complementarias). Ambos sensores están organizados en una matriz bidimensional de sensores fotoeléctricos llamados fotositos que capturan la imagen bidimensional. En principio la resolución de las imágenes captadas depende del número de fotositos del sensor. Un alto número de fotositos posibilita una resolución espacial alta de los sistemas de imagen. Los sensores para capturar la imagen deben muestrear la señal continua que les llega procedente de la escena real. La frecuencia de muestreo determina las componentes de alta frecuencia (detalles de la imagen) que pueden ser captadas. Esto es, a menor resolución del sensor menor será la frecuencia de muestreo y menor será el número de componentes de alta frecuencia que puedan ser captadas. La elección de un sensor con un número bajo de fotositos darían lugar a imágenes de LR en las que se apreciarían efectos de bloque (imágenes pixeladas). Una forma de aumentar la resolución espacial de las imágenes sería aumentando el número de píxeles a costa de disminuir el tamaño de los fotositos. Sin embargo, la disminución del tamaño de los fotositos conlleva la disminución de la cantidad de luz que incide sobre cada fotosito, causando el conocido ruido de disparo (shot noise). Esto obliga a establecer un equilibrio entre el tamaño del sensor y la calidad de la señal captada. En consecuencia, las limitaciones hardware derivadas del tamaño del sensor restringen la resolución espacial de las imágenes que pueden ser capturadas. Paralelamente, también los detalles de la imagen (componentes de alta frecuencia) están limitados, entre otros factores, por la óptica, debido al emborronamiento de las lentes (asociado con la función de dispersión puntual: point spread funtion (PSF)), el efecto de las aberraciones de las lentes, la difracción de apertura y el emborronamiento debido al movimiento. La construcción de sistemas de imagen de HR con ópticas de calidad resulta demasiado costosa. Además de las limitaciones por el costo, pueden aparecer limitaciones adicionales propias de su aplicación, como por ejemplo, en el caso de cámaras usadas en vídeo-vigilancia, limitaciones por la velocidad de respuesta y la capacidad de almacenamiento. En el caso de las imágenes de satélite, las restricciones físicas propias del satélite (como peso, condiciones extremas, etc.) limitan el uso ópticas de calidad y de sensores de AR. Otra forma de abordar este problema es procesando las señales de las imágenes tras su captura sacando partido a su degradación y a costa de invertir en medios computacionales tanto hardware como software. Estas técnicas son, específicamente, conocidas como Super Resolución (SR). 3 Campos de aplicación Las aplicaciones de la SR se extienden prácticamente a todos los campos donde se capturen imágenes y se quiera o se necesite mejorar su calidad. En algunos casos, este proceso sólo persigue el aumento de la calidad perceptual, como en las aplicaciones de fotografía o vídeo domésticos, pero en el resto de casos, el proceso de SR podría ayudar de forma importante a otros sistemas de procesamiento de imágenes, como podría ser el caso de los detectores de objetos o los reconocedores ópticos de caracteres (OCR), donde una mejor calidad de la imagen del texto a reconocer mejora de forma importante la cantidad de caracteres correctamente reconocidos. O en seguridad, donde gracias a aplicaciones de SR se puede reconocer una cara o recuperar la matrícula de un vehículo en películas que han sido grabadas por una cámara de seguridad de escasa calidad o a mucha distancia. No podemos olvidarnos de las aplicaciones médicas donde una mejor calidad de imágenes de radiografías, ecografía o resonancia magnética puede resultar decisiva a la hora de encontrar una malformación, una fisura, un trombo o un tumor, por citar solo algunos ejemplos. En la Figura 2 vemos un ejemplo claro de qué se puede conseguir con la aplicación de técnicas de SR Figura 2. Imagen de baja resolución transmitida por el Mars Pathfinder(a) y el resultado obtenido por la NASA tras un proceso de SR combinando 10 imágenes de LR. 4 Súper Resolución a partir de múltiples imágenes Para solucionar el problema de la SR se han sugeridas una variedad de aproximaciones que se pueden englobar principalmente en tres familias: métodos espaciales, soluciones que operan en el dominio de la frecuencia y una familia de técnicas según las cuales la inversión a una imagen HR desconocida es realizada en presencia de muy pocas imágenes LR y modelos propensos a errores de borrosidad. En este trabajo nosotros nos centraremos en los métodos espaciales. Se parte de la hipótesis básica, de que para aumentar la resolución espacial es necesaria la existencia de varias imágenes de baja resolución de la misma escena con pequeños desplazamientos entre ellas, típicamente referidos a desplazamientos de subpixeles. En la figura 3 se muestra una idea intuitiva de lo anterior mediante una rejilla de pixeles (o), seguido de pixeles (Δ y +) de otras dos imágenes con desplazamientos de subpixel. De esta manera las imágenes (Δ) y (+) contienen detalles de la escena no capturados por (o), que luego pueden ser fusionados para proveer en general una escena de máxima resolución. Figura 3. Desplazamiento de subpixel Note que la imagen (Δ) contiene un desplazamiento exacto de un subpixel, mientras que la imagen (+) contiene un desplazamiento de un pixel más un subpixel, a lo cual indica que la aportación de la imagen (+) a la reconstrucción será la menor en el borde izquierdo del marco de referencia (o). Antes de que una imagen de alta resolución I pueda ser reconstruida, se debe especificar un modelo para el cual cada una de las k imágenes de baja resolución gk son generadas a partir de una imagen desconocida i. Luego concibiendo la imagen como pares o vectores (i, gk), se puede formar la siguiente relación: 5 Donde la matriz W k modela el proceso de generación único para cada imagen de baja resolución, y nk es un vector generalizado de ruido. Asumiendo que I es discreto, sin solapamientos de muestreo basta incluir en W k el movimiento relativo al marco de referencia (típicamente los referidos a traslaciones txk y tyk y rotación Δk), el aspecto borroso y la tasa de sub-muestreo (horizontalmente por un factor de L1 y verticalmente por un factor L2). La figura 4 resume este proceso. Figura 4. Proceso de LR a HR El proceso para reconstruir la imagen HR a partir de varias en LR consta de dos etapas: la primera, consistente en la estimación relativa del movimiento entre varios frames ,la realizaremos mediante una versión jerárquica del método conocido como block-matching, mientras que la segunda, de reconstrucción, ubicará la información de las distintas imágenes en una nueva malla de mayor resolución, interpolando aquellos puntos en los que no se haya podido recuperar ninguna información, como se puede apreciar en la Figura 5) Figura 5. Disposición ordenada de la información obtenida de las imágenes LR para formar la imagen HR. 6 Estimación del movimiento relativo El algoritmo empleado se basa en generar una pirámide gaussiana (Figura 6) que nos permita obtener una gran precisión a la hora de estimar el movimiento, hasta llegar a un desplazamiento de 1/8 de pixel y a la vez evitar el efecto conocido como ojo de buey o problema de la apertura (ver Figura 7) que se origina como consecuencia de utilizar una pequeña ventana de observación en la que se puede observar cómo se desplaza un borde, pero sin llegar a observar una esquina y como consecuencia de ello no es posible determinar el movimiento de un objeto de forma precisa A) B) Figura 6: una pirámide gaussiana es una herramienta muy utilizada en visión artificial y consiste en que a partir de la imagen original (la base) I0 se van generando los distintos niveles Ik realizando un downsampling del nivel anterior Ik-1 obteniendo una imagen de un cuarto del tamaño de este. El adjetivo gaussiano hace referencia a que cada etapa de downsampling viene seguida de un desenfoque gaussiano que suaviza la imagen actuando de filtro paso bajo 2D. Figura7: en esta figura se ilustra el problema de la apertura que da lugar a un error en la estimación del movimiento al utilizar una ventana de observación demasiado pequeña en relación con el objeto sujeto de la observación. En la primera fila se puede observar (erróneamente) un desplazamiento horizontal, pero al verlo fuera de la ventana de observación podemos apreciar que el movimiento también tiene una componente vertical. 7 Reconstrucción de la imagen HR Una vez que cada una de las k-1 imágenes LR de no referencia sean registradas respecto a una imagen LR de referencia (estimación del movimiento relativo), los efectos de la tasa de sub-muestreo son superados por la unión de los pixeles registrados de baja resolución en una malla para formar la imagen de alta resolución, como se ilustra en la Figura 5 (el marco de referencia es denotado con (o)). Como las k-1 imágenes LR de no referencia probablemente no tengan desplazamientos exactos de n/L1 y m/L2 horizontal y vertical (con n y m ∈ ℝ), la malla HR terminará con la mayoría de los pixeles LR cayendo entre las posiciones de los pixeles de HR. Así, la interpolación de los pixeles HR no asignados será necesaria. Esto es representado en el tercer marco de la Figura 5 donde el residuo de los pixeles HR está dado por valores interpolados. Finalmente, como los pixeles LR fueron muestreados a partir de una imagen HR borrosa, es necesario un proceso de desenborronamiento para restaurar una estimación clara de la imagen HR original. Debido a que una vez colocados nos encontraremos con que para para algunos pixeles no contamos con información en la red de alta resolución, será necesario hacer una estimación del valor. Para ello, veremos en este trabajo dos soluciones diferentes, interpolación bilineal y los vecinos más cercanos ponderados (weighted nearest neighbors). Interpolación bilineal La interpolación bilineal es una extensión de interpolación lineal para dos dimensiones. Para interpolar un punto dado en la red de HR, se usa el píxel más cercano LR, junto con sus tres vecinos de la misma imagen LR. Los cuatro píxeles LR son los vértices de un cuadrado, con el punto que se interpola ubicado dentro de la plaza. Esto se refleja en la Figura 8. Figura 8. Imagen 1 se corresponde con X; imagen 2 puntos; imagen 3 triángulos, imagen 4 diamantes 8 En la Figura 8, queremos interpolar el punto dirigido por una flecha. Con el fin de hacerlo, buscamos el píxel más cercano. En el ejemplo, se corresponde con un píxel de la imagen 4 (de diamantes en la Figura 8). Entonces, vamos a utilizar los próximos 3 píxeles más cercanos de la misma imagen. Con estos valores, se utiliza la ecuación siguiente (véase Figura 9) y se obtiene el valor del píxel. Figura 9. Interpolación Bilineal Interpolación ponderada del vecino más cercano Un modelo mejor para interpolar los valores sería el uso de la información de los píxeles cercanos de cualquier imagen. Esto se corresponde con la interpolación del vecino más cercano ponderado. Se da diferentes pesos dependiendo de la distancia de los píxeles desde el píxel que podemos calcular su valor. Con el fin de hacer esto, se utilizará la siguiente ecuación: El número del vecino puede ser elegido. En la Figura 10 se expone la metodología utilizada con tres vecinos. El peso del píxel de la Figura 10 será más alto que los píxeles de las imágenes de dos y tres. 9 Figura 10. La imagen 1 se corresponde con X, la imagen 2 con puntos, la imagen 3 con triángulos y la imagen 4 con diamantes. Resultados obtenidos Resultados cuantitativos Para medir la calidad de los algoritmos de SR se utiliza el PSNR (Pico de la relación señal a ruido). Con En la tabla siguiente (Tabla 1) se observa como la weighted nearest neighbor da mejores resultados que la interpolación bilineal, ya que, a mayor PSNR mejor será la reconstrucción realizada. 10 Tabla 1. PSNR frente al número de imágenes con un factor de up-sampling de 2. Resultados cualitativos Para obtener los resultados cualitativos se ha utilizado un teléfono móvil grabando en modo video, que debido a las pequeñas vibraciones producidas por el pulso del observador, ha generado los pequeños desplazamientos entre frames necesarios para generar la imagen HR. Ejemplo 1: cartel indicador de calle Figura 11: esta imagen muestra cartel con el nombre de la calle a la que pertenece y el cual es imposible de leer dadas las condiciones de resolución y calidad de esta imagen. 11 A) B) Figura 12: en A) se muestra un recorte de la Figura 11 ampliado mediante técnicas tradicionales de zoom, como se puede ver, el nombre de la calle sigue siendo imposible de entender. En el caso de B) se muestra el resultado del algoritmo de super resolución, en este caso, ya si que se puede leer que el nombre de la calle es la Via S. Simone. Ejemplo 2: matricula de coche. Figura 13: en esta imagen se muestra un coche cuya matrícula es imposible de distinguir debido a la distancia y a la calidad de la imagen. 12 Figura 14: imagen ampliada usando técnicas de zoom tradicionales. Figura 15: imagen SR utilizando una pirámide gaussiana con 4 vecinos utilizando el método de interpolación weighted nearest neighbor. Al igual que en el ejemplo anterior, se observa una mejora considerable al aplicar SR a la matrícula del coche, ya que pasamos de no apreciar ningún dígito de la misma, a ver los mismos con una claridad suficiente, ya que una vez aplicado SR, es posible distinguir el identificador del vehículo. 13 Súper resolución a partir de una única imagen El problema de aplicar SR a una única imagen consiste en que dada una imagen Y de baja resolución, debemos recuperar una imagen de alta resolución X de la misma escena. En este trabajo veremos dos soluciones a este problema: 1. Que exige que la X recuperada debe ser coherente con la Y de entrada con respecto al modelo de observación de la imagen. 2. Sparse coding, asume que los parches de alta resolución pueden ser representados por un diccionario elegido apropiadamente, y que sus representaciones dispersas pueden ser recuperadas a partir de la observación de baja resolución. 1. El problema de la SR puede verse como un problema inverso (Figura 16): Donde, Yk - imagen LR X - imagen HR D - Matriz de submuestreo Bk - Matriz de emborronamiento Mk - Matriz de warping (desplazamiento relativo) nk - ruido aleatorio Figura 16. Esquema típico de formación de una imagen de baja resolución a partir de una de HR. Así, sabiendo que los datos de que disponemos realmente son los de la imagen en baja resolución, podemos realizar una estimación de la imagen en alta resolución que, tras pasar por el sistema descrito, produjo las mismas. 14 Este procedimiento presenta el problema de que hay infinitas imágenes de HR que satisfacen esta restricción, por lo que se desarrolla el siguiente método que obtiene la mejor la solución posible. 2. En este caso los conjuntos de entrenamiento son modelados como dos diccionarios (uno para los patrones de LR y el otro los patrones de HR) y ambos con el mismo número de patrones. Este algoritmo busca, para cada patrón obtenido de la imagen observada, el conjunto de patrones vecinos en el conjunto de patrones ejemplo de LR, que minimicen la norma L1, más robusta al ruido que la norma L2 (distancia euclídea) que se ha usado en anteriores trabajos. Descripción detallada del algoritmo que se implementa en [2] 1. Entrada: Diccionarios entrenados Dh y Dl, y la imagen de baja resolución Y. 2. Por cada parche de 3x3 y, perteneciente a Y, tomado a partir de la esquina superior izquierda con 1 superposición de píxeles en cada dirección, Calculamos la media de valores de píxel m del parche y. Resolvemos el problema de optimización siguiente: Donde: Siendo en la mayoría de los casos β=1, y F y P se obtiene de resolver el siguiente problema de optimización: donde la matriz P extrae la región de superposición entre el parche de destino actual y la imagen de alta resolución reconstruida previamente, y w contiene los valores de la imagen previamente reconstruida de alta resolución en la superposición. Generar el parche de alta resolución x, tal que: Y ponemos el parche generado x+m en una imagen de alta resolución X0. 3. Fin. 15 4. Usando la técnica del gradiente descendente, encontrar la imagen más cercana a X0 que satisface la restricción de reconstrucción: 5. Salida: Imagen X* de alta resolución. Resultados En las Figuras 17, 18 y 19 podemos apreciar que se consigue gracias al método explicado. De izq. a dcha., imagen original en baja resolución, interpolación bicubica y el método indicado en [2]. Figura 17. Figura 18. Figura 19. 16 En todas las imágenes apreciamos la mejora visual que obtenemos entre la interpolación bicubica (interpolación de mejor calidad que se usa por defecto) y el método implementado en [2], que aplica SR cuando disponemos solo de una única imagen. Evaluando los resultados cuantitativos mediante el Error Cuadrático Medio (RMSE) obtenemos los siguientes resultados: Figura 17 Figura 18 Figura 19 Interpolación bicúbica 6.843 4.066 12.724 Método indicado en [2] 6.525 3.761 11.817 El Error Cuadrático Medio (RMSE o RMSD) es el promedio espacial de las diferencias al cuadrado entre la predicción y el análisis del modelo o de las observaciones de verificación, validas para el mismo instante. Cuanto menor sea el valor del RMSE obtenido mejor será nuestro modelo. Por tanto, el algoritmo implementado mejora los resultados obtenidos por la interpolación bicúbica. Futuras líneas de trabajo Tradicionalmente se ha venido utilizando el PSNR para cuantificar el rendimiento de la súper resolución. No obstante, consideramos que no es la mejor forma de cuantificar este proceso, dado que no tiene en cuenta el factor humano. Se dan casos que utilizando un algoritmo A, la imagen resultante IA obtiene un PSNRA más alto que usando un algoritmo B, sin embargo, la imagen IB se aprecia mejor, por algo tan sencillo como que los bordes estén más acentuados y por lo tanto la imagen parezca mejor enfocada. ¿Es por lo tanto el PSNR una mala medida? Creemos que no, ya que mide la fidelidad de la imagen ampliada con la imagen original, sin embargo sería 17 interesante complementarlo con un análisis perceptual, que permita modelar que algoritmo daría un mejor resultado desde el punto de vista humano. Para ello, y como se viene comentando en algunos foros de debate, creemos que debería usarse el método SSIM (Structural SIMilarity), dado que es más consistente con la percepción del ojo humano. Donde, o la media de ; o la media de ; o la varianza de ; o la varianza de ; o o o o la covarianza de , denominador e ; son dos variables que establecen la división con un tenue el rango dinámico del valor de los pixeles (típicamente es y ); por defecto Naturalmente, todo esto depende del uso que se vaya a dar a estas imágenes reconstruidas. En el caso de utilizar las imágenes en el contexto de una investigación policial, será más interesante aplicar un modelo perceptual para la recuperación con el objetivo de que se puedan reconocer mejor las caras de los implicados. Sin embargo, si dichas imágenes van a conformar la entrada de un sistema de visión por computador, interesará ser lo más fiel posible a la imagen inicial. Por norma general, y recuperando las aplicaciones citadas anteriormente, auguramos que el análisis perceptual va a ser el que más beneficie a la expansión de estas técnica, lo que es consistente con otros avances tecnológicos ocurridos con anterioridad que han tenido una gran explosión como consecuencia de utilizar este tipo de análisis y modelos, como es el caso del formato de compresión MPEG LAYER 3 más comúnmente conocido como MP3. 18 Bibliografía [1] Reconstrucción de imágenes de alta resolución mediante técnicas de super resolución en el dominio espacial. Eduardo García Martin [2] Image Super-Resolution via Sparse Representation Jianchao Yang,Student Member, IEEE,John Wright,Student Member, IEEEThomas Huang,Life Fellow, IEEE and Yi Ma, Senior Member, IEEE [3] Artículo: Superresolución Ing. Fausto Morales [4] http://en.wikipedia.org/wiki/Root-mean-square_deviation [5] Bagon S. Glasner, D. and Irani.M. Super-resolution from a single image. In Proc. of the 12th IEEE International Conference on Computer Vision, (ICCV), 2009. [6] Algoritmos para superresolución en imágenes y vídeo D. Francisco Comeztagle Sepulveda [7] http://en.wikipedia.org/wiki/Superresolution [8] http://en.wikipedia.org/wiki/Structural_similarity 19