Autorizada la entrega del proyecto al alumno:
Miguel Ángel Fernández Sánchez
LOS DIRECTORES DEL PROYECTO
Manuel Alvar Miró Fdo.: ………………………….. Fecha: …….../…….../…...…
Álvaro Arranz Domingo Fdo.: ………………………….. Fecha: …….../…….../…...…
Francisco Nieto Fuentes Fdo.: ………………………….. Fecha: …….../…….../…...…
Vº Bº del Coordinador de Proyectos
Álvaro Sánchez Miralles Fdo.: ………………………….. Fecha: …….../…….../…...…
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
PROYECTO FIN DE CARRERA
IMPLANTACIÓN DE UN ALGORITMO DE SÚPER RESOLUCIÓN
AUTOR: MIGUEL ÁNGEL FERNÁNDEZ SÁNCHEZ MADRID, junio 2010
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resumen
RESUMEN Título: IMPLANTACIÓN DE UN ALGORITMO DE SÚPER RESOLUCIÓN. Autor: Fernández Sánchez, Miguel Ángel. Directores: Alvar Miró, Manuel. Arranz Domingo, Álvaro. Nieto Fuentes, Francisco. Entidad Colaboradora: ICAI – Universidad Pontificia de Comillas.
Con el paso del tiempo, cada vez es mayor la demanda de imágenes de alta resolución. En diversos campos como la medicina, la seguridad o el mundo del ocio y multimedia aparece la necesidad de trabajar con imágenes de alta calidad. Pero no siempre se disponen de imágenes de alta resolución, debido a varios factores como la distorsión debida al límite de difracción del sistema óptico y a la digitalización y muestreo de la imagen. También aparecen otros elementos que empeoran la calidad como movimiento y ruido del entorno. Por estas razones, desde que se empezó a trabajar con imágenes fotográficas, se han investigado e implementado métodos y procedimientos de súper resolución a partir de imágenes de baja calidad. Los algoritmos existentes abarcan campos tales como el dominio de frecuencias espaciales, interpolación no uniforme, reconstrucción regularizada o proyección en conjuntos convexos.
El objetivo principal de este proyecto es desarrollar un algoritmo robusto y eficaz que sea capaz de mejorar la resolución de determinados objetos en movimiento de una secuencia de video gracias a la unión del desplazamiento de éste y al movimiento de la cámara. Con este nuevo enfoque, y utilizando conceptos e ideas de algoritmos ya existentes, se desarrollará un nuevo algoritmo distinto de los existentes. De esta manera se podrá hacer uso de este algoritmo en otros proyectos de visión artificial como análisis de reconocimiento de intrusos o robots de asistencia de personas mayores.
I
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resumen Después de realizar varios diseños se ha llegado a un algoritmo consistente en un problema de optimización. Por lo tanto, a partir de un conjunto de imágenes de baja resolución con un desplazamiento relativo entre ellas muy pequeño, se consigue una imagen de mayor definición. En un primer momento se ha trabajado suponiendo que la imagen es estática siendo la cámara la que proporciona el desplazamiento entre imágenes. De esta forma, en la Ilustración 1 (a) se puede ver el movimiento que debe realizar la cámara (rejilla roja) para obtener, en este caso cuatro imágenes distintas. La rejilla negra indica el grado de resolución que se obtendrá, para este ejemplo 4x4, a partir de cuatro imágenes de 2x2 (rejilla roja).
(a)
(b)
Ilustración 1 Desplazamiento entre las imágenes de baja resolución.
En la Ilustración 2 se puede ver la mejora de calidad obtenida con este algoritmo. Posteriormente, se ha estudiado el movimiento de imágenes sobre un fondo estático. En el caso de que la imagen sea mayor que el tamaño de la rejilla de baja resolución, se puede aplicar el mismo algoritmo de optimización para la imagen que se desplaza. Al igual que ocurría en el caso anterior, el movimiento debe ser conocido previamente por el algoritmo (Ilustración 1 (b)) para obtener, de esta manera un conjunto de imágenes de baja resolución de partida.
II
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resumen
10
20
20
40
30
60
40
80
50
100
60
120
70
140 10
20
30
40
50
60
70
80
90
100
20
110
40
Imagen de baja calidad
60
80
100
120
140
160
180
200
220
Imagen mejorada
Ilustración 2 Resultados obtenidos del algoritmo de optimización.
Por otro lado, también se ha estudiado cómo afecta el fondo estático sobre el que se desplaza la imagen a la hora de reconstruir los bordes de la imagen. Para ello se han desarrollado dos métodos: un simple enfoque aritmético y un enfoque de optimización. En ambos casos se ha obtenido que cuando el fondo estático es completa o relativamente homogéneo, se obtienen unos resultados favorables, pudiéndose reconstruir el contorno de la imagen en movimiento. En cambio, cuando el fondo estático sobre el que se desplaza la imagen es bastante heterogéneo, los resultados obtenidos son muy distintos a la imagen que se debería obtener (Ilustración 3). Imagen Original
Imagen Obtenida
Imagen Imagen original original
Imagen Imagen obtenida obtenida con con "algoritmo.m" "algoritmo.m" 0.5 0.5
0.5 0.5
Fondo Homogéneo
1
1
1
1.5 1.5 2
2
2.5 2.5 0.5 0.5
2
1
1
1.5 1.5
2
2
2.5 2.5
Imagen Imagen original original
1
1
1
1.5 1.5 2
1
1
1.5 1.5
2
2
2.5 2.5
1
1.5 1.5
2
2.5 2.5 0.5 0.5
2
2.5 2.5 0.5 0.5
Imagen Imagen obtenida obtenida con con "algoritmo.m" "algoritmo.m" 0.5 0.5
0.5 0.5
Fondo Heterogéneo
1
1.5 1.5
2
1
1
1.5 1.5
2
2
2.5 2.5
2
2.5 2.5 0.5 0.5
1
1
1.5 1.5
2
2
2.5 2.5
Ilustración 3 Resultados de imágenes sobre distintos tipos de fondos estáticos.
En resumen, en este proyecto se ha obtenido un algoritmo de optimización que partiendo de varias imágenes de baja resolución, es capaz de aumentar significativamente la definición de dichas muestras. Por otro lado, se ha realizado el análisis de imágenes en movimiento, adaptando el algoritmo anterior a esta nueva situación, para obtener una mayor resolución del objeto en movimiento. III
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Abstract
ABSTRACT Title: IMPLEMENTATION OF A SUPER-RESOLUTION ALGORITHM. Author: Fernández Sánchez, Miguel Ángel. Directors: Alvar Miró, Manuel. Arranz Domingo, Álvaro. Nieto Fuentes, Francisco. Collaborative Entity: ICAI – Universidad Pontificia de Comillas.
Over time, there is increasing demand for high-resolution images. In various fields such as medicine, security and the world of multimedia entertainment, the need to work with high-quality images it appears constantly. But not always have high-resolution images, due to several factors such as the distortion due to the diffraction limit of the optical system and digitalization and sampling the image. Also there are other factors that worsen the quality as the environmental motion blur and noise. For these reasons, since the beginning of working with photographic images, methods and procedures of super-resolution from low quality image has been investigated and implemented. The existing algorithms cover areas such as spatial frequency domain, nonuniform interpolation, regularized reconstruction or projection onto Convex Sets.
The main objective of this project is to develop a robust and efficient algorithm that is able to improve the resolution of certain objects in motion in a sequence of video thanks to the unity of this displacement and movement of the camera. With this new approach, using concepts and ideas from existing algorithms, a new algorithm, different from existing ones, will be developed. In this way you can make use of this algorithm in other projects such as intrusion recognition with artificial vision or robots for elderly care.
After several designs it has reached an algorithm consisting of an optimization problem. Therefore, from a set of low-resolution images with a very small relative I
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Abstract displacement among them, you get a better resolution image. At first we have worked with a static image being the camera that provides the displacement among images. Thus, in Figure 1 (a) you can see the movement to be performed by the camera (red grid) to obtain in this case four different images. The black grid indicates the degree of resolution to be obtained, for this example 4x4, from four 2x2 images (red grid).
(a)
(b)
Figure 1 Movement among low-resolution images.
Figure 2 shows the quality improvement obtained with this algorithm. Subsequently, we studied the movement of images on a static background. In the case that the image is larger than the size of the low-resolution grid, you can apply the same optimization algorithm for the moving image. As in the previous case, the movement must be previously known by the algorithm (Figure 1 (b)) to obtain a set of low-resolution images.
II
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Abstract
10
20
20
40
30
60
40
80
50
100
60
120
70
140 10
20
30
40
50
60
70
80
90
100
20
110
40
Low quality image
60
80
100
120
140
160
180
200
220
Improved image
Figure 2 Results of the optimization algorithm.
On the other hand, we have studied how it affects the static background on which the image moves in reconstructing the image’s edges. To this we have developed two methods: a simple arithmetical approach and optimization approach. In both cases it was found that when the static background is complete or relatively homogeneous, favourable results are obtained, being able to reconstruct the contour of the moving image. However, when the static background on which moves the image is quite heterogeneous, the results are very different from the image that should be obtained (Figure 3).
Original Picture
Obtained Picture
Imagen Imagen original original
Imagen Imagen obtenida obtenida con con "algoritmo.m" "algoritmo.m" 0.5 0.5
0.5 0.5
Homogeneous Background
1
1
1
1.5 1.5 2
2
2.5 2.5 0.5 0.5
2
1
1
1.5 1.5
2
2
Imagen Imagen original original
1
1
2
2
2.5 2.5 0.5 0.5
1
1.5 1.5
1
1
1.5 1.5
2
2 2.5 2.5
1
1.5 1.5
2
2.5 2.5 0.5 0.5
2.5 2.5
Imagen Imagen obtenida obtenida con con "algoritmo.m" "algoritmo.m" 0.5 0.5
0.5 0.5
Heterogeneous Background
1
1.5 1.5
2
1
1
1.5 1.5
2
2
2
2.5 2.5 2.5 2.5 0.5 0.5
1
1
1.5 1.5
2
2 2.5 2.5
Figure 3 Image results on different types of static backgrounds
In summary, this project has found an optimization algorithm that is able to improve significantly the definition of several low-resolution images. On the other hand, a moving image analysis has carried out, adapting the above algorithm to this new situation, for a higher resolution of the moving object. III
Documento Nº 1: Memoria
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE LA MEMORIA
Índice de la memoria
Parte I
Memoria .......................................................................................1
Capítulo 1
Introducción .................................................................................2
1.1
Introducción a la Resolución de Imágenes...................................................3
1.2
Estudio de trabajos / tecnologías existentes ................................................6
1.3
Motivación del proyecto ...............................................................................8
1.4
Objetivos .......................................................................................................9
1.5
Metodología / Solución desarrollada .......................................................... 10
1.6
Recursos / herramientas empleadas ........................................................... 11
Capítulo 2
Estado del arte ............................................................................ 13
2.1
Introducción ............................................................................................... 13
2.2
Método de Papoulis-Gerchberg ................................................................. 13
2.3
Modelo de observación ............................................................................... 19
2.4
Algoritmos de reconstrucción de imagen con súper resolución ................ 23
Capítulo 3
Estudio de algoritmos de súper resolución ................................. 31
3.1
Introducción ............................................................................................... 31
3.2
Estudio en una dimensión .......................................................................... 31
3.2.1 Algoritmo1D-v1 ...................................................................................................... 33 3.2.2 Algoritmo1D-v2 y Algoritmo1D-v3 ......................................................................... 36 3.2.3 Algoritmo de optimización en una dimensión ........................................................... 39
II
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE LA MEMORIA 3.3
Estudio en dos dimensiones ........................................................................ 44
3.4
Estudio de reconocimiento de patrones ..................................................... 50
3.4.1 Imagen mayor que la rejilla de muestreo .................................................................. 50 3.4.2 Imagen igual a la rejilla de muestreo ........................................................................ 52
Capítulo 4
Resultados/Experimentos ........................................................... 61
4.1
Algoritmo de optimización en 1D ............................................................... 61
4.2
Algoritmo de optimización en 2D ............................................................... 64
4.3
Movimiento de imágenes mayores que la rejilla de muestreo ................... 70
4.4
Movimiento de imágenes iguales o menores que la rejilla de muestreo .... 73
4.4.1 Cuatro movimientos................................................................................................. 73 4.4.2 Nueve movimientos con fondo blanco ...................................................................... 75 4.4.3 Nueve movimientos con fondo homogéneo .............................................................. 77 4.4.4 Nueve movimientos con fondo heterogéneo ............................................................. 79 4.4.5 Comparativa de resultados ....................................................................................... 81
Capítulo 5
Conclusiones .............................................................................. 83
Capítulo 6
Futuros desarrollos .................................................................... 86
Capítulo 7
Bibliografía ................................................................................ 87
Parte II
Manual de Usuario.....................................................................90
Capítulo 1
Manual de Usuario.....................................................................91
1.1
Algoritmo de optimización en 2D ............................................................... 91
1.1.1 Algoritmo aplicado a una imagen de 17x16 .............................................................. 91 1.1.2 Algoritmo aplicado a imágenes “mon” y “mon2” ..................................................... 92
1.2
Movimiento de imágenes mayores que la rejilla de muestreo ................... 93
1.3
Movimiento de imágenes iguales o menores que la rejilla de muestreo .... 93
1.3.1 Cuatro movimientos................................................................................................. 93 1.3.2 Nueve movimientos con fondo blanco ...................................................................... 94 1.3.3 Nueve movimientos con fondo homogéneo .............................................................. 94 1.3.4 Nueve movimientos con fondo heterogéneo ............................................................. 95
Parte III
Anexos ........................................................................................ 96
III
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE LA MEMORIA Capítulo 1
Anexo I ....................................................................................... 97
1.1
Diseño 01 ..................................................................................................... 97
1.2
Diseño 02 ................................................................................................... 100
1.3
Diseño 03 ................................................................................................... 105
Capítulo 2
Anexo II ................................................................................... 109
2.1
Disco de Airy ............................................................................................ 109
2.2
Límite de difracción en la resolución de imágenes .................................. 110
Parte IV
Código fuente ........................................................................... 112
Capítulo 1
Código fuente Matlab ............................................................... 113
1.1
Algoritmo1D-v1 ........................................................................................ 113
1.2
Algoritmo1D-v2 ........................................................................................ 116
1.3
Algoritmo1D-v3 ........................................................................................ 118
1.4
Algoritmo de optimización en 2D ............................................................. 121
1.5
Movimiento de imágenes mayores que la rejilla de muestreo ................. 128
1.6
Movimiento de imágenes iguales o menores que la rejilla de muestreo .. 133
1.7
Anexos Diseño 01 ...................................................................................... 145
1.8
Anexos Diseño 02 ...................................................................................... 148
1.9
Anexos Diseño 03 ...................................................................................... 153
1.10
Otras funciones ......................................................................................... 157
Capítulo 2
Código fuente GAMS ............................................................... 159
2.1
Algoritmo de optimización en 1D ............................................................. 159
2.2
Algoritmo de optimización en 2D ............................................................. 162
2.3
Movimiento de imágenes iguales o menores que la rejilla de muestreo .. 165
IV
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE FIGURAS
Índice de ilustraciones
Ilustración 1.1-I Haz de luz atravesando un orificio con un diámetro mayor que la longitud
de
onda
asociada
a
un
electrón.
(Fuente:
http://intercentres.cult.gva.es/ieselclot/) ................................................................3 Ilustración 1.1-II Haz de luz atravesando un orificio con un diámetro del orden de la
longitud
de
onda
asociada
a
un
electrón.
(Fuente:
http://intercentres.cult.gva.es/ieselclot/) ................................................................3 Ilustración 1.1-III Disco de Airy de un haz de luz blanca. .....................................4 Ilustración 1.1-IV Sistema común de adquisición de imagen. (Fuente: [1]) ...........5 Ilustración 2.2-I Extrapolación iterativa de g(t) a través del método de PapoulisGerchberg. (Fuente:[10]) .................................................................................... 15 Ilustración 2.2-II Ejemplo de una imagen en distintas partes del método de Papoulis-Gerchberg. (Fuente:[10]) .....................................................................17 Ilustración 2.3-I Modelo de observación que relaciona imágenes de baja resolución con una imagen de alta resolución. (Fuente: [1]) ................................ 20 Ilustración 2.3-II Necesidad de interpolación en la rejilla “HR” del sensor. (Fuente: [1]) ....................................................................................................... 21 Ilustración 2.3-III Esquema para la súper resolución. (Fuente: [1]) ..................... 22 Ilustración 2.4-I Esquema de la interpolación no uniforme. (Fuente: [1]) ............ 23 Ilustración 2.4-II Relación de “aliasing” entre las imágenes LR y HR. (Fuente:[1]) ........................................................................................................................... 25 Ilustración 3.2-I Relación entre imágenes de distinta calidad. (Fuente: [1]) ......... 32
V
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE FIGURAS Ilustración 3.2-II Imágenes de baja resolución con movimiento relativo (rejilla de tamaño 2 y desplazamiento infinitesimal). .......................................................... 33 Ilustración 3.2-III Resultados del Algoritmo1D-v1. ............................................ 35 Ilustración 3.2-IV Píxeles de baja resolución con movimiento relativo (rejilla de tamaño 3 y desplazamiento 1)............................................................................. 37 Ilustración 3.2-V Resultados del Algoritmo1D-v2. ............................................. 38 Ilustración 3.2-VI Resultados del Algoritmo1D-v3. ............................................ 38 Ilustración 3.2-VII Resultado del Algoritmo1D-v2 a una imagen real. ................ 40 Ilustración 3.2-VIII Ejemplo de aplicación del algoritmo de optimización. ......... 43 Ilustración 3.2-IX Valores para el ejemplo de aplicación del algoritmo de optimización. ...................................................................................................... 43 Ilustración 3.3-I Desplazamiento relativo entre muestras para el algoritmo en dos dimensiones. ...................................................................................................... 45 Ilustración 3.3-II Obtención del parámetro LRi,j para el algoritmo de optimización en dos dimensiones............................................................................................. 46 Ilustración 3.3-III Obtención de las estimaciones de los píxeles de alta resolución. ........................................................................................................................... 46 Ilustración 3.4-I Movimiento de la imagen mayor que la rejilla de muestreo sobre fondo estático. .................................................................................................... 51 Ilustración 3.4-II Movimiento de la imagen del mismo tamaño que la rejilla de muestreo sobre fondo estático. ............................................................................ 53 Ilustración 3.4-III Obtención de la matriz “y”. .................................................... 54 Ilustración 3.4-IV Nomenclatura de los píxeles de fondo y de la imagen que se desplaza. ............................................................................................................ 54 Ilustración 3.4-V Movimiento de la imagen considerando 9 posiciones distintas.57 Ilustración 3.4-VI Ecuaciones para la primera rejilla de muestreo. ...................... 58 Ilustración 3.4-VII Conjunto de ecuaciones obtenidas para el caso de cuatro movimientos....................................................................................................... 59
VI
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE FIGURAS Ilustración 4.1-I Resultados del Algoritmo de optimización en una dimensión con una imagen artificial. .......................................................................................... 62 Ilustración 4.1-II Resultados del Algoritmo de optimización en una dimensión con una imagen real. ................................................................................................. 63 Ilustración 4.2-I Imagen real empleada para el Algoritmo de optimización en 2D (“imagen.jpg”). ..................................................................................................64 Ilustración 4.2-II Resultado del Algoritmo de optimización en 2D para “imagen.jpg”. .....................................................................................................65 Ilustración 4.2-III Representación gráfica del error obtenido............................... 66 Ilustración 4.2-IV Imágenes reales empleadas para el Algoritmo de optimización en 2D. ................................................................................................................ 66 Ilustración 4.2-V Resultado del Algoritmo de optimización en 2D para “mon.jpg”. ........................................................................................................................... 68 Ilustración 4.2-VI Resultado del Algoritmo de optimización en 2D para “mon2.jpg”. ........................................................................................................ 68 Ilustración 4.2-VII Esquema Algoritmo de optimización en 2D. ......................... 69 Ilustración 4.3-I Imágenes de baja resolución con una imagen sobre fondo estático. .............................................................................................................. 70 Ilustración 4.3-II Resultados con una imagen mayor que la rejilla de muestreo en movimiento. ....................................................................................................... 72 Ilustración 4.4-I Imagen con cuatro movimientos sobre fondo estático. .............. 74 Ilustración 4.4-II Resultados con una imagen igual que la rejilla de muestreo con 4 movimientos....................................................................................................... 74 Ilustración 4.4-III Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo blanco con “algoritmo.m”. ...................................... 76 Ilustración 4.4-IV Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo blanco con GAMS. .................................................. 77 Ilustración 4.4-V Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo homogéneo con “algoritmo.m”. ............................... 78 VII
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE FIGURAS Ilustración 4.4-VI Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo homogéneo con GAMS. .......................................... 79 Ilustración 4.4-VII Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo heterogéneo con “algoritmo.m”. .............................. 80 Ilustración 4.4-VIII Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo heterogéneo con GAMS. ...................................81 Ilustración 1.1-I Paso 01 en el aumento de la densidad de píxeles. ...................... 98 Ilustración 1.1-II Paso 02 en el aumento de la densidad de píxeles. ..................... 98 Ilustración 1.1-III Paso 03 en el aumento de la densidad de píxeles. ................... 98 Ilustración 1.1-IV Detalle de una iglesia duplicando x3 el número de píxeles. .... 99 Ilustración 1.2-I Muestreo de una imagen con diferentes resoluciones. ............. 101 Ilustración 1.2-II Imagen original e imagen generada inicialmente. .................. 102 Ilustración 1.2-III Imagen original de tamaño 20 y rejilla mínima de tamaño 3. 103 Ilustración 1.2-IV Imagen original de tamaño 100 y rejilla mínima de tamaño 10. ......................................................................................................................... 103 Ilustración 1.3-I Cálculo de los valores de la imagen HR a través de las muestras LR. ................................................................................................................... 106 Ilustración 1.3-II Resultado diseño 03 con imágenes binarias. .......................... 107 Ilustración 1.3-III Resultado del diseño 03 con imágenes en escala de grises. ... 107
VIII
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
ÍNDICE DE TABLAS
Índice de tablas
Tabla 4.1-I Resultados del Algoritmo de optimización en una dimensión con una imagen artificial. ................................................................................................ 62 Tabla 4.1-II Resultados del Algoritmo de optimización en una dimensión con una imagen real. ........................................................................................................ 63 Tabla 4.2-I Tiempos de ejecución del Algoritmo de optimización en 2D para distintas imágenes. ............................................................................................. 67 Tabla 4.4-I Resultados para una imagen de 4 píxeles en movimiento sobre distintos fondos estáticos por diferentes métodos. ............................................... 81 Tabla 4.4-II Diferencias medias entre píxeles de la imagen obtenida y la imagen en movimiento sobre distintos fondos estáticos por diferentes métodos. ............. 82
IX
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción
Parte I MEMORIA
1
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción
Capítulo 1 INTRODUCCIÓN En la mayoría de las aplicaciones con imágenes electrónicas, a menudo son necesarias imágenes de alta resolución HR (“High Resolution”). El término “alta resolución” hace referencia a la elevada densidad de píxeles dentro de una imagen, por tanto, una imagen HR puede ofrecer más detalles que pueden ser críticos en diversas aplicaciones. La necesidad de imágenes de alta definición está presente en una gran variedad de campos. Por ejemplo, una imagen HR en medicina, como puede ser una TAC (Tomografía Axial Computerizada) o una PET (Tomografía por Emisión de Positrones), es extremadamente útil para que el médico pueda realizar un diagnostico lo más acertado posible. Con imágenes HR por satélite puede resultar relativamente fácil distinguir unos objetos de otros. El rendimiento del reconocimiento de patrones en visión por ordenador se puede mejorar considerablemente si se proporcionan imágenes HR. Finalmente, cabe destacar que en el mundo del ocio y entretenimiento, también se demanda una mayor calidad y definición en imagen y video.
Teniendo presente lo anteriormente citado, en este proyecto se trata de diseñar un algoritmo o método de obtención de imágenes de alta resolución o, lo que es lo mismo, súper resolución. En el Capítulo 1 se introduce el tema de la súper resolución, se exponen la motivación, la metodología, recursos y objetivos del proyecto. En el Capítulo 2 se realizará un estudio del estado del arte de los principales algoritmos de resolución existentes. En el Capítulo 3 se desarrollará todo el trabajo realizado a lo largo del proyecto, tanto en una como en dos dimensiones, y el estudio de imágenes en movimiento. En el Capítulo 4 se mostrarán los principales resultados logrados en el proyecto, seguido de las conclusiones y futuros desarrollos en el Capítulo 5 y Capítulo 6, respectivamente.
2
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción
1.1 INTRODUCCIÓN A LA RESOLUCIÓN DE IMÁGENES
El problema de la baja resolución de una imagen cualquiera tiene su origen en el fenómeno de la difracción. La difracción es un factor que limita la calidad de las imágenes producidas por causa de un ocultamiento óptico. Si se hace pasar por un orificio un haz de electrones y se observa el impacto que produce sobre una pantalla, se obtiene una imagen como la de la Ilustración 1.1-I. A medida que se va reduciendo el tamaño del orificio, cuando éste es del orden de la longitud de onda asociada, según De Broglie, al electrón, los resultados que se obtienen son totalmente distintos. En la pantalla aparece el resultado, que es análogo en todo a la figura de difracción que produce una onda (Ilustración 1.1-II).
Ilustración 1.1-I Haz de luz atravesando un orificio con un diámetro mayor que la longitud de onda asociada a un electrón. (Fuente: http://intercentres.cult.gva.es/ieselclot/)
Ilustración 1.1-II Haz de luz atravesando un orificio con un diámetro del orden de la longitud de onda asociada a un electrón. (Fuente: http://intercentres.cult.gva.es/ieselclot/)
3
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción La difracción producida por una apertura circular produce un patrón de interferencia característico de modo que la imagen obtenida de una fuente de luz puntual forma una mancha difusa con un patrón de líneas concentradas en una sola. Una fuente puntual produce un disco luminoso denominado “Disco de Airy” (Ilustración 1.1-III) y su diámetro constituye el límite de resolución por difracción de un instrumento óptico. Por lo tanto, en el caso de una fotografía, la difracción provoca que un haz de luz, al atravesar un orificio pequeño, como es el diafragma de una cámara fotográfica, se disperse llegando al sensor (o película) no ya como tal rayo de luz sino que se extiende dando lugar al ya mencionado “Disco de Airy”. A medida que cerramos más el diafragma, la luz se dispersa más y el “Disco de Airy” crece, con el consiguiente emborronamiento de la imagen. Cuando éste alcanza el tamaño físico mayor que el de un píxel, simplemente ya no se puede resolver tanto detalle.
Ilustración 1.1-III Disco de Airy de un haz de luz blanca.
En el Capítulo 2 de la Parte III se explica con mayor detalle el fenómeno del disco de Airy y el efecto de la difracción en la resolución de imágenes.
El análisis realizado hasta el momento, es puramente analógico, es decir, no se ha tenido en cuenta en ningún momento la digitalización de la imagen. Al discretizar una imagen, como es obvio, se pierde información ya que se toman un número
4
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción finito de muestras. A pesar de este inconveniente, se presenta la ventaja de poder trabajar con estas imágenes de forma más sencilla con cualquier ordenador y, por tanto, poder elaborar algoritmos que mejoren la calidad de dichas imágenes.
Ilustración 1.1-IV Sistema común de adquisición de imagen. (Fuente: [1])
Por lo tanto, en el proceso de captura de una imagen se tienen una serie de factores que reducen significativamente la calidad de la misma. En la Ilustración 1.1-IV se muestra el proceso de adquisición más común de una imagen (véase [1]). Como ya se ha visto, se produce una pérdida de información debida al sistema óptico y al límite de difracción anteriormente citado (“Optical Distortion”). La segunda pérdida de información se produce al digitalizar la información (“Aliasing”). En aplicaciones profesionales y cámaras digitales los sensores más populares son los CCD (“Charge-Coupled Device”). Éstos constan de un conjunto de diminutas células fotoeléctricas que registran la imagen. La capacidad de resolución dependerá del número de células que tenga el sensor. Tampoco hay que olvidarse de otros factores ambientales como son el ruido y el
5
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción movimiento (“Noise and Motion Blur”) que también participan en la distorsión de la imagen. Finalmente se obtiene una imagen distorsionada, muestreada, emborronada y con ruido, con una calidad muy inferior a la imagen que se pretendía capturar.
1.2 ESTUDIO DE TRABAJOS / TECNOLOGÍAS EXISTENTES
Antes de explicar los diferentes métodos de mejora de resolución existentes, es preciso explicar que todos ellos requieren de un proceso previo muy importante: el registro de imágenes (véase [2] y [3]). Todos los métodos de súper resolución trabajan con un conjunto de imágenes de baja resolución con unas determinadas características o requisitos, como por ejemplo pueden ser la existencia de un determinado movimiento relativo entre imágenes, determinados niveles de emborronamiento o la obtención de una misma imagen desde diferentes puntos de vista. Dependiendo de qué proceso se vaya a llevar a cabo, se necesitarán unas imágenes u otras. Los métodos de captura o registro de imágenes se pueden clasificar en cuatro grandes grupos:
-
Escena desde diferentes puntos de vista.
-
Escena en diferentes tiempos (análisis multitemporal).
-
Escena con diferentes sensores (análisis multimodal).
-
Escena con registro de imágenes y modelo.
La mayoría de los métodos de registro constan de una serie de pasos que son los siguientes:
-
Detección de características (“Feature Detection”): en este primer paso se deben registrar todos los patrones y objetos distintivos de forma manual o, 6
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción preferiblemente, de forma automática para su posterior procesamiento. Estas características pueden ser identificadas por sus puntos más representativos (centros de gravedad, finales de línea, puntos distintivos), los cuales son denominados “puntos de control” (CP’s). -
Coincidencia de características (“Feature Matching”): se debe establecer una correspondencia entre las características detectadas en la imagen percibida y en la imagen de referencia. Para este fin se utilizan varios descriptores de características y medidas de similitud.
-
Estimación
del
modelo
de
transformación
(“Transform
Model
Estimation”): se deben estimar una serie de parámetros de la función denominada “mapping” alineando la imagen percibida con la de referencia. -
Re-muestreo de la imagen y transformación (“Image Re-sampling and Transformation”): la imagen percibida debe ser transformada por medio de las funciones “mapping”.
Finalmente, en relación al tema de la mejora de la calidad de imágenes, un gran número de personas han investigado sobre el tema, y se pueden encontrar varios métodos para obtener imágenes de alta resolución a partir de imágenes de baja resolución. Sin embargo, la mayoría de los métodos son pequeñas variaciones de otros ya creados. Por lo tanto, de forma general, los métodos de súper resolución se pueden dividir de la siguiente manera:
-
Métodos de interpolación no uniforme.
-
Métodos en el dominio de la frecuencia.
-
Métodos de reconstrucción regularizada.
-
Métodos de proyección en conjuntos convexos (POCS).
7
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción Fuera de esta pequeña división se pueden encontrar otros métodos que usan filtros, procesos iterativos o incluso, algunos métodos que pueden construir una imagen de alta resolución a partir de imágenes de baja resolución con distintos factores de emborronamiento o distorsión (véase [5]). Un nuevo método que se está investigando recientemente es el uso de redes neuronales aplicadas a la mejora de resolución (véase [6]).
En esta sección se ha realizado una introducción al problema de la resolución en imágenes. En el Capítulo 2 se comentarán algunos de los métodos existentes en la mejora de la resolución de imágenes entrando más en detalle.
1.3 MOTIVACIÓN DEL PROYECTO
Como ya se ha comentado anteriormente en la introducción, con el paso del tiempo es cada vez mayor la demanda de imágenes de alta resolución en una gran variedad de campos. En determinadas ocasiones se puede trabajar con imágenes de baja resolución, pero este no es el caso habitual. Normalmente cuando se trabaja con imágenes, se quiere obtener información de éstas. Si las imágenes son de baja calidad, no aportan toda la información requerida, convirtiéndolas en ocasiones en inútiles a la hora de trabajar con ellas. Con una secuencia de video sucede lo mismo, si ésta es de baja calidad no se podrá extraer de ella toda la información requerida. Por lo tanto, para poder sacar el máximo partido de una imagen o secuencia de video, estas tienen que encontrarse en alta calidad. El problema es que comúnmente no se suele disponer de imágenes o secuencias de video con este tipo de características.
Por lo tanto es necesario desarrollar métodos que permitan mejorar la resolución de las imágenes de baja calidad hasta llegar a la súper resolución. Aunque existen
8
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción una serie de métodos de súper-resolución ya desarrollados, ninguno cumple las expectativas y necesidades a las cuales va dirigido este proyecto: un algoritmo robusto, sencillo, fiable y eficiente que sea capaz de mejorar la resolución tanto de un conjunto de imágenes de baja resolución como de una secuencia de video de baja calidad, de tal forma que se pueda integrar en otros proyectos de visión artificial con robots con identificación de objetos o reconocimiento facial, entre otros. Tomando algunas ideas de otros algoritmos y procesos ya existentes (como son los movimientos relativos a nivel de sub-píxel o procesos de optimización), se pretende desarrollar un nuevo método que mejore de manera eficaz cualquier tipo de imagen o video de baja calidad.
1.4 OBJETIVOS
El objetivo general del proyecto es desarrollar un método o algoritmo que sea capaz de mejorar la resolución de un conjunto de imágenes de poca resolución o una secuencia de video de baja calidad. De forma más concreta, los objetivos principales del proyecto son dos:
-
Implementación de un algoritmo capaz de mejorar la resolución de forma unidimensional con movimiento conocido (desplazamiento entre imágenes conocido) en imágenes binarias (blanco y negro) como puede ser por ejemplo código Morse o códigos de barrar.
-
Implementación de un algoritmo capaz de mejorar la resolución de forma bidimensional con movimiento conocido (desplazamiento entre imágenes conocido) en imágenes binarias (blanco y negro) como por ejemplo letras o números.
9
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción Por otro lado, en un segundo plano, están presentes los siguientes objetivos secundarios:
-
Implementación de un algoritmo capaz de mejorar la resolución de forma unidimensional con movimiento conocido en imágenes con escala de grises.
-
Implementación de un algoritmo capaz de mejorar la resolución de forma bidimensional con movimiento conocido en imágenes con escala de grises.
-
Implementación de los algoritmos anteriores con movimiento desconocido, como por ejemplo una secuencia de video.
-
Comparativa de los algoritmos diseñados con otros algoritmos ya existentes.
1.5 METODOLOGÍA / SOLUCIÓN DESARROLLADA
La metodología de trabajo es la siguiente:
-
En primer lugar se realizan una serie de hipótesis o prerrequisitos de partida que relacionan la imagen de alta resolución con las de baja, como son por ejemplo un determinado desplazamiento relativo conocido entre las muestras de baja resolución, una estimación de la formación de los píxeles de baja resolución a partir de los de alta. Estas hipótesis son necesarias ya que en un principio se va a trabajar con imágenes de baja resolución generadas automáticamente a partir de una imagen de alta resolución. Así se pueden obtener conjuntos de imágenes con los requisitos necesarios y se puede verificar el funcionamiento del algoritmo de forma cualitativa (comparación visual) y cuantitativa (cálculo de error).
10
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción -
En segundo lugar se generarán las imágenes de baja resolución mencionadas anteriormente. Por simplicidad se va a trabajar en un primer momento con imágenes binarias (blanco y negro) y posteriormente con imágenes en escala de grises. Por lo tanto todas las imágenes en color serán transformadas previamente de RGB a escala de grises.
-
Una vez que se tiene el conjunto de imágenes de baja resolución, a partir de éstas y de las hipótesis de partida se estudia y diseña un algoritmo capaz de reconstruir la imagen original o una lo más parecida posible.
-
El siguiente paso es obtener y ordenar toda la información necesaria para ejecutar el algoritmo a partir de las imágenes de baja resolución.
-
Finalmente se ejecuta el algoritmo, se depuran posibles errores y se analizan los resultados obtenidos, variando, mejorando o incluso descartando el algoritmo diseñado.
1.6 RECURSOS / HERRAMIENTAS EMPLEADAS
Las herramientas disponibles para la realización del proyecto han sido las que a continuación se describen:
-
La herramienta de cálculo numérico “Matlab” (v7.9), “Simulink” y la “Video and Image processing toolbox” para todo el tratamiento de imágenes y diseño y desarrollo de los algoritmos.
-
La herramienta de modelado de alto nivel para optimización matemática GAMS (“General Algebraic Modeling System”) para ejecutar los algoritmos que impliquen cualquier tipo de optimización.
-
Ordenador Personal o Modelo: HP m8180.es o Procesador: Intel(R) Core(TM)2 Quad CPU @ 2.40GHz. 11
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Introducción o RAM: 2GB. o Sistema operativo: Windows VistaTM Home Premium (Service Pack 2). -
Ordenador Portátil o Modelo: HP Pavilion tx2500 Notebook PC o Procesador: AMD TurionTM X2 Dual-Core Mobile RM-72 @ 2.10GHz. o RAM: 3GB. o Sistema operativo: Windows VistaTM Home Premium (Service Pack 2).
12
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte
Capítulo 2 ESTADO DEL ARTE 2.1 INTRODUCCIÓN
En este capítulo se van a exponer los métodos desarrollados por otros autores en el campo de la súper resolución de imágenes. En primer lugar se explicarán las primeras ideas llevadas a cabo por A. Papoulis y R.W. Gerchberg, trabajando con los espectros de frecuencia de las imágenes. En segundo lugar se expondrá un modelo de observación a partir del cual se han desarrollado una serie de métodos que se comentarán posteriormente.
2.2 MÉTODO DE PAPOULIS-GERCHBERG
Como ya se ha comentado en el capítulo anterior, existen una gran variedad de métodos que tratan de mejorar la resolución de imágenes de baja calidad. Los primeros algoritmos desarrollados fueron una aplicación del algoritmo de Papoulis-Gerchberg. Este es un método de extrapolación de señal que trabaja en el dominio de la frecuencia. Esta extrapolación es necesaria cuando se quiere obtener información de una señal disponiendo solamente de un subconjunto de esta. En el campo de la súper resolución esta teoría ha sido aplicada a la hora de obtener el espectro completo de una imagen a partir de espectros limitados por la difracción. En ocasiones, este tipo de métodos se vuelven irrealizables en presencia de ruido, aunque éste se encuentre de forma mínima.
13
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte El método de Papoulis-Gerchberg es un algoritmo de súper resolución basado en el trabajo realizado independientemente por Papoulis [7] y Gerchberg [8]. Mientras Gerchberg proponía un método para llevar a cabo una reconstrucción de una señal dado su límite de difracción y una parte del espectro, la motivación del trabajo de Papoulis estaba en la extrapolación de una señal con ancho de banda limitado de solamente una parte de la señal original, por ejemplo, determinación de la transformación (Ecuación 2.2-I) de la señal f (t ) dado solamente un segmento finito (Ecuación 2.2-II). Ecuación 2.2-I
Ecuación 2.2-II
F ( )
g (t ) f (t ) pT (t ),
f (t )·e jt dt 1, pT (t ) 0,
t T t T
Esto se puede ver en la Ilustración 2.2-I, donde (c) representa una versión truncada de (a). La extrapolación de la señal es llevada a cabo por el método de proyecciones alternas [9], iterando de forma alterna entre el dominio del tiempo y de la frecuencia. La señal g (t ) , en primer lugar es filtrada con un filtro paso bajo de frecuencia de corte , asumiendo que es el ancho de banda de la señal f (t ) . Esto se ilustra en la formación de F1 ( ) en la Ilustración 2.2-I figura (f), a
partir de G( ) G0 ( ) mostrada en la figura (d).
14
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte
Ilustración 2.2-I Extrapolación iterativa de g(t) a través del método de Papoulis-Gerchberg. (Fuente:[10])
En la iteración enésima esto puede ser expresado como se muestra en la Ecuación 2.2-III.
Ecuación 2.2-III
Fn ( ) Gn 1 ( )· p ( ),
1, p ( ) 0,
En la Ecuación 2.2-III, el filtro p ( ) es ideal, pero se puede seleccionar cualquier tipo de filtro paso bajo. La función inversa de F1 ( ) es por tanto denominada f1 (t ) (Ilustración 2.2-I figura (e)). De esta manera se obtiene como 15
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte resultado un error en la señal de f (t ) f1 (t )
2
fuera del segmento conocido de la
señal. Esto viene del teorema de Parseval. Sin embargo, la señal f1 (t ) no coincide con la señal observada g (t ) en la región [-T, T]. Por lo tanto, esta parte de la señal es restaurada con el segmento conocido de la señal original creándose así la señal g1 (t ) para la siguiente iteración (Ilustración 2.2-I figura (g)). El cambio que resulta en el dominio de la frecuencia debido a la introducción de componentes de alta frecuencia se muestra en la Ilustración 2.2-I figura (h). Generalizando esto para la iteración enésima se obtiene la Ecuación 2.2-IV.
Ecuación 2.2-IV
g (t ), g n (t ) f n (t ) [ f (t ) f n (t )] pT (t ) f n (t ),
t T t T
Este proceso se itera nuevamente con la señal g1 (t ) formada. En cada iteración, la media cuadrática del error de la señal extrapolada se reduce [7]. Por consiguiente, con las sucesivas iteraciones, la señal extrapolada se va aproximando a la señal f (t ) deseada. La convergencia del método está garantizada [7]. Sin embargo, el
proceso requiere de un número infinito de iteraciones. Además, en la práctica, los datos medidos de la señal g (t ) g0 (t ) contendrán error. La propagación de este error puede ser controlada finalizando pronto el proceso iterativo [5, 7]. También, el proceso asume que la señal f (t ) está limitada en su ancho de banda, pero se ha comprobado que el método funciona razonablemente bien para señales con suficientemente baja energía en las componentes de más alta frecuencia. En la Ilustración 2.2-II se puede ver una imagen y su evolución en los distintos pasos del algoritmo de Papoulis-Gerchberg. La figura (a) se corresponde con el comienzo de la iteración 1 con la rejilla de alta resolución parcialmente rellenada con los datos proporcionados por la imagen de baja resolución. La figura (b) se corresponde con la imagen después de pasarla por un filtro paso bajo con una frecuencia de corte normalizada de 0,6. Finalmente la figura (c) se corresponde con la imagen después de modificar los píxeles de valor conocido. Las figuras (d),
16
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte (e) y (f) son respectivamente los espectros de frecuencia en escala logarítmica de las figuras (a), (b) y (c).
Ilustración 2.2-II Ejemplo de una imagen en distintas partes del método de Papoulis-Gerchberg. (Fuente:[10])
Como ya se ha comentado, este fue el primer algoritmo que se aplicó a la resolución de imágenes. A partir de él se han desarrollado otros algoritmos mejorando las prestaciones y resultados, como por ejemplo el método de Papoulis-Gerchberg Modificado [10]. En este proceso se tiene en cuenta el muestreo de la imagen, ya que el algoritmo de Papoulis-Gerchberg era puramente analógico, en ningún momento se tenía en cuenta la pérdida de resolución debida al proceso de digitalización. Por lo tanto, en este último método se calcula el error entre la imagen de baja resolución original y simulada aplicando modelos de discretización, y se usa este error para realizar proyecciones hacia atrás al igual que en el método de Irani y Peleg [11], pero trabajando solamente con una imagen
17
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte de baja resolución. Este proceso se puede ver en el Pseudocódigo 2.2-I. Una de las principales ventajas del método de Papoulis-Gerchberg es que solamente se trabaja con una imagen de baja resolución.
Pseudocódigo 2.2-I Algoritmo de Papoulis-Gerchberg Modificado. (Fuente:[10])
18
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte
2.3 MODELO DE OBSERVACIÓN
El primer paso para un análisis comprensivo del problema de la reconstrucción de imágenes de súper resolución es formular un modelo de observación [1] que relacione la imagen original de alta resolución con las muestras observadas de baja resolución. Varios son los modelos que se han propuesto en la literatura, y se pueden dividir en modelos para imágenes estáticas y para secuencias de video. A continuación se expondrá el modelo para imágenes estáticas. Considérese que la imagen de alta resolución es de tamaño L1 N1 x L2 N 2 escrito en notación lexicográfica como un vector x [ x1 , x2 ,...., xN ]T , donde N L1 N1 x L2 N2 . El vector x se corresponde con la imagen ideal sin degradar que es muestreada. Por otro lado, los parámetros L1 y L2 representan el factor de muestreo en el modelo de observación para los ejes horizontal y vertical, respectivamente. Cada muestra de baja resolución observada es de tamaño
N1 x N 2 . Con la notación
T lexicográfica, la imagen k-ésima de baja resolución es yk [ xk ,1 , xk ,2 ,...., xk ,M ]
para k 1, 2,..., p y M N1 x N2 . Ahora, se asume que x permanece constante durante el proceso de adquisición de imágenes de baja resolución, exceptuando cualquier movimiento o degradación permitidas por el modelo. Por tanto, las muestras de baja resolución resultan de unos operadores de emborronamiento, movimiento y submuestreo a partir de la imagen x . Finalmente, asumiendo que cada imagen de baja resolución está afectada por ruido, se obtiene el siguiente modelo de observación [5], [12]:
Ecuación 2.3-I
yk DBk M k x nk
1 k p
Cada uno de los elementos de la Ecuación 2.3-I son los siguientes: M k es la matriz de deformación de tamaño L1 N1L2 N2 x L1 N1L2 N2 , Bk es la matriz de
19
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte emborronamiento de tamaño L1 N1L2 N2 x L1 N1L2 N2 , D es una matriz de tamaño
N1N2
2
x L1 N1L2 N2 que representa el submuestreo, y finalmente, nk representa
el ruido en forma de vector. En la Ilustración 2.3-I se representa en forma de diagrama de bloques el modelo de observación.
Ilustración 2.3-I Modelo de observación que relaciona imágenes de baja resolución con una imagen de alta resolución. (Fuente: [1])
Con la matriz M k se modela el movimiento durante la adquisición de las imágenes. Contiene las traslaciones y rotaciones locales o globales entre píxeles. Como esta información es normalmente desconocida, necesitamos estimar el movimiento de cada escena con referencia a una escena en particular. El proceso de movimiento de la imagen de alta resolución x está definido en realidad en términos de los píxeles de baja resolución cuando se estiman. Por ello, este paso requiere interpolación cuando la unidad de movimiento no es igual a la rejilla del sensor de alta resolución. Un ejemplo de traslación global se muestra en la Ilustración 2.3-II. El círculo (○) representa la imagen de alta resolución original (referencia), y el triangulo (Δ) y diamante (◊), representan versiones desplazadas de la imagen x . Si el factor de submuestreo es dos, el diamante se ha desplazado (0.5, 0.5) a nivel de subpíxel en las direcciones vertical y horizontal. En cambio el triangulo, tiene un desplazamiento menor que (0.5, 0.5). Por lo tanto, el diamante no necesita interpolación, pero el triangulo sí, ya que no está situado en la rejilla de alta resolución. Aunque se podría usar interpolación ideal teóricamente, en la
20
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte práctica, en la literatura se pueden encontrar métodos simples como retenedor de orden cero o métodos de interpolación bilineal.
Ilustración 2.3-II Necesidad de interpolación en la rejilla “HR” del sensor. (Fuente: [1])
Por otro lado, la matriz Bk refleja el emborronamiento, el cual puede ser causado por el sistema óptico (fuera de enfoque, límite de difracción), movimiento relativo entre el sistema de imagen y la escena original y la “PSF” (“Point-Spread Function”) del sensor LR. Puede ser modelado como un espacio lineal invariante o variante. La “PSF” del sensor LR es a menudo modelada como un operador de media espacial, tal y como se podrá ver en la Ilustración 3.2-I. La matriz de emborronamiento se asume conocida, pero si es difícil de obtenerla, la identificación del emborronamiento debería ser incorporada en el proceso de reconstrucción.
Aunque el tamaño de D es el mismo en este caso, se puede usar diferentes tamaños de imagen utilizando matrices de muestreo distintas Dk . Aunque el efecto del emborronamiento actúa más o menos como un filtro “anti-aliasing”, en la reconstrucción SR se asume que el “aliasing” está presente siempre en la LR.
Finalmente, se puede expresar el modelo de observación de la siguiente manera:
21
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte Ecuación 2.3-II
La matriz Wk de tamaño
yk Wk x nk
N1N2
2
para
k 1,..., p
x L1 N1L2 N2 representa la contribución de
emborronamiento, desplazamiento y muestreo de los píxeles de la imagen de alta resolución x a los píxeles de baja resolución de yk .
A partir de este modelo de observación la mayoría de los métodos de súper resolución que se pueden encontrar en la literatura constan de tres etapas (Ilustración 2.3-III): registro, interpolación y restauración.
Ilustración 2.3-III Esquema para la súper resolución. (Fuente: [1])
22
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte
2.4 ALGORITMOS DE RECONSTRUCCIÓN DE IMAGEN CON SÚPER RESOLUCIÓN
Como ya se vio anteriormente, los cuatro grupos de algoritmos de súper resolución son:
Método de interpolación no uniforme Este enfoque es el método más intuitivo para la reconstrucción de imágenes de súper resolución. Las tres etapas de la Ilustración 2.3-III se realizan sucesivamente en este enfoque:
i)
Estimación del movimiento relativo, es decir, del registro (si la información del movimiento no es conocida).
ii)
Interpolación no uniforme para producir una imagen de mejor resolución.
iii)
En función del modelo de observación, proceso para eliminar el emborronamiento.
Ilustración 2.4-I Esquema de la interpolación no uniforme. (Fuente: [1])
En la Ilustración 2.4-I se puede ver de forma esquemática el proceso. Con la información del movimiento relativo estimado, se obtiene la imagen de alta
23
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte resolución con puntos de muestreo espaciados de manera no uniforme. Entonces, se sigue un proceso de reconstrucción directa o iterativa para producir puntos de muestreo uniformemente espaciados. Una vez que se ha obtenido la imagen de alta resolución por interpolación no uniforme, se trata el problema de la restauración para eliminar el ruido y el emborronamiento. La reconstrucción se puede llevar a cabo aplicando cualquier método de deconvolución que considere la presencia de ruido.
En relación a este tipo de proceso véase el trabajo realizado por Ur y Gross [13] en el que se realiza una interpolación no uniforme de un conjunto de imágenes de baja resolución desplazadas espacialmente utilizando el teorema de muestreo multicanal generalizado de Papoulis [14] y Brown [15]. Por otro lado, Komatsu [16] realizó un método para adquirir una mejor resolución de imágenes aplicando el algoritmo de Landweber [17] a partir de varias imágenes tomadas simultáneamente con múltiples cámaras.
Enfoque en el dominio de la frecuencia El enfoque en el dominio de la frecuencia hace uso explícito del “aliasing” que existe en cada imagen de baja resolución para reconstruir una imagen de súper resolución. Tsai y Huang [18] en primer lugar obtienen un sistema de ecuaciones que describe la relación entre las imágenes de baja resolución y la imagen de alta resolución deseada mediante movimiento relativo entre imágenes. El enfoque en el dominio de la frecuencia está basado en los tres principios siguientes:
i)
La propiedad de retardo temporal de la transformada de Fourier.
ii)
La relación de “aliasing” entre la transformada de Fourier continua (CFT) de una imagen original de alta resolución y la transformada de Fourier discreta (DFT) de las imágenes observadas de baja resolución.
iii)
La suposición de que la imagen original de alta resolución tiene limitado su ancho de banda. 24
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte
Estas propiedades hacen posible formular el sistema de ecuaciones que relaciona los coeficientes de la “DFT” con “aliasing” de las imágenes de baja resolución con las muestras de la “CFT” de la imagen desconocida. Por ejemplo, en la Ilustración 2.4-II se suponen dos señales de baja resolución en una dimensión muestreadas por debajo del límite de muestreo de Nyquist. Con los tres principios anteriormente citados, se puede descomponer las señales de baja resolución con “aliasing” en una señal de alta resolución sin “aliasing” tal y como se muestra en la Ilustración 2.4-II.
Ilustración 2.4-II Relación de “aliasing” entre las imágenes LR y HR. (Fuente:[1])
Sea x(t1 , t2 ) una imagen continua de alta resolución y X (1 , 2 ) su “CFT”. La traslación global, que es el único movimiento considerado en el enfoque en el dominio
de
la
frecuencia,
produce
la
k-ésima
imagen
distinta
xk (t1 , t2 ) x(t1 k ,1 , t2 k ,2 ) donde k ,1 y k ,2 son valores arbitrarios pero
25
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte conocidos, y k 1, 2,..., p . Con la primera de las propiedades explicadas anteriormente, X k (1 , 2 ) puede ser escrita como se muestra en la Ecuación 2.4-I.
X k (1 , 2 ) exp[ j 2 ( k ,11 k ,22 )] X (1 , 2 )
Ecuación 2.4-I
La imagen que se obtiene xk (t1 , t2 ) es muestreada con periodos de muestreo T1 y
T2 para generar el conjunto de imágenes de baja resolución yk [n1 , n2 ] . De las dos siguientes
condiciones
anteriormente
citadas
( X k (1 , 2 ) 0
para
1 ( L1 / T1 ), 2 ( L2 / T2 ) ) se puede escribir la relación entre la “CFT” de la imagen de alta resolución y la “DFT” de las k muestras observadas de baja resolución (Ecuación 2.4-II).
Ecuación 2.4-II
k [1 , 2 ]
1 TT 1 2
L1 1 L2 1
X
n1 0 n2 0
k
2 T1
1 2 n1 , N1 T2
2 n2 N2
Usando una notación lexicográfica se ordenan los índices n1 y n2 por un lado, y los índices k por otro lado, de tal forma que se obtiene una expresión en forma de matrices y vectores (Ecuación 2.4-III)
Y X
Ecuación 2.4-III
En la Ecuación 2.4-III, Y es un vector columna de tamaño p*1 con los k elementos de los coeficientes de la “DFT” de yk [n1 , n2 ] , X es un vector columna con las muestras de tamaño L1L2*1 con las muestras de la “CFT” de x(t1 , t2 ) desconocida, y por último, es una matriz de tamaño p*L1L2 que relaciona las muestras de las imágenes observadas de baja resolución y la imagen de alta resolución deseada. Por lo tanto, la reconstrucción de la imagen de alta resolución requiere determinar y resolver el problema inverso.
Como extensión de este método se puede ver el trabajo de Kim [19] con un enfoque para imágenes borrosas y con ruido, resultando una ponderación de mínimos cuadrados. En este enfoque se considera que todas las imágenes de baja
26
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte resolución tienen las mismas características de ruido y emborronamiento. Posteriormente, este método ha sido refinado por Kim y Su [20] considerando diferentes emborronamientos para las imágenes de baja calidad. Por otro lado, Bose [21] propone un método de mínimos cuadrados recursivo que reduce los efectos del error en el registro (errores en ). Rhee y Kang [22] proponen un método basado en la trasformada discreta de coseno (DCT) que reduce los requisitos de memoria y el coste computacional en comparación con la DFT.
Enfoque de reconstrucción regularizada En general, el enfoque de la reconstrucción de imágenes es un problema mal planteado debido a un número insuficiente de muestras de baja resolución y operadores de emborronamiento mal condicionados. Los procedimientos adoptados para estabilizar el problema mal planteado se denominan de regularización. Existen dos enfoques de regularización, determinista y estocástico. Típicamente, se introducen técnicas de mínimos cuadrados (constrained least squares – “CLS”) y aproximación a posteriori (maximum a posteriori – “MAP”).
Enfoque determinista: con las estimaciones de los parámetros de registro, se puede definir completamente el modelo de observación de la Ecuación 2.3-II. El enfoque determinista regularizado de súper resolución resuelve el problema inverso de la Ecuación 2.3-II usando información previa sobre la solución que haga que el problema esté bien planteado. Por ejemplo, la “CLS” puede ser formulada eligiendo una x que minimice el Lagrangiano [23] Ecuación 2.4-IV
p 2 2 yk Wk x Cx k 1
donde el operador C es generalmente un filtro paso alto. En la Ecuación 2.4-IV, el conocimiento previo de una solución deseada está representado por una restricción de suavidad, considerando que la mayoría de las imágenes son suaves con excepción de las altas frecuencias, y por lo tanto es necesario minimizar la cantidad de energía de alta frecuencia de la imagen restaurada. En la Ecuación 27
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte 2.4-IV, representa el multiplicador de Lagrange, comúnmente conocido como parámetro de regulación, que controla el equilibrio entre la fidelidad de los datos p
( yk Wk x ) y la suavidad de la solución ( Cx ). Mayores valores de , en 2
2
k 1
general, llevarán a una solución más suave. Esto es útil cuando sólo se dispone de un pequeño número de muestras de baja resolución (problema indeterminado) o cuando la fidelidad de los datos observados es baja, debido al registro de error o ruido. Por otro lado, si se dispone de un gran número de imágenes de baja resolución y la cantidad del ruido es pequeña, se tendrá una buena solución con valores de pequeños.
Con relación a este enfoque se puede ver el trabajo realizado por Katsaggelos [24], [25] con un enfoque multicanal para estimar los parámetros de regularización. Posteriormente, Kang [26] emplea un método de deconvolución multicanal regularizado. Hardie [27], incorpora información del sistema óptico y del sensor “PSF”.
Enfoque estocástico: el enfoque estocástico de reconstrucción de imágenes, típicamente un enfoque Bayesiano, proporciona una forma flexible de modelar el conocimiento previo de la información relativa a la solución. Los métodos de estimación Bayesiana son utilizados cuando la función de densidad de probabilidad (“PDF”) de la imagen puede ser establecida a posteriori. El estimador “MAP” de x maximiza la “PDF” P( x yk ) con respecto a x Ecuación 2.4-V
x arg max P( x y1 , y2 ,..., y p ) .
Con la función logarítmica y aplicando el teorema de Bayes de la probabilidad condicionada, la optimización “MAP” puede expresarse como indica la Ecuación 2.4-VI. Ecuación 2.4-VI
x arg max ln P( y1 , y2 ,..., y p x) ln P( x)
28
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte En este caso, tanto el modelo P( x) de la imagen como la densidad condicionada
P( y1 , y2 ,..., y p x) serán definidas por el conocimiento previo relativo a la imagen de alta resolución y la información estadística del ruido. Como la optimización “MAP” de la Ecuación 2.4-VI incluye restricciones previas (conocimiento previo representado por P( x) ), ésta nos proporcionará una estimación regularizada efectiva y estable.
En relación a este enfoque se puede ver el trabajo realizado por Tom y Katsaggelos [28] y por Schultz y Stevenson [29].
Métodos de proyección en conjuntos convexos (“POCS”) Finalmente, el método “POCS” describe un método iterativo alternativo incorporando conocimiento previo de la imagen sobre la solución en el proceso de reconstrucción. Con las estimaciones de los parámetros del modelo de observación, este algoritmo resuelve de forma simultánea el problema de la restauración e interpolación para estimar la imagen de súper resolución.
La formulación del método “POCS” fue sugerido por primera vez por Stark y Oskoui [30]. Este método fue extendido por Tekalp [31] incluyendo observación del ruido. De acuerdo con el método “POCS” [23], incorporar información previa de la solución puede ser interpretado como una restricción de que la solución forme parte de un conjunto convexo cerrado Ci , el cual está definido como un conjunto de vectores que satisfacen una propiedad en particular. Si las restricciones de los conjuntos tienen una intersección no vacía, entonces una solución que pertenezca a la intersección Cs
m
Ci , que también es otro conjunto i 1
convexo, puede ser encontrada por medio de proyecciones alternas sobre estos conjuntos convexos. De hecho, cualquier solución de la intersección es coherente con las restricciones previas, y por lo tanto es una solución factible. El método
29
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estado del arte “POCS” se puede aplicar para encontrar un vector que pertenezca a la intersección a través de la recursión de la Ecuación 2.4-VII. En ella, x 0 es un punto original arbitrario, y Pi es el operador de proyección que proyecta la señal arbitraria x en un conjunto convexo cerrado Ci (i 1, 2,..., m) . n xn1 Pm Pm1···P2 Px 1
Ecuación 2.4-VII
Suponiendo que la información del movimiento es precisa, se representa para cada píxel de baja resolución un conjunto de restricciones consistente con el modelo de observación yk [m1 , m2 ] : Ecuación 2.4-VIII
CDk [m1 , m2 ] x[n1 , n2 ]: r ( x ) [m1 , m2 ] k [m1 , m2 ]
donde Ecuación 2.4-IX
r ( x ) [m1 , m2 ] yk [m1 , m2 ] x[n1 , n2 ]Wk [m1 , m2 ; n1 , n2 ] n1 , n2
y k [m1 , m2 ] es un límite que refleja la confianza estadística con la que la imagen real forma parte del conjunto CDk [m1 , m2 ] .
Se han expuesto todos los métodos con los que se trabaja en la mejora de resolución de imágenes. No obstante, existen variaciones de estos métodos que dan lugar a procesos alternativos para conseguir la súper resolución. Además, como ya se comento con anterioridad, se están investigando nuevos procesos de resolución de imágenes gracias al avance de las tecnologías.
30
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Capítulo 3 ESTUDIO DE ALGORITMOS DE SÚPER RESOLUCIÓN
3.1 INTRODUCCIÓN
Para el buen desarrollo de cualquier sistema se tiene que hacer un exhaustivo estudio del arte, analizando que métodos se pueden aplicar al presente proyecto. De esta manera, una vez analizadas qué características de estos métodos ya existentes son más útiles para nuestros objetivos, se pueden aplicar relacionándolas con los nuevos enfoques que se van a plantear. En este capítulo se va a exponer todo el trabajo realizado a lo largo de este proyecto. El trabajo se ha dividido en dos partes. En una primera parte, se realiza un estudio de imágenes en una sola dimensión. Tras una serie de planteamientos y algoritmos preliminares se llega a un algoritmo en una dimensión, a partir del cual se da el salto a las dos dimensiones en una segunda parte. En ella se diseña e implementa el algoritmo de mejora de resolución en dos dimensiones. Finalmente, se realiza un breve estudio de reconocimiento de patrones con movimiento conocido sobre imágenes estáticas utilizando y aplicando el algoritmo estudiado previamente.
3.2 ESTUDIO EN UNA DIMENSIÓN
Como ya se ha comentado en el Capítulo 1 el fenómeno de la baja resolución se debe a varios factores. El estudio del presente proyecto se ha centrado en la mejora de resolución, minimizando el efecto de discretizar la imagen a través de
31
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución una cámara digital. Se trabajará para aumentar el número de píxeles de una imagen estimando los píxeles que no se tienen a partir de información proporcionada por los píxeles disponibles. En la reconstrucción de imágenes lo normal es modelar los sensores como un operador de media espacial, como puede verse en la Ilustración 3.2-I, es decir, al transformar una imagen de buena resolución HR (“High Resolution”) en otra de peor calidad LR (“Low Resolution”), los pixeles de baja resolución están relacionados con los de alta por una media aritmética. De esta manera, las rejillas de alta y baja resolución (“HR Grid” y “LR Grid”, respectivamente) quedan relacionadas a través de esta media. Este hecho se tendrá en cuenta a lo largo de todo el proceso de diseño del presente proyecto.
Ilustración 3.2-I Relación entre imágenes de distinta calidad. (Fuente: [1])
También es necesario señalar que en todo momento que se hable de tamaños y desplazamientos, ya sea de rejillas o imágenes de alta resolución, siempre estarán medidos en píxeles de alta resolución. Por ejemplo, en el caso de la Ilustración 3.2-I, la imagen de alta resolución es de 6x6 y el tamaño de la rejilla es de 2x2, por lo tanto, la imagen de baja resolución será de 6/2x6/2.
32
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
3.2.1 ALGORITMO1D-V1
Para el diseño de la aplicación se va a partir, en primer lugar, de una imagen unidimensional (como por ejemplo, códigos de barrar, código Morse o cualquier otro tipo de imágenes unidimensionales binarias) compuesta simplemente por blancos y negros (vector de ceros y unos). Ya que no importa la distribución de blancos y negros, esta imagen (o vector) se genera de forma aleatoria. De este modo se tiene una imagen de alta resolución, a partir de la cual se obtendrán las muestras de baja resolución con las que se tratará de reconstruir la imagen de partida. Para el primer diseño, se va a trabajar con una rejilla de muestreo de tamaño n, menor obviamente que el tamaño m de la imagen de alta resolución. Esta rejilla se va a desplazar de manera infinitesimal, es decir, de píxel en píxel de alta resolución. Por lo tanto, nótese que al final, el proceso será equivalente a trabajar con varias imágenes de baja resolución desplazadas unas de otras un píxel de alta resolución. Con esto se quiere remarcar que la resolución que se pretende mejorar viene en cierto modo marcada por el movimiento relativo entre imágenes de baja resolución. En la Ilustración 3.2-II se puede ver un ejemplo. El tamaño de la imagen de alta resolución m = 7. El tamaño de la rejilla de muestreo es n = 2. El desplazamiento es d = 1. Por lo tanto se obtienen dos imágenes de tamaño 3 desplazadas un píxel.
a
b
c
1
d
e
3
f
g
Imagen HR
5
Imágenes LR 2
4
6
Ilustración 3.2-II Imágenes de baja resolución con movimiento relativo (rejilla de tamaño 2 y desplazamiento infinitesimal).
33
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Como se puede apreciar, es preciso estimar 7 píxeles, pero solamente se dispone de la información de 6 píxeles de baja resolución. De forma genérica, si la imagen es de tamaño m y la rejilla de tamaño n, el número de píxeles de los cuales no se dispone información para estimar es igual a n – 1. Por ello es necesario fijar unas condiciones de contorno, de tal forma que sean disponibles tantos píxeles de baja resolución como píxeles de alta resolución. Para ello se van a añadir a la imagen original tantos píxeles blancos como n – 1. De esta manera, sea cual sea el tamaño de la rejilla, se dispondrá del número suficiente de muestras para recomponer la imagen original. En la Ilustración 3.2-III se puede ver el caso de una imagen de 20 píxeles que, al aplicar una rejilla de tamaño 5, se rellena con 4 píxeles blancos al principio. Finalmente, solo hay que comparar cada muestra con la siguiente para determinar el valor de cada uno de los píxeles. Si el tono de gris del píxel de baja resolución se oscurece (disminuye el porcentaje de blanco) es debido a que al desplazarse, el nuevo píxel que aparece dentro de la rejilla es negro, sustituyendo al blanco que se ha quedado fuera. Lo mismo ocurre si el tono de gris se aclara (aumenta el porcentaje de blanco), un píxel blanco ha entrado en sustitución de un píxel negro. En el caso de que el tono de gris se mantenga igual, significa que el píxel que ha entrado es igual al que ha salido. En la Ilustración 3.2-II se puede ver el método de forma práctica: el píxel LR 4 es más oscuro que el píxel LR 3, por este motivo, el valor del píxel HR d debe ser negro, tal y como se puede comprobar. Por lo tanto, realizando estas comparaciones se puede recuperar la imagen original. No importa cuál sea el tamaño de la rejilla ya que siempre se dispone de la información suficiente para recuperar la imagen de alta resolución. En la Ilustración 3.2-III puede verse la imagen original, el conjunto de muestras con las que se ha trabajado y la imagen que se ha obtenido tras aplicar el procedimiento mencionado.
34
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Imagen Real 0.5 1 1.5
5
10
15
20
Conjunto muestras LR 0.5 1 1.5
2
4
6
8
10
12
14
16
18
20
Imagen HR 0.5 1 1.5
5
10
15
20
Ilustración 3.2-III Resultados del Algoritmo1D-v1.
Para llevar a cabo este proceso se ha creado la función de Matlab “Algoritmo1D_v1”. El código fuente de esta función se puede encontrar en la Parte IV, en el epígrafe 1.1. Las variables de entrada necesarias para esta función son el tamaño de la rejilla de muestreo y el tamaño de la imagen que se desea generar. Esta función, en primer lugar genera un vector, denominado “modelo”, con ceros y unos de manera aleatoria, rellenando con unos al principio para disponer de la información necesaria. Después se calculan las muestras de baja resolución y se almacenan en un vector denominado “LR”. Como se rellenó la imagen con blancos se debe rellenar de la misma manera el vector “HR”. El resto de valores de este vector se calculan comparando cada uno de los valores del vector “LR” como se ha explicado anteriormente. Finalmente se muestran en una figura los vectores “modelo”, “LR” y “HR”.
Este método es rápido y sencillo de implantar. El principal inconveniente que se plantea es que no siempre es posible conocer las condiciones de contorno. Por lo tanto será necesario estimar estos píxeles por algún otro procedimiento. Además, la imagen se puede reconstruir perfectamente ya que se conocen los valores que
35
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución pueden adoptar los píxeles de alta resolución (0/1). Si la imagen original estuviese en escala de grises ya no sería posible aplicar este algoritmo, ya que existirían 256 posibles valores de píxel.
Para situaciones en las que el tamaño de la rejilla n sea diferente de 2, se adjunta en la parte Anexos, Capítulo 1, un algoritmo capaz de trabajar con un tamaño variable de rejilla, de tal forma que se trabajaría con imágenes de distintos grados de resolución. Además se proponen otros procedimientos para estimar las condiciones iniciales en el cálculo de los primeros píxeles de la imagen.
3.2.2 ALGORITMO1D-V2 Y ALGORITMO1D-V3
Por lo tanto, como no siempre es posible trabajar con condiciones de contorno conocidas, se va a trabajar con menos muestras de baja resolución de las necesarias para estimar los píxeles de alta resolución. Para ello se va a realizar un proceso análogo a la transformación de una imagen de alta resolución a baja resolución mostrado en la Ilustración 3.2-I. Para estimar un píxel de alta resolución se van a utilizar todos los píxeles de baja resolución en los que intervenga dicho píxel. El píxel HR se aproximará a la media de los píxeles LR en los cuales aparezca. Además, al realizar este tipo de estimación ya no es necesario que el movimiento relativo entre muestras sea infinitesimal, pero sí debe ser menor o igual al tamaño de la rejilla. En la Ecuación 3.2-I y Ecuación 3.2-II se puede ver cómo son estimados dos píxeles de la imagen HR de la Ilustración 3.2-IV.
PíxelHRa PíxelLR1
Ecuación 3.2-I
Ecuación 3.2-II
PíxelHRc
36
PíxelLR1 PíxelLR 2 PíxelLR3 3
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
a
b
c
d
e
f
g
Imagen HR real
1 2 3
Píxeles LR 4 5
a
b
c
d
e
f
g
Imagen HR obtenida
Ilustración 3.2-IV Píxeles de baja resolución con movimiento relativo (rejilla de tamaño 3 y desplazamiento 1).
Generando nuevamente una imagen unidimensional aleatoria con blancos y negros, se le aplica este nuevo procedimiento planteado. El resultado se puede ver en Ilustración 3.2-V. Se ha creado una imagen de tamaño m = 40, y se ha utilizado una rejilla de tamaño n = 3 y desplazamiento d = 2. El resultado no es bueno teniendo en cuenta que la imagen obtenida es bastante diferente a la imagen original. Esto se debe a los cambios bruscos entre los valores de los píxeles originales, es decir, estos adoptan solamente dos valores (0/1), por lo tanto, los resultados obtenidos distan bastante de los valores originales. Este problema se podría solucionar añadiendo al procedimiento anterior una segunda etapa en la cual se aproxime a blanco o a negro (0/1) el valor estimado, es decir, si el valor obtenido para un determinado píxel es menor que 0.5, éste pasa a valer 0. De forma análoga ocurre si el valor el superior a 0.5. De este modo se puede obtener una imagen más parecida a la imagen original. No obstante, con este procedimiento desaparecen aquellos píxeles de un color que estén acompañados a
37
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución ambos lados por bastantes píxeles del otro color. El resultado de esta ampliación del método anterior se puede ver en la Ilustración 3.2-VI.
Imagen real 0.5
1
1.5
5
10
15
20
25
30
35
40
Imagen generada 0.5
1
1.5
5
10
15
20
25
30
35
Ilustración 3.2-V Resultados del Algoritmo1D-v2.
Imagen real 0.5
1
1.5
5
10
15
20
25
30
35
Imagen generada 0.5
1
1.5
5
10
15
20
25
30
Ilustración 3.2-VI Resultados del Algoritmo1D-v3.
38
35
40
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución En la Parte IV, en los epígrafes 1.2 y 01.3 se pueden encontrar los códigos fuente de estos dos últimos procedimientos mostrados. Las funciones que se han creado para ello son “Algoritmo1D_v2” y “Algoritmo1D_v3”. Las variables de entrada de ambas funciones son el tamaño de la rejilla de muestreo y su desplazamiento por un lado, y por otro el tamaño de la imagen que se quiere generar. La parte más compleja de estas funciones se encuentra a la hora de calcular los píxeles de alta resolución a partir de la media de los de baja resolución en los que aparece. Para ello se han almacenado los píxeles de baja resolución en una matriz de forma que se obtenga una matriz con la forma en que aparecen los píxeles LR en la Ilustración 3.2-IV. Después, simplemente se ha descendido por cada columna para calcular las medias. En este proceso, existen determinados elementos de la matriz cuyo valor es cero porque no almacenan ningún valor de los píxeles de baja resolución. Para no confundirlos con los píxeles de valor cero, se ha sumado a todos los píxeles de baja resolución una constante, que posteriormente se eliminará. De esta forma se puede diferenciar qué valores se corresponden con un pixel y cuáles no. La principal diferencia del Algoritmo1D-v3 con respecto al Algoritmo1D-v2 es, como ya se ha comentado anteriormente, que sabiendo que la imagen original está compuesta por blancos y negros, se realiza un proceso posterior de estimación de dichos píxeles.
Se puede ver como estos resultados no son buenos, pero se ha conseguido acercarse a la imagen original de alta resolución sin necesidad de conocer las condiciones de contorno ni estimar “a priori” ningún píxel.
3.2.3 ALGORITMO DE OPTIMIZACIÓN EN UNA DIMENSIÓN
Llegados a este punto del proyecto, se produce un punto de inflexión ya que los resultados obtenidos del Algoritmo1D-v2 nos van a proporcionar las bases para el desarrollo de un algoritmo eficaz en una dimensión con imágenes en escala de grises. El Algoritmo1D-v2 es poco eficaz frente a imágenes compuestas 39
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución solamente por blancos y negros. Pero en la realidad, las imágenes no presentan estás “discontinuidades”, es decir, la variación de los píxeles en una imagen se produce de manera continua, y son escasos los cambios bruscos de un píxel respecto a sus píxeles colindantes. Si se aplica el Algoritmo1D-v2 a una secuencia de píxeles de una imagen real se obtiene el resultado mostrado en la Ilustración 3.2-VII. En lugar de generar los píxeles de manera aleatoria, se han utilizado una secuencia de 16 píxeles de una imagen ya existente.
Imagen real 0.5
1
1.5
2
4
6
8
10
12
14
16
12
14
16
Imagen generada 0.5
1
1.5
2
4
6
8
10
Ilustración 3.2-VII Resultado del Algoritmo1D-v2 a una imagen real.
Si se utilizan estas estimaciones realizadas por este método y se les añaden unas determinadas restricciones se puede convertir el proceso en un problema de optimización. A partir de este momento se va a trabajar con imágenes en escala de grises y movimiento de la rejilla lo más pequeño posible, no tiene sentido considerar un desplazamiento mayor ya que es una pérdida de resolución. En función de este desplazamiento se conseguirá mejorar en mayor o menor medida la resolución. El tamaño de la rejilla de muestreo estará relacionado con el número de imágenes de baja resolución que se dispongan.
40
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución El problema a optimizar es el siguiente: -
Cada píxel de alta resolución se va a aproximar por los valores que nos proporcionan los píxeles de baja resolución tal y como aparece en el Algoritmo1D-v2. El píxel se igualará a dicho valor más un defecto más un exceso, necesarios ambos para optimizar.
-
Por otro lado, se van a imponer las restricciones correspondientes a la transformación de imágenes de alta resolución a baja resolución de la Ilustración 3.2-I.
-
Se van a considerar variables enteras acotadas entre 0 y 255. También se analizará el uso de variables continua positivas entre 0 y 1.
-
Se minimizará la suma de excesos y defectos. Estos defectos y excesos estarán ponderados de tal forma que se le dé más importancia a los píxeles centrales que a los de los extremos. Estas ponderaciones o pesos se pueden definir de manera arbitraria cumpliendo una única restricción: el peso de un píxel HR estimado a partir de un número de píxeles LR será mayor que el de otro píxel HR estimado a partir de un número menor de píxeles LR.
El algoritmo de optimización que finalmente se obtiene se muestra en el Pseudocódigo 3.2-I. Veamos a continuación un ejemplo sencillo. Se va a considerar una imagen (Ilustración 3.2-VIII) de alta resolución de tamaño 7. La rejilla será de tamaño 4 y el desplazamiento 1. En la Ilustración 3.2-IX se pueden ver los índices, parámetros y constantes que se obtienen.
41
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Pseudocódigo GAMS Algoritmo 1D Índices i píxeles HR j píxeles LR Parámetros coef 1i
estimación basada en los píxeles LR
LR j
píxeles LR
pesoi
pesos de los defectos y excesos de cada píxel
coef 2 j ,i matriz de coeficientes del sistema Constantes TR tamaño de la rejilla Variables X i píxel HR Di defecto Ei exceso Variables enteras positivas Ecuaciones Mín
(D
i
Ei )· pesoi
i
TR·LR j X i ·coef 2 j ,i i
X i Di Ei coef 1i X i 255 Pseudocódigo 3.2-I Algoritmo de resolución de imágenes para GAMS en una dimensión.
42
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
a
b
c
d
e
f
g
Imagen HR
A = (a+b+c+d)/4 B = (b+c+d+e)/4
Píxeles LR
C = (c+d+e+f)/4 D = (d+e+f+g)/4 Ilustración 3.2-VIII Ejemplo de aplicación del algoritmo de optimización.
Índices i 1, 2,3, 4,5, 6, 7 nº píxeles HR j 1, 2,3, 4 nº píxeles LR Parámetros A B A B C A B C D B C D C D coef 1i A, , , , , , D 2 3 4 3 2 LR j A, B, C , D pesoi 1, 2, 4, 6, 4, 2,1
coef 2 j ,i
1 0 0 0
1 1 1
0
0
1 1 1 0 1 1
1 1
0 1
0 0 1
1
1
0 0 0 1
Constantes TR=4 Ilustración 3.2-IX Valores para el ejemplo de aplicación del algoritmo de optimización.
43
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución Más adelante, en el Capítulo 4, se analizarán las soluciones proporcionadas por este algoritmo.
Hasta el momento se ha obtenido un algoritmo en una dimensión capaz de trabajar con imágenes en escala de grises a partir de un movimiento conocido. En la sección siguiente se comenzará el estudio en las dos dimensiones adaptando los resultados obtenidos en una dimensión.
3.3 ESTUDIO EN DOS DIMENSIONES
Una vez se ha pasado a las dos dimensiones, la principal tarea es adaptar el algoritmo obtenido en una dimensión para trabajar con imágenes reales. Así se podrá comprobar la eficacia de dicho método.
Como es obvio, al trabajar en dos dimensiones, la rejilla de muestreo será bidimensional. Se va a trabajar con movimiento lo más pequeño posible conocido. También se va a trabajar con la misma relación entre los píxeles de baja resolución y alta resolución de la Ilustración 3.2-I, es decir, un píxel de baja resolución será la media aritmética de los píxeles que ocupe en la imagen de alta resolución. En este caso se trabajará con rejillas de tamaño 2x2, con lo cual un píxel de baja resolución será la media de cuatro de alta resolución.
Este algoritmo va a trabajar con cuatro imágenes de baja resolución desplazadas unas de otras. En la Ilustración 3.3-I se puede ver el desplazamiento de la rejilla de muestreo para cada imagen LR. Cada una de las rejillas de muestreo que aparecen se correspondería con una imagen de baja resolución.
44
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Ilustración 3.3-I Desplazamiento relativo entre muestras para el algoritmo en dos dimensiones.
De esta manera, el algoritmo será capaz de reconstruir una imagen de mayor definición a partir de cuatro imágenes de peor resolución desplazadas relativamente.
Una vez que se tienen las cuatro imágenes de baja resolución, el siguiente paso es juntar estas imágenes en una sola matriz. Así se obtendrá un parámetro equivalente al parámetro “LRj” del algoritmo de optimización en una dimensión. La única diferencia es que en esta ocasión, en lugar de un vector, se dispondrá de una matriz. Como también se verá más adelante, los índices no van a ser los mismos. El nuevo parámetro pasará a ser “LRi,j”, siendo i el índice de las filas de la imagen de alta resolución y j el índice de las columnas. En la Ilustración 3.3-II se muestra cómo se recolocan los píxeles de baja resolución de cada imagen en la nueva matriz LR. Como es de esperar, el tamaño de LRi,j será de (n - 1)*(m - 1), siendo la imagen original que se intenta reconstruir de tamaño n*m.
45
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
AB CD
1 2 3 4
α β γ δ
I II III IV
A1 B2 α I β II C 3D4 γ III δ IV LRi,j
Ilustración 3.3-II Obtención del parámetro LRi,j para el algoritmo de optimización en dos dimensiones.
A continuación, a partir de la matriz LRi,j se obtendrá el otro parámetro necesario para ejecutar el algoritmo, correspondiente a las estimaciones de los píxeles de alta resolución (coefi,j). Este parámetro es el equivalente a coef1i del algoritmo en una dimensión. La estimación de cada píxel se llevará a cabo de la misma manera que en una dimensión, el valor será la media aritmética de todos los píxeles LR en los que aparezca el píxel HR (Ilustración 3.3-III). Este parámetro tendrá las mismas dimensiones que la imagen original (n*m).
A
B HR(1,1) A AC 2 A B C D HR(2, 2) 4 HR(2,1)
C
D
Ilustración 3.3-III Obtención de las estimaciones de los píxeles de alta resolución.
46
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
El último parámetro que queda por calcular es el equivalente a peso i del algoritmo en una dimensión. Este parámetro, denominado peso i,j será una matriz del mismo tamaño que la imagen original (n*m). Se rellena con el mismo criterio que en una dimensión: se le da más importancia a las estimaciones realizadas a partir de un mayor número de píxeles de baja resolución. Por ello se le dará más importancia a los píxeles centrales, en segundo lugar a los píxeles de los bordes y finalmente, a los píxeles de las esquinas. La matriz resultante es la mostrada en la Ecuación 3.3-I.
Ecuación 3.3-I
1 2 2 pesoi , j 2 2 1
2 2 4 4 4 4 4 4 4 4 2 2
2 2 1 4 4 2 4 4 2 4 4 2 4 4 2 2 2 1
Finalmente, se obtiene el algoritmo de optimización mostrado en el Pseudocódigo 3.3-I. Ha sido necesario realizar pequeñas modificaciones debidas al paso de una dimensión a dos, ya que por ejemplo, en una dimensión, el conjunto de ecuaciones que nos definía las relaciones entre los píxeles de alta y baja resolución se podía definir a través de una matriz de unos y ceros. En esta ocasión esto no es posible, y se ha tenido que definir de otra manera dicha relación (Ecuación 3.3-II). Ya que la matriz LR es más pequeña que la matriz de variables X y para no tener problemas de límites se ha puesto la condición de que los índices sean menores que su tamaño.
Ecuación 3.3-II
4·mediai , j X i , j X i 1, j X i , j 1 X i 1, j 1 i < card(i), j < card(j)
47
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución Pseudocódigo GAMS Algoritmo 2 D Índices i fila de la imagen HR j columna de la imagen HR Parámetros mediai , j píxeles LR coef i , j
estimación basada en los píxeles LR
pesoi , j
pesos de los defectos y excesos de cada píxel
Variables X i , j píxel HR Di , j defecto Ei , j exceso Variables enteras positivas Ecuaciones Mín
(D
i, j
Ei , j )· pesoi , j
i, j
4·mediai , j X i , j X i 1, j X i , j 1 X i 1, j 1
i < card(i) j < card(j)
X i , j Di , j Ei , j coef i , j X i , j 255 Pseudocódigo 3.3-I Algoritmo de resolución de imágenes para GAMS en dos dimensiones.
Para poder trabajar con imágenes reales se ha desarrollado una serie de funciones en Matlab que nos proporcionan el código fuente necesario para poder ejecutar el algoritmo en GAMS. Las funciones y archivos son “prep_datos”, que a su vez hace uso de las funciones “blne”, “media”, “peso” y “coef”, y “GamsFileCreator”. El archivo “prep_datos” carga una imagen en una variable a través de la función de Matlab “imread”. Después se aplica a dicha imagen la función “blne”. Esta función convierte una imagen a color en escala de grises usando la relación 48
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución “escala gris” = 0.2989·“rojo” + 0.5870·“verde” + 0.1140·“azul” (relación con la que trabaja Matlab). Este paso es necesario ya que el algoritmo desarrollado no converge correctamente al trabajar con cada canal (RGB) por separado. Una vez que se tiene la imagen en escala de grises, se trabaja simplemente con un canal (rojo, verde o azul), no importa cual ya que los tres serán iguales. Por lo tanto, a partir de la imagen anterior, denominada “HR”, se obtienen las cuatro imágenes de baja unidas en la matriz “LR”. A partir de esta matriz se obtienen las matrices de coeficientes y pesos a través de las funciones “coef” y “peso”, respectivamente. Finalmente, para obtener el código de GAMS necesario para ejecutar el algoritmo, hay que ejecutar la función “GamsFileCreator” introduciéndole como variables de entrada el nombre del archivo en el que se guardará el código y las matrices “LR”, “coef” y “peso”. Esta última función genera un código de GAMS en el cual se guarda la solución de la optimización en un archivo de Microsoft Excel 2007 en una dirección específica. Para cambiarla, es necesario modificarla en el código fuente de “GamsFileCreator.m”
El código fuente de la función “blne” se puede encontrar en la Parte IV, en el epígrafe 1.10. Por otro lado, el resto de funciones y archivos mencionados se encuentran en el epígrafe 1.4.
Al igual que con el algoritmo en una dimensión, en el Capítulo 4 se llevará a cabo la ejecución del método expuesto y se mostrarán los distintos resultados.
Una vez desarrollado el algoritmo en dos dimensiones se va a proceder a estudiar el movimiento de imágenes y cómo utilizar éste para mejorar la resolución, centrándonos de este modo en secuencias de video.
49
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
3.4 ESTUDIO DE RECONOCIMIENTO DE PATRONES
Como una de las principales finalidades del proyecto es su posible aplicación a otros proyectos de visión artificial, como por ejemplo seguimiento de objetos o reconocimiento del entorno. En estos casos, un aumento de la resolución de las imágenes en desplazamiento sería de mayor utilidad. Por este motivo es necesario el realizar un estudio de imágenes con objetos en movimiento. El objetivo es desarrollar un algoritmo capaz de aumentar la resolución de un objeto en movimiento sin necesidad de usar una cámara de video de alta definición. En este apartado se van a analizar dos situaciones:
-
Imagen en movimiento mayor que la rejilla de muestreo sobre un fondo estático. En esta situación se tratará de implementar directamente el algoritmo desarrollado en el capítulo anterior.
-
Imagen en movimiento del tamaño de la rejilla de muestreo (imagen de cuatro píxeles) sobre un fondo estático. Será necesario analizar los bordes de la imagen y el fondo sobre el cual se mueve.
Para diseñar los métodos de mejora de resolución no se va a trabajar directamente con videos, sino que se van a generar un conjunto de imágenes con movimiento de píxeles como si de una secuencia de video se tratase.
3.4.1 IMAGEN MAYOR QUE LA REJILLA DE MUESTREO
En primer lugar, se va a considerar una imagen mayor que la rejilla de muestreo. Esta imagen se va a desplazar sobre un fondo estático. El movimiento que va a realizar es el equivalente al que realizaría la rejilla de muestreo (la cámara) en el
50
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución algoritmo de dos dimensiones. Cada uno de estos instantes se muestreará con una rejilla de muestreo. De esta manera se tendrán cuatro “frames” equivalentes a las cuatro imágenes de baja resolución del algoritmo de dos dimensiones. Obviamente, solo existirá variación en la zona en la cual se ha desplazado la imagen. El resto del fondo será el mismo en las cuatro imágenes y por lo tanto no se podrá mejorar su resolución. En la Ilustración 3.4-I se muestra el movimiento de la imagen. Los píxeles oscuros representan el fondo estático, la rejilla en rojo es la de baja resolución. Al muestrear con ella, se obtendrían las cuatro imágenes de baja resolución. Se puede comprobar cómo, dejando a un lado el fondo estático, se obtienen las mismas imágenes de partida que en el algoritmo de dos dimensiones de optimización. En el Capítulo 4 se mostrarán las imágenes de partida y los resultados obtenidos.
Ilustración 3.4-I Movimiento de la imagen mayor que la rejilla de muestreo sobre fondo estático.
A continuación se va a trabajar con una imagen de tamaño 2x2 que se desplaza sobre una imagen
estática de fondo. En este caso se plantea la siguiente 51
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución dificultad: para reconstruir la imagen original, es necesario utilizar información de píxeles de baja resolución en los que aparece la imagen que se desplaza pero también el fondo. Dependiendo de la homogeneidad del fondo se podrá recuperar mejor o peor la imagen buscada.
Para llevar a cabo el proceso anterior se han implementado una serie de funciones de Matlab que generan el código de GAMS necesario para que pueda ser ejecutado. Algunas funciones ya se han visto en el estudio en dos dimensiones realizado anteriormente, como son “coef”, “peso” y “GamsFileCreator”. Las nuevas funciones y archivos que se han utilizado son: “crear_imagenes” y “baja_resol”. En primer lugar, la función “crear_imagenes” genera las cuatro imágenes con la misma imagen estática de fondo y otra imagen superpuesta desplazada. Una vez que se tienen las cuatro imágenes, se las convierte a escala de grises con la función “blne” y se les reduce la resolución con la función “baja_resol”. Después, a partir de las cuatro imágenes se genera la matriz “LR” necesaria para poder llevar a cabo el proceso de optimización. Obviamente, sólo se calcula esta matriz para la imagen en movimiento ya que para el resto del fondo no tiene sentido. Para dibujar la matriz “LR” obtenida se utiliza la función “dibvec” (código fuente en la Parte IV, en el epígrafe 1.10). El resto del proceso es el mismo que en el estudio en dos dimensiones, se calculan la matriz de coeficientes y pesos, y se genera el código de GAMS con la función “GamsFileCreator”. El código fuente de las nuevas funciones y archivos que aparecen nuevas en este apartado se pueden encontrar en la Parte IV, en el epígrafe 1.5.
3.4.2 IMAGEN IGUAL A LA REJILLA DE MUESTREO
De la misma forma que en el caso anterior, es necesario que la imagen se desplace. Se va a considerar que la imagen realiza también cuatro movimientos para la explicación del algoritmo. Hay que destacar que los cuatro movimientos 52
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución son conocidos, ya que el algoritmo se basa en este hecho. En la Ilustración 3.4-II se puede ver estos cuatro movimientos.
A partir de ellos se obtienen cuatro valores de píxeles de baja resolución por cada imagen, es decir, un total de 16 valores, aunque algunos sean los mismos. Para mayor comodidad se ordenaran estos valores en una sola matriz de 4x4 en la que en el primer cuadrante se almacena el píxel de baja resolución de la posición (1,1) de cada una de las imágenes, y así sucesivamente para el resto de cuadrantes. En la Ilustración 3.4-III se puede ver cómo se genera dicha matriz a la que se va a denominar “y”. Como se puede comprobar, la forma de crear dicha matriz es la misma que la utilizada para crear LRi,j en el algoritmo de dos dimensiones de optimización.
Ilustración 3.4-II Movimiento de la imagen del mismo tamaño que la rejilla de muestreo sobre fondo estático.
53
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
AB CD
1 2 3 4
αβ
I II
γ
δ
A1 B2 α I β II C 3D4 γ III δ IV
III IV
y Ilustración 3.4-III Obtención de la matriz “y”.
a
b
c
d
e
f
g
h
x1
x2
i
j
k
l
x3
x4
m
n
o
p
Ilustración 3.4-IV Nomenclatura de los píxeles de fondo y de la imagen que se desplaza.
Partiendo de la nomenclatura mostrada en la Ilustración 3.4-IV, se obtienen las siguientes ecuaciones:
Ecuación 3.4-I
x1 x2 x3 x4 y(2,1)·4
54
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Ecuación 3.4-II
a b e x1 y (1,1)·4 c d h x y (1,3)·4 2 i m n x3 y (3,1)·4 l o p x4 y (3,3)·4
Ecuación 3.4-III
c d g h y (1, 4)·4 i j m n y (4,1)·4 k l o p y (3, 4)·4
Ecuación 3.4-IV
a b x1 x2 y (1, 2)·4 a e x x y (2, 2)·4 1 3 d h x2 x4 y (2, 4)·4 m n x3 x4 y (3, 2)·4
Se pueden distinguir 4 tipos de ecuaciones: la Ecuación 3.4-I nos proporciona la media de los cuatro píxeles que se pretenden obtener. La Ecuación 3.4-II se corresponden con muestras en las que aparece uno de los píxeles de la imagen en desplazamiento. La Ecuación 3.4-III nos proporciona información acerca de la media de los píxeles de la imagen de fondo. Y la Ecuación 3.4-IV se corresponde con muestras en las que aparecen dos píxeles de la imagen que se quiere calcular. En el caso de que la rejilla estuviera situada en otra posición cambiarían las ecuaciones, pero no los conjuntos obtenidos y mostrados anteriormente. Como se puede comprobar se tiene un sistema de 12 ecuaciones y 20 incógnitas, por lo tanto no es resoluble por métodos habituales de resolución de sistemas de ecuaciones. Además, solamente se requiere calcular los cuatro píxeles de la imagen en desplazamiento. La principal idea del sistema desarrollado en este apartado es la siguiente: suponiendo que los píxeles de la imagen de fondo van a ser muy parecidos a su valor medio, es decir, la imagen de fondo estática va a ser homogénea, se pueden calcular los píxeles de la imagen en desplazamiento. Al disponer de más ecuaciones que incógnitas, el problema habrá que plantearlo en GAMS como restricciones. El problema es que con los movimientos realizados carecemos de el valor medio de los píxeles de fondo a, b, e y f en este caso en
55
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución concreto. Por lo tanto, la ecuación a b e x1 y(1,1)·4 resulta prácticamente inservible. Por este motivo la solución que proporciona este método no es buena, como se verá más adelante.
Para poder disponer de todos los valores del fondo habrá que realizar más movimientos. Para trabajar con mayor comodidad, se van a considerar 9 movimientos, de tal forma que la imagen que se desplaza pase por las cuatro rejillas (Ilustración 3.4-V). En este caso, la matriz “y” tendrá un tamaño de 6x6. La forma de generarla es análoga a la anterior. Con la misma nomenclatura usada anteriormente (Ilustración 3.4-IV) se obtienen las siguientes ecuaciones:
Ecuación 3.4-V
x1 x2 x3 x4 y (1,1)·4 a b e x y (2, 2)·4 1 a e x1 x3 y (1, 2)·4 a b x x y (2,1)·4 1 2 a b e f y (1,3)·4
Ecuación 3.4-VI
d h x2 x4 y (1,5)·4 c d x x y (2, 6)·4 1 2 c d h x2 y (2,5)·4 c d g h y (1, 4)·4
Ecuación 3.4-VII
m n x3 x4 y (5,1)·4 i m x x y (6, 2)·4 1 3 i m n x3 y (5, 2)·4 i j m n y (4,1)·4
Ecuación 3.4-VIII
l p x2 x4 y (6,5)·4 o p x x y (5, 6)·4 3 4 l o p x4 y (5,5)·4 k l o p y (6, 4)·4
56
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución En esta ocasión se han ordenado las ecuaciones según la rejilla de baja resolución de la cual se han obtenido. En este caso ya disponemos de la media de todos los píxeles de la imagen de fondo (última ecuación de cada conjunto de ecuaciones).
Ilustración 3.4-V Movimiento de la imagen considerando 9 posiciones distintas.
De este modo, se puede obtener una estimación de la imagen que se desplaza por dos métodos.
El primero de ellos es el siguiente: haciendo uso de las ecuaciones en las que solamente aparece un píxel de la imagen que se desplaza se tiene un valor de dicho píxel, aproximando los píxeles del fondo a su valor medio. Véase el ejemplo siguiente (Ecuación 3.4-IX):
a b e x1 y (2, 2)·4 Ecuación 3.4-IX
a b e f y (1,3)·4 a b e f y (1,3) x1 4·y (2, 2) 3·y (1,3)
57
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
De esta manera se obtiene una estimación de los cuatro píxeles y se calcula la media de esta estimación. Después, se compara con la media real y se corrigen los valores estimados con la diferencia entre las medias (Ecuación 3.4-X).
x estimado 4
x real y (1,1) Ecuación 3.4-X
x estimada
x final xestimado ( x real x estimada )
La otra opción es la misma que la desarrollada para los cuatro movimientos, es decir, aproximando los píxeles del fondo a su valor medio de baja resolución se plantea un conjunto de restricciones y se optimizan en GAMS. Las ecuaciones se han obtenido combinando unas ecuaciones con otras de tal forma que se haya podido obtener el valor de un píxel o la relación entre dos de ellos. En la Ilustración 3.4-VI se muestra como se obtienen las ecuaciones para la primera rejilla de muestreo.
a b e f y (1,3) a b e x1 y (2, 2)·4 x3 y (1,3) 4·( y (1, 2) y (2, 2)) a e x1 x3 y (1, 2)·4 a b e x1 y (2, 2)·4 x2 y (1,3) 4·( y (2,1) y (2, 2)) a b x1 x2 y (2,1)·4 a b e x1 y (2, 2)·4 x1 4·y (2, 2) 3·y (1,3) x1 x2 x3 x4 y (1,1)·4
Ilustración 3.4-VI Ecuaciones para la primera rejilla de muestreo.
58
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución
Realizando las mismas operaciones para el resto de rejillas de muestreo se obtiene el siguiente conjunto de ecuaciones (Ilustración 3.4-VII).
x3 y (1,3) 4·( y (1, 2) y (2, 2)) x2 y (1,3) 4·( y (2,1) y (2, 2)) x1 4·y (2, 2) 3·y (1,3) x1 y (4,1) 4·( y (6, 2) y (5, 2)) x4 y (4,1) 4·( y (5,1) y (5, 2)) x2 4·y (2,5) 3·y (1, 4) x4 y (1, 4) 4·( y (1,5) y (2,5)) x1 y (1, 4) 4·( y (2, 6) y (2,5)) x3 4·y (5, 2) 3·y (4,1) x2 y (4, 4) 4·( y (6,5) y (5,5)) x3 y (4, 4) 4·( y (5, 6) y (5,5)) x4 4·y (5,5) 3·y (4, 4) x3 x2 4·( y (1, 2) y (2,1)) x1 x4 4·( y (6, 2) y (5,1)) x3 x2 4·( y (5, 6) y (6,5)) x1 x4 4·( y (2, 6) y (1,5)) x1 x2 x3 x4 4·y (1,1) Ilustración 3.4-VII Conjunto de ecuaciones obtenidas para el caso de cuatro movimientos.
Como se puede ver en la Ilustración 3.4-VII, se obtienen varias estimaciones para un mismo píxel. Por este motivo, se realizará la media de todas estas estimaciones a la hora de optimizar con GAMS.
Para el caso de cuatro movimientos se ha realizado un código de Matlab que nos proporciona la matriz “y” para el caso anteriormente mostrado. No se ha realizado una función que nos genere el código de GAMS directamente ya que los resultados obtenidos con cuatro movimientos no fueron favorables. En la Parte
59
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Estudio de algoritmos de súper resolución IV, en el epígrafe 1.6, se pueden encontrar la el código fuente del archivo “crear_imagenes_4mov” el cual proporciona la matriz “y” y los valores de los cuatro píxeles que se van a estimar. Posteriormente, en el epígrafe 2.3 se tiene el código fuente de GAMS para el caso de cuatro movimientos en el archivo “optimizacion_4mov”. Por el contrario, para el caso de nueve movimientos se ha creado un archivo de Matlab que permite situar los cuatro píxeles en distintas posiciones. También nos proporciona la matriz “y”. Se le ha denominado al archivo “crear_imagenes_v2”. Las acciones que realiza son las siguientes: a través de la función “dibuja_pixel” crea las distintas imágenes con los píxeles desplazados. Es importante destacar que la posición inicial del píxel primero debe estar compuesta por dos coordenadas impares para que la distribución de la matriz “y” coincida con la estudiada anteriormente. Por comodidad solamente se ha estudiado esta distribución de “y”. Luego se convierten las imágenes a escala de grises y se reduce la calidad con las funciones “blne” y “baja_resol”, respectivamente. Finalmente obtiene la matriz “y”. Una vez realizado este proceso se puede aplicar el archivo “algoritmo”, el cual estima los píxeles con el primero de los dos métodos mencionados anteriormente; y también se puede ejecutar la función “GamsFileCreator_v2”, la cual nos genera el código necesario para ejecutar el algoritmo de GAMS introduciéndole como variable de entrada el nombre del archivo en el que se guardará dicho código y la matriz “y”. Todas estas funciones de Matlab se pueden encontrar en la Parte IV, en el epígrafe 1.6.
En el capítulo siguiente se van a analizar todos estos métodos expuestos anteriormente y se estudiaran sus resultados.
60
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Capítulo 4 RESULTADOS/EXPERIMENTOS En este capítulo se van a exponer todos los experimentos realizados en una y dos dimensiones y con movimiento de imágenes. También se analizarán los resultados obtenidos. Los pasos para realizar los experimentos que a continuación se muestran, se pueden encontrar en la Parte II Manual de Usuario.
4.1 ALGORITMO DE OPTIMIZACIÓN EN 1D
En primer lugar se ha considerado una imagen unidimensional artificial en la cual aparecen variaciones entre los píxeles relativamente bruscas. En la Ilustración 4.1-I se puede ver la imagen original así como el resultado obtenido utilizando el algoritmo de optimización en 1D. En la Parte IV, en el epígrafe 2.1, se puede encontrar el código de GAMS empleado para resolver este problema (“Resolucion_1D_v1.gms”).
Cualitativamente, el resultado parece bueno, exceptuando los primeros píxeles. Si se comparan los píxeles de manera cuantitativa (Tabla 4.1-I), se puede ver que algunos de los píxeles estimados se han calculado de forma exacta. En cambio, hay otros que varían bastante de su valor real. No obstante, hay que tener en cuenta que la imagen ha sido generada de forma aleatoria.
61
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original 0.5
1
1.5
1
2
3
4
5
6
7
8
6
7
8
Imagen estimada 0.5
1
1.5
1
2
3
4
5
Ilustración 4.1-I Resultados del Algoritmo de optimización en una dimensión con una imagen artificial.
Imagen original Imagen estimada
255
240 250 210 150 100 200 100
255
255 238 208 151 115 186 100
Tabla 4.1-I Resultados del Algoritmo de optimización en una dimensión con una imagen artificial.
En segundo lugar se ha considerado una imagen unidimensional sacada de una imagen bidimensional real, para poder verificar la validez del algoritmo con imágenes reales. La imagen unidimensional considerada se puede ver en la Ilustración 4.1-II. En la Parte IV, en el epígrafe 2.1, se puede encontrar el código de GAMS empleado para resolver este problema (“Resolucion_1D_v2.gms”).
Una vez ejecutado el código el resultado obtenido es el que se muestra en la Ilustración 4.1-II. Cualitativamente se puede ver cómo no existe una diferencia significativa entre ambas imágenes. Para un análisis cuantitativo, en la Tabla 4.1-II se pueden comparar los valores de la imagen original y de la imagen 62
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos estimada. Como se puede comprobar, la estimación de algunos píxeles es exacta. En el resto hay una pequeña variación de cómo máximo tres unidades. Si se compara estos resultados con los del experimento anterior se puede comprobar que se ha mejorado bastante al considerar imágenes reales. El algoritmo diseñado es menos eficiente con imágenes altamente heterogéneas, que presenten variaciones bruscas entre píxeles. No obstante, las imágenes reales tienen una menor variación entre píxeles adyacentes que las imágenes generadas de forma aleatoria.
Imagen original 0.5
1
1.5
2
4
6
8
10
12
10
12
Imagen estimada 0.5
1
1.5
2
4
6
8
Ilustración 4.1-II Resultados del Algoritmo de optimización en una dimensión con una imagen real.
Imagen original Imagen estimada
70
69
71
76
82
86
87
85
84
89
89 85 83
70
71
69
78
82
87
85
86
86
87
89 86 86
Tabla 4.1-II Resultados del Algoritmo de optimización en una dimensión con una imagen real.
63
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos Por lo tanto, los resultados obtenidos son buenos, incluso para imágenes de pequeño tamaño, las cuales podrían dar lugar a un mayor error, ya que se trabaja con menos información a la hora de estimar píxeles. Para una dimensión no se han realizado más experimentos ya que visto el éxito del algoritmo, se comenzó directamente con su implementación en dos dimensiones.
4.2 ALGORITMO DE OPTIMIZACIÓN EN 2D
En primer lugar se va a trabajar con una imagen de pequeño tamaño, al igual que se ha hecho en una dimensión para probar el algoritmo. La imagen que se va a usar es “imagen.jpg” (Ilustración 4.2-I) de tamaño 17x16.
2 4 6 8 10 12 14 16 2
4
6
8
10
12
14
16
Ilustración 4.2-I Imagen real empleada para el Algoritmo de optimización en 2D (“imagen.jpg”).
Una vez ejecutado el algoritmo de optimización se obtiene el resultado mostrado en la Ilustración 4.2-II.
64
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
Imagen obtenida con GAMS
5
5
10
10
15
15 5
10
15
5
10
15
Ilustración 4.2-II Resultado del Algoritmo de optimización en 2D para “imagen.jpg”.
Cualitativamente, se puede comprobar que ambas imágenes se asemejan bastante. No se aprecian diferencias significativas. En este caso a partir de imágenes de tamaño 8x8 se ha conseguido una imagen de 17x16. Comparando los valores reales con los obtenidos, la máxima diferencia que se obtiene entre un píxel original y estimado es de 20 unidades. Aunque podría considerarse excesiva esta diferencia, en realidad no es preocupante, ya que aparece en píxeles puntuales. La diferencia entre la mayoría de los píxeles no supera las 10 unidades, siendo 6.36 unidades la diferencia media entre los píxeles de las imágenes. Por lo tanto, en conjunto, ambas imágenes se pueden considerar prácticamente iguales. En la Ilustración 4.2-III se pueden analizar los errores de cada uno de los píxeles de la imagen. En blanco aparecen los píxeles cuya diferencia con respecto al píxel real es cero. El verde indica si la diferencia es menor o igual a 5 unidades. El amarillo indica si la diferencia se encuentra entre 5 y 10 unidades. Y finalmente el rojo indica si la diferencia es mayor de 10. Como se puede apreciar la mayoría de los píxeles se encuentran en color blanco o verde. Un pequeño porcentaje son amarillos y un número bastante reducido con respecto al resto son rojos.
65
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
2 4 6 8 10 12 14 16 2
4
6
8
10
12
14
16
Ilustración 4.2-III Representación gráfica del error obtenido.
A continuación se va a trabajar con dos imágenes de distinto tamaño para poder analizar los tiempos de ejecución del algoritmo. Las imágenes se denominan “mon.jpg” y “mon2.jpg”, de tamaños 150x220 y 95x143, respectivamente. En la Ilustración 4.2-IV se pueden ver ambas imágenes. En el caso de la imagen “mon.jpg”, a partir de cuatro imágenes de 75x110 generadas a partir de la original se obtendrá la imagen de 150x220. En el caso de “mon2.jpg”, a partir de imágenes de 46x71 generadas a partir de la original se obtendrá la imagen de 95x143.
mon.jpg
mon2.jpg
Ilustración 4.2-IV Imágenes reales empleadas para el Algoritmo de optimización en 2D.
66
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Para la imagen “mon.jpg” se obtiene el resultado de la Ilustración 4.2-V. Para la imagen “mon2.jpg” se muestra el resultado en la Ilustración 4.2-VI. Ambos resultados, son muy positivos ya que se obtienen prácticamente las imágenes originales. En la Tabla 4.2-I se pueden analizar los tiempos de ejecución. Estos experimentos se han llevado a cabo con un ordenador con un procesador Intel(R) Core(TM)2 Quad CPU a 2.40GHz. Es importante remarcar que los tiempos que aparecen son los correspondientes a la ejecución del algoritmo. El proceso posterior de almacenar la solución en un archivo de Microsoft Excel 2007 no cuenta cómo tiempo de ejecución del algoritmo.
Imagen
Tiempo de Ejecución
“mon.jpg”
0.593 segundos
“mon2.jpg”
0.234 segundos
Tabla 4.2-I Tiempos de ejecución del Algoritmo de optimización en 2D para distintas imágenes.
Como se puede comprobar, los tiempos de ejecución son pequeños. Esto era de esperar ya que el problema de optimización al que nos estamos enfrentando es un problema lineal de variables enteras acotadas.
67
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
50
100
150
20
40
60
80
100
120
140
160
180
200
220
160
180
200
220
Imagen obtenida con GAMS
50
100
150
20
40
60
80
100
120
140
Ilustración 4.2-V Resultado del Algoritmo de optimización en 2D para “mon.jpg”. Imagen original 20 40 60 80 20
40
60
80
100
120
140
120
140
Imagen obtenida con GAMS 20 40 60 80 20
40
60
80
100
Ilustración 4.2-VI Resultado del Algoritmo de optimización en 2D para “mon2.jpg”.
68
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Finalmente, a modo de resumen, se tiene un algoritmo que partiendo de cuatro imágenes de baja resolución desplazadas relativamente, se obtiene la imagen una imagen de mayor resolución (Ilustración 4.2-VII).
20
20
40
40
60
60 20
40
60
80
100
20
20
40
40
60
60 20
40
60
80
100
20
40
60
80
100
20
40
60
80
100
20
40
60
80
100
120
140 20
40
60
80
100
120
140
160
180
200
220
Ilustración 4.2-VII Esquema Algoritmo de optimización en 2D.
69
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
4.3 MOVIMIENTO DE IMÁGENES MAYORES QUE LA REJILLA DE MUESTREO
El experimento realizado en esta sección es muy simple ya que consiste en aplicar el algoritmo de optimización en 2D modificado a una imagen que se desplaza sobre un fondo estático. Como el fondo es estático, solamente se aplica el algoritmo a la imagen en movimiento. La posición de la imagen no importa ya que el fondo no nos afecta, no importa que sea homogéneo o heterogéneo. La secuencia de imágenes de baja resolución de las cuales se parte se pueden ver en la Ilustración 4.3-I.
10
10
20
20
30
30 10
20
30
40
50
10
10
20
20
30
30 10
20
30
40
50
10
20
30
40
50
10
20
30
40
50
Ilustración 4.3-I Imágenes de baja resolución con una imagen sobre fondo estático.
70
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos La imagen que se desplaza ha realizado los movimientos correspondientes a los que realizaría la rejilla de muestreo en el algoritmo de optimización en dos dimensiones. A partir de estas imágenes se obtienen la matriz “LR” con la que se calculan el resto de parámetros necesarios para ejecutar el algoritmo.
Una vez se ha ejecutado el proceso, se obtiene el resultado de la Ilustración 4.3-II. Como se puede comprobar, a partir de los sucesivos “frames” disponibles, se consigue mejorar la resolución del objeto en movimiento. El principal inconveniente que se plantea es el hecho de que no es válido cualquier tipo de movimiento. El movimiento requerido es muy específico.
71
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
10
10
15
15
20
20
25
25 10
20
30
10
20
30
5 10
10
15
15
20
20
25
25 10
20
30
10
20
30
5 10 15 20 25 30 35 40 45 10
20
30
40
50
60
Ilustración 4.3-II Resultados con una imagen mayor que la rejilla de muestreo en movimiento.
72
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
4.4 MOVIMIENTO DE IMÁGENES IGUALES O MENORES QUE LA REJILLA DE MUESTREO
4.4.1 CUATRO MOVIMIENTOS
Finalmente se va a tratar el caso de una imagen compuesta por cuatro píxeles que se desplaza sobre un fondo estático. En primer lugar se van a considerar cuatro movimientos. Se obtendrán las cuatro imágenes mostradas en la Ilustración 4.4-I. Se ha realizado un zoom sobre la imagen en movimiento ya que el resto no aporta información. Como se puede comprobar, el movimiento se realiza sobre un fondo relativamente homogéneo. Finalmente, el programa proporciona la matriz “x” la cual contiene los valores de los píxeles originales y la matriz “y” a partir de la cual se obtendrán distintos parámetros. Para este caso, las matrices x e y son las mostradas en la Ecuación 4.4-I.
Ecuación 4.4-I
76 150 x , 226 29
136 121 y 171 147
138 175 176 153 176 139 140 156 186 147 186 186
Una vez se ha realizado este proceso se obtiene el código de GAMS “optimización_4mov.gms” (Parte IV2.3). Finalmente el resultado obtenido se puede ver en la Ecuación 4.4-II:
Ecuación 4.4-II
76 150 xoriginal , 226 29
46 172 xGAMS 234 32
En la Ilustración 4.4-II se pueden comparar ambas imágenes.
73
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
30
30
35
35
40
40 35
40
45
50
55
30
30
35
35
40
40 35
40
45
50
55
35
40
45
50
55
35
40
45
50
55
Ilustración 4.4-I Imagen con cuatro movimientos sobre fondo estático.
Imagen original
Imagen obtenida en GAMS
0.5
0.5
1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-II Resultados con una imagen igual que la rejilla de muestreo con 4 movimientos.
Como se puede apreciar, algunos píxeles son significativamente diferentes. Las diferencias entre los píxeles obtenidos y los originales son inaceptables
74
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos considerando que el fondo es prácticamente homogéneo. Por ello se van a realizar más movimientos.
4.4.2 NUEVE MOVIMIENTOS CON FONDO BLANCO
En el siguiente caso se realizan nueve movimientos, como ya se explicó en el Capítulo 3, epígrafe 3.4. Se van a realizar tres experimentos. En el primero de ellos vamos a considerar un fondo totalmente homogéneo (fondo blanco). En los otros dos casos se va a considerar un fondo relativamente homogéneo y otro fondo heterogéneo. Por defecto, los píxeles utilizados son los mismos que en el caso de cuatro movimientos, por lo tanto la matriz “x” será la misma. La matriz “y” que se obtiene en el caso de trabajar sobre un fondo completamente homogéneo se muestra en la Ecuación 4.4-III:
Ecuación 4.4-III
121 185 255 y 255 192 121
204 255 255 173 121 211 255 255 230 185 255 255 255 255 255 255 255 255 255 255 249 255 255 199 192 204 255 255 173 121
Aplicando el archivo “algoritmo.m” (Parte IV1.6) se obtiene el resultado de la Ecuación 4.4-IV: Ecuación 4.4-IV
76 150 xoriginal , 226 29
75 151 xalgoritmo.m 227 27
Finalmente, en la Ilustración 4.4-III se pueden comparar ambas imágenes.
75
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
Imagen obtenida con "algoritmo.m" 0.5
0.5 1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-III Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo blanco con “algoritmo.m”.
Como se puede apreciar, ambas imágenes son exactamente iguales, despreciando la diferencia en una o dos unidades del valor de los pixeles, debida al proceso de discretización en el cual se pierde cierta información al truncar los datos. Por lo tanto, esta pequeña variación es totalmente admisible.
Si en lugar de aplicar el algoritmo anterior se realiza un proceso de optimización se obtienen resultados similares. En la Ilustración 4.4-IV se pueden comparar ambas imágenes. El resultado numérico se puede ver en la Ecuación 4.4-V:
Ecuación 4.4-V
76 150 xoriginal , 226 29
76
76 152 xGAMS 228 28
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
Imagen obtenida con GAMS
0.5
0.5
1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-IV Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo blanco con GAMS.
Como se puede comprobar, los resultados son los mismos que en el caso anterior. Ambas imágenes son iguales, despreciando las variaciones de píxel debidas al truncado de datos.
4.4.3 NUEVE MOVIMIENTOS CON FONDO HOMOGÉNEO
En esta ocasión se va a considerar un fondo relativamente homogéneo. En el manual de usuario se pueden encontrar los pasos para llevar a cabo este experimento. La matriz “y” en este caso se puede ver en la Ecuación 4.4-VI:
Ecuación 4.4-VI
121 150 185 y 188 155 121
160 185 193 138 121 156 185 193 185 158 185 185 193 193 193 188 188 183 183 183 198 188 183 148 159 171 188 183 140 121
Los resultados con “algoritmo.m” se muestran en la Ecuación 4.4-VII:
77
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
76 150 xoriginal , 226 29
Ecuación 4.4-VII
65 157 xalgoritmo.m 224 39
En la Ilustración 4.4-V se pueden comparar ambas imágenes obtenidas en este caso.
Imagen original
Imagen obtenida con "algoritmo.m" 0.5
0.5 1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-V Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo homogéneo con “algoritmo.m”.
Con el código “Resolucion_9mov_hom.gms” (Parte IV2.3) se obtiene el siguiente resultado de la Ecuación 4.4-VIII:
Ecuación 4.4-VIII
76 150 xoriginal , 226 29
83 161 xGAMS 219 21
En la Ilustración 4.4-VI se pueden comparar ambas imágenes obtenidas en este caso con GAMS.
78
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
Imagen obtenida con GAMS
0.5
0.5
1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-VI Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo homogéneo con GAMS.
4.4.4 NUEVE MOVIMIENTOS CON FONDO HETEROGÉNEO
Finalmente se va a considerar un fondo heterogéneo. En el manual de usuario se muestra los pasos a seguir para realizar estos experimentos. La matriz “y” en este caso se muestra en la Ecuación 4.4-IX:
Ecuación 4.4-IX
121 107 115 y 130 113 121
109 115 206 145 121 84 115 206 188 149 115 115 206 206 206 130 130 143 143 143 129 130 143 119 137 124 130 143 126 121
Los resultados con “algoritmo.m” son los de la Ecuación 4.4-X:
Ecuación 4.4-X
76 150 xoriginal , 226 29
79
36 179 xalgoritmo.m 171 92
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos En la Ilustración 4.4-VII se pueden comparar ambas imágenes obtenidas en este caso.
Imagen original
Imagen obtenida con "algoritmo.m" 0.5
0.5 1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-VII Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo heterogéneo con “algoritmo.m”.
Con el código “Resolucion_9mov_het.gms” (Parte IV2.3) se obtiene el resultado de la Ecuación 4.4-XI:
Ecuación 4.4-XI
76 150 xoriginal , 226 29
78 171 xGAMS 186 49
En la Ilustración 4.4-VIII se pueden comparar ambas imágenes obtenidas en este caso con GAMS.
80
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
Imagen original
Imagen obtenida con GAMS
0.5
0.5
1
1
1.5
1.5
2
2
2.5 0.5
1
1.5
2
2.5 0.5
2.5
1
1.5
2
2.5
Ilustración 4.4-VIII Resultados con una imagen igual que la rejilla de muestreo con 9 movimientos sobre fondo heterogéneo con GAMS.
4.4.5 COMPARATIVA DE RESULTADOS
Una vez realizados los distintos experimentos, se reúnen a continuación todos los resultados obtenidos en estos tres últimos caso. En la Tabla 4.4-I se recogen los valores de los píxeles obtenidos. En la Tabla 4.4-II se muestra la diferencia media entre píxeles de la imagen real y estimada.
Valores Obtenidos “algoritmo.m”
GAMS
F. Blanco
F. Homogéneo
F. Heterogéneo
75 151 227 27
65 157 224 39
36 179 171 92
76 152 228 28
83 161 219 21
78 171 186 49
Valores Originales
76 150 226 29
Tabla 4.4-I Resultados para una imagen de 4 píxeles en movimiento sobre distintos fondos estáticos por diferentes métodos.
81
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Resultados/Experimentos
x
original
xestimada
F. Blanco
F. Homogéneo
F. Heterogéneo
“algoritmo.m”
1.25 und.
7.5 und.
46.75 und.
GAMS
1.25 und.
8.25 und.
20.75 und.
4
Tabla 4.4-II Diferencias medias entre píxeles de la imagen obtenida y la imagen en movimiento sobre distintos fondos estáticos por diferentes métodos.
Como se puede apreciar, cuando el fondo estático sobre el que se desplaza la imagen es totalmente homogéneo (fondo blanco) se puede reconstruir la imagen original, sin tener en cuenta el efecto comentado anteriormente sobre el truncado de información. Cuando el fondo es relativamente homogéneo, se obtiene una diferencia mayor entre la imagen original y la obtenida, no obstante, el resultado es suficientemente bueno, ya que cualitativamente, no se aprecian grandes diferencias. Finalmente, en el caso de trabajar con un fondo heterogéneo, la imagen obtenida no se parece suficientemente a la imagen original. Los valores de los píxeles varían bastante con respecto a su valor teórico. Sin embargo, se obtiene un resultado más favorable a través de GAMS que aplicando simplemente “algoritmo.m”. En conclusión, el fondo sobre el cual se desplaza un objeto móvil influye de manera significativa a la hora de reconstruir patrones en movimiento. Aunque algunos resultados obtenidos son favorables, hay que tener en cuenta que el movimiento del objeto que se desplaza era conocido a priori, siendo éste además un movimiento determinado y concreto. Por otro lado hay que tener en cuenta que se han realizado, en este último caso, bastantes movimientos. Es posible que se pudieran conseguir resultados similares con un menor número de movimientos.
82
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Conclusiones
Capítulo 5 CONCLUSIONES Como se ha podido comprobar a lo largo de todo el proyecto, aumentar la resolución de una imagen es un problema complejo de tratar. Los métodos para mejorar la calidad de las imágenes son difíciles de implementar. El problema adquiere un nuevo nivel de dificultad si se trabaja con secuencias de video en lugar de imágenes.
En primer lugar, se ha trabajado con imágenes binarias (blanco y negro) unidimensionales. El principal problema que se ha planteado, más que el proceso de súper resolución, ha sido el elegir un conjunto de imágenes de baja resolución que sea viable de conseguir. En este proyecto se ha trabajado con hipótesis imposibles de conseguir (movimiento conocido y exacto). Por esta razón, el proyecto pretende ser una primera aproximación teórica a lo que posteriormente se irán añadiendo restricciones. También se ha podido comprobar que trabajando con imágenes solamente binarias se obtienen peores resultados que si son en escala de grises. Esto se debe a que las imágenes binarias presentan variaciones bruscas entre unos píxeles y otros. Aunque en principio, estas variaciones podrían facilitar la mejora de resolución, realmente empeoran el resultado de aquellos métodos en los cuales se realiza una estimación u optimización. Al trabajar con imágenes reales en escala de grises se han obtenido mejores resultados bastante favorables. Por lo tanto, en una dimensión se han conseguido superar el objetivo principal, implementar un algoritmo capaz de mejorar la resolución en una dimensión con imágenes con blanco y negro y movimiento conocido; y un objetivo secundario, implementar el algoritmo en una dimensión con escala de grises y movimiento conocido. Las principales desventajas de los métodos desarrollados son, por un lado, la relativa dificultad para conseguir el conjunto de imágenes de baja resolución, y por otro, la baja robustez del algoritmo.
83
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Conclusiones
El estudio realizado en una dimensión no es aplicable a la vida real, ya que no se va a trabajar nunca con imágenes unidimensionales, pero ha servido de base para desarrollar el trabajo en las dos dimensiones. En esta segunda parte se han cumplido el otro objetivo principal, implementar un algoritmo capaz de mejorar la resolución en dos dimensiones con imágenes con blanco y negro y movimiento conocido; y un objetivo secundario, implementar el algoritmo en dos dimensiones con escala de grises y movimiento conocido. Como posibles desventajas de este método, vuelven a plantearse la dificultad para conseguir el conjunto de imágenes de baja resolución de partida y la baja robustez frente a determinadas imágenes, como por ejemplo, imágenes a color. Al aplicar el algoritmo a cada canal de colores por separado (rojo, verde y azul) el método no funciona correctamente.
Finalmente, el presente proyecto ha llegado hasta el punto de estudiar el movimiento de la imagen y utilizarlo para mejorar la resolución. Se ha comprobado que dependiendo del movimiento se conseguirá más o menos información. También se ha visto cómo afecta el fondo de una imagen a la hora de reconocer objetos en movimiento. Cuanto más heterogéneo es el fondo, más difícil es identificar la imagen en movimiento, ya sea por procedimientos algebraicos o por optimización. En cambio, cuando el fondo es completa o relativamente homogéneo, se consigue reproducir con suficiente precisión la imagen en movimiento. Tanto por procedimientos puramente algebraicos como por optimización (expuestos en capítulos anteriores), los resultados que se obtienen son de la misma calidad.
En resumen, el objetivo global del proyecto consistía en el desarrollo de un algoritmo capaz de mejorar la resolución partiendo de un conjunto de imágenes de baja resolución con desplazamiento entre ellas conocido. Este objetivo se ha superado con el Algoritmo de optimización en dos dimensiones. También se ha
84
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Conclusiones realizado una pequeña introducción al estudio de reconocimiento de patrones en movimiento sobre fondo estático.
85
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Futuros desarrollos
Capítulo 6 FUTUROS DESARROLLOS A continuación se van a explicar posibles futuros desarrollos de este proyecto.
-
Como ya se ha comentado en el capítulo anterior, el algoritmo desarrollado presenta una baja robustez frente a determinados tipos de imágenes. Es necesario mejorarlo, haciendo un diseño más robusto y, si es posible, mejorando la eficacia.
-
También es necesario trabajar con imágenes reales, ya que en este proyecto se ha trabajado con imágenes de baja resolución generadas a partir de una imagen de alta calidad. Hay que analizar hasta qué punto se pueden conseguir imágenes de baja resolución con un desplazamiento infinitesimal, ya que en él se basa el algoritmo diseñado.
-
Por otro lado, también sería conveniente implementar algunos de los métodos ya existentes para poder comparar los resultados obtenidos con ellos y con el algoritmo diseñado. Este objetivo secundario no ha sido posible realizarlo por falta de tiempo.
-
Finalmente, sería conveniente continuar con el estudio de reconocimiento de patrones en movimiento, ya que uno de las principales finalidades del proyecto es poderlo aplicar a proyectos de visión artificial, como ya se ha comentado anteriormente. Habría que analizar la posibilidad de mejorar la resolución con movimiento desconocido a priori, pero para ello es necesario en primer lugar detectar y reconocer dicho movimiento.
86
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Bibliografía
Capítulo 7 BIBLIOGRAFÍA [1]
Sung Cheol Park; Min Kyu Park; Moon Gi Kang. Super-Resolution Image Reconstruction: A Technical Overview. Source: Signal Processing Magazine, IEEE, May2003. vol.20, no.3, pp. 21-36, Journal Paper.
[2]
Zitová, Barbara; Flusser, Jan. Image registration methods: a survey. Source: Image & Vision Computing, Oct2003. vol.21, Issue 11, pp. 977-1000.
[3]
Gottesfeld Brown, Lisa. A Survey of Image Registration Techniques. Source: ACM Computing Surveys, Dec1992. vol.24, Issue 4, pp. 325-376.
[4]
Bobby R Hunt. Super-resolution of images: Algorithms, principles, performance. Source: International Journal of Imaging Systems and Technology, 1995. vol.6, Issue 4, pp. 297-304.
[5]
Elad, Michael; Feuer, Arie. Restoration of a Single Superresolution Image from Several Blurred, Noisy, and Undersampled Measured Images. Source: Transactions on Image Processing, IEEE, Dec1997. vol.6, no.12, pp.1646-1658.
[6]
Miravet, C.; Rodriguez, F.B. A two step neural network based algorithm for fast image super-resolution. Source: Image and Vision Computing, 2007. vol.25, pp. 1473-1499.
[7]
Papoulis, A. A new algorithm in spectral analysis and band-limited extrapolation. Source: Transactions on Circuits and Systems, IEEE, 1975. CAS22, pp.735-742.
[8]
Gerchberg, R. Super-resolution through error energy reduction. Source: Optical Acta, 1974. vol.21, pp.709-720.
[9]
Jain, A. K. Fundamentals of Digital Image Processing (2001). Prentice Hall of India Private Limited, New Delhi – 110 001.
[10]
Chatterjee, Priyam; Mukherjee, Sujata; Chaudhuri, Subhasis; Seetharaman, Guna. Application of Papoulis-Gerchberg Method in Image Super-resolution and Inpainting. Source: The Computer Journal, Ene2009. vol.52, no.1, pp.80-89.
87
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Bibliografía [11]
Irani, M; Peleg, S. Improving resolution by image registration. Source: CVGIP: Graph. Models Image Process, 1991. vol.53, pp.231-239.
[12]
Nguyen, N; Milanfar, P; Golub, G. Efficient generalized cross-validation with applications to parametric image restoration and resolution enhancement. Source: Trans. Image Processing, Sep2001. vol.10, pp.1299-1308.
[13]
Ur, H.; Gross, D. Improved resolution from sub-pixel shifted pictures. Source: CVGIP: Graphical Models and Image Processing, Mar1992. vol.54, pp.181-186.
[14]
Papoulis, A. Generalized sampling theorem. Source: Trans. Circuits Syst., IEEE, Nov1977. vol.24, pp.652-654.
[15]
Brown, J. L. Multi-channel sampling of low pass signals. Source: Trans. Circuits Syst., IEEE, Feb1981. vol. CAS-28, pp.101-106.
[16]
Komatsu, T.; Aizawa, K.; Igarashi, T.; Saito, T. Signal-processing based method for acquiring very high resolution image with multiple cameras and its theoretical analysis. Source: Proc. Inst. Elec. Eng. Feb1993. vol.140, no.1, pt.I, pp.19-25.
[17]
Landweber, L. An iteration formula for Fredholm integral equations of the first kind. Source: Amer. J. Math. 1951. vol.73, pp.615-624.
[18]
Tsai, R.Y.; Huang, T.S. Multipleframe image restoration and registration. Source: Advances in Computer Vision and Image Processing. Greenwich, CT: JAI Press Inc., 1984. pp.317-339
[19]
Kim, S.P.; Bose, N.K.; Valenzuela, H.M. Recursive reconstruction of high resolution image from noisy undersampled multiframes. Source: Trans. Acoust., Speech, Signal Processing, IEEE, Jun1990. vol.38, pp.1013-1027.
[20]
Kim, S.P.; Su, W.Y. Recursive high-resolution reconstruction of blurred multiframe images. Source: Trans. Image Processing, IEEE, Oct1993. vol.2, pp.534-539.
[21]
Bose, N.K.; Kim, S.P.; Valenzuela, H.M. Recursive implementation of total least squares algorithm for image reconstruction from noisy, undersampled multiframes. Source: Proc. IEEE Conf. Acoustics, Speech and Signal Processing, Abr1993, Minneapolis, MN. vol.5, pp.269-272.
88
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Bibliografía [22]
Rhee, S.H.; Kang, M.G. Discrete cosine transform based regularized highresolution image reconstruction algorithm. Source: Opt. Eng. Ago1999. vol.38, no.8, pp.1348-1356.
[23]
Katsaggelos, A.K. Ed. Digital Image Restoration. Heidelberg, Germany: Springer-Verlag. Springer. vol.23, 1991.
[24]
Hong, M.C.; Kang, M.G.; Katsaggelos, A.K. A regularized multichannel restoration approach for globally optimal high resolution video sequence. Source: SPIE VCIP, Feb1997, San Jose, CA. vol.3024, pp.1306-1317.
[25]
Hong, M.C.; Kang, M.G.; Katsaggelos, A.K. An iterative weighted regularized algorithm for improving the resolution of video sequences. Source: Proc. Int. Conf. Image Processing, 1997. vol.2, pp.474-477.
[26]
Kang, M.G. Generalized multichannel image deconvolution approach and its applications. Source: Opt. Eng. Nov1998. vol.37, no.11, pp.2953-2964.
[27]
Hardie, R.C.; Barnard, K.J.; Bognar, J.G.; Armstrong, E.E.; Watson, E.A. Highresolution image reconstruction from a sequence of rotated and translated frames and its applications to an infrared imaging system. Source: Opt. Eng. Ene1998. vol.37, no.1, pp.247-260.
[28]
Tom, B.C.; Katsaggelos, A.K. Reconstruction of a high-resolution image by simultaneous registration, restoration, and interpolation of low-resolution images. Source: Proc. 1995 IEEE Int. Conf. Image Processing, Oct1995, Washington, DC. vol.2, pp.539-542.
[29]
Schulz, R.R.; Stevenson, R.L. Extraction of high-resolution frames from video sequences. Source: Trans. Image Processing, IEEE, Jun1996. vol.5, pp.996-1011.
[30]
Stark, H.; Oskoui, P. High resolution image recovery from image-plane arrays, using convex projections. Source: J. Opt. Soc. Am. A, 1989. vol.6, pp.1715-1726.
[31]
Tekalp, A.M.; Ozkan, M.K.; Sezan, M.I. High-resolution image reconstruction from lower-resolution image sequences and space varying image restoration. Source: Proc. IEEE Int. Conf. Acoustics, Speech and Signal Processing (ICASSP), Mar1992, San Francisco, CA. vol.3, pp.169-172.
89
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Bibliografía
Parte II MANUAL DE USUARIO
90
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario
Capítulo 1 MANUAL DE USUARIO En este capítulo se explican los pasos a seguir para ejecutar algunos de los algoritmos expuestos en este proyecto
1.1 ALGORITMO DE OPTIMIZACIÓN EN 2D
1.1.1 ALGORITMO APLICADO A UNA IMAGEN DE 17X16
El primer paso es modificar la primera instrucción del código del archivo “prep_datos.m” (Parte IV1.4) para cargar la imagen de interés. La línea de código debe quedar de la siguiente manera:
foto=imread(‘imagen’,‘jpg’);
Una vez que se ha realizado esta modificación, se guarda el archivo y se ejecuta. Acto seguido se debe generar el código de GAMS con la función “GamsFileCreator.m” (Parte IV1.4). Por lo tanto, se deberán ejecutar las siguientes líneas de código:
prep_datos; GamsFileCreator(‘resolucion’,LR,coeficiente,pesos);
Después se abre el archivo “resolución” con el editor de texto de Matlab y se copia todo el código a GAMS, y se ejecuta. El código que se obtiene se puede encontrar en la Parte IV, en el epígrafe 2.2. La última línea del código de GAMS
91
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario que se genera guarda el resultado de la optimización en una hoja de cálculo de Microsoft Excel 2007 en la dirección que se ha creado por defecto. En caso de que se quiera guardar el resultado en otra dirección es necesario cambiar dicha línea de código exclusivamente.
1.1.2 ALGORITMO APLICADO A IMÁGENES “MON” Y “MON2”
Al igual que en el caso anterior, el primer paso es modificar la primera instrucción del archivo “prep_datos.m” (Parte IV1.4) de tal forma que se carguen las imágenes correctas.
foto=imread(‘mon’,‘jpg’); %Para la primera imagen foto=imread(‘mon2’,‘jpg’); %Para la segunda imagen
El resto del procedimiento es el mismo que en el experimento anterior.
prep_datos; GamsFileCreator(‘resolucion’,LR,coeficiente,pesos)
En estos casos no se adjunta el código fuente de GAMS ya que, al trabajar con imágenes de un tamaño mayor que en el caso anterior, se obtienen unas matrices de grandes dimensiones, sin aportar nada nuevo al presente documento.
92
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario
1.2 MOVIMIENTO DE IMÁGENES MAYORES QUE LA REJILLA DE MUESTREO
Por lo tanto, para obtener el código fuente de GAMS se debe ejecutar la siguiente secuencia en Matlab:
crear_imagenes; coeficiente=coef(LR); pesos=peso(LR); GamsFileCreator(‘resolucion’,LR,coeficiente,pesos);
Al trabajar con imágenes de tamaño relativamente grande, se obtienen matrices muy grandes. Por ese motivo no se adjuntan los códigos fuente de GAMS que se ejecutan.
1.3 MOVIMIENTO DE IMÁGENES IGUALES O MENORES QUE LA REJILLA DE MUESTREO
1.3.1 CUATRO MOVIMIENTOS
Para realizar el experimento en el que la imagen realiza cuatro movimientos es necesario ejecutar el archivo de Matlab “crear_imagenes_4mov.m” (Parte IV1.6). Posteriormente, se debe realizar la optimización a través del código de GAMS “optimización_4mov.gms” (Parte IV2.3).
93
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario
1.3.2 NUEVE MOVIMIENTOS CON FONDO BLANCO
Para generar las imágenes se ha de ejecutar el archivo de Matlab “crear_imagenes_v2”. Se van a realizar tres experimentos. En el primero de ellos vamos a considerar un fondo totalmente homogéneo (fondo blanco). En los otros dos casos se va a considerar un fondo relativamente homogéneo y otro fondo heterogéneo. Para el primer caso, es necesario activar, en el archivo “crear_imagenes_v2” el comentario siguiente:
% Sobre fondo blanco % mon3(:,:,:)=255;
Después se aplicará el archivo “algoritmo.m” (Parte IV1.6) para calcular los valores de los píxeles de la imagen en movimiento.
Si en lugar de aplicar el algoritmo anterior, usamos GAMS, se debe ejecutar el código obtenido por la función “GamsFileCreator_v2”. Para ello, después de ejecutar el archivo “crear_imagenes_v2” se debe ejecutar la siguiente línea de código:
GamsFileCreator_v2(‘resolucion’,y);
Entonces se obtendrá el código “Resolucion_9mov_blanco.gms” adjunto en la Parte IV, epígrafe 2.3 para ser ejecutado en GAMS.
1.3.3 NUEVE MOVIMIENTOS CON FONDO HOMOGÉNEO
En esta ocasión se va a considerar un fondo relativamente homogéneo. Para ello, en el archivo “crear_imagenes_v2” se va a modificar la posición del primer píxel 94
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario de la siguiente manera: n = 33, m = 33. Una vez realizado este cambio se ha de ejecutar el dicho código.
El resto de pasos son los mismos que en el caso anterior. En el primer experimento se ejecuta el código “algoritmo.m” y en el segundo experimento el código de GAMS “Resolucion_9mov_hom.gms” (Parte IV2.3) generado a partir de “GamsFileCreator_v2.m”.
1.3.4 NUEVE MOVIMIENTOS CON FONDO HETEROGÉNEO
Finalmente se va a considerar un fondo heterogéneo. Para ello, en el archivo “crear_imagenes_v2” se va a modificar la posición del primer píxel de la siguiente manera: n = 25, m = 13. Una vez realizado este cambio se ha de ejecutar el dicho código.
El resto de pasos son los mismos que en el caso anterior. En el primer experimento se ejecuta el código “algoritmo.m” y en el segundo experimento el código de GAMS “Resolucion_9mov_het.gms” (Parte IV2.3) generado a partir de “GamsFileCreator_v2.m”.
95
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Manual de Usuario
Parte III ANEXOS
96
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I
Capítulo 1 ANEXO I En este capítulo se reúnen algunos algoritmos y diseños en una dimensión que se han llevado a cabo a lo largo del proyecto, pero que dado su enfoque, no se han seguido desarrollando. Estas ideas se recogen a continuación, ya que pueden resultar útiles en futuros desarrollos.
1.1 DISEÑO 01
La idea principal de este diseño es aumentar el número de píxeles de una determinada imagen mediante interpolación. Como ya se ha visto, existen métodos de súper resolución que trabajan con conjuntos de imágenes con movimiento relativo a nivel de sub-píxel. El diseño explicado a continuación no aumenta la resolución, solamente aumenta la densidad de píxeles en la imagen. De esta manera se obtiene una imagen más suavizada, pero con la misma resolución, es decir, no se mejora el detalle de la imagen.
Este diseño consta de tres pasos. En el primero de ellos (Ilustración 1.1-I) simplemente se duplica el tamaño de la imagen. Las filas y columnas en las que no aparece ningún píxel, su valor es cero (color negro). En el segundo paso (Ilustración 1.1-II) se rellenan los espacios entre píxeles con la media aritmética de los píxeles adyacentes. Finalmente, en el tercer paso (Ilustración 1.1-III) se rellenan los espacios restantes con la media aritmética de todos los píxeles de alrededor.
97
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I
a
b
d
c
a
b
d
c
Ilustración 1.1-I Paso 01 en el aumento de la densidad de píxeles.
a a
b
d
c
α
β d
b γ
δ
c
ab ad bc d c , , , 2 2 2 2 Ilustración 1.1-II Paso 02 en el aumento de la densidad de píxeles.
a
b
d
c
a
α
b
β
ε
γ
d
δ
c
a b c d 8
Ilustración 1.1-III Paso 03 en el aumento de la densidad de píxeles.
98
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I En la Ilustración 1.1-IV se puede comprobar el resultado de aplicar tres veces consecutivas este proceso a una imagen. Como se puede comprobar, no aumenta la resolución de la imagen en el sentido de que no aumenta el nivel de detalle, pero sí que se distingue con mayor claridad la figura representada. Se pasa de una imagen “pixelada” a una imagen borrosa.
Imagen original
Imagen aumentada
140
1100
150
1200
160 1300 170 1400 180 190
1500
200
1600
210 1700 220 1800 230 60
80
100
500
600
700
800
900
Ilustración 1.1-IV Detalle de una iglesia duplicando x3 el número de píxeles.
Para realizar este proceso se han creado dos funciones para Matlab. Estas funciones son “resolucion” y “pixels_x2”. Los códigos fuentes de ambas funciones se pueden encontrar en la Parte IV, en el epígrafe 1.7. En primer lugar se debe crear una variable con la información de la imagen con la cual se va a trabajar. Para ello, existe una función en Matlab que almacena en una variable la información de una imagen cualquiera que se encuentre en el directorio de trabajo. La función se denomina “imread”. Las variables de entrada son: el
99
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I nombre de la imagen y el formato de la misma. Por lo tanto, en este caso que se tiene una imagen “foto.tif”, para guardarla en una variable “foto”, la instrucción de Matlab es la siguiente:
foto = imread(‘foto’,‘TIFF’);
Una vez que se tiene la imagen almacenada en una variable se debe ejecutar la función “resolucion” cuyas variables de entrada son el número de veces que se desea duplicar el tamaño de píxeles y la imagen sobre la que aplicar el algoritmo. Esta función simplemente llama a la función “pixels_x2” tantas veces como se requiera. Finalmente muestra en una misma figura la imagen original y la imagen resultante.
La función “pixels_x2” recibe como variable de entrada la imagen que se quiera duplicar el número de píxeles. Esta función realiza los pasos mostrados en la Ilustración 1.1-I, Ilustración 1.1-II e Ilustración 1.1-III. Finalmente, la variable de salida es la imagen con la cantidad de píxeles duplicada.
1.2 DISEÑO 02
En este caso se estudia la posibilidad de trabajar con diferentes niveles de resolución, es decir, con distintos tamaños de rejilla de muestreo. En este diseño se parte de una imagen unidimensional de blancos y negros que será muestreada con una rejilla con distintos tamaños de muestreo. El tamaño de la rejilla va desde un tamaño mínimo, definido por el usuario, hasta un tamaño igual al de la imagen original. Cada conjunto de muestras se van almacenando en una matriz denominada “LR”. De esta manera, cada fila de esta matriz es la imagen original con una resolución distinta (Ilustración 1.2-I). Al igual que en el Algoritmo1D-v1,
100
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I se rellena con blanco, en este caso al final de la imagen, para poder muestrear con mayor comodidad. Cómo es obvio, de cada fila de la matriz LR solamente nos interesaran los píxeles iniciales, siendo cero el resto. Por ejemplo, en la última fila solamente nos interesa el primer valor que corresponde a la media de todos los píxeles de la imagen. En la Ilustración 1.2-I, el tamaño de la imagen original es de 5, siendo el tamaño mínimo de la rejilla de muestreo 2.
Imagen HR
Muestras LR
Ilustración 1.2-I Muestreo de una imagen con diferentes resoluciones.
A continuación, una vez obtenida la matriz LR, haciendo uso de la primera fila de ésta, se va a generar una imagen inicial de la siguiente manera: se rellena primero con negros y después con blancos en función del porcentaje de oscuridad de cada píxel de baja resolución de la primera fila de LR. En el ejemplo anteriormente mostrado, resulta que los cuatro primeros píxeles de alta resolución están cambiados, en cambio, el quinto y el sexto estarán bien calculados. En la Ilustración 1.2-II se puede ver la imagen original y la imagen generada inicialmente.
101
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I
Imagen HR
Imagen HR inicial Ilustración 1.2-II Imagen original e imagen generada inicialmente.
El siguiente paso es aplicar nuevamente las rejillas de muestreo a la nueva imagen, almacenando estos valores en una matriz denominada “LR2”. A partir de este punto comienza un proceso iterativo en el cual se va comparando fila a fila y cada uno de los valores de los píxeles de baja resolución. Si un píxel de LR es más oscuro que uno de LR2, significa que uno de los píxeles abarcados por dicha muestra debe pasar del color blanco al negro, y viceversa. Este proceso comparativo se va realizando de forma iterativa hasta que ambas matrices, LR y LR2, coincidan exactamente.
Los resultados obtenidos son buenos, pero hay que tener en cuenta que se ha trabajado con una cantidad de información que en la realidad no es viable. Además, se ha trabajado con imágenes binarias (sólo dos colores, blanco y negro). Aplicando este proceso a dos imágenes distintas, con distintos tamaños y diferentes tamaños mínimos de la rejilla de muestreo
(y), se obtienen los
siguientes resultados: -
Al aumentar el tamaño de la imagen, es necesario un mayor número de iteraciones para obtener la imagen final.
-
Al aumentar el tamaño mínimo de la rejilla de muestreo se incrementa el error de los píxeles iniciales, de los cuales no se dispone suficiente información para obtenerlos.
102
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I
Imagen HR 0.5 1 1.5
5
10
15
20
25
30
35
40
30
35
40
Imagen HR obtenida 0.5 1 1.5
5
10
15
20
25
Error en cada iteración 0.5
0
1
1.5
2
2.5
3
3.5
4
4.5
5
Ilustración 1.2-III Imagen original de tamaño 20 y rejilla mínima de tamaño 3.
Imagen HR 0.5 1 1.5
20
40
60
80
100
120
140
160
180
200
140
160
180
200
Imagen HR obtenida 0.5 1 1.5
20
40
60
80
100
120
Error en cada iteración 0.5
0
0
2
4
6
8
10
12
14
16
Ilustración 1.2-IV Imagen original de tamaño 100 y rejilla mínima de tamaño 10.
103
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I Todo este proceso se realiza a través de la función “Design02” creada para Matlab, cuyo código fuente se puede encontrar en la Parte IV, en el epígrafe 1.8. Las variables de entrada de esta función son, por un lado el tamaño mínimo de la rejilla con la que se va a muestrear, y por otro, el tamaño de la imagen unidimensional que se desea generar. Esta función realiza los siguientes pasos: -
En primer lugar se comprueba que el tamaño de la rejilla de muestreo es menor que el tamaño de la imagen que se quiere generar.
-
Seguidamente se genera un vector, del tamaño de la imagen que se desea crear, rellenando dicho vector con ceros y unos de forma aleatoria. Este vector se guarda en la variable “modelo”.
-
Se calculan las diferentes muestras de baja resolución con los distintos tamaños de rejilla de forma que un píxel de baja resolución es la media de los de alta resolución. Cada imagen de baja resolución se almacena en una fila de una matriz denominada “LR”.
-
Con la primera fila de la primera matriz “LR” se genera una imagen inicial de la manera que se explicó anteriormente. De esta manera se crea el vector “HR”.
-
Se calculan la matriz equivalente a “LR” para el vector “HR”, denominada “LR1”.
-
A partir de este punto comienza un proceso iterativo en el cual se compara elemento a elemento cada una de las filas de las matrices “LR” y “LR1”. Si ambas filas son iguales, se comparan las siguientes. En cambio, si dos filas son distintas se comprueba si se debe modificar un píxel blanco por uno negro, y viceversa. Se calculas muestras de la siguiente fila y se comparan. Si se ha realizado algún cambio se activa la variable “cambio” de tal forma que se vuelven a comparar ambas matrices desde el principio. El proceso iterativo acaba cuando no se haya realizado ningún cambio. Por seguridad se ha introducido un límite de iteraciones, de tal forma que si no se igualan ambas matrices llegado a ese límite se termine el proceso. Este número de iteraciones se puede modificar con la variable “n_iter”.
104
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I -
En cada iteración también se calculan el número de errores que hay entre la imagen original y la que se está reconstruyendo.
-
Finalmente se muestra en una misma figura la imagen original, la que se ha obtenido y una gráfica con la evolución del error en las distintas iteraciones.
1.3 DISEÑO 03
El siguiente diseño se basa en el Algoritmo1D-v1. El muestreo se realiza de la misma manera que en dicho algoritmo, siendo el desplazamiento infinitesimal. La novedad es que en este caso se va a utilizar un tamaño 2 de rejilla y no se va a rellenar la imagen original con blancos al principio. Por ello se va a trabajar con un número de muestras igual a m – 1, siendo m tamaño de la imagen original. Por ello es necesario estimar un píxel HR. Una vez estimado dicho valor, el resto de valores se pueden obtener fácilmente a través de las ecuaciones de muestreo de la media aritmética. Por lo tanto el proceso es el siguiente: -
En primer lugar se muestrea la imagen HR con una rejilla de tamaño 2 y movimiento infinitesimal.
-
Después se estima un valor para el primer píxel de la imagen. Este valor será igual al de la primera muestra LR.
-
Con esta estimación se van calculando el resto de píxeles como se puede ver en la Ilustración 1.3-I.
-
Una vez calculados todos los valores, pueden ocurrir dos situaciones: o Todos los pixeles se encuentran acotados entre 0 y 1. En este caso se habrá terminado el proceso. o Algunos valores se salen fuera de los límites 0 o 1. En este caso, se corrige la estimación inicial con la cantidad que se haya excedido los límites. Por ejemplo, si un píxel vale 1.5, el valor del primer
105
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I píxel se excedía en 0.5. Por lo tanto, se corrige y se vuelven a recalcular los píxeles. El proceso se realiza hasta que todos los píxeles queden acotados entre 0 y 1.
a
b
c
d
e
f
g
Imagen HR
A B
Muestras LR C
……
a A, b 2·A a, c 2·B b , d 2·C c , ...... Ilustración 1.3-I Cálculo de los valores de la imagen HR a través de las muestras LR.
Al trabajar con imágenes binarias (blanco y negro), el proceso converge siempre y se obtiene la imagen original. Si el proceso se lleva a cabo con imágenes en escala de grises, ya no es segura la convergencia. En la Ilustración 1.3-II e Ilustración 1.3-III se pueden ver los resultados para una imagen binaria y para una en escala de grises, respectivamente, habiendo convergido el proceso en el último caso. Ambas imágenes son de tamaño 20. El principal problema de este método es que la convergencia no es segura, siendo este el caso más típico, ya que para que el valor de un píxel se salga de los límites es necesario que se encuentre cerca de ellos su valor original.
106
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I
Imagen Real 0.5
1
1.5
2
4
6
8
10
12
14
16
18
20
14
16
18
20
Imagen HR 0.5
1
1.5
2
4
6
8
10
12
Ilustración 1.3-II Resultado diseño 03 con imágenes binarias.
Imagen Real 0.5
1
1.5
2
4
6
8
10
12
14
16
18
20
14
16
18
20
Imagen HR 0.5
1
1.5
2
4
6
8
10
12
Ilustración 1.3-III Resultado del diseño 03 con imágenes en escala de grises.
107
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo I Este proceso se ha llevado a cabo con la función generada para Matlab “Design03”. Los distintos pasos que realiza esta función son los mismos que se han descrito anteriormente. Simplemente hay que introducir como variable entrada el tamaño de la imagen que se desea generar. En el código fuente de esta función que se puede encontrar en la Parte IV, en el epígrafe 1.9, se puede apreciar que a la hora de generar la imagen de trabajo, ésta puede estar formada por ceros y unos, o también se puede elegir el rellenarla con valores continuos entre cero y uno. Para ello simplemente hay que poner como comentario la parte primera y quitar el comentario de la segunda.
108
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo II
Capítulo 2 ANEXO II En este capítulo se explicará de forma más técnica la formación del disco de Airy. También se expondrá de forma detallada cómo afecta la difracción a la pérdida de resolución.
2.1 DISCO DE AIRY
El “Disco de Airy” está rodeado de círculos concéntricos de luz y oscuridad similares a las franjas de interferencia producidas por rendijas alargadas. De este modo la imagen de una estrella lejana observada por un telescopio es una mancha borrosa del tamaño del disco de Airy. El tamaño del disco de Airy se calcula a través de la Ecuación 2.1-I, donde d es el diámetro del disco, es la longitud de onda,
es la distancia focal (distancia entre el centro óptico de la lente y el foco,
o punto focal, cuando se enfoca al infinito) y a es el diámetro de apertura del sistema óptico.
d 2.44
Ecuación 2.1-I
a
Finalmente, el límite de la resolución estará dado por el criterio de Rayleigh según el cual dos objetos son distinguibles solo si el máximo del radio de Airy de un objeto coincide con el mínimo del otro.
109
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo II
2.2 LÍMITE DE DIFRACCIÓN EN LA RESOLUCIÓN DE IMÁGENES
Continuando con un análisis espectral de frecuencias, en determinadas ocasiones el proceso de formación de una imagen se puede considerar un sistema lineal definido
por
la
transformada
de
Fourier
en
dos
dimensiones
G(u, v) H (u, v) F (u, v) , donde H (u, v) es la denominada OTF (“Optical
Transfer Function”) y determina cuánta información en frecuencia espacial contenida por el objeto es transferida a la imagen (véase [4]). Las características de H (u, v) están determinadas por las propiedades del sistema óptico. La cantidad total de energía lumínica que entra en un sistema óptico está determinada por una pupila física real (o rendija límite) que existe en los sistemas ópticos. Esta pupila limitante puede ser descrita por una función de apertura a( x, y) . El hecho remarcable en relación con la difracción es que la OTF está totalmente controlada por la función de apertura siendo H (u, v) igual a la auto-correlación de ésta: Ecuación 2.2-I
H (u, v)
a( x, y) a( x u, y v) dx dy
En la región donde la transmisión de las ondas electromagnéticas es perfecta la función de apertura es igual a 1. Fuera de la región donde no se transmiten las ondas electromagnéticas, la función de apertura es igual a 0. La Ecuación 2.2-I garantiza que habrá una región de soporte para la OTF (una región donde H (u, v) 0 , y H (u, v) 0 para cualquier u y v fuera de la región de soporte).
En consecuencia, la OTF se hace 0 fuera del límite definido por la autocorrelación de la función de apertura, y no puede ser transmitida ninguna información de frecuencia espacial del objeto a la imagen a través de la OTF para frecuencias que se encuentren fuera de la región de soporte. Este es el motivo por el cual la difracción limita la resolución de las imágenes. El verdadero límite de la máxima frecuencia espacial que puede ser transmitido a la imagen viene dado por la expresión de la Ecuación 2.2-II.
110
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo II
fc
Ecuación 2.2-II
a
En la Ecuación 2.2-II, f c es la frecuencia espacial de corte. El resto de parámetros son los mismos que los de la Ecuación 2.1-I.
Gracias a la descripción de los efectos de la difracción se puede definir con precisión el significado y los objetivos de la súper-resolución. La OTF eliminará todas las frecuencias espaciales del objeto fuera de la región de soporte, por lo tanto, el objetivo de la súper-resolución es recuperar la información de las frecuencias espaciales del objeto que se encuentran más allá de la frecuencia espacial de corte impuesta por el sistema óptico. Como la frecuencia espacial de corte es la que define la resolución de la imagen, el proceso que logra superar este obstáculo es lo que se conoce como súper-resolución. Los dos principios críticos que cimientan la súper-resolución son:
-
Las frecuencias espaciales capturadas por debajo del límite de difracción contienen información necesaria para reconstruir las frecuencias espaciales por encima del límite de difracción.
-
Usando información adicional sobre el objeto (transformada de Fourier analítica) se le dota de significado a la información que se encuentra por debajo del límite de difracción para reconstruir la información que se encuentra por encima de dicho límite.
111
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Anexo II
Parte IV CÓDIGO FUENTE
112
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Código fuente Matlab
Capítulo 1 CÓDIGO FUENTE MATLAB En este capítulo se recopilan todos los códigos fuente de todas las funciones y archivos (*.m) de Matlab creados a lo largo del proyecto. Para poder ver la descripción de la función o archivo (*.m) simplemente hay que ejecutar el comando “help” de Matlab seguido del nombre de la función o archivo:
help ‘nombre_función’
1.1 ALGORITMO1D-V1
Funciones y archivos utilizados en el algoritmo de 1 dimensión (versión 1):
Función “Algoritmo1D_v1.m” function Algoritmo1D_v1(n,m) % Descripción: % %
Algoritmo1D_v1(n,m) genera una imagen unidimensional de tamaño m con unos o ceros. Se muestrea la imagen con una rejilla variable de
tamaño %
n
y
movimiento
infinitesimal
(de
píxel
en
píxel
de
la
imagen
generada). %
Se obtiene la imagen original por comparación de muestras.
% Variables entrada: %
int8 n: tamaño de rejilla de muestreo medida en píxeles de alta
%
resolución.
%
int8 m: tamaño de la imagen unidimensional que se desea generar.
% Variables salida: % % Autor: Miguel Ángel Fernández Sánchez
113
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Código fuente Matlab % Fecha: 05/12/2009
close all
% Se genera la imagen modelo de forma aleatoria. La primera parte se % rellena con tantos "blancos" como el tamaño de la rejilla menos 1 para % que de este modo se consigan el número suficiente de muestras para % recrear la imagen original. modelo = ones(1,n-1); for i=1:m x=rand; if xLR(i-n+1-1) HR(i)=1; end if LR(i-n+1)m error('El tamaño de la rejilla es mayor que el de la imagen') elseif d>n error('El desplazamiento no puede ser mayor que la rejilla') else modelo = []; for i=1:m
116
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Código fuente Matlab x=rand; if xm error('El tamaño de la rejilla es mayor que el de la imagen') elseif d>n error('El desplazamiento no puede ser mayor que la rejilla') else modelo = []; for i=1:m x=rand; if x= 2 for i=1:cont-1 sr_foto=pixels_x2(sr_foto); end end
figure(1) subplot(1,2,1), image(foto), title('Imagen original') subplot(1,2,2), image(sr_foto), title('Imagen aumentada')
end
Función “pixels_x2.m” function sry=pixels_x2(y) % Descripción: %
pixels_x2(y) duplica el tamaño de píxeles de una imagen "y"
%
interpolando los valores intermedios con la media.
% Variables entrada: %
uint8 y: imagen de baja resolución en forma de matriz [n x m x 3]
% Variables salida: %
uint8 sry: imagen con el número de píxeles duplicado.
% Autor: Miguel Ángel Fernández Sánchez % Fecha: 20/10/2009
% Se calcula el tamaño de la imagen [n m p]=size(y);
146
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Código fuente Matlab
for c=1:p % Primer Paso for b=1:m for a=1:n sry(2*a,2*b,c)=y(a,b,c); end end
% Segundo Paso for b=3:2:(2*m)-1 for a=1:n sry(2*a,b,c)=(sry(2*a,b-1,c)/2) + (sry(2*a,b+1,c)/2); end end for b=1:m for a=3:2:(2*n)-1 sry(a,2*b,c)=(sry(a-1,2*b,c)/2) + (sry(a+1,2*b,c)/2); end end
% Tercer Paso for b=3:2:(2*m)-1 for a=3:2:(2*n)-1 sry(a,b,c)= 1,b+1,c)/8
+
sry(a-1,b-1,c)/8
sry(a,b-1,c)/8
+
+
sry(a-1,b,c)/8
sry(a,b+1,c)/8
sry(a+1,b,c)/8 + sry(a+1,b+1,c)/8; end end end
end
147
+
+
sry(a-
sry(a+1,b-1,c)/8
+
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL
Código fuente Matlab
1.8 ANEXOS DISEÑO 02
Funciones y archivos utilizados en el diseño 02:
Función “Design02.m” function cuenta=Design02(dmin,m) % Descripción: % %
Design02(dmin,m) genera una imagen unidimensional de tamaño m con unos o ceros. Se muestrea la imagen con una rejilla variable de
tamaño %
dmin hasta tamaño m. Con este conjunto de imagenes se obitene la
imagen %
original.
% Variables entrada: %
int8 dmin: tamaño de rejilla de muestreo mínima medida en píxeles de
%
alta resolución.
%
int8 m: tamaño de la imagen unidimensional que se desea generar.
% Variables salida: %
uint8 cuenta: número de iteraciones realizadas
% Autor: Miguel Ángel Fernández Sánchez % Fecha: 08/01/2010
clc close all n_iter=10000; errores=[];
if m