scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

La expansión e implantación de la fotografía digital en los últimos años ha hecho surgir el concepto de Fotografía Computacional, un nuevo campo multidisciplinar que abarca temas de óptica, procesamiento de imágenes, informática gráfica, percepción o visión por computador. Una cámara convencional captura una proyección 2D de escenas reales 3D. Uno de los problemas inherentes a este proceso de captura es la limitada profundidad de campo, que causa la aparición de zonas borrosas en partes de la escena que se encuentran alejadas del plano focal. Otro problema, objeto de muchos trabajos de investigación, es la recuperación de las profundidades de la escena, perdidas en una captura convencional. El objetivo de este proyecto es la obtención tanto de la información de profundidad de la escena, como de una imagen nítida recuperando el enfoque en las zonas borrosas (“deblurring”). En este proyecto se propone como solución el uso de aperturas codificadas, ya usadas durante décadas en campos como la óptica o la astronomía, insertando una máscara en el objetivo de la cámara que modifique la apertura circular de la cámara; obteniendo una respuesta en el dominio frecuencial más favorable que la de una apertura circular convencional. Lo que hacen, esencialmente, estos patrones, es codificar ópticamente la luz que llega al sensor de una forma en que, tras la posterior decodificación, se pueda recuperar más información de la escena que con una apertura convencional. Esto nos permite estimar, mediante el análisis del grado de desenfoque de la zona de la escena, la profundidad a la que se encuentra respecto del plano de enfoque, lo que se conoce como "profundidad a partir del desenfoque"(DFD, depth from defocus ). Asimismo permite una recuperación de la imagen enfocada mediante técnicas de deconvolución más o menos complejas. La imagen nítida resultante y el mapa de profundidades pueden ser combinados para múltiples e interesantes aplicaciones fotográficas, que incluyen segmentación de la escena automática, selección de distintos objetos o profundidades de la escena y reenfoque como postproceso. Se explora en este proyecto tanto el uso de una única apertura codificada como el uso de pares de aperturas codificadas. En primer lugar se selecciona bajo ciertos criterios una apertura codificada diseñada para DFD. Para esta apertura se estudia la obtención de mapas de profundidad y además se analiza el problema de re-enfoque (“ deblurring”) mediante el estudio y comparativa de distintos métodos de deconvolución. En segundo lugar se implementa un método de optimización que permita obtener pares de aperturas codificadas óptimas para DFD. Finalmente se realizan validaciones tanto por simulación como sobre soporte físico de las aperturas codificadas seleccionadas; mostrando y realizando una comparativa de los resultados obtenidos. Además se explora la introducción de valores no binarios en los patrones de aperturas codificadas. En la mayoría de estudios previos se indica que se limita el espacio de búsqueda a píxeles opacos y transparentes principalmente por costes computacionales, sin existir otras razones de peso, por lo que se decide diseñar aperturas codificadas no binarias (semitransparentes). Aunque los resultados obtenidos no son en ningún caso concluyentes, los primeros indicios muestran que no debe limitarse el espacio de búsqueda de la apertura codificada a espacios binarios, ya que las aperturas no binarias presentan resultados mejores. Este estudio de investigación se incluyó en una publicación aceptada en el Congreso Ibero-americano de Informática Gráfica (SIAGC 2011), resultando entre las tres mejores publicaciones del congreso. Presa Irazábal, Lara; Masiá Corcoy, Belén

Full text

Fotografía computacional: aperturas codificadas para estimación de profundidad y corrección de desenfoque en blanco PROYECTO FIN DE CARRERA Autora: Lara Presa Irazábal Directora: Belén Masiá Corcoy Ponente: Dr. Diego Gutiérrez Pérez Ingeniería Superior de Telecomunicación Curso 2010-2011 Departamento de Informática e Ingeniería de Sistemas Centro Politécnico Superior Universidad de Zaragoza Julio de 2011 You don´t take a photograph, you make it Ansel Adams (1902-1984) No photographer is as good as the simplest camera Edward Steichen (1879-1973) I eagerly await new concepts and processes. I believe that the electronic image will be the next major advance. Such systems will have their own inherent and inescapable structural characteristics, and the artist and functional practitioner will again strive to comprehend and control them Ansel Adams (1902-1984) 3 Resumen La expansión e implantación de la fotografía digital en los últimos años ha hecho surgir el concepto de Fotografía Computacional, un nuevo campo multidisciplinar que abarca temas de óptica, procesamiento de imágenes, informática gráfica, percepción o visión por computador. Una cámara convencional captura una proyección 2D de escenas reales 3D. Uno de los problemas inherentes a este proceso de captura es la limitada profundidad de campo, que causa la aparición de zonas borrosas en partes de la escena que se encuentran alejadas del plano focal. Otro problema, objeto de muchos trabajos de investigación, es la recuperación de las profundidades de la escena, perdidas en una captura convencional. El objetivo de este proyecto es la obtención tanto de la información de profundidad de la escena, como de una imagen nítida recuperando el enfoque en las zonas borrosas (“deblurring”). En este proyecto se propone como solución el uso de aperturas codificadas, ya usadas durante décadas en campos como la óptica o la astronomía, insertando una máscara en el objetivo de la cámara que modifique la apertura circular de la cámara; obteniendo una respuesta en el dominio frecuencial más favorable que la de una apertura circular convencional. Lo que hacen, esencialmente, estos patrones, es codificar ópticamente la luz que llega al sensor de una forma en que, tras la posterior decodificación, se pueda recuperar más información de la escena que con una apertura convencional. Esto nos permite estimar, mediante el análisis del grado de desenfoque de la zona de la escena, la profundidad a la que se encuentra respecto del plano de enfoque, lo que se conoce como "profundidad a partir del desenfoque"(DFD, depth from defocus). Asimismo permite una recuperación de la imagen enfocada mediante técnicas de deconvolución más o menos complejas. La imagen nítida resultante y el mapa de profundidades pueden ser combinados para múltiples e interesantes aplicaciones fotográficas, que incluyen segmentación de la escena automática, selección de distintos objetos o profundidades de la escena y reenfoque como postproceso. Se explora en este proyecto tanto el uso de una única apertura codificada como el uso de pares de aperturas codificadas. En primer lugar se selecciona bajo ciertos criterios una apertura codificada diseñada para DFD. Para esta apertura se estudia la obtención de mapas de profundidad y además se analiza el problema de re-enfoque (“ deblurring”) mediante el estudio y comparativa de distintos métodos de deconvolución. En segundo lugar se implementa un método de optimización que permita obtener pares de aperturas codificadas óptimas para DFD. Finalmente se realizan validaciones tanto por simulación como sobre soporte físico de las aperturas codificadas seleccionadas; mostrando y realizando una comparativa de los resultados obtenidos. Además se explora la introducción de valores no binarios en los patrones de aperturas codificadas. En la mayoría de estudios previos se indica que se limita el espacio de búsqueda a píxeles opacos y transparentes principalmente por costes computacionales, sin existir otras razones de peso, por lo que se decide diseñar aperturas codificadas no binarias (semitransparentes). Aunque los resultados obtenidos no son en ningún caso concluyentes, los primeros indicios muestran que no debe limitarse el espacio de búsqueda de la apertura codificada a espacios binarios, ya que las aperturas no binarias presentan resultados mejores. Este estudio de investigación se incluyó en una publicación aceptada en el Congreso Ibero-americano de Informática Gráfica (SIAGC 2011), resultando entre las tres mejores publicaciones del congreso. Índice general I Memoria 9 1. Introducción 11 1.1. Objetivo, alcance y contexto del proyecto . . . . . . . . . . . . . . . . . . 11 1.2. Estructura del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3. Planificación .................................. 12 2. Las aperturas codificadas en fotografía computacional 13 2.1. Introducción................................... 13 2.2. Desenfoque y profundidad de campo . . . . . . . . . . . . . . . . . . . . . 14 2.3. Codificando el desenfoque: análisis en frecuencia . . . . . . . . . . . . . . . 15 2.4. Solucionespropuestas ............................. 18 3. Apertura codificada óptima 19 3.1. Introducción................................... 19 3.2. Diseño y obtención de la apertura codificada . . . . . . . . . . . . . . . . . 20 3.2.1. Criterio de selección del filtro . . . . . . . . . . . . . . . . . . . . . 21 3.3. Deconvoluciónsparse.............................. 23 3.4. Recuperación de profundidad . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.1. Obtención del vector de pesos . . . . . . . . . . . . . . . . . . . . . 25 3.5. Resultados.................................... 26 3.5.1. Calibración ............................... 26 3.5.2. Captura de imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.3. Resultados del proceso de deblurring ................. 30 3.5.4. Resultados de la obtención del mapa de profundidades . . . . . . . 37 4. Pares de aperturas codificadas 39 4.1. Introducción................................... 39 4.2. Funciónobjetivo ................................ 39 4.3. Algoritmo genético para obtención de pares de aperturas codificadas . . . 42 4.4. Recuperación de profundidad . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.5. Resultados ................................... 45 4.5.1. Método de validación empleado . . . . . . . . . . . . . . . . . . . . 45 4.5.2. Resultados de la obtención de mapas de profundidades . . . . . . . 47 4.5.3. Resultados del proceso de deblurring ................. 49 5. Aperturas no binarias para deblurring 53 5.1. Introducción................................... 53 5.2. Obtención de aperturas no binarias optimizadas para deblurring ...... 53 5.3. Análisis de aperturas no binarias . . . . . . . . . . . . . . . . . . . . . . . 54 5.4. Resultados y comparativa sobre imágenes reales . . . . . . . . . . . . . . . 55 3 6. Conclusiones 57 6.1. Conclusiones del trabajo realizado . . . . . . . . . . . . . . . . . . . . . . 57 6.2. Trabajofuturo ................................. 58 6.3. Conclusiones personales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 II Bibliografía 61 III Apéndices 65 A. Deconvolución basada en priors de imágenes naturales 67 A.1.Introducción................................... 67 A.2. Deconvolución basada en prior de derivadas gaussianas . . . . . . . . . . . 68 A.2.1. Deconvolución dominio frecuencial . . . . . . . . . . . . . . . . . . 68 A.2.2. Deconvolución dominio espacial . . . . . . . . . . . . . . . . . . . . 69 A.3. Deconvolución basada en prior de derivadas sparse . . . . . . . . . . . . . 69 B. Modelo estadístico de imágenes 71 C. Criterio de evaluación par de aperturas 73 C.1. Formulación de DFD (Depth from defocus).................. 73 C.2.Criteriodeselección .............................. 74 D. Cómo insertar una apertura codificada en una lente Canon EF 50mm f1.8 II 77 E. Artículo: Coded Apertures for Defocus Deblurring 81 4 Índice de figuras 1.1. Diagrama de Gantt de las actividades realizadas. ................ 12 2.1. PSF a distintas profundidades para una lente Canon 50mm f1.8 II con apertura convencional parcialmente cerrada. ....................... 14 2.2. Modelo 2D de captura de imagen de una cámara con lente convergente delgada . 15 2.3. Corte 1D de las transformadas de Fourier de las imágenes capturas Y(v,w) para diferentes escalas del filtro. ............................ 16 2.4. Identificación de la escala correcta a partir de la imagen observada. ....... 17 2.5. Logaritmo de la potencia espectral para la apertura circular, apertura optimizada para DFD y apertura optimizada para deblurring................. 17 3.1. Diagrama de flujo a seguir para la obtención del mapa de profundidades y la imagen recuperada. ............................... 19 3.2. Diagrama de flujo a seguir para la obtención del mapa de profundidades y la imagen recuperada. ............................... 20 3.3. Corte transformadas de Fourier en 1D para tres escalas distintas de la apertura convencional y la apertura codificada escogida como óptima para DFD. . . . . 23 3.4. Representación gráfica del almacenamiento de los errores de reconstrucción . . . 25 3.5. Cuerpo de cámara reflex empleada y apertura codificada colocada sobre la lente del objetivo. ................................... 27 3.6. Array de diodos LED empleado para la calibración de las PSFs ......... 27 3.7. PSFs obtenidas sin umbralizar para distintas profundidades ........... 28 3.8. Ejemplo escena capturada con objetos distribuidos a lo largo de nueve profundidades. ..................................... 28 3.9. Geometría del diámetro de blur para lente delgada ................ 29 3.10. Ringing debido al uso de kernel o PSF de tamaño elevado. ............ 31 3.11. Comparación de distintos algoritmos de deconvolución de un objeto situado a 45 cm del plano focal y capturado con la apertura codificada. ............ 32 3.12. Comparación de distintos algoritmos de deconvolución para un objeto situado a 85 cm del plano focal y capturado con la apertura codificada. .......... 32 3.13. Comparación de distintos algoritmos de deconvolución para un objeto situado a 105 cm del plano focal y capturado con la apertura codificada. (Captura 3, valor de apertura f 4.0, d=1.40m). ........................... 33 3.14. Detalles a 95 cm recuperados con ringing debido al elevado grado de desenfoque. 33 3.16. Aperturas empleadas para analizar la deconvolución sparse. ........... 33 3.15. Aparición de artefactos en la deconvolución al usar un kernel de tamaño menor o mayor del adecuado. .............................. 34 3.17. Logaritmo de la potencia espectral para la apertura circular y la apertura codificada diseñada para deblurring ..................... 34 3.18. Apertura circular. Recuperación de objetos desenfocados situados a 40 cm del plano focal con deconvolución sparse y con deconvolución de Wiener. ...... 35 5 El segundo método optará por el uso de parejas de aperturas codificadas diseñadas para DFD (Zhou et al.[23]). En primer lugar se obtienen pares de aperturas codificadas óptimas para DFD mediante un algoritmo genético. Posteriormente para los pares de aperturas seleccionados, se realiza una comparativa, mediante validación por simulación, tanto de los resultados de deblurring como de la estimación del mapa de profundidades. Adicionalmente, se decide explorar la introducción de valores no binarios (semitransparentes) en el diseño de aperturas codificas para deblurring. Este estudio se incluyó en un artículo de investigación aceptado en el Congreso Ibero-americano de Informática Gráfica (SIAGC 2011). 1.2. Estructura del trabajo El trabajo realizado consta principalmente de tres partes que comprenden el Capítulo 3, Capítulo 4 y Capítulo 5. De esta manera, el Capítulo 2 introduce los conceptos teóricos tratados a lo largo del trabajo, introduciendo y justificando el uso de aperturas codificadas en Fotografía Computacional. En el Capítulo 3 se explora el uso de una única apertura codificada óptima [10], realizando además un estudio comparativo entre distintos métodos de deconvolución y sus resultados. Posteriormente, en el Capítulo 4 se considera uno de los métodos de DFD que captura dos imágenes mediante el uso de un par de aperturas codificadas [23]. Finalmente, en el Capítulo 5, se estudia la ampliación del espacio de búsqueda en el diseño de aperturas codificadas para deblurring a valores no binarios. El Capítulo 6 sintetizará las conclusiones derivadas de los resultados anteriores. 1.3. Planificación Durante los seis meses aproximados de duración del proyecto, se ha dividido el trabajo en tareas de documentación, estudio de aperturas no binarias, implementación de métodos para la obtención de aperturas para DFD, simulación y comparativa de distintos métodos de deconvolución o deblurring, implementación de la obtención de mapas de profundidad, validación tanto por simulación como en soporte físico de las aperturas codificadas y redacción de la memoria. Tanto para las tareas de implementación como de simulación se ha empleado el software matemático Matlab. La distribución a lo largo del tiempo se puede ver en la Figura 1.1. Figura 1.1: Diagrama de Gantt de las actividades realizadas. 12 Capítulo 2 Las aperturas codificadas en fotografía computacional 2.1. Introducción El uso inicial de aperturas codificadas surge en el contexto del campo de la astronomía y de la medicina, donde permitieron mejorar la relación señal a ruido captando mayor información de rayos gamma y rayos X, ya que el uso de lentes tradicionales no podían ser usadas a esas longitudes de onda [2, 5]. Mientras, en el campo de la óptica, el uso de aperturas codificadas ha permitido el incremento de la profundidad de campo y mejorar la respuesta en frecuencia de la apertura convencional. En los últimos años, las aperturas codificas han ido tomando mayor importancia en visión por computador y fotografía computacional [12, 20] Una de las principales aplicaciones en este campo es la mejora del proceso de deblurring, recuperación de imágenes nítidas a partir de imágenes desenfocadas [20, 24]. Para conseguir esto, se diseñan aperturas codificadas cuya respuesta en frecuencia elimine las limitaciones de la apertura circular convencional. Al insertar la apertura codificada en el sistema óptico se consigue codificar el desenfoque de modo que sea óptimo preservando sus componentes frecuenciales. Otra aplicación de las aperturas codificadas es la recuperación de profundidad de una escena. Uno de los problemas inherentes en la fotografía tradicional es la limitada profundidad de campo, que causa la aparición de zonas borrosas en partes de la escena que se encuentran alejadas del plano focal. El desenfoque de estas zonas puede emplearse para estimar la profundidad a la que se encuentran. De aquí surge la idea de DFD (depth from defocus) una de las aproximaciones para recuperar información 3D de la escena. Para una imagen capturada, puntos de la escena que se sitúen sobre el plano focal aparecerán enfocados, mientras que puntos de la escena alejados del plano focal aparecerán borrosos. Por lo tanto, mediante la estimación del tamaño de blur de un punto de la escena, se puede estimar su profundidad. Existen varias técnicas empleadas para la estimación de profundidad; algunas consisten en capturar múltiples imágenes de una escena usando distintos parámetros de enfoque [14, 6, 8]. Mientras, por otro lado están los métodos que emplean máscaras ópticas para mejorar la discriminación de profundidad [9, 3]. A continuación se introducen los conceptos de desenfoque y profundidad de campo, y más concretamente la relación entre el grado de desenfoque y distancia. Además, se introducen conceptos teóricos de cómo se codifica el desenfoque y su análisis en el dominio frecuencial. Finalmente se presentan las soluciones propuestas. 13 2.2. Desenfoque y profundidad de campo Para un objeto plano situado a una distancia Dkel proceso de captura de una imagen puede ser modelado como una convolución: y=fk∗x+η(2.1) siendo yla imagen observada, xla imagen nítida y fkel filtro de blur,PSF okernel 1, que es una versión escalada de la forma de la apertura convolucionada con el patrón de difracción. El término ηhace referencia al ruido introducido en el proceso de captura de la imagen, que se modelará como ruido gaussiano de media cero y varianza σ2,ηvN(0, σ2). Figura 2.1: PSF a distintas profundidades para una lente Canon 50mm f1.8 II con apertura convencional parcialmente cerrada. (Adaptada de Levin et al.[10]) En la Figura 2.1 se muestra el objetivo Canon 50mm f1.8 II empleado a lo largo de todo el proyecto, con la apertura convencional parcialmente cerrada. Las imágenes a su derecha muestran la respuesta de esta apertura a una fuente de luz puntual a distintas profundidades. Esto es lo que se conoce como PSF (Point Spread Function) o filtro de blur fkdonde krepresenta la variación de la PSF según la profundidad. Por lo tanto, se debe tener en cuenta que la PSF varía conforme nos vamos alejando del plano focal, es decir varía en función de la profundidad y más específicamente con el grado de desenfoque. Esto implica que la cantidad de blur introducido será mayor cuánto mayor sea la distancia respecto al plano focal. Esta es la razón por la cual la captura de una imagen que contiene información a distintas profundidades no puede expresarse como la convolución de la imagen nítida con un único filtro (fken la Ecuación 2.1, variará en función de la profundidad ka la que se encuentre cada zona de la escena). De este modo la recuperación de la imagen nítida en el proceso de deconvolución, como veremos más adelante, deberá tener en cuenta que para cada zona de la imagen existe una única escala correcta de la PSF según su profundidad. Esta variación, además, es clave para la recuperación de profundidad por DFD, como se verá más adelante. A continuación se introduce el concepto de desenfoque para comprender en primer lugar por qué sucede y en segundo lugar cómo puede ser controlado y usado para la estimación de profundidad y para el problema de deblurring. Para ello se representa el proceso de captura de imágenes en una cámara fotográfica considerando el modelo óptico simplificado de lente convergente delgada, ver Figura 2.2, donde se muestra cómo los rayos reflejados por el objeto alcanzan el sensor de la cámara. En el proceso de captura de imágenes, mostrado en la Figura 2.2 cuando un objeto está situado sobre el plano focal de la lente todos los rayos de un punto de la escena 1Denominaremos de aquí en adelante a fkcomo filtro, kernel o PSF (Point Spread Function) a distintas profundidades k, ya que indica la respuesta de la apertura a un objeto o fuente de luz puntual situado a distancia k respecto del plano focal. 14 Figura 2.2: Modelo 2D de captura de imagen de una cámara con lente convergente delgada convergen en un único punto del sensor, dando lugar a una imagen nítida (rayo verde). En cambio si separamos el objeto del plano focal y lo situamos a una distancia Dk, los rayos no convergerán en un único punto del sensor, sino en múltiples puntos (rayo rojo) dando lugar a una imagen desenfocada. Como vemos en la figura la imagen de un punto es, en estos casos, un círculo (el denominado círculo de confusión) que determinará el grado de desenfoque o blur de la imagen capturada. Cuanto mayor sea la distancia del objeto respecto del plano focal, mayor será el radio del círculo de confusión, y por lo tanto mayor el grado de desenfoque (rayos azules). De este modo se establece una relación directa entre grado de desenfoque y distancia, al estar objetos a mayores distancias del plano focal caracterizados por un mayor grado de blur. De aquí, como se ha comentado, surge la idea de estimar profundidad a partir del desenfoque de una imagen, DFD (del inglés depth from defocus). Es importante resaltar que el patrón de desenfoque en el círculo de confusión vendrá también determinado por la forma y diámetro de la apertura. Por último, se define la profundidad de campo como el rango de profundidades en que no somos capaces de distinguir la existencia de blur, es decir el rango de profundidades para el que vemos la escena enfocada. Esta profundidad de campo varía con el diámetro de la apertura, de modo que aperturas más cerradas nos proporcionan una profundidad de campo mayor que aperturas más abiertas. 2.3. Codificando el desenfoque: análisis en frecuencia El principal problema que surge para realizar la estimación de profundidad y la recuperación de una imagen nítida a la vez es que la respuesta en frecuencia de la apertura óptima para cada uno de los dos objetivos del proyecto es diferente. El proceso de captura de una imagen (ver Ecuación 2.1) se puede expresar en el dominio de la frecuencia como: Y(v, w) = F(v, w)X(v, w) + ζ(2.2) siendo Y(v, w),X(v, w),F(v, w)yζlas transformadas de Fourier respectivas de la imagen observada y, la imagen original nítida x, el filtro fy el ruido η. Por lo tanto el problema de deblurring o recuperación de la imagen enfocada consiste en estimar la imagen original xdada y, obteniendo en el dominio frecuencial: X(v, w) = Y(v, w) F(v, w)−ζ F(v, w),(2.3) 15 Figura 2.3: Corte 1D de las transformadas de Fourier de las imágenes capturas Y(v,w) para diferentes escalas del filtro. Las imágenes observadas mantienen cierta estructura de los filtros, preservando los pasos por cero del filtro correspondiente. donde se puede ver que valores nulos en la respuesta del filtro F(v, w)hacen imposible recuperar la información a la vez que incrementan la contribución del ruido. El espectro frecuencial ideal para deblurring no posee pasos por cero, permitiendo que el filtro sea invertible, y su respuesta es de banda ancha y plana en frecuencia, evitando la pérdida de información en ciertas componentes frecuenciales. En cambio cuando se precisa estimar profundidades, el espectro frecuencial ideal debe contener pasos por cero. Para comprender esto se ilustra en la Figura 2.3 la transformada de Fourier de un filtro en una dimensión para dos escalas distintas (i.e. dos profundidades), junto con la transformada de Fourier de la imagen original nítida X(v, w). El proceso de captura de la imagen xmodelado como una convolución, en el dominio frecuencial equivale a multiplicar ambas señales, X(v, w)y el filtro en la escala correspondiente. De este modo se obtienen las imágenes observadas Y(v, w)para cada una de las escalas. Las imágenes observadas Y(v, w)mantienen cierta estructura de los filtros y en particular se debe resaltar que muestran pasos por cero a las mismas frecuencias que su filtro correspondiente, la primera imagen observada mantiene el paso por cero en la componente frecuencial w1mientras que la componente frecuencial nula para la segunda imagen observada es w2. Estimar la profundidad de una escena implica resolver el problema inverso. Se parte únicamente de una imagen capturada Y(v, w)y queremos saber qué escala del filtro se corresponde con esa imagen capturada, sabiendo que, si se conoce la escala del filtro, se conocerá la profundidad a la que se encuentra. Para ello se aplican dos filtros a escalas distintas sobre la imagen observada Y(v, w)para recuperar la imagen nítida X(v, w), resultando la expresión de la Ecuación 2.3 pero sin considerar el ruido: X(v, w) = Y(v, w)/F(v, w) De este modo, si se trata del filtro correcto (ver Figura 2.4), sus pasos por cero (w1) coinciden con los pasos por cero de la imagen capturada. Resulta entonces el espectro de imagen X(v, w)mostrado a la izquierda de la figura, que se corresponde con un espectro de imágenes naturales (mayor contenido frecuencial en bajas frecuencias, disminuyendo 16 Figura 2.4: Identificación de la escala correcta a partir de la imagen observada. Espectro de la imagen en la izquierda obtenida con la escala correcta del filtro,espectro en la derecha obtenido con una escala incorrecta del filtro. el contenido frecuencial para componentes de altas frecuencias). En cambio el filtro de escala incorrecta mostrado en la parte derecha de la figura, presenta pasos por cero en la componente frecuencial w2, mientras que la imagen observada muestra valores no nulos para esa frecuencia. Esto supone que al realizar la división de Y(v, w)entre el filtro, el espectro resultante X(v, w)tiende a infinito para w2, dando lugar a un espectro que no se corresponde con el esperado para una imagen natural, deduciéndose que la escala del filtro no es la correcta. Así, a partir de los pasos por cero de un filtro se puede identificar la escala correcta y con ello estimar la profundidad. Existe pues, como hemos visto, un compromiso en la elección del filtro para conseguir tanto estimar profundidad como para recuperar imágenes enfocadas. En el primer caso se necesita que la respuesta del filtro presente pasos por cero, mientras que para deblurring se requiere que el filtro sea invertible (no presente valores nulos) a la vez que su respuesta sea de banda ancha y plana, preservando el contenido de altas frecuencias. Figura 2.5: Logaritmo de la potencia espectral para la apertura circular, apertura optimizada para DFD [10] y apertura optimizada para deblurring [24]. 17 Este compromiso en el diseño de las aperturas puede verse en la Figura 2.5. La potencia espectral de la apertura circular muestra varios paso por cero junto a una atenuación clara de las componentes frecuenciales altas, no resultando óptima para deblurring. La apertura diseñada para DFD presenta varios pasos por cero e intenta a su vez que su respuesta sea más plana, sin atenuar tanto las componentes de alta frecuencia. Por último la apertura diseñada para deblurring evita los pasos por cero y presenta una respuesta en frecuencia plana y de banda ancha. 2.4. Soluciones propuestas Como se ha visto, el objetivo del presente trabajo es doble: recuperar a partir de fotografías tanto la escena enfocada como un mapa de profundidades. Para ello se decide en primer lugar plantear el problema de depth from defocus a partir de una única imagen capturada y utilizando una única apertura, partiendo del trabajo previo de Levin et al.[10]. La obtención de un mapa de profundidades a partir de una única imagen resulta un problema complicado ya que únicamente se dispone de la información de una imagen capturada. Se expondrán las limitaciones de este método, su fuerte dependencia con el sistema de captura y con la imagen capturada. Por ello se decide explorar una segunda opción que consiste en un método que emplea pares de aperturas codificadas [23]. En este segundo método se parte de dos imágenes capturadas con una pareja de aperturas codificadas y se usa la información del desenfoque relativo entre ambas capturas para recuperar la profundidad de la escena. En lo que a deblurring se refiere, la primera apertura está optimizada para profundidad, por lo que se emplea un método de deconvolución más favorable que contrarreste la respuesta poco apropiada de la apertura para ese objetivo. En el método de pares de aperturas codificadas su respuesta conjunta presenta un comportamiento mejor para deblurring, por ello se hace uso de una deconvolución de Wiener generalizada. 18 Capítulo 3 Apertura codificada óptima 3.1. Introducción La primera de las opciones a explorar se corresponde con el diseño de una única apertura codificada para DFD, basado en en el trabajo previo de Levin et al.[10]. La idea de este trabajo previo consiste en la inserción de una apertura codificada en la lente de la cámara, modificando el desenfoque producido por la lente. La codificación del desenfoque permitirá la extracción de información de profundidad y la recuperación de una imagen enfocada a partir de una única imagen capturada. Dado que dicha apertura estará optimizada para DFD se hará uso de un nuevo método de deconvolución para deblurring. En primer lugar se realiza una búsqueda del patrón de apertura óptimo para DFD, para lo que se aplica un criterio de discriminación de profundidad (Sección 3.2). Una vez escogido el patrón de apertura óptimo se pasa a estudiar en primer lugar el problema de deblurring o deconvolución (Sección 3.3), y en segundo lugar la estimación de profundidad (Sección 3.4). Cabe destacar que para el proceso de deconvolución se hará uso de un modelo estadístico de imágenes y se introducirá el concepto de deconvolución sparse, realizando una comparativa entre los distintos métodos de deconvolución existentes. En concreto se analizarán las mejoras aportadas por el uso de un prior de derivadas sparse sobre el uso de prior de derivadas gaussianas. El diagrama de flujo a seguir para la obtención del mapa de profundidades y la recuperación de la imagen enfocada se muestra en la Figura 3.1. Figura 3.1: Diagrama de flujo a seguir para la obtención del mapa de profundidades y la imagen recuperada a partir de la imagen capturada con la apertura codificada. 19 3.2. Diseño y obtención de la apertura codificada En el diseño de una apertura codificada existen dos principios básicos que el filtro debe cumplir: 1. El filtro debe ser fácilmente invertible de modo que la recuperación de la imagen nítida sea posible. 2. El filtro debe distinguir con claridad el desenfoque resultante de cada escala del filtro. Teniendo en cuenta el amplio número de filtros posibles, la elección de la apertura óptima bajo estas dos condiciones no es un problema trivial. Nuestro objetivo de discriminar profundidades en una imagen hace que sea interesante resaltar el comportamiento de los filtros a distintas escalas. Como veremos ese será el punto de partida esencial. Figura 3.2: Ejemplo de filtro en 1D representando la relación del escalado en el dominio espacial del filtro con sus pasos por cero en frecuencia. (Adaptado de Levin et al.[10]) En la Figura 3.2 se muestra un filtro a tres escalas diferentes con sus respectivas transformadas de Fourier a la derecha. La idea principal es considerar la relación existente entre la escala del filtro en el dominio espacial y sus pasos por cero en el dominio frecuencial [16]. Por ejemplo, el filtro f1 muestra en su transformada de Fourier un paso por cero a w1. Recordando las ecuaciones que rigen el procedimiento de captura en el dominio espacial: y=fk∗x+η y en el dominio frecuencial: Y(v, w) = F(v, w)X(v, w) + ζ esto significa que si la imagen capturada yes resultado de la convolución con el filtro f1, la transformada de Fourier de la imagen es nula para la frecuencia w1, obteniendo Y(w1) = 0. Por lo tanto, como se ha explicado en la Sección 2.3, a partir de las componentes frecuenciales nulas de la imagen observada podemos conocer la escala del filtro correspondiente y de ahí hacer una estimación de la profundidad. Este argumento puede hacerse también en el dominio espacial. Si Y(w1) = 0 ciertas condiciones lineales deben satisfacerse lo que implica que la imagen yno puede ser un vector N dimensional arbitrario (siendo N el número de píxeles de la imagen). Tal y como 20 podemos observar en la Figura 3.2 la variación del escalado (frecuencia) en el dominio espacial se traduce en distintas componentes frecuenciales nulas en su transformada de Fourier. Cada escala del filtro define un subespacio lineal diferente de posibles imágenes desenfocadas. Por lo tanto, dada una imagen de entrada N dimensional, identificar la escala del filtro a la que fue blurreada (y a su vez la profundidad del objeto) se reduce en identificar el subespacio al que pertenece. En teoría identificar las componentes frecuenciales nulas o equivalentemente encontrar el subespacio correcto es una tarea directa y simple. Sin embargo, en la práctica el problema se vuelve más complejo. En primer lugar el ruido presente en la toma de imágenes hace que ninguna componente frecuencial sea completamente nula (y por lo tanto que la imagen yno pertenezca a ningún subespacio en concreto). En segundo lugar, componentes frecuenciales nulas en la imagen observada ypueden deberse a que el contenido de la imagen original xsea nulo a esas frecuencias. Todo esto hace que el comportamiento de unos filtros de apertura sean más apropiados que otros para nuestro propósito. Es importante recordar que siempre va a existir un compromiso en la elección de la respuesta en frecuencia entre el proceso de deblurring debido al desenfoque y el proceso de estimación de la profundidad. Para el problema de deblurring nos interesa que la respuesta del filtro de apertura presente el menor número posible de pasos por cero. Una respuesta con pocos pasos por cero permite que el filtro sea fácilmente invertible y facilita el proceso de deconvolución. En cambio si nuestro objetivo es la estimación de profundidad, tal y como hemos mostrado en la Figura 3.2, son los pasos por cero de la respuesta en frecuencia los que nos permiten discriminar profundidades. La presencia de éstos en la respuesta en frecuencia dificulta el proceso de invertir el filtro, ya que al perder información el proceso de deconvolución se vuelve muy sensible al ruido para esas frecuencias. Como consecuencia de este compromiso se deberá sacrificar parte del contenido de la imagen para poder obtener información de profundidad de la escena. Afortunadamente, si sólo se sacrifica un pequeño número de frecuencias, el uso de priors de imágenes pueden reducir la sensibilidad al ruido, pudiendo hacer uso en la deconvolución de kernels de tamaño moderado (≤19 píxeles). Para el diseño del filtro de la apertura se hace uso de un modelo estadístico de imágenes reales, ver Apéndice B. Se estudian imágenes desenfocadas por un kernel específico, que conducen a la obtención de un criterio para evaluar la selectividad de cada filtro. Este criterio se aplica en una búsqueda aleatoria entre un amplio banco de filtros posibles para la elección de uno de ellos. 3.2.1. Criterio de selección del filtro A partir del modelo estadístico de imágenes, que puede consultarse en el Apéndice B, se deriva el siguiente criterio de selección de filtro. Partiendo del proceso de captura de imagen modelado como una convolución: y=fk∗x El objetivo es conocer la verdadera escala kdel filtro y con ello estimar la profundidad de esa parte de la escena y recuperar su enfoque. Resulta intuitivo que si las distribuciones 21 35cm 45cm 55cm 65cm 75cm 85cm 95cm 105cm Figura 3.7: PSFs obtenidas sin umbralizar para distintas profundidades (apertura f 2.2, d=2m). 3.5.2. Captura de imágenes Una vez calibrado el sistema se procede a la captura de imágenes con la apertura codificada. Para ello se crea un escenario con objetos a distintas distancias respecto del plano focal. Se escoge colocar objetos a nueve profundidades distintas, comenzando sobre el plano focal (distancia cero, objetos enfocados) y considerando una profundidad máxima de 105 cm respecto del plano focal. La separación entre las nueve profundidades es de 10 cm, excepto entre la distancia focal y la primera profundidad que es de 35cm. Esto se debe a que desde el plano focal hasta los 35 cm se considera que el grado de blur es muy pequeño (<4 píxeles) por lo que no se puede discriminar esas profundidades debido a la falta de estructura en el blur. Figura 3.8: Ejemplo escena capturada con objetos distribuidos a lo largo de nueve profundidades. En la captura de las imágenes es necesario calibrar y fijar los parámetros deseados al inicio y no cambiarlos a lo largo de todo el proceso de captura. Son varios los parámetros que influyen en el resultado de la imagen capturada. Principalmente seleccionaremos los siguientes parámetros: Tamaño de imagen: se establece en el menor que nos permite el modelo de la cámara, 2352x1568 píxeles. Diámetro de apertura (D)4, realizaremos capturas con distintos valores. Tiempo de exposición: variará en función del valor de apertura. 4Expresado en milímetros se denomina D, sino se expresa como número F. 28 Figura 3.9: Geometría del diámetro de blur para lente delgada. (Adaptado de Hasinoff [7]) Valor de sensibilidad ISO, se escoge un valor bajo, ISO 100, que permite obtener fotografías de buena calidad evitando la aparición de mucho ruido, ya que a mayor sensibilidad ISO mayor ruido presente en la imagen capturada. Distancia de la lente hasta el plano focal (d), se realizan capturas a dos distancias de enfoque distintas observando su influencia. En especial el diámetro de apertura (cómo de abierta o cerrada está) y la distancia de la lente hasta el plano focal influyen en el diámetro del blur o grado de desenfoque σ, que para una distancia de desenfoque d0viene dado por: σ=Df|d0−d| (d−F)d0,(3.13) donde f= 50mm es la distancia focal de nuestra lente, Des el diámetro de la apertura, d0es la distancia del objeto desenfocado a la lente y dla distancia de la lente al plano focal. Una representación gráfica de esto se muestra en la Figura 3.9. Para el proceso de captura se enfoca a una cierta distancia d, que por tanto definirá el plano focal, de modo que los objetos sobre el plano focal aparecerán enfocados. La escena se captura mediante el uso de un disparador automático evitando cualquier tipo de movimiento de la cámara. De este modo se obtiene una imagen de la escena con grados de desenfoque distintos según la profundidad a la que se encuentre cada objeto (ver Figura 3.8). Se capturó la escena para distintas combinaciones de parámetros de la cámara, que se corresponden, como se ha explicado, con distintos diámetros de blur. Las distintas capturas con sus respectivos parámetros se especifican en el Cuadro 3.1. Para cada captura se calcula el diámetro de blur teórico máximo (para la máxima profundidad) según la Ecuación 3.13. Se expresa el diámetro del blur en píxeles teniendo en cuenta que el tamaño del sensor de imagen de nuestra lente es de 22.3mm x 14.9mm y el tamaño de las imágenes capturadas se ha establecido en 2352x1568 píxeles. De este modo el tamaño de nuestro píxel en micras se pude calcular como 22.3mm/2352 píxeles o 14.9mm/1568 píxeles, resultando un tamaño de 9.48 micras5. En el Cuadro 3.1 puede apreciarse que para la misma distancia d(distancia de la lente al plano focal) valores de apertura mayores (apertura más cerrada) resultan en una mayor profundidad de campo, y por lo tanto 5Este será el tamaño de los píxeles para la resolución escogida, el tamaño real de los píxeles de la cámara es distinto. 29 Cuadro 3.1: Parámetros para cada captura de imágenes Apertura Tiempo exposición d ISO Máximo diámetro blur Captura 1 F 2.8 1/10 1.40m ISO 100 29,88 píxeles Captura 2 F 3.5 1/10 1.40m ISO 100 23,9 píxeles Captura 3 F 4.0 1/8 1.40m ISO 100 20,92 píxeles Captura 4 F 2.2 1/8 2m ISO 100 21,16 píxeles Captura 5 F 2.5 1/8 2m ISO 100 18,6 píxeles el diámetro de blur máximo es menor. Por otro lado es importante ver cómo la distancia des inversamente proporcional al diámetro de blur (ver Ecuación 3.13). De este modo en las capturas 4 y 5 aumentando la distancia dse obtienen diámetros de blur máximos del orden de la Captura 3, a pesar de estar empleando valores de apertura menores (apertura más abierta, profundidad de campo menor). En la Sección 3.5.3 se mostrará con resultados reales la influencia de estos parámetros en el proceso de recuperación de imágenes nítidas. 3.5.3. Resultados del proceso de deblurring A continuación se muestran los resultados obtenidos al deconvolucionar las imágenes capturadas con las PSFs obtenidas en la calibración para cada profundidad. El método de deconvolución utilizado es, en principio, la deconvolución sparse explicada en el Apéndice A, pero también se realizar un estudio comparando distintos algoritmos de deconvolución. Además, se analiza también la influencia de los distintos parámetros de captura en la calidad de la imagen enfocada resultante. En primer lugar se debe notar que la deconvolución no resulta óptima para tamaños de PSF mayores de unos 19 píxeles. Esto se debe a que cuando la PSF es demasiado grande introduce artefactos como el ringing en la deconvolución. La cámara reflex empleada no permite capturar tamaños de imágenes menores de 2352x1568 píxeles. Por lo tanto se opta por realizar un escalado de la imagen y las PSFs a tamaños menores, manteniendo siempre la relación entre las dimensiones de la imagen y la PSF. Esto se muestra en la Figura 3.10, que muestra, a la izquierda, la escena recuperada utilizando la imagen y la PSF sin reescalar, del tamaño original. A la derecha de la figura se muestra el resultado de escalar tanto la imagen como la PSF, obteniéndose una imagen de mayor calidad, sin ringing. Todas las imágenes que se muestran aquí han sido por tanto reescaladas a 1107x1694 píxeles, y las PSFs correspondientes se han escalado en la misma proporción. Para las capturas 1, 2 y 3, se realiza una comparativa entre cuatro métodos distintos de deconvolución: 1. Deconvolución de Richardson-Lucy [17, 11] 2. Deconvolución de Wiener [4] 3. Deconvolución usando un prior de derivadas gaussianas (ver Apéndice A) 4. Deconvolución usando un prior de derivadas sparse (ver Apéndice A) Se muestra la recuperación de un objeto situado a 45 cm para el caso de la Captura 1 (ver Figura 3.11), otro objeto a 85cm para la Captura 2 (ver Figura 3.12) y la recuperación de un objeto situado a 105 cm para la Captura 3 (ver Figura 3.13). 30 Imagen recuperada con PSF de tamaño 23x23 Imagen recuperada con PSF escalada a 13x13 Detalle del objeto recuperado (reloj, 105cm) Detalle del objeto recuperado (reloj, 105cm) Figura 3.10: Ringing debido al uso de kernel o PSF de tamaño elevado. Izquierda: Imagen recuperada con el kernel de tamaño original a 105cm, en el detalle del objeto se puede aprecia el ringing resultante. Derecha: Imagen recuperada al escalar el kernel a un tamaño menor, el objeto a 105cm aparece perfectamente recuperado sin presentar artefactos de ringing. Se fijan los parámetros empleados en cada método, para la deconvolución de Richardson- Lucy se fija el número de iteraciones en diez, en el caso de la deconvolución de Wiener se estable el parámetro NSR (Noise to signal power ratio del ruido aditivo) en 0.005. En el caso de las deconvoluciones con uso de prior de derivadas se establece en ambos casos el término regularizador de smoothing en 0.004, y para la deconvolución sparse se establecen el número de iteraciones en 20. La deconvolución sparse lleva un tiempo de 4 minutos 46 segundos para una imagen de tamaño 1107x1694 píxeles en un procesador Inter Core i3 M370 @2.4 GHz. El tiempo de cálculo de los otros métodos no supera los 5 segundos. La deconvolución de Wiener, al realizar una estimación del ruido aditivo NSR, suele presentar imágenes recuperadas con mucho ruido. En cuanto a la deconvolución de Richardson-Lucy tiende a suavizar demasiado el resultado, y además suele presentar ringing en las imágenes recuperadas. Por último, la deconvolución que hace uso de prior gaussiano presenta también ringing, mientras que la deconvolución sparse al concentrar las derivadas en un número pequeño de píxeles da como resultado imágenes con bordes más marcados, reduce el ruido y ayuda a eliminar artefactos no deseados como el ringing. La recuperación de objetos para la Captura 1 (ver parámetros de captura en el Cuadro 3.1) no resulta óptima para distancias mayores de 65 cm ya que el diámetro de blur presente es elevado, y aunque recupera el enfoque comienzan a aparecer artefactos de ringing. En la Figura 3.11 se muestra la recuperación de un objeto situado a 45cm. En los ejemplos siguientes para la Captura 2 (ver Figura 3.12) y la Captura 3 (ver Figura 3.13), se muestran respectivamente objetos recuperados a 85cm y 105cm. En ambos casos se observa la mejor calidad del objeto recuperado mediante la deconvolución sparse, el objeto recuperado no presenta ni artefactos de ringing ni ruido como en los otros métodos, el resultado es una recuperación nítida de alta calidad. Finalmente las imágenes de la Captura 4 y Captura 5 presentan un grado de desenfoque demasiado elevado (presentan valores de apertura mayores, f2.2 y f2.5, resultando una profundidad de campo menor), por lo tanto los resultados obtenidos para la deconvolución sparse presenta ringing del mismo modo que sucedía a partir de cierta distancia de desenfoque para la Captura 1. En 31 la Figura 3.14 se muestra el resultado de la deconvolución sparse para ambas capturas. Además, en la Figura 3.15 se muestra cómo al deconvolucionar con una escalado de la PSF, la deconvolución introduce artefactos en aquellos objetos que fueron blurreados con una escala de la PSF mayor o menor. Imagen capturada Richardson-Lucy Wiener Prior gaussiano Prior sparse Figura 3.11: Comparación de distintos algoritmos de deconvolución de un objeto situado a 45 cm del plano focal y capturado con la apertura codificada. (Captura 1, valor de apertura f 2.8, d=1.40m). Imagen capturada Richardson-Lucy Wiener Prior gaussiano Prior sparse Figura 3.12: Comparación de distintos algoritmos de deconvolución para un objeto situado a 85 cm del plano focal y capturado con la apertura codificada. (Captura 2, valor de apertura f 3.5, d=1.40m). Es decir, escalas incorrectas del filtro, introducen artefactos en el proceso de deconvolución, tal y como se expresaba en el criterio de selección del filtro. 32 Imagen capturada Richardson-Lucy Wiener Prior gaussiano Prior sparse Figura 3.13: Comparación de distintos algoritmos de deconvolución para un objeto situado a 105 cm del plano focal y capturado con la apertura codificada. (Captura 3, valor de apertura f 4.0, d=1.40m). Captura 4 Captura 5 Figura 3.14: Detalles a 95 cm recuperados con ringing debido al elevado grado de desenfoque. Izquierda: detalle recuperado para la Captura 4. Derecha: detalle recuperado para la Captura 5. Apertura circular Apertura diseñada para deblurring Figura 3.16: Aperturas empleadas para analizar la deconvolución sparse. El procesado y análisis de las imágenes obtenidas en las cinco capturas muestra que a partir de cierto grado de desenfoque la deconvolución sparse deja de presentar mejoras en los resultados frente al resto de métodos de deconvolución. Por otro lado, se sabe que la apertura codificada empleada está diseñada para DFD, y por lo tanto su respuesta 33 Figura 3.15: Aparición de artefactos en la deconvolución al usar un kernel de tamaño menor (caso de la zona señalada en rojo) o mayor (caso de la zona señalada en azul) del adecuado. La imagen está deconvolucionada con la PSF correspondiente a la profundidad del payaso (45cm), se puede apreciar el ringing introducido para el resto de objetos cuya profundidad es distinta y por lo tanto sus PSFs serán mayores o menores según corresponda. Figura 3.17: Izquierda: Logaritmo de la potencia espectral para la apertura circular y la apertura codificada diseñada para deblurring [24]. Derecha: Apertura circular y apertura diseñada para deblurring. no resulta óptima para deblurring. Para comprender si la limitación viene dada por la deconvolución sparse o por la apertura codificada, se decide estudiar el comportamiento de la deconvolución sparse con una apertura diseñada para deblurring [24]. Además se compararán los resultados de la apertura diseñada para deblurring con el de la apertura circular convencional. 34 Para las dos aperturas propuestas en la Fig 3.16, la apertura circular convencional y una aperturas diseñada para deblurring, se captura con cada apertura imágenes de objetos desenfocados a 40 cm y 70 cm de distancia respecto del plano focal (ver parámetros de captura en el Cuadro 3.2). En las siguientes figuras, Figura 3.18, Figura 3.19, Figura 3.20 y Figura 3.21, se muestran las imágenes enfocadas (ground truth), las imágenes desenfocadas capturadas y las imágenes recuperadas mediante deconvolución sparse y deconvolución de Wiener para cada apertura. Se puede ver cómo la deconvolución sparse no resulta favorable cuando el grado de desenfoque es elevado, a pesar de que la apertura codificada sea óptima para deblurring (Figura 3.18, Figura 3.19). En casos de grado de desenfoque elevado la deconvolución de Wiener ofrece resultados mejores aunque en ningún caso la imagen resultante consigue la nítidez que se obtenía con la deconvolución sparse en imágenes con menor grado de desenfoque. Asimismo, la recuperación de los objetos en las imágenes capturadas con la apertura circular convencional muestran una calidad claramente inferior a los de la apertura diseñada para deblurring, demostrando nuevamente las aportaciones del uso de aperturas codificadas. Cuadro 3.2: Parámetros para cada captura de imágenes Apertura Tiempo exposición d ISO Diámetro teórico blur d’= 1,4m F 2.0 1/10 1.0m ISO 100 39,6 píxeles d’= 1,7m F 2.0 1/10 1.0m ISO 100 69,39 píxeles Objeto enfocado Imagen capturada desenfocada Recuperación deconvolución sparse Recuperación deconvolución de Wiener Figura 3.18: Apertura circular. Recuperación de objetos desenfocados situados a 40 cm del plano focal con deconvolución sparse y con deconvolución de Wiener. 35 Objeto enfocado Imagen capturada desenfocada Recuperación deconvolución sparse Recuperación deconvolución de Wiener Figura 3.19: Apertura circular. Recuperación de objetos desenfocados situados a 70 cm del plano focal con deconvolución sparse y con deconvolución de Wiener. Objeto enfocado Imagen capturada desenfocada Recuperación deconvolución sparse Recuperación deconvolución de Wiener Figura 3.20: Apertura codificada diseñada para deblurring. Recuperación de objetos desenfocados situados a 40 cm del plano focal con deconvolución sparse y con deconvolución de wiener. 36 Objeto enfocado Imagen capturada desenfocada Recuperación deconvolución sparse Recuperación deconvolución de Wiener Figura 3.21: Apertura codificada diseñada para deblurring. Recuperación de objetos desenfocados situados a 70 cm del plano focal con deconvolución sparse y con deconvolución de Wiener. 3.5.4. Resultados de la obtención del mapa de profundidades Como hemos visto en la Sección 3.4, para estimar la profundidad de cada píxel hay que obtener el error de reconstrucción, en una ventana alrededor del píxel, para las distintas profundidades posibles y pesar dichos errores con una serie de pesos λi. La profundidad que dé error mínimo tras el promediado con los citados pesos será la correcta para cada píxel. A continuación se muestran los resultados obtenidos al realizar dicho cálculo sobre la escena para obtener su mapa de profundidades. La Figura 3.22 muestra dichos resultados. En primer lugar se muestra la escena capturada (parámetros de Captura 5) de la cual se quiere obtener el mapa de profundidades. A su derecha se muestra el mapa de profundidades obtenido promediando la energía del error de reconstrucción en ventanas locales de 10x10 píxeles pero sin aplicar el vector de pesos. El resultado es que el error de reconstrucción en la mayor parte de las ventanas locales de la imagen es mínimo para la profundidad menor (0cm, i.e. el plano focal, representado en color granate en la escala). Se ilustra así la necesidad de multiplicar el error en las ventanas locales por un valor de peso para cada profundidad. En la parte inferior de la Figura 3.22 puede verse a la izquierda el mapa de profundidades obtenido si se pesa el error a distancia 0 cm con un valor superior a la unidad mayor mientras que el resto de profundidades se pesan con la unidad. Es importante resaltar como las zonas con textura de los objetos y los bordes muestran un error mínimo para la misma profundidad, mientras que las zonas sin textura, como el fondo o la mesa, presentan valores de profundidad aleatorios. La imagen de la derecha muestra el mapa de profundidades obtenido con el vector de pesos completo. 37 de longitud 121 píxeles cada una, es decir dos aperturas de 11x11). En el incremento de la población de M a S secuencias, establecemos la probabilidad de recombinación c1 en 0.2, y la probabilidad de mutación c2 en 0.05. En cuanto a la población inicial S (número de secuencias iniciales), población final M (número de secuencias finales) y número de generaciones G, se realizan varias ejecuciones variando estos parámetros, para determinar a partir de qué valores la convergencia del algoritmo es clara. En todas las pruebas la población final seleccionada es un 10 % de la población inicial. Se seleccionan los pares de aperturas con mejor valor según el criterio de evaluación para cada configuración de parámetros, y se representan en la Figura 4.5, donde se puede observar que los pares de aperturas son complementarias, tal y como introducíamos en el criterio de selección. En la Figura 4.6 se representan sus respectivas puntuaciones del criterio de evaluación (recordar que se buscan valores elevados de R(k)) para distinta población inicial S, población final M y número de generaciones G. S=400, M=40, G=20 S=400, M=40, G=40 S=1000, M=100, G=40 S=1000, M=100, G=80 S=2000, M=200, G=80 S=4000, M=400, G=80 Figura 4.5: Pares de aperturas obtenidas para distintos parámetros iniciales del algoritmo genético: población inicial (S), población final (M) y número de generaciones (G). Figura 4.6: Convergencia del algoritmo genético para distintos parámetros iniciales. El eje X indica la combinación de población inicial (S) y número de generaciones (G) de cada ejecución, y el eje Y el R(k) correspondiente. Debemos resaltar la carga computacional de este algoritmo. La función de evaluación requiere que para cada valor valor de blur d(15 valores) se calcule el escalado de los dos kernels, y sus respectivas transformadas de Fourier. Esto hay que hacerlo a su vez para cada secuencia (número de secuencias≤4000) en cada generación; y repitiendo el proceso 44 para todo el número de generaciones (número de generaciones≤80). La optimización para el caso más largo, S=4000 M=400 G=80, lleva un tiempo de cálculo elevado de 76,13 horas en un procesador Intel Core i7 950 @3.07 GHz, no resultando de interés para este proyecto la posible optimización del algoritmo genético, 4.4. Recuperación de profundidad Tras la obtención de pares de aperturas codificadas óptimas, se procede a estimar el mapa de profundidades Ude la imagen. Para cada posible profundidad d∈D, se calcula la imagen recuperada ˆ F(d) 0según la Ecuación 4.5 obteniendo una imagen enfocada a partir de las dos imágenes desenfocadas. Para cada píxel, el residuo W(d)entre las imágenes desenfocadas y la imagen recuperada ˆ F(d) 0indica una medida de cómo de cerca está d respecto de la profundidad real d∗: W(d)=X i=1,2 |IF T(ˆ F(d) 0∗Kˆ d i−Fi)|,(4.8) donde IFT es la transformada inversa de Fourier en 2D. Para los pares de aperturas optimizadas, el valor de W(d)(x, y)alcanza un mínimo para el píxel (x, y)si dcoincide con la profundidad real d∗. Por lo tanto se puede obtener el mapa de profundidades U como: U(x, y) = arg m´ın d∈DW(d)(x, y),(4.9) y recuperar una imagen enfocada Icomo: I(x, y) = ˆ F(Ux,y) 0(x, y).(4.10) 4.5. Resultados A continuación se muestran los resultados obtenidos con pares de aperturas codificadas tanto para la estimación de profundidad como para deblurring o recuperación de imágenes nítidas. Para ello se va a explicar en primer lugar la metodología usada para la validación y los distintos pares de aperturas empleados. Finalmente se muestran resultados de la estimación del mapa de profundidades y de la recuperación de imágenes enfocadas, realizando una comparativa entre ellos. 4.5.1. Método de validación empleado Para la validación física del par de aperturas se insertarían las máscaras de las aperturas codificadas en la lente del objetivo y se capturarían dos versiones de la escena con los mismos parámetros y misma posición de la cámara respecto de la escena. De este modo se obtienen dos imágenes F1, F2de la misma escena con distinto grado de desenfoque que posteriormente se procesarían para obtener el mapa de profundidades y la imagen enfocada, tal como se indica en la Figura 4.7. Por distintas cuestiones1se realiza una validación por simulación en vez de por soporte físico. Por lo tanto en vez de partir del par de imágenes capturadas con cada apertura, se parte de una única imagen de la escena que será desenfocada mediante simulación con cada una de las aperturas, obteniendo así F1, F2, tal y como se explica a continuación. 1Principalmente por la complejidad de obtener dos imágenes exactamente iguales con el par de aperturas. Entre una captura y otra sería necesario cambiar el objetivo de la cámara, e inevitablemente, con los medios que se disponen, la cámara sufriría un pequeño desplazamiento por lo que las imágenes capturadas no serán igual a nivel de píxel. 45 Figura 4.7: Diagrama de flujo del procedimiento de validación sobre soporte físico: obtención del mapa de profundidades Uy la imagen enfocada Ia partir de las dos imágenes capturadas con el par de aperturas. En el proceso de captura de una imagen, la escena capturada se corresponde con la escena real convolucionada con la PSF a esa profundidad, tal y como indica la Ecuación 4.3. Por lo tanto cada zona de la imagen capturada tendrá un desenfoque proporcional a la distancia de esa zona al plano focal. De este modo las imágenes capturadas serán el resultado de la convolución de la escena original con la PSF a la profundidad real de cada zona de la escena. En la validación por simulación el desenfoque es introducido convolucionando distintas zonas de la imagen con distintas PSF del conjunto de profundidades d∈Dconsideradas. En una escena real el mapa de profundidades depende del tipo de la escena, sin seguir un patrón determinado, como se quiere mostrar en las imágenes capturadas de la Figura 4.7 con ventanas aleatorias a distintas profundidades. Por simplicidad, y sin pérdida de generalidad de los resultados, en nuestra simulación se opta por desenfocar la imagen de acuerdo a un mapa de profundidades horizontal. El procedimiento de validación por simulación puede verse en la Figura 4.8. Se parte de una imagen enfocada y se escoge un mapa de profundidades horizontal (podría ser otro cualquiera, pero desenfocar la imagen aleatoriamente es más costoso y no permite comprobar tan bien si la estimación del mapa de profundidades es correcta). De acuerdo al mapa de profundidades se escala adecuadamente para toda d∈Dlas distintas PSF de cada apertura y se obtienen las dos imágenes desenfocadas F1, para la apertura 1, y F2para la apertura 2. A partir de las dos imágenes desenfocadas, se procede a estimar el mapa de profundidades y la imagen enfocada tal y como se indica en la Sección 4.4. Debe tenerse en cuenta que en el proceso de validación por simulación se procede del mismo modo que en el de validación física, únicamente se tiene como información las dos imágenes desenfocadas. Lo único que cambia es la manera de obtener estas imágenes desenfocadas. Habitualmente zonas de la imagen con poca textura no permiten estimar con precisión su profundidad. Esto sucede debido a que el residuo calculado en la Ecuación 4.8, en las zonas sin textura no se dispone de información suficiente, por lo tanto los residuos a distintas profundidades no varían. De este modo, resulta más complicado determinar la profundidad a la que se encuentran zonas sin textura o con textura suave. Para la validación del par de aperturas se usa como escena una imagen que contiene una zona con una fuerte textura y otra con poca textura, ver Figura 4.5.1. Se realiza un estudio sobre los resultados obtenidos por los seis pares de aperturas codificadas obtenidos con el algoritmo genético, ver Figura 4.5; y además se incluyen en el estudio el par de aperturas circulares, un par de aperturas obtenidas aleatoriamente y el par óptimo obtenido por Zhou et al. [23], ver Figura 4.10. Todas las aperturas son de tamaño 33x33, para poder realizar la comparación con el par óptimo de Zhou et al. Este último parte de dos aperturas 11x11 y realiza un escalado junto con optimización 46 Figura 4.8: Diagrama de flujo del procedimiento de validación por simulación. Los detalles del proceso se explican en el texto. Textura fuerte Textura suave Figura 4.9: Imagen usada para la validación del par de aperturas. Izquierda: textura fuerte. Derecha: textura suave. de gradiente descendente que suavice la solución. Esto se realiza progresivamente hasta alcanzar un tamaño de apertura de 33x33. En nuestro caso se parte de las aperturas de 11x11 obtenidas con nuestro algoritmo genético y se realiza un escalado sencillo (nearest neighbor) hasta alcanzar el tamaño de 33x33. Par de aperturas circulares Par óptimo de Zhou Par aleatorio de aperturas. Figura 4.10: Pares de aperturas incluidas en la validación por simulación junto con las obtenidas en el algoritmo genético. 4.5.2. Resultados de la obtención de mapas de profundidades En la Figura 4.11 se muestra el porcentaje de error de cada par de aperturas al estimar el mapa de profundidades. El mapa de profundidades tiene trece profundidades posibles, por lo tanto el error máximo será que se estime como 1 la profundidad de un objeto situado a profundidad 13. En cambio un objeto situado a profundidad 6 su 47 error máximo de estimación será 7 (es decir, que se estime la profundidad como 13). De este modo el cálculo del porcentaje de error se realiza así, teniendo en cuenta el error máximo posible para cada banda de profundidad. El par de aperturas circulares junto al par obtenido de manera aleatoria muestran errores muy altos especialmente para las zonas de textura suave o poca textura. El par de aperturas circulares se comporta mejor para zonas con textura, pero aún así el porcentaje de error es mayor que para cualquier par de aperturas codificadas. Por lo tanto se muestra la mejora introducida al usar pares de aperturas codificadas frente a las aperturas convencionales. En el gráfico de la derecha se muestra la comparativa entre los pares de aperturas codificadas. En general se ve una tendencia a que el porcentaje de error disminuya, principalmente en las zonas con textura suave, conforme aumentamos la población inicial y número de generaciones. Nuestro par de aperturas con menor porcentaje de error se corresponde con el que obtenía mejor puntuación en el criterio de evaluación R(k)en la Figura 4.6, cuyos parámetros iniciales son S=4000, M=400, G=80. Las simulaciones muestran que este par de aperturas óptimo obtiene resultados mejores en la estimación del mapa de profundidades que el par óptimo de Zhou et al. Comparativa entre todos los pares de aperturas Comparativa aperturas genético vs Zhou Figura 4.11: Porcentajes de error en el cálculo del mapa de profundidades para cada par de aperturas. Figura 4.12: Logaritmo de la potencia espectral para el par óptimo de Zhou y nuestro par con mejor evaluación del genético (S=4000, M=400, G=80). 48 A continuación se muestran los resultados obtenidos en la validación por simulación de estimación del mapa de profundidades para el par circular, el par óptimo de Zhou y nuestro par óptimo, ver Figura 4.13. El mapa de profundidades de la izquierda se corresponde con la parte de la imagen de textura fuerte mientras que el de la derecha es la parte de poca textura. Se ve cómo el uso de aperturas codificadas introduce una mejora muy notable en la estimación del mapa de profundidades respecto de la estimación del par de aperturas circulares. Asimismo vemos que el par óptimo obtenido con nuestro algoritmo genético realiza una mejor estimación de profundidad que el par óptimo de Zhou et al., especialmente en las zonas más alejadas (color granate). Mapa de profundidades real Estimación par circular Estimación par de Zhou Estimación par óptimo Figura 4.13: Estimación del mapa de profundidades para distintos pares de aperturas. 4.5.3. Resultados del proceso de deblurring La Ecuación 4.5 muestra que la recuperación de una imagen enfocada de alta calidad requiere: (a) una estimación precisa de la profundidad d (b) que la potencia espectral del par de aperturas presente una respuesta en frecuencia de banda ancha. Por simplicidad y por mantener separadas las distintas posibles fuentes de error se asume que la profundidad des conocida y se evalúa por simulación la recuperación de imágenes enfocadas de las aperturas. Las aperturas utilizadas son: apertura circular, apertura de Levin et al.[10], par de aperturas circulares, par óptimo de Zhou et al.[23] y el par óptimo obtenido en este trabajo mediante el genético. Para cada opción de aperturas codificadas se simulan las imágenes desenfocadas de la carta de resolución ISO 12233 mostrada en la Figura 4.14, mediante la convolución de la imagen original enfocada f0con la PSF a la distancia descogida. Partiendo de la imagen desenfocada (dos imágenes desenfocadas en el caso de pares de aperturas) y usando la deconvolución de Wiener, o la deconvolución generalizada de Wiener en el caso de pares 49 de aperturas, se recupera la imagen enfocada ˆ f0. En la Figura 4.14 se muestra para cada caso las imágenes desenfocadas y las imágenes recuperadas junto con un recorte a nivel de detalle que permita apreciar mejor los resultados de la deconvolución. Sobre estos resultados se realizan dos métricas que evalúan la calidad de la imagen recuperada. En primer lugar se aplica la norma L2 (o distancia euclídea) que calcula la distancia euclídea entre píxeles correspondientes de la imagen original f0y la imagen recuperada ˆ f0. El valor de píxel de las imágenes se encuentra entre cero (negro) y la unidad (blanco) siendo la distancia máxima entre píxeles igual a la unidad. Por lo tanto la distancia máxima entre dos imágenes es igual al número de píxeles de la imagen mx n. Así, la norma L2 puede expresarse como: d(ˆ f0, f0) = n.m X i=1,j=1 kˆ f0(i, j)−f0(i, j)k2(4.11) En el Cuadro 4.1 se pueden ver los resultados obtenidos al aplicar la norma L2 sobre las imágenes recuperadas. Cada imagen es de tamaño 512x512 píxels, por lo tanto el error máximo según la norma L2 sería de 262.144. Para una visualización más clara se representa en la Figura 4.15 el porcentaje de error según la norma L2 para cada imagen obtenida con los distintos tipos de aperturas. Cuadro 4.1: Resultados norma L2 para cada tipo de apertura. Apertura Índice L2 Porcentaje de error Par óptimo Zhou 529,55 0,20 % Par óptimo genético 814,04 0,31 % Par de aperturas circulares 1238,50 0,47 % Apertura circular 2140,70 0,82 % Apertura de Levin 1867,50 0,71 % Los resultados de la normal L2 muestran que el par óptimo de Zhou junto con el par óptimo obtenido en el genético recuperan la imagen con menor error. Por otro lado el uso de la apertura convencional o la apertura de Levin no resultan óptimas para el problema de deblurring. Esto ya se ha comentado anteriormente, las respuestas en frecuencia de ambas no son óptimas para deblurring; además se debe tener en cuenta que la apertura de Levin se diseña bajo un criterio de discriminación de profundidad. El segundo método empleado para la medida de similitud entre dos imágenes es la métrica SSIM (Structural similarity index ). Esta métrica [21] se diseñó para mejorar los métodos de medida de calidad en imágenes tradicionales como PSNR (Peak signal to noise ratio) o MSE (Mean squared error) ya que se ha demostrado que son inconsistentes con la percepción del ojo humano. La métrica SSIM se calcula en varias ventanas de la imagen. La medida de dos ventanas xeydel mismo tamaño NxNviene dada por: SSIM(x, y) = (2μxμy+c1)(2σxy +c2) (μ2 x+μ2 y+c1)(σ2 x+σ2 y+c2)(4.12) siendo μx, μylas respectivas medias de las ventanas x,y;σx,σylas varianzas y σxy su covarianza. Los valores c1,c2son dos variables para estabilizar la división, donde c1= (k1L)2,c2= (k2L)2siendo L el rango dinámico de los valores de píxel (L= 2#bitsperpixel −1). Además se debe tener en cuenta que, −1⩽SSIM ⩽1, donde es igual a la unidad para dos ventanas idénticas e igual a -1 para dos ventanas completamente opuestas. Los resultados de esta métrica mantienen la coherencia con la norma L2, siendo 50 a)Imagen original b) Resultados con apertura circular c) Resultados con apertura de Levin et al.[10] d) Resultados con par de aperturas circulares e) Resultados con par óptimo de Zhou et al.[23] f) Resultados con par óptimo obtenido en el genético Figura 4.14: Simulación de desenfoque y deblurring para distintas aperturas y pares de aperturas. 51 Figura 4.15: Porcentaje de error según la métrica L2 en la recuperación de imagen enfocada para cada tipo de apertura. nuevamente los dos pares de aperturas codificadas (Zhou et al.[23] y óptima del genético) las dos con mejor valoración. Figura 4.16: Resultados métrica SSIM para cada tipo de aperturas 52 Capítulo 5 Aperturas no binarias para deblurring 5.1. Introducción Las aperturas codificadas empleadas en fotografía computacional de los trabajos de investigación más relevantes son binarias, es decir, únicamente consideran valores lógicos de 0 y 1 para la búsqueda del patrón óptimo de la apertura codificada. En la mayoría de los estudios, se indica que se limita el espacio de búsqueda a valores binarios principalmente por el coste computacional. Tal y cómo hemos visto, el número de posibles soluciones para encontrar una apertura binaria óptima de N×Nes de 2N×N, por lo que ampliar la búsqueda incluyendo patrones no binarios implica aumentar el número de posibles soluciones, suponiendo un mayor coste computacional. Sin embargo, a parte de por simplicidad y menor coste computacional, no hay razones para limitar los valores de píxel de la apertura a blancos o negros. Una referencia de estudio en este aspecto es el trabajo de Veeraraghavan et al.[20] donde el autor cita ventajas de aperturas con valores continuos sobre aperturas de valores binarios (en su caso para la aplicación concreta de captura de light fields). Así pues, la última parte de este proyecto versa sobre la obtención y evaluación de aperturas con valores de píxel no binarios para la aplicación concreta de deblurring. 5.2. Obtención de aperturas no binarias optimizadas para deblurring El estudio de aperturas no binarias se realiza en el contexto del trabajo de Zhou et al.[24] donde se realiza una búsqueda de aperturas binarias optimizadas para deblurring. Se parte en este trabajo de la estructura del algoritmo genético empleado para la búsqueda de aperturas binarias y se emplea la misma función de evaluación que da como resultado aperturas óptimas para deblurring. La descripción completa del criterio de evaluación empleado y del método de optimización se deja fuera de esta memoria por motivos de extensión y relevancia, pero puede consultarse en el Apéndice E. La función de evaluación de una apertura va a denominarse R(k), pero esto no debe inducir a confusión con la función de evaluación descrita en el Capítulo 4. Son métricas diferentes, puesto que el objetivo y las características del problema también son diferentes (una sola apertura optimizada para deblurring en este caso, frente a una pareja de aperturas optimizadas para recuperación de profundidad y deblurring en el caso del Capítulo 4). Cabe destacar además que en este caso, a diferencia de en el capítulo anterior, se busca minimizar el valor de R(k): valores menores de R(k) implican mejores aperturas. Para 53 Parte II Bibliografía 61 Bibliografía [1] Barrett, R„ Berry, M., Chan, T.F., Demmel, J., Donato, J., Dongarra, J., Eijkhout, V., Pozo, R., Romine, C., and Der Vorst, H.V.: Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, 2nd Edition. SIAM, Philadelphia, PA.(1994) [2] Caroli, E., Stephen, J., Cocco, G., Natalucci, L.,and Spizzichino, A.: Coded aperture imaging in X-and Gamma-ray astronomy. Space Science Reviews, 349-403. (1987) [3] Farid, H., and Simoncelli, E. P.: Range estimation by optical differentiation. Journal of the Optical Society of America 15, 1777-1786. (1998) [4] Gonzalez, R, C. and Woods, R. E.: Digital Image Processing. Addison-Wesley Publishing Company, Inc. (1992) [5] Gottesman, S., and Fenimore, E.: New family of binary arrays for coded aperture imaging. Applied Optics, 20, 4344-4352. (1989) [6] Grossmann, P.: Depth from focus. Pattern Recognition Letters 5, 1(jan.), 63-69. (1987) [7] Hasinoff, S. W.: Variable-aperture photography, Graduate Department of Computer Science University of Toronto, (2008) [8] Hasinoff, S. W., and Kutulakos, K. N.: Confocal stereo. In European Conference on Computer Vision, I: 620-634, (2006) [9] Hiura, S., and Matsuyama, T.: Depth measurement by the multi-focus camera. In CVPR, IEEE Computer Society, 953-961, (1998) [10] Levin, A., Fergus, R., Durand, F., Freeman, W.: Image and depth from a conventional camera with a coded aperture. ACM Transactions on Graphics 26, 3 (2007) [11] Lucy, L., B.:An iterative technique for the rectification of observed distributions. Astronomical Journal, Vol. 79, p. 745 (1974) [12] NayarS., Mitsunaga T.:High dynamic range imaging: spatially varying pixel exposures.In Computer Vision and Pattern Recognition, vol. 1,pp. 472479. (2000) [13] Olshausen, B. A., and Field, D. D.: Emergence of simple-cell receptive field properties by learning a sparse code for natural images. Nature 381 (June),607-609 (1996) [14] Pentland, A. P.: A new sense for depth of field. IEEE Trans. Pattern Anal. Mach. Intell. 9, 4, 523-531, (1987) [15] Portilla, J., Strela, V., Wainwright, M., and Simoncelli, E. P.: Image denoising using scale mixtures of gaussians in the wavelet domain. IEEE Transactions on Image Processing (2003) 63 [16] Premaratne, P.,and Ko, C.C.: Zero sheet separation of blurred images with symmetrical point spread functions.Signals, Systems, and Computers, 1297-1299 (1999) [17] Richardson, W., H.: Bayesian-Based Iterative Method of Image Restoration, Vol. 62, Issue 1, pp. 55-59 (1972) [18] Roth, S., Black, M.J.: Fields of experts: A framework for learning image priors. In CVPR (2005) [19] Van der Schaaf, A., and Van Hateren, J.: Modelling the power spectra of natural images: statistics and information. Vision Research, 36(17), 2759-2770.(1996) [20] Veeraraghavan A., Raskar R., Agrawal A., Mohan A., Tumblin J.: Dappled photography: mask enhanced cameras for heterodyned light fields and coded aperture refocusing. ACM Trans.Graph.26 (2007) [21] Wang Z., Bovik A. C., Sheikh H. R., and Simoncelli E. P.: Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, (2004) [22] Weiss, Y.,Freeman, W.T.: What makes a good model of natural images? In CVPR (2007) [23] Zhou, C., Lin, S., Nayar, S.: Coded aperture pairs for depth from defocus. In ICCV (2009) [24] Zhou, C., Nayar, S. K.: What are Good Apertures for Defocus Deblurring? In IEEE International conference on Computational Photography (2009) 64 Parte III Apéndices 65 Apéndice A Deconvolución basada en priors de imágenes naturales A.1. Introducción Dada una imagen borrosa yy un filtro fel problema de re-enfoque o deblurring puede definirse como encontrar una imagen nítida xtal que: y=f∗x(A.1) Existen varios métodos de uso común para resolver el problema de deconvolución, como el conocido algoritmo de Richardson-Lucy o la deconvolución de Wiener. Dadas las restricciones de estos métodos se propone emplear una técnica alternativa que hace uso de priors de imágenes naturales. La convolución es un operador lineal y por tanto la Ecuación A.1 puede ser escrita como y=Cfx(A.2) donde Cfes la matriz de convolución N×N, y las imágenes xeyestán expresadas como vectores de N×1elementos. Expresando la convolución en el dominio frecuencial, F(v, w), la transformada de Fourier de Cf, es una matriz diagonal: Y(v, w) = F(v, w)X(v, w)(A.3) siendo X,Ylas transformadas de Fourier respectivas de x,y; y con v,wlas componentes frecuenciales. Si la matriz Cfes una matriz de rango completo y no hay ruido en el proceso de captura de la imagen, el problema de la deconvolución se reduciría a invertir Cf y definir x=C−1 fy. En el dominio frecuencial X(v, w) = Y(v, w)/F(v, w). Pero esto normalmente no es estable debido a las componentes frecuenciales nulas de F(v, w). Incluso si |F(v, w)|no es exactamente cero pero su valor es pequeño, invertirlo lo hace muy sensible al ruido. Esto es, si el proceso de captura de la imagen observada Yincluye ruido, Y(v, w) = F(v, w)X(v, w) + η, y por lo tanto al querer obtener la imagen nítida xen el dominio frecuencial, se tiene: Y(v, w) F(v, w)=X(v, w) + η F(v, w)(A.4) si |F(v, w)|toma valores pequeños el proceso de deconvolución se ve más afectado por el ruido. Para mejorar estas dificultades del problema resulta útil introducir un prior en el proceso de deconvolución, y buscar una imagen xque explique la imagen desenfocada y 67 pero a la vez sea una buena imagen de acuerdo con el prior de imágenes naturales. Esto es, dada una imagen yse quiere encontrar el máximo a posteriori de x: x= arg m´ax xP(x|y)∝P(y|x)P(x)(A.5) Si se asume que el ruido introducido por el proceso de captura se corresponde con un ruido gaussiano de varianza η2se puede expresar la probabilidad como: P(y|x)∝e−1 2η2kx−Cfyk2 (A.6) Para el prior se usa un conjunto de filtros gky preferentemente se busca que la respuesta de la imagen a este filtro sea pequeña: P(x) = e−αPi,k ρ(gi,j ∗x)(A.7) donde irecorre los píxeles de la imagen y gi,k denota el filtro k-ésimo centrado en el píxel i para la función ρ. La elección más simple para los filtros son los filtros derivativos vertical y horizontal: gx= [1 −1] ygy= [1 −1]T.Puede ser útil introducir derivadas de segundo orden, o filtros más sofisticados[18, 22]. La función ρse selecciona para ser sparse, y en nuestra implementación se ha empleado ρ(z) = |z|0,8. Sin embargo, por motivos computacionales, se comienza considerando priors Gaussianos, donde ρ(z) = |z|2. Tomando logaritmos de las Ecuaciones A.5, A.6, A.7, el problema de máximo a posteriori para xse reduce a minimizar: ky−Cfxk2+wX i,k ρ(gi,k ∗x)(A.8) donde w=αη2. Minimizando la Ecuación A.8 buscamos la imagen xque minimice el error de reconstrucción kCfx−yk2, donde se requiere que el prior sea lo más suave posible. En las siguientes secciones describimos varios métodos posibles de minimización de la Ecuación A.8 . A.2. Deconvolución basada en prior de derivadas gaussianas Comenzaremos con el caso más sencillo, donde se considera que las derivadas siguen una distribución gaussina, es decir el prior de imagen es gaussiano, ρ(z) = |z|2. Derivando la Ecuación A.8 respecto de xy estableciendo la derivada igual a cero, vemos que la solución óptima puede encontrarse resolviendo una serie de ecuaciones lineales sparse: Ax =bpara A=CT fCf+wX k CT gkCgkb=CT fy(A.9) A.2.1. Deconvolución dominio frecuencial Resulta más sencillo resolver la Ecuación A.9 en el dominio frecuencial. Expresando la ecuación en el dominio frecuencial se obtiene (|F(v, w)|2+wX k |Gk(v, w)|2)X(v, w) = F(v, w)∗Y(v, w)(A.10) y despejando la imagen de interés x X(v, w) = F(v, w)∗Y(v, w) |F(v, w)|2+wPk|Gk(v, w)|2(A.11) 68 Si no se usa ningún prior en el proceso de deconvolución (w= 0) la ecuación se reduce a dividir Y(v, w)entre F(v, w). La inclusión de priors hace que la solución X(v, w)tienda a cero en las componentes frecuenciales para las cuales |F(v, w)|es pequeña. Se deber resaltar también que la respuesta del filtro derivado es mayor para componentes de alta frecuencia y menor para componentes de baja frecuencia. Por lo tanto, el efecto del prior es más notorio en alta frecuencia, donde el contenido frecuencial de la imagen es menor y por lo tanto mayor la contribución del ruido. El problema de la deconvolución en el dominio de la frecuencia se resuelve eficientemente ( tiempo de cómputo de segundos para una imagen de 2 Megapíxeles), el precio a pagar es que se asume que la convolución es cíclica por lo que los bordes de la imagen resultante serán erróneos. Además en la deconvolución en el dominio de la frecuencia aparecen ciertos artefactos en los bordes de los detalles de la imagen. A.2.2. Deconvolución dominio espacial Para evitar asumir una convolución cíclica, se incluye en las matrices de convolución Cf,Cgkúnicamente píxeles válidos, es decir, se eliminan las filas correspondientes a los píxeles de los bordes de la imagen. Por tanto las matrices de convolución tendrán menos filas que columnas, dejando de ser diagonales en el dominio de la frecuencia. La Ecuación A.9 se resuelve numéricamente usando el algoritmo de Gradiente Conjugado [1]. El cuello de botella en cada iteración de este algoritmo es la multiplicación de cada vector residual por la matriz A. Afortunadamente la forma de A(Ecuación A.9) permite que se realice eficientemente como una concatenación de operaciones de convolución. A.3. Deconvolución basada en prior de derivadas sparse La ventaja del uso de un prior de imagen Gaussiano es que el problema de optimización es convexo y la solución óptima puede ser derivada de manera sencilla como se mostraba en la Ecuación A.9. Sin embargo la realidad es que la distribución de los filtros derivativos en las imágenes naturales es sparse y no gaussiana. Las ventajas aportadas por el uso de priors sparse en aplicaciones de procesado de imágenes han sido demostradas en recientes estudios y publicaciones [15, 18, 22]. La diferencia principal es que mientras que un prior gaussiano distribuye las derivadas uniformemente sobre la imagen, el prior sparse concentra las derivadas en un número pequeño de píxeles, manteniendo la mayor parte de los píxeles constantes. El resultado son imágenes con bordes más marcados, reduciéndose además el ruido y permitiendo eliminar artefactos no deseados en la imagen como el ringing. La desventaja del uso del prior sparse, es que el problema de optimización deja de ser convexo. Por lo tanto para optimizarlo se usa un método iterativo reponderado de mínimos cuadrados (IRLS, Iterative re-weighted least squares). En el método IRLS: X j ρ(Aj→x−bj)(A.12) Expresando el problema de deblurring adecuadamente para la aplicación de IRLS, se establecen los vectores fila Aj→como las filas de las matrices de convolución Cgk,Cf. El método IRLS establece el problema como una secuencia de problemas de mínimos cuadrados., cada problema de mínimos cuadrados se repondera con la solución en el paso previo. La minimización de cada problema de mínimos cuadrados es equivalente a resolver un conjunto sparse de ecuaciones lineales. Los pasos del algoritmo IRLS son: Inicialización: establecer Ψ0 j= 1 69 Apéndice D Cómo insertar una apertura codificada en una lente Canon EF 50mm f1.8 II En este apéndice se muestra cómo se han introducido los patrones de aperturas codificadas en el objetivo de la cámara, pudiendo así modificar la apertura circular convencional. El objetivo empleado a lo largo de todo el proyecto es un Canon EF 50mm f1.8 II, usado sobre el cuerpo de una cámara reflex digital Canon EOS 500D, ver Figura D.1. La elección de este objetivo se debe tanto a su precio asequible (se debe considerar el riesgo de estropear el objetivo al desmontarlo) como a su estructura simple formada por un pequeño número de partes y de material plástico, facilitando su apertura y montaje posterior. Figura D.1: Canon EOS 500D con objetivo Canon 50mm f1.8 II. A continuación se muestran los pasos a seguir para desmontar el objetivo e introducir la apertura codificada, ver Figura D.2. En primer lugar se quita la tapa trasera de protección del objetivo, quedando al descubierto los tornillos mostrados en D.2.a. Se quitan estos tornillos y se presiona en la zona señalada en la imagen D.2.b para después hacer saltar la tapa de plástico que cubre el objetivo. La imagen D.2.c muestra el objetivo abierto, ahora se deberá prestar especial atención a la pestaña que selecciona el modo manual o automático. Seleccionamos el modo manual, que nos permitirá girar el disco de enfoque, el objetivo descenderá y veremos los huecos señalados en la imagen D.2.d. 77 a) Quitar tornillos b)Presionar y levantar tapa c) Objetivo abierto d) Presionar y quitar Figura D.2: Primeros pasos para desmontar el objetivo. Se presiona en ambos lados, soltando así la parte de la carcasa que contiene la pestaña de modo manual y automático. De este modo se obtiene la situación mostrada en la Figura D.3.a. Por último quitamos el tornillo que nos permitirá abrir por completo el objetivo, separando esa pieza en tres. El conjunto de elementos que componen el objetivo se muestran en la Figura D.3.b. a) Objetivo parcialmente desmontado b)Objetivo completamente desmontado Figura D.3: Componentes de la lente Canon EF 50mm f1.8 Colocada sobre la lente Apertura codifica en objetivo Figura D.4: Canon EF 50mm f1.8 II con apertura codificada. En la FiguraD.4 se ve en la imagen de la izquierda la colocación del patrón de apertura sobre la lente del objetivo. El patrón de la apertura se imprime a alta resolución en 78 papel fotolitográfico, debiéndose corresponder el diámetro de la apertura impresa con el de la lente, en nuestro caso 20mm, para asegurarnos de que la apertura circular queda completamente modificada por el patrón escogido. De este modo se fija la apertura sobre la lente, fijando con cuidado una pestaña de la apertura en la zona que rodea la lente. Se vuelve a montar el objetivo. El resultado se ve en la imagen de la derecha, el objetivo completo con la apertura codificada insertada sobre la lente. 79 Apéndice E Artículo: Coded Apertures for Defocus Deblurring El estudio realizado sobre aperturas no binarias se incluyó en una publicación aceptada en el Congreso Ibero-americano de Informática Gráfica (SIACG 2011), resultando entre las tres mejores publicaciones del congreso. En esta publicación se realiza un estudio sobre aperturas codificadas óptimas para deblurring, además se incluye el citado trabajo sobre la introducción de valores no binarios en los patrones de aperturas codificadas. A continuación se adjunta el artículo citado. 81 Coded Apertures for Defocus Deblurring Belen Masia, Adrian Corrales, Lara Presa and Diego Gutierrez Universidad de Zaragoza Abstract The field of computational photography, and in particular the design and implementation of coded apertures, has yielded impressive results in the last years. Among their applications lies defocus deblurring, in which we focus in this paper. Following the approach of previous works, we obtain near-optimal coded apertures using a genetic algorithm and an existing quality metric. We perform both synthetic and real experiments, testing the performance of the apertures along the dimensions of depth, size and shape. We additionally explore non-binary apertures, usually overlooked in the literature, and perform a comparative analysis with their binary counterparts. Categories and Subject Descriptors (according to ACM CCS): I.4.3 [Image Processing and Computer Vision]: Enhancement—Sharpening and deblurring 1. Introduction In the past few years, the field of computational photography has yielded spectacular advances in the imaging process. The main idea is to code the light information in novel ways before it reaches the sensor, in order to decode it later and obtain an improved, enhanced or extended representation of the scene being captured. Several different strategies exist, from structured lighting, to new optical devices, to modulated apertures or shutters. In this work we focus on coded apertures. These are masks obtained by means of computational algorithms which, placed at the camera lens, encode the defocus blur in order to better preserve high frequencies in the original image. They can be seen as an array of multiple ideal pinhole apertures (with infinite depth and no chromatic aberration), whose location on the 2D mask is determined computationally. Decoding the overlap of all pinhole images yields the final image. Some existing works interpret the resulting coded blur attempting to recover depth from defocus. Given the nature of the blur as explained by simple geometrical optics, this approach imposes a multi-layered representation of the scene being depicted. While there is plenty of interesting on-going research in that direction, in this paper we limit ourselves to the problem of defocus deblurring: we aim to obtain good coded apertures that allow us to recover a sharp image from its blurred original version. We follow standard approaches and pose the imaging process as a convolution between the original scene being captured and the blur kernel (plus a noise function). In principle, this would lead to a blind deconvolution problem, given that the such blur kernel is usually not known. Assuming no motion blur nor camera shake, this kernel is reduced to the point spread function of the optical system. Traditional circular apertures, however, have a very poor response in the frequency domain: not only do they lose energy at high frequencies, but they exhibit multiple zero-crossings as well; it is thus impossible to recover information at such frequencies during deconvolution. In this paper, we present several coded apertures with better frequency response, which allow us to recover information apparently lost to blur during the capture process. We follow the approach of previous works, and rely on the average power spectra of natural images to guide our optimization process, which is in turn performed by means of genetic algorithms. Once the coded apertures have been obtained, we show the feasibility of our results by printing them out on a photomask sheet and inserting them in an off-the-shelf camera. The captured blurred images are then deconvolved using Wiener deconvolution. We analyze the performance of our apertures as a function of shape, depth and size. We additionally modify our genetic algorithm to allow for nonbinary masks, and perform a comparative analysis with their binary counterparts. 2. Previous Work Coded apertures have been traditionally used in astronomy, coding the direction of incoming rays as an alternative to fo- cusing imaging techniques [ItZ92]. Possibly the most popular patterns were the MURA patterns (Modified Uniformly Redundant Array) [GF89]. Veeraraghavan et al. [VRA∗07] showed how a 4D light field can be reconstructed from 2D sensor information by means of a coded mask. Placed at the lens, the authors achieve refocusing of images at full resolution, provided the scene being captured contains only Lambertian objects. Nayar and Mitsunaga [NM00], extended the dynamic range capabilities of the imaging system by placing a mask of spatially varying transmittance next to the sensor, and then mapping the captured information to high dynamic range. Other works have proposed different coded apertures for defocus deblurring or depth approximation. To restore a blurred image, the apertures are designed to have a broadband frequency response, along with none (or distinguishable) zero-crossings in the Fourier domain. Hiura and Matsuyama [HM98] proposed a four-pinhole coded aperture to approximate the depth of the scene, along with a deblurred version of it, although their system required multiple images. Liang et al. [LLW∗08] use a similar approach, combining tens of images captured with Hadamard-based coded patterns. Levin et al. [LFDF07] attempted to achieve all-focus and depth recovery simultaneously, relying on image statistics to design an optimal aperture. Depth recovery is limited to a multi-layered representation of the scene. Last, the idea of spatial coding of the mask was transferred to the temporal domain by applying a coded exposure aimed at motion deblurring [RAT06]. In [ZLN09], the authors obtained paired apertures to recover both depth and focus from two images, using both genetic algorithms and gradient descent search. Last, a framework for evaluating coded apertures was recently presented [ZN09], based on the quality of the resulting deblurring and taking into account natural image statistics. Near-optimal apertures are obtained by means of a genetic algorithm. In this paper we follow the same approach, and analyze the obtained apertures along the size, depth and shape dimensions. Additionally, we extend our study by analyzing non-binary masks. 3. Optimal Aperture Design Image blur due to defocus is caused by the loss of high frequency content when capturing the image. The capture process can be modeled as a convolution between the scene being captured and the point spread function (PSF) of the camera, which is defined as the response of the optical system of the camera to an impulse input in the spatial domain. Thus: f=kd∗f0+η(1) where f0is the real scene being photographed, fis the captured image, kdis the PSF and ηaccounts for the noise introduced in the imaging process. Subscript daccounts for depth, since the PSF varies with depth or, more specifically, with the degree of defocus (strictly speaking, it also varies spatially with the position within the image). We will assume that the noise follows a Gaussian distribution of zero mean and standard deviation denoted by σ,N(0,σ2). By means of deconvolution, an approximation ˆ f0to the original sharp image can be obtained. Note that in the frequency domain the convolution becomes a multiplication, and Equation 1can be written as: F=Kd·F0+ζ(2) As Figure 1shows, the PSF, and thus the response of the camera, is characterized by the pattern of the aperture. The response to a coded aperture can also be seen in Figure 2, which depicts the calibration array used in our physical experiments. Since, as mentioned, blur is caused by the loss of information at certain frequencies, the response of an aperture is better analyzed in the frequency domain. Figure 3 depicts a 1D slice of the power spectrum of different aperture patterns, computed by Fourier transforming the aperture (note that the y-axis is log-scale). This shows the magnitude of the response for different frequencies. Circular apertures exhibit zero crossings at several frequencies, and thus information at those frequencies is lost during the imaging process. Optimal apertures for deblurring therefore seek a smooth power spectrum, while keeping the transmitted energy as high as possible. Figure 1: Left: Images of the response to a point light of different apertures (from top to bottom: focused aperture, defocused circular aperture -defocus depth = 90 cm- and one of our coded apertures -defocus depth = 90 cm-, shown in the right). A LED and black cardboard were used to create the point light. Right: Canon EF 50mm f/1.8 lens with one of our coded apertures. 3.1. Aperture Quality Metric Devising an aperture pattern whose frequency response is optimal can be done in different manners. In this paper we follow the approach of Zhou and Nayar [ZN09], which states the quality of an aperture pattern based on the quality of the deconvolution and on a prior model of natural images. In the following we briefly describe the metric and its foundation, and we refer the reader to the original paper for additional details. Figure 2: Our poor man’s LED array used to calibrate the PSFs of the apertures. Top: Focused image. Bottom: Image taken with one of our coded apertures at a defocus depth of 70 cm. Figure 3: Power spectra comparison of different apertures with respect to a circular aperture (blue). Left: Our apertures for resolution 11×11 and noise levels σ=0.001 (red) and σ=0.005 (green). Right: Our apertures for resolution 7×7, binary (red) and non-binary (green). The quality metric chosen is the expectation of the L2 distance between the deconvolved image ˆ F0and the ground truth image F0with respect to ζ, which we want to be minimal (note that we have removed the subscript dfor the sake of simplicity): R(K,F0,C) = E ζ[ ˆ F0−F0  2](3) The recovered image ˆ F0can be obtained using Wiener deconvolution as follows: ˆ F0=F·¯ K |K|2+|C|2(4) where ¯ Kis the complex conjugate of K, and |K|2=K·¯ K. |C|2=C·¯ Cis the matrix of noise-to-signal power ratios (NSR) of the additive noise. Substituting this formulation in Equation 3we have: R(K,F0,C) = E ζ[      ζ·¯ K−F0·|C|2 |K|2+|C|2      2 ](5) and assuming that ζfollows a Gaussian distribution with zero mean, ζ∼N(0,σ2): R(K,F0,C) =      σ·¯ K |K|2+|C|2      2 +      F0·|C|2 |K|2+|C|2      2 (6) Using a model of natural images as a prior, the expectation of |F0|2is A(ξ) = ZF0 |F0(ξ)|2dµ(F0),(7) where ξrepresents frequency and Acan be approximated by averaging the power spectra of a number of natural images. This way the dependance on F0, which is unknown, is circumpassed, obtaining: R(K,C) =      σ·¯ K |K|2+|C|2      2 +      A1/2·|C|2 |K|2+|C|2      2 (8) The value of |C|2which, for a given K, minimizes the value of Ris |C|2=σ2/A. Substituting this value in Equation 8 yields the sought quality metric, which depends only on the Fourier transform of the aperture pattern K, the estimated image noise σand the average power spectra of natural images A: R(K) = σ2 |K|2+σ2/A(9) 3.2. Aperture Pattern Optimization Once we have a way of evaluating a certain aperture with Equation 9, an optimization method can be used to obtain the minimum value of R(K)over the range of possible apertures. The space of possible apertures is infinite, since the aperture can be of different resolutions, and each pixel can in principle take infinite values. A priori the solution is limited only by physical restrictions, i.e. apertures with negative values are not realizable in practice and resolution is limited by the printing process. Resolution is additionally limited by diffraction effects, which appear as the size of the pixels in the aperture gets smaller, and hinder the performance of the aperture. Transmissivity is an additional issue to be taken into account when designing an aperture. Coded apertures typically have lower transmission rates than their circular counterparts, and the use of a longer exposure time to obtain an equivalent brightness to that of the circular aperture can cause other problems such as motion blur. This metric does not consider transmissivity when evaluating an aperture, but still it yields satisfactory results for the majority of cases.