scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

Las últimas investigaciones en fotografía computacional han permitido que problemas previamente irresolubles con la fotografía convencional, sean ahora factibles al introducir nuevos dispositivos y técnicas de procesado. Un ejemplo de este tipo de problemas es la obtención de las componentes de iluminación de una escena iluminada por una fuente de luz. Estas componentes son: iluminación directa, producida por la incidencia de la luz en un punto, e iluminación global, resultante de los rebotes de la luz en otros puntos de la escena como consecuencia de fenómenos físicos tales como reflexión, dispersión o difusión. Así se tiene que, la componente directa nos ofrece una medida pura acerca de cómo las propiedades materiales de un objeto interactúan con la fuente emisora de luz y la cámara, mientras que la componente global muestra interacciones más complejas entre los distintos objetos que conforman la escena. Por lo tanto, esta descomposición resulta muy útil en numerosas tareas relacionadas con la fotografía computacional tales como la edición o captura de materiales, la re-iluminación de escenas o extracción de la geometría. Obtener esta descomposición a partir de una única fotografía de la escena es un proceso inviable debido al elevado número de incógnitas y la poca información de la que se dispone. Por tanto, para lograr este objetivo, el trabajo aquí realizado se basa en la publicación de Nayar et. al. [NR06] en la cual se emplea luz estructurada para, mediante la proyección de un patrón de alta frecuencia, obtener información adicional acerca de la escena y así hacer el problema soluble. Este proyecto tiene dos partes claramente diferenciadas. En la primera parte, que denominamos descomposición en entorno estático, se reproducen los dos algoritmos expuestos en dicha publicación para obtener la descomposición de la imagen: primero, a partir de varias capturas de la escena y segundo, a partir de una única captura de la misma. Para esta primera parte se requiere una habitación oscura, un proyector LCD fijo que proyecta un patrón de alta frecuencia, una cámara digital para realizar las capturas y la herramienta software Matlab para procesar la información. En la segunda parte del proyecto, denominada descomposición en entorno móvil, se implementan los mismos algoritmos sobre el dispositivo móvil Android de Nvidia Tegra 3. Este proceso, más complejo por tratarse de un entorno no controlado, únicamente requerirá la luz del sol como foco y un objeto opaco alargado cuya sombra proyectada servirá como patrón de alta frecuencia. Martín Domenech, Fernando; Garcés García, Elena

Full text

DESCOMPOSICIÓN DE UNA ESCENA EN ILUMINACIÓN GLOBAL Y DIRECTA Proyecto fin de carrera AUTOR: FERNANDO MARTÍN DOMENECH DIRECTORA: ELENA GARCÉS GARCÍA PONENTE: DR. D. DIEGO GUTIÉRREZ PÉREZ INGENIERIA INFORMÁTICA. CURSO 2011-2012 Universidad de Zaragoza Escuela ingenieria y arquitectura Departamento de Informática e Ingeniería de Sistemas Graphics and Imaging Lab Agradecimientos A mis padres Luis y Ana y a toda mi familia y amigos que no dudaron de m´ı ni cuando yo mismo lo hac´ıa. Tambi´en quiero agradecer a todos y cada uno de los miembros del laboratorio Graphics and Imaging Lab el apoyo brindado y la simpat´ıa y amabilidad con la que me acogieron desde el primer d´ıa, especialmente a Elena y Diego. ii Resumen Las ´ultimas investigaciones en fotograf´ıa computacional han permitido que problemas previamente irresolubles con la fotograf´ıa convencional, sean ahora factibles al introducir nuevos dispositivos y t´ecnicas de procesado. Un ejemplo de este tipo de problemas es la obtenci´on de las componentes de iluminaci´on de una escena iluminada por una fuente de luz. Estas componentes son: iluminaci´on directa, producida por la incidencia de la luz en un punto, e iluminaci´on global, resultante de los rebotes de la luz en otros puntos de la escena como consecuencia de fen´omenos f´ısicos tales como reflexi´on, dispersi´on o difusi´on. As´ı se tiene que, la componente directa nos ofrece una medida pura acerca de c´omo las propiedades materiales de un objeto interact´uan con la fuente emisora de luz y la c´amara, mientras que la componente global muestra interacciones m´as complejas entre los distintos objetos que conforman la escena. Por lo tanto, esta descomposici´on resulta muy ´util en numerosas tareas relacionadas con la fotograf´ıa computacional tales como la edici´on o captura de materiales, la re-iluminaci´on de escenas o extracci´on de la geometr´ıa. Obtener esta descomposici´on a partir de una ´unica fotograf´ıa de la escena es un proceso inviable debido al elevado n´umero de inc´ognitas y la poca informaci´on de la que se dispone. Por tanto, para lograr este objetivo, el trabajo aqu´ı realizado se basa en la publicaci´on de Nayar et. al. [NR06] en la cual se emplea luz estructurada para, mediante la proyecci´on de un patr´on de alta frecuencia, obtener informaci´on adicional acerca de la escena y as´ı hacer el problema soluble. Este proyecto tiene dos partes claramente diferenciadas. En la primera parte, que denominamos descomposici´on en entorno est´atico, se reproducen los dos algoritmos expuestos en dicha publicaci´on para obtener la descomposici´on de la imagen: primero, a partir de varias capturas de la escena y segundo, a partir de una ´unica captura de la misma. Para esta primera parte se requiere una habitaci´on oscura, un proyector LCD fijo que proyecta un patr´on de alta frecuencia, una c´amara digital para realizar las capturas y la herramienta software Matlab para procesar la informaci´on. En la segunda parte del proyecto, denominada descomposici´on en entorno m´ovil, se implementan los mismos algoritmos sobre el dispositivo m´ovil Android de Nvidia Tegra 3. Este proceso, m´as complejo por tratarse de un entorno no controlado, ´unicamente requerir´a la luz del sol como foco y un objeto opaco alargado cuya sombra proyectada servir´a como patr´on de alta frecuencia. iii ´ Indice general 1. Introducci´on 2 1.1. Motivaci´on ........................... 2 1.2. Trabajo relacionado ..................... 5 1.3. Objetivos ............................ 6 1.4. Contexto ............................. 6 1.5. Estructura de la memoria .................. 6 2. Estudio del problema 8 2.1. Definici´on de iluminaci´on directa y global ....... 8 2.2. Luz estructurada ....................... 12 3. Implementaci´on 14 3.1. Algoritmo de descomposici´on ............... 14 3.2. Implementaci´on en entorno est´atico ........... 18 3.2.1. Descomposici´on a partir de varias capturas ........ 19 3.2.2. Descomposici´on a partir de una captura .......... 22 3.3. Implementaci´on en entorno m´ovil ............ 27 4. Resultados 30 5. Conclusiones 39 iv ´ INDICE GENERAL 5.1. Trabajo realizado ....................... 39 5.2. Resumen temporal del proyecto .............. 40 5.3. Conclusiones y trabajo futuro ............... 41 5.4. Conclusiones personales ................... 42 A. Desarrollo de la aplicaci´on para el tablet NVIDIA Tegra 45 A.1.Android .............................. 46 A.2. Java Native Interface (JNI) . . . . . . . . . . . . . . . . . . . 47 A.3. Librer´ıas de la FrankenCamera (FCam) . . . . . . . . . . . . . 47 A.4. Estructura de la aplicaci´on m´ovil . . . . . . . . . . . . . . . . 49 A.5. Arquitectura NVIDIA Tegra 3 . . . . . . . . . . . . . . . . . . 50 1 Cap´ıtulo 1 Introducci´on En este primer cap´ıtulo de la memoria del Proyecto Fin de Carrera titulado Descomposici´on de una escena en iluminaci´on global y directa se abordan los aspectos m´as esenciales del mismo como son la motivaci´on, trabajo relacionado, el contexto y los objetivos marcados. 1.1. Motivaci´on El campo de la fotograf´ıa computacional re´une conceptos de inform´atica gr´afica, ´optica y visi´on por computador; y engloba t´ecnicas de captura, procesado y manipulaci´on de im´agenes que permiten mejorar y extender las funcionalidades provistas por las c´amaras digitales. En los ´ultimos a˜nos, dicho campo ha evolucionado considerablemente con la aparici´on de nuevos m´etodos y dispositivos. Esta evoluci´on hace posible que problemas hasta entonces irresolubles puedan ser abordados. Un ejemplo de este tipo de problemas es la descomposici´on de una escena iluminada por una fuente de luz en sus componentes de iluminaci´on: directa y global. Una fuente de luz, ya sea natural (el Sol) o artificial, genera una serie de rayos que son propagados por un medio f´ısico (generalmente el aire). Tal y como muestra la figura 1.1, los rayos de luz generados por la fuente viajan a trav´es del medio hasta que alcanzan una superficie. En ese momento, parte de la energ´ıa lum´ınica de dichos rayos es absorbida por la superficie impactada. La energ´ıa restante es re-emitida en una nueva direcci´on y se propaga hasta que alcanza otra superficie, y as´ı sucesivamente, provocando lo que se conoce como rebotes de la luz. Este comportamiento se repite hasta que la luz se 2 Introducci´on Figura 1.1: La figura de la izquierda (a) muestra el primer viaje de los rayos de luz, y la figura de la derecha (b) muestra los primeros rebotes de luz como consecuencia de los rayos emitidos anteriormente. N´otese que las flechas que representan los rayos de luz son cada vez m´as cortas denotando una p´erdida de energ´ıa progresiva. Im´agenes obtenidas de www.digitaltutors.com expande por completo. Por lo tanto, en entornos reales, los objetos de una escena no son ´unicamente iluminados por la(s) fuente(s) de luz (iluminaci´on directa), sino tambi´en por aquellos rayos de luz que son reflejados por otros objetos (iluminaci´on global). El objetivo principal de este proyecto es obtener la descomposici´on de una escena en estos dos componentes: una imagen que representa la iluminaci´on directa (sin contemplar los rebotes de la luz) y otra que representa la iluminaci´on global (que contempla la iluminaci´on indirecta de la escena). Un ejemplo de dicha descomposici´on se muestra en la figura 1.2. A la hora de abordar el problema de la descomposici´on que aqu´ı se plantea, el principal obst´aculo que aparece es la falta de informaci´on sobre la escena. Obtener dicha descomposici´on a partir de una ´unica fotograf´ıa digital de la escena es un proceso inviable dado el elevado n´umero de inc´ognitas y la poca informaci´on de la que se dispone. Esto es as´ı puesto que, a priori, lo ´unico que se conoce acerca de una fotograf´ıa digital es el valor discreto de cada uno de los elementos que componen la imagen, com´unmente conocidos como p´ıxeles. 3 Estudio del problema Figura 2.2: La iluminaci´on total de un punto P de la escena se debe a la componente directa de dicho punto (A) y a la componente global que incluye la luz reflejada (B), la luz que viaja por el interior de la superficie (C), la luz que atraviesa diferentes medios f´ısicos (D) y la luz que atraviesa superficies translucidas (E). Imagen obtenida de [NR06]. Figura 2.3: La piel humana (a) se compone de varias capas. Estas capas son especialmente delicadas en la zona del rostro, facilitando que los rayos de luz atraviesen la piel y se dispersen en su interior. Al cambiar de medio (del aire al agua) (b), los rayos de luz var´ıan la velocidad y la direcci´on de propagaci´on. Por ´ultimo, las superficies transl´ucidas (c) contribuyen en gran medida a la iluminaci´on global de una escena dado que dejan pasar gran parte de la energ´ıa lum´ınica de los rayos. Im´agenes obtenidas de [NR06]. 10 Estudio del problema El sensor de una c´amara digital no puede desambiguar los datos capturados y separar la informaci´on correspondiente a cada componente. Por tanto, resulta interesante realizar dicha descomposici´on puesto que aporta informaci´on adicional acerca de la escena: mientras que la componente directa nos ofrece una medida m´as pura acerca de c´omo las propiedades de un material interact´uan con la fuente emisora de luz y la c´amara, la componente global muestra interacciones m´as complejas entre los distintos objetos que conforman la escena. En la figura 2.4 se observa una escena con dos esferas, estando la misma iluminada teniendo en cuenta s´olo la componente directa primero y considerando tanto la componente directa como la componente global despu´es. En este segundo caso, la escena presenta un aspecto mucho m´as realista, resultando especialmente llamativo c´omo los colores de las paredes son reflejados en las caras laterales de las esferas. Figura 2.4: Escena sint´etica iluminada tan s´olo teniendo en cuenta la componente directa en la imagen de la izquierda (a) y teniendo en cuenta tanto la componente directa como la componente global en la imagen de la derecha (b). Im´agenes obtenidas de www.digitaltutors.com 11 Estudio del problema 2.2. Luz estructurada Cuando se habla de emplear luz estructurada se refiere al proceso de proyectar un patr´on conocido de p´ıxeles sobre una escena, generalmente barras verticales y/o horizontales formando alg´un tipo de mallado regular. La manera en la que dicho patr´on se deforma cuando se aplica sobre una superficie concreta permite a los sistemas de visi´on por computador obtener cierta informaci´on sobre los objetos que componen la escena, como la geometr´ıa de los mismos o su profundidad. La figura 2.5 muestra un ejemplo de un patr´on de rayas verticales proyectado sobre una cara humana. Se observa claramente c´omo dichas rayas no sufren deformaci´on alguna cuando inciden directamente sobre el fondo, pero s´ı lo hacen cuando alcanzan el rostro expuesto delante, revelando as´ı informaci´on acerca de la geometr´ıa del mismo. Figura 2.5: Un patr´on de rayas verticales es proyectado sobre una cara humana. Imagen obtenida de [JD06]. De igual manera que en este trabajo, otros muchos estudios han empleado la t´ecnica de la luz estructurada para obtener informaci´on adicional de una escena dada. As´ı pues, en Scharstein et. al. [SS03] se emplea tambi´en un proyector LCD para generar un patr´on de alta frecuencia binario y de este modo obtener un mapa de profundidad de la escena, tal y como se observa en la figura 2.6. En Lanman et. al. [LT07] y en Aliaga et. al. [AX08] por contra, el objetivo es obtener una reconstrucci´on 3D de la escena y en Silberman et. al. [SF11] el empleo de la luz estructurada permite realizar una segmentaci´on por objetos de la escena. Como puede observarse, se trata de una t´ecnica muy popular y utilizada dentro del campo de la fotograf´ıa computacional. 12 Estudio del problema Figura 2.6: T´ecnica empleada en Scharstein et. al. [SS03] para obtener el Mapa de profundidades de una escena. La figura (a) muestra la escena original. En la figura (b) se muestra un patr´on de alta frecuencia horizontal proyectado sobre la escena original. Finalmente, la figura (c) muestra el mapa de profundidades obtenido. En dicho mapa se representan con tonos claros los objetos cercanos y con tonos m´as oscuros los objetos lejanos. 13 Cap´ıtulo 3 Implementaci´on En este cap´ıtulo se detalla el algoritmo de descomposici´on empleado. Se exponen dos m´etodos distintos para realizar la descomposici´on mediante el uso de luz estructurada en un entorno est´atico, y se muestra c´omo tambi´en es posible obtener dicha descomposici´on en un entorno m´ovil no controlado gracias al uso de el tablet NVIDIA Tegra. 3.1. Algoritmo de descomposici´on Una posible forma de realizar la descomposici´on de la escena en sus dos componentes de iluminaci´on consiste en medir la componente global de la escena por separado y calcular la componente directa despu´es a partir de los datos obtenidos. De acuerdo con Seitz et. al. [MK05] esto es posible si se ilumina cada peque˜no punto de la escena individualmente y se captura una imagen para determinar la contribuci´on de dicho punto al resto de la escena. De esta forma, punto por punto es posible construir la componente global. Sin embargo, a pesar de que el m´etodo es te´oricamente v´alido, resulta prohibitivamente costoso dada la gran cantidad de capturas requeridas. En este proyecto se reproduce el algoritmo planteado por Nayar et. al [NR06] que permite, gracias a la t´ecnica de la luz estructurada, realizar la descomposici´on mediante el uso de patrones de alta frecuencia de forma eficiente, ya que no es necesario iluminar la escena punto por punto. Para una escena cualquiera, se describe la iluminaci´on de la misma mediante el t´ermino L[x, ~w], que mide la cantidad de luz emitida por el punto x 14 Implementaci´on en la direcci´on ~w. Si se denota que el vector ~w viaja desde un punto xhasta otro punto yse puede rescribir el t´ermino anterior como L(wy x). Parte de la luz emitida por dicho punto ximpacta contra otros objetos de la escena y es reflejada. A su vez, esta luz reflejada es re-emitida en una nueva direcci´on pudiendo alcanzar de nuevo otra superficie. Estos rebotes de la luz se suceden hasta que la luz se expande por completo. Por tanto, L(wy x) se puede dividir en dos componentes: la luz que ha sido emitida una ´unica vez directamente desde la fuente (iluminaci´on directa) y la luz que ha sido rebotada dos o m´as veces (iluminaci´on global). L(wy x) = L1(wy x) + L2,3,...(wy x) (3.1) La primera componente, L1(wy x), est´a determinada por la funci´on BRDF del punto x. La segunda componente, L2,3,...(wy x) depende de la luz reflejada que impacta el punto xdesde otros puntos de la escena. La ecuaci´on 3.1 se puede expresar como una ecuaci´on integral, conocida en el ´ambito de la inform´atica gr´afica como la ecuaci´on de renderizado [KAJ86]. L(wy x) = L1(wy x) + Zx0 A(wy x, wx x0)L(wx x0)dx0(3.2) La funci´on A(wy x, wx x0) define la cantidad de luz que el punto xrefleja hacia el punto ycuando la recibe desde el punto x0. Si x=x0se tiene que A(wy x, wx x0) = 0, es decir, la contribuci´on lum´ınica en dicho punto se debe ´unicamente a la iluminaci´on directa. Sup´ongase ahora que la superficie de la escena que se desea descomponer se divide en un numero finito de peque˜nas porciones. La ecuaci´on de renderizado 3.2 se puede ahora escribir de modo discreto como: L[c, i] = Ld[i] + X j A[i, j]L[i, j] (3.3) Donde L[c, i] denota la iluminaci´on de cada porci´on concreta de la escena imedida por la c´amara cyLd[i] corresponde a la componente directa anteriormente denominada como L1(wy x). El segundo t´ermino de la ecuaci´on corresponde, por tanto, a la componente global de la escena, definida como: Lg[c, i] = X j∈P A[i, j]L[i, j] (3.4) 15 Implementaci´on donde, P={j|1≤j≤N, j 6=i}.L[i, j] mide la iluminaci´on de la porci´on i,j y la matriz A[i, j] incorpora tanto la funci´on BRDF de icomo la configuraci´on geom´etrica relativa de i,j. Es posible adem´as separar la componente global, Lg[c, i], en dos componentes de modo que Lg[c, i] = Lgd[c, i]+Lgg[c, i], donde Lgd[c, i] se debe a los rayos de luz rebotados por primera vez tras provenir directamente de la fuente de luz y Lgg[c, i] se debe a los rayos de luz rebotados por segunda vez o sucesivas. Lgd[c, i] = X j∈P A[i, j]Ld[i, j], Lgg[c, i] = X j∈P A[i, j]Lg[i, j].(3.5) Consid´erese ahora que tan s´olo una fracci´on αde los p´ıxeles de la fuente de luz se proyectan sobre la escena y que dichos p´ıxeles est´an uniformemente distribuidos sobre la escena completa para producir un patr´on de alta frecuencia tal y como muestra la figura 3.1. Se dice que dichos p´ıxeles se encuentran activos, mientras que aquellos p´ıxeles que no proyectan rayos de luz se denominan inactivos. Figura 3.1: Cuando la fuente de luz proyecta un patr´on de alta frecuencia sobre la escena, aquellas porciones que est´en iluminadas directamente incluir´an tanto la componente directa como la global, mientras que las porciones no iluminadas directamente contienen ´unicamente componente global. El conjunto de aquellas porciones directamente iluminadas se denota como Q={k|k∈Nylit(k) = 1}, donde la funci´on lit indica si una porci´on 16 Implementaci´on se encuentra directamente iluminada o no. As´ı pues, las componentes establecidas previamente quedan definidas de la siguiente forma: L+ gd[c, i] = X j∈Q A[i, j]Ld[i, j], L+ gg[c, i] = X j∈P A[i, j]L+ g[i, j].(3.6) N´otese que L+ gd[c, i] difiere de Lgd[c, i] en que tan s´olo las αMporciones iluminadas contienen componente directa. Por lo tanto, si el t´ermino A[i, j] y el t´ermino Ld[i, j] (componente directa) son infinitamente diferenciables con respecto de la frecuencia del patr´on de iluminaci´on, se tiene que: L+ gd[c, i] = αLgd[c, i], L+ gg[c, i] = αLgg[c, i].(3.7) Se consideran dos capturas diferentes de la escena donde, en la primera de ellas L+, la escena est´a iluminada con un patr´on de alta frecuencia en el cual una fracci´on αde p´ıxeles se encuentran activos y una segunda L−, iluminada con el patr´on de alta frecuencia inverso, es decir, 1 −αp´ıxeles activos. Cuando un punto de la escena est´a iluminado, es decir, sobre ´el se ha proyectado uno de los αp´ıxeles activos, dicho punto contiene informaci´on correspondiente a la iluminaci´on directa y a la iluminaci´on global. Mientras que si dicho punto no est´a iluminado, ´este s´olo contiene informaci´on relativa a la iluminaci´on global. Si la porci´on de la escena iqueda iluminada en la primera imagen capturada L+entonces no lo estar´a en la segunda imagen L−, y viceversa. As´ı se tiene: L+[c, i] = Ld[c, i] + αLg[c, i], L−[c, i] = (1 −α)Lg[c, i].(3.8) Por consiguiente, si αes conocido, es posible calcular la componente directa y la componente global para cada uno de los p´ıxeles con tan s´olo dos capturas. Hasta ahora, se ha supuesto que cuando un p´ıxel de la fuente de luz no se encuentra activo no produce luz en absoluto. Sin embargo, esto no es del todo cierto en el caso de un proyector LCD puesto que no es capaz de bloquear ciertos rayos de luz por completo cuando otros s´ı est´an activos (existen peque˜nas fugas). Se asume entonces que cada p´ıxel inactivo tiene un 17 Implementaci´on cierto brillo b, donde 0 ≤b≤1. Si se modifican las expresiones anteriores para contemplar este nuevo par´ametro quedan de la siguiente forma: L+[c, i] = Ld[c, i] + αLg[c, i] + b(1 −α)Lg[c, i], L−[c, i] = bLd[c, i] + (1 −α)Lg[c, i] + αbLg[c, i].(3.9) De nuevo, si αybson conocidos, la descomposici´on puede llevarse a cabo con tan s´olo dos capturas. N´otese que si el valor de αes o muy pr´oximo a 1 o muy cercano a 0 una de las dos im´agenes apenas quedar´a iluminada. Con la intenci´on de maximizar la frecuencia de iluminaci´on en ambas im´agenes, la mejor elecci´on es α=1 2, es decir, la mitad de la escena quedar´a iluminada y la otra mitad no. Finalmente se tiene: L+[c, i] = Ld[c, i] + (1 + b)Lg[c, i] 2, L−[c, i] = bLd[c, i] + (1 + b)Lg[c, i] 2.(3.10) Para todos los m´etodos desarrollados en este trabajo las expresiones anteriores ser´an v´alidas para calcular la componente directa y la componente global. Dichos m´etodos diferir´an entre s´ı en la forma de obtener las matrices de iluminaci´on m´axima Lmax =L+e iluminaci´on m´ınima Lmin =L−. 3.2. Implementaci´on en entorno est´atico Para poder aplicar el algoritmo de descomposici´on previamente expuesto y obtener una descomposici´on correcta y precisa es requisito indispensable que la escena capturada se encuentre iluminada por una ´unica fuente de luz. Por lo tanto, para que ning´un otro rayo de luz interfiera con la fuente emisora, la habitaci´on debe estar acondicionada para permanecer a oscuras durante el proceso de captura. Todas las im´agenes empleadas por los sucesivos m´etodos correspondientes a este primer escenario fueron tomadas a oscuras en el laboratorio 2.06 del edificio Ada Byron de la Universidad de Zaragoza. El proyector empleado fue el modelo JVC DLA-SX21, con un brillo de 1.500 ANSI lumens y la resoluci´on fue fijada a 1024x768 p´ıxeles para proyectar los patrones de alta frecuencia sobre las escenas. Para la obtenci´on de las im´agenes fue usada la c´amara r´eflex Canon EOS 500D situada fija sobre la base de un tr´ıpode de fotograf´ıa para que el objetivo de la c´amara quedase alineado con la fuente de luz. Una correcta alineaci´on entre dichos objetos 18 Implementaci´on minimiza la aparici´on de sombras molestas en los resultados. Las im´agenes capturadas se almacenaron en formato RAW, ya que otros formatos de almacenamiento, al aplicar cierta compresi´on sobre los datos de las im´agenes, produc´ıan resultados imprecisos (ver secci´on 4). 3.2.1. Descomposici´on a partir de varias capturas De acuerdo con el algoritmo de descomposici´on presentado al comienzo de este cap´ıtulo, dos im´agenes deber´ıan ser suficientes para poder obtener la separaci´on buscada: una primera captura con el patr´on de alta frecuencia proyectado sobre la escena y una segunda empleando el patr´on inverso o complementario. Este patr´on complementario contiene casillas blancas donde antes hab´ıa casillas negras y viceversa. Fusionando estas dos capturas se tiene que, te´oricamente, cada uno de los p´ıxeles que conforman la escena ha sido capturado tanto bajo la influencia de las casillas negras del patr´on (presentando s´olo informaci´on correspondiente a la componente global) como bajo la influencia de las casillas blancas (presentando informaci´on correspondiente a la componente directa y a la componente global simult´aneamente). Sin embargo, en la pr´actica existen dos problemas relacionados con el proyector LCD. En primer lugar, dado que la escena capturada puede presentar varios objetos, unos m´as alejados que otros, el patr´on de alta frecuencia no puede quedar perfectamente enfocado sobre todos ellos. En segundo lugar, existen peque˜nas fugas de luz entre las casillas del patr´on causando que las casillas negras no sean suficientemente oscuras en toda su dimensi´on. Como se observa en la figura 3.2, las casillas negras del patr´on se debilitan en las zonas fronterizas y s´olo una peque˜na parte de ellas resulta realmente ´util para realizar la descomposici´on. Para superar estos inconvenientes, se tomaron un mayor n´umero de capturas de las que la teor´ıa requiere. En esta fase del trabajo, se us´o un patr´on de ajedrez cuyos cuadrados eran de un tama˜no de 8x8 p´ıxeles. Para un reparto ´optimo de las zonas ´utiles de las casillas del patr´on, ´este fue desplazado cinco veces (con un desplazamiento de 3 p´ıxeles) en cada una de las dos dimensiones espaciales para capturar un total de veinticinco im´agenes, tal y como muestra la figura 3.3. Si no se realiza correctamente este barrido a lo largo de la escena, o si se realizan un menor n´umero de capturas, no todos los p´ıxeles cuentan con la informaci´on adecuada y se obtienen resultados de poca calidad como muestra la figura 3.4. 19 Implementaci´on Gracias a los coeficientes asociados a cada nivel de p´ıxeles vecinos, el algoritmo de interpolaci´on permite ajustar el peso que recibe cada uno de ellos a la hora de estimar un valor desconocido, pudiendo as´ı decidir si los p´ıxeles m´as cercanos son m´as importantes que los p´ıxeles m´as alejados y viceversa. Una adecuada colaboraci´on entre los tres niveles consigue mejores resultados de los que cualquier nivel podr´ıa obtener por separado, tal y como muestra la figura 3.10. Una vez completado el proceso de interpolaci´on, se obtuvieron las matrices de iluminaci´on m´axima Lmax e iluminaci´on m´ınima Lmin correctamente rellenadas. A partir de las mismas fue posible calcular las componentes directa Ldy global Lgmediante el uso de la ecuaci´on 3.10, tal y como muestra la figura 3.11 Figura 3.11: Pasos necesarios para realizar la descomposici´on con una ´unica captura y un patr´on de alta frecuencia rayado. Los resultados correspondientes a este m´etodo se exponen en el cap´ıtulo 4. 26 Implementaci´on 3.3. Implementaci´on en entorno m´ovil Los dos m´etodos anteriores presentan la clara desventaja de necesitar un entorno controlado, donde el proyector act´ua como fuente de luz a la par que proyecta el patr´on de alta frecuencia sobre la escena para realizar las capturas con la c´amara digital. Este tercer m´etodo permite realizar la descomposici´on de cualquier escena a plena luz del d´ıa, mediante el uso del tablet NVIDIA y un objeto alargado opaco como puede ser una simple varilla de madera tal y como se puede ver en la figura 3.12. Los detalles t´ecnicos acerca de la implementaci´on de la aplicaci´on m´ovil desarrollada en Android para realizar la descomposici´on en el tablet NVIDIA se encuentran en el anexo A. Figura 3.12: Configuraci´on del entorno m´ovil. El tablet NVIDIA realiza la grabaci´on de la escena sobre la cual se proyecta y se desplaza de lado a lado la sombra de la varilla de madera. El Sol es una fuente de luz difusa, es decir, la luz que emite incide sobre los objetos desde m´ultiples v´ertices, por lo que proporciona una oscuridad m´as heterog´enea y hace que las sombras sean menos n´ıtidas cuanto m´as lejos est´e un objeto de la superficie que oscurece. La umbra es la parte de la sombra donde el Sol queda completamente bloqueado y la penumbra es la parte de la sombra donde el Sol est´a parcialmente ocluido. En nuestro caso, el tama˜no relativo de umbra y penumbra de la sombra proyectada depende de lo alejado que est´e la varilla de la escena: cuanto m´as se aleja la varilla de la escena, la parte de umbra es m´as estrecha mientras que la penumbra aumenta. 27 Implementaci´on Para simular el patr´on de alta frecuencia correctamente y realizar una buena descomposici´on de la escena, la varilla debe estar lo suficientemente cerca para que la penumbra no sea demasiado ancha y cada punto sea registrado en umbra en alguna de las im´agenes capturadas. El Sol es por tanto nuestra fuente de luz ahora, y con la ayuda de la varilla de madera se proyecta su sombra sobre la escena de modo que mientras el tablet (en est´atico) captura una secuencia de im´agenes de la escena, la sombra de la varilla se desplaza poco a poco de principio a fin realizando un barrido completo. Para realizar dicho barrido de la escena de forma adecuada, se puede ajustar el par´ametro que define el n´umero de fotogramas que contendr´a la grabaci´on. Tambi´en es posible ajustar el intervalo de tiempo existente entre cada fotograma capturado en la grabaci´on. Dicho intervalo de tiempo est´a establecido en 0.2 segundos, es decir 5fps1, que es la m´axima velocidad de captura que el tablet NVIDIA permite en modo RAW (no v´ıdeo). Por defecto la aplicaci´on realiza un total de 45 capturas, necesitando por lo tanto un total de 10 segundos, tiempo suficiente para hacer dos barridos completos (ida y vuelta) de forma suave y uniforme. Sin embargo, si la sombra proyectada no se desplaza uniformemente sobre la escena capturada puede dar lugar a la aparici´on de discontinuidades entre las sombras. En aquellos p´ıxeles pertenecientes a las zonas discontinuas no se cuenta con toda la informaci´on necesaria para poder realizar la descomposici´on y por lo tanto los resultados obtenidos ser´an parcialmente err´oneos, tal y como muestra la figura 3.13 Figura 3.13: Desplazamiento incorrecto de la varilla sobre la escena provocando la aparici´on de discontinuidades entre las sombras capturadas. 1fps = fotogramas por segundo. 28 Implementaci´on Otro aspecto importante a tener en cuenta es el grosor de la sombra proyectada sobre la escena. Idealmente, cuanto m´as fina sea la sombra mayor ser´a la frecuencia del patr´on simulado mediante el desplazamiento de las sombras de la varilla y por lo tanto m´as precisos ser´an los resultados obtenidos. Obviamente, para poder registrar una sombra m´as fina a lo largo de toda la escena ser´a necesario aumentar el tiempo de grabaci´on conllevando una p´erdida de rendimiento dado el crecimiento de datos a procesar. Con una sincronizaci´on adecuada y con la ayuda de todas las im´agenes capturadas se pudo, para cada p´ıxel de la escena, obtener su valor m´aximo (cuando la sombra no le afectaba) y su valor m´ınimo (cuando estaba bajo la sombra de la varilla). De este modo, se formaron las matrices de iluminaci´on m´axima Lmax e iluminaci´on m´ınima Lmin para finalmente, como suced´ıa en los m´etodos anteriores obtener las componentes directa Ldy global Lgmediante el uso de la ecuaci´on 3.10, tal y como muestra la figura 3.14. Figura 3.14: Pasos necesarios para realizar la descomposici´on con el tablet NVIDIA a plena luz del d´ıa. Los resultados correspondientes a este m´etodo se exponen en el cap´ıtulo 4. 29 Cap´ıtulo 4 Resultados El primer aspecto importante a tener en cuenta es el formato digital con el que se almacenan las im´agenes capturadas. A pesar de que el formato m´as popular es el JPG, ´este utiliza un algoritmo de compresi´on para reducir el tama˜no de las im´agenes, lo que conlleva una p´erdida en la calidad de las mismas. Para no perder informaci´on ´util y obtener unos resultados de mayor calidad se almacenaron las im´agenes mediante el formato RAW, que contiene la totalidad de los datos de la imagen tal y como ha sido captada por el sensor digital de la c´amara fotogr´afica sin ning´un tipo de compresi´on. En la figura 4.1 se observa la clara mejor´ıa en los resultados obtenidos empleando el formato RAW en comparaci´on con JPG. En el resultado de la descomposici´on obtenido a partir de im´agenes JPG se observa p´erdida de nitidez y degradaci´on del color. Como consecuencia, algunos de los efectos interesantes quedan camuflados y resultan imperceptibles (p.ej: Apenas se observa que la servilleta colorea la parte superior de las pelotas de tenis como consecuencia de los rayos de luz en ella reflejados. Dicho fen´omenos se observa claramente en la descomposici´on obtenida a partir de im´agenes en formato RAW). El algoritmo de descomposici´on fue probado en un amplio conjunto de escenas, cada una de ellas con diferentes tipos de materiales para comprobar la robustez del algoritmo. En las figuras 4.2 4.3 4.4 y 4.5 se muestran resultados obtenidos con el primero de los m´etodos explicados anteriormente, donde se obten´ıa la descomposici´on a partir de varias capturas de la escena (ver secci´on 3.2.1), en las figuras 4.7 y 4.7 resultados del segundo m´etodo, en el cual tan s´olo se empleaba una ´unica imagen para realizar la descomposici´on (ver secci´on 3.2.2) y finalmente en la figura 4.9 resultados obtenidos para la descomposici´on mediante el tablet NVIDIA Tegra (ver secci´on 3.3). 30 Resultados Figura 4.1: Resultados obtenidos para la descomposici´on de una escena. En la figura se muestra la componente global empleando im´agenes almacenadas con formato JPG (a) y con formato RAW (b). Analizando la figura 4.2 objeto por objeto, se observa c´omo la apariencia del drag´on y de las velas est´a fuertemente dominada por la gran cantidad de luz que se dispersa dentro de estos objetos y viaja por el interior de los mismos (subsurface scattering), tal y como se ve en la imagen de la componente global. Resulta especialmente llamativo c´omo el color de las velas surge como consecuencia del efecto del subsurface scattering, mientras que ´unicamente aspectos relativos a c´omo el objeto interacciona con la fuente de luz (reflejos y destellos de luz) quedan capturados en la componente directa. Se puede afirmar por lo tanto que los rayos de luz que inciden sobre las velas no son reflejados en la parte externa de la superficie, sino que penetran el objeto, viajan por el interior del mismo y emergen al exterior por otro punto distinto al de incidencia. El mismo fen´omeno, aunque en menor medida, es observado en el drag´on y en el patito naranja. Por su parte, los dos objetos transl´ucidos de la derecha (bote peque˜no de perfume y vaso parcialmente lleno de agua) se muestran muy oscuros en la componente directa y muy brillantes en la componente global, s´ıntoma claro de que dichos materiales dejan viajar la luz a trav´es de ellos. No obstante, se observa una diferencia entre ambos; mientras que el bote de perfume es difuso, el vaso es bastante especular por lo que aparecen c´austicas a su alrededor. Por ´ultimo, se puede observar tambi´en en la componente global c´omo las pelotas de tenis quedan sutilmente coloreadas de rojo como consecuencia de la luz reflejada por la servilleta situada tras ellas. Este fen´omeno se conoce como Color Bleeding. Estos fen´omenos quedan descritos y marcados en la figura 4.3. 31 Resultados Figura 4.2: Escena con pelotas de tenis y objetos variados. Resultados obtenidos mediante el primero de los m´etodos (Descomposici´on a partir de varias capturas). Figura 4.3: Efectos de la luz asociados a cada uno de los objetos pertenecientes a la escena analizada. 32 Resultados Las plantas, como la que aparece en la escena de la figura 4.4, est´an compuestas de m´ultiples capas superpuestas una a continuaci´on de la otra formando un tejido tan complejo que cada capa puede poseer un ´ındice de refracci´on diferente. La luz incidente penetra dichas capas y viaja a trav´es de ellas. Este comportamiento es el responsable de que las hojas se muestren tan verdosas en la componente global. Si la planta transporta agua a trav´es de sus filamentos, ´esta act´ua como medio participativo alterando la direcci´on y velocidad de la propagaci´on de la luz. Dicho efecto queda capturado en la componente global haciendo que los filamentos luzcan especialmente brillantes. Figura 4.4: Escena con planta natural. Resultados obtenidos mediante el primero de los m´etodos (Descomposici´on a partir de varias capturas). En la componente global se observa c´omo las hojas de la planta presentan un intenso color verdoso y c´omo sus filamentos destacan por su brillo. 33 Resultados En la escena de la figura 4.5 aparecen varios envases transl´ucidos. Es decir, en mayor o menor medida, todos ellos permiten que los rayos de luz los atraviesen. Esta cualidad es la que hace que dichos objetos se muestren tan oscuros en la componente directa y tan brillantes en la componente global. En especial, el vaso de pl´astico situado en el centro de la escena sufre una fuerte variaci´on entre la componente global y la componente directa mostr´andose pr´acticamente oscuro en ´esta ´ultima. Esto es un claro indicio de que su aspec- to real, capturado por la c´amara u observado por el ojo humano, se debe a la iluminaci´on global, es decir, a los rayos de luz reflejados en los vasos situados pr´oximos al mismo y a los rayos de luz dispersos en el agua que contiene en su interior. En ´optica, una c´austica es la envolvente de los rayos de luz reflejados o refractados por una superficie curva. Si se observa detenidamente la componente global de la figura 4.5 se puede notar la aparici´on de este fen´omeno, especialmente alrededor de los envases fuertemente especulares. Figura 4.5: Escena con envases translucidos. Resultados obtenidos mediante el primero de los m´etodos (Descomposici´on a partir de varias capturas). Los objetos que aparecen en esta escena se muestran oscuros en la componente directa y brillantes en la componente global indicando que dejan pasar la luz trav´es de ellos. Adem´as, alrededor de los objetos que son fuertemente especulares se observa la aparici´on de c´austicas. 34 Resultados A continuaci´on se exponen los resultados obtenidos a partir de una ´unica captura. En ellos, en lugar de analizar escenas con diferentes objetos y materiales, se han capturado im´agenes de rostros humanos. La piel humana es una estructura compleja que se compone b´asicamente de tres capas distintas: epidermis, dermis e hipodermis, como muestra la figura 4.6. Es la dermis es donde las gl´andulas sudor´ıparas y las gl´andulas seb´aceas producen la mayor parte de la grasa visible que presenta la piel. Esta capa intermedia est´a cubierta por la epidermis, cuyo grosor es variable en funci´on de las zonas corporales, siendo m´as gruesa en los pies (de 1 a 5 mm) y m´as fina en la cara (0.02 mm). Esta capa es especialmente delicada en los p´arpados y la piel del contorno de los ojos (0.004 mm). Figura 4.6: Capas que componen el tejido de la piel humana. Imagen obtenida de la Enciclopedia Ilustrada de Salud (Health Illustrated Encyclopedia) de A.D.A.M Las figuras 4.7 y 4.8 muestran los resultados obtenidos para la descomposici´on en componentes directa y global de las caras de dos varones mediante el segundo de los m´etodos (una sola captura). En ellas se puede apreciar c´omo en la componente directa quedan capturadas las zonas grasas de la piel, que son especialmente visibles en la frente y los p´arpados inferiores puesto que, como se ha mencionado anteriormente, la epidermis es m´as fina en esas zonas. Por su parte, en la imagen de la componente global, queda capturada la tonalidad de la piel y el color intr´ınseco de los labios. De este modo, una vez obtenida la descomposici´on podr´ıa oscurecerse (o aclararse) por separado la componente global y posteriormente fusionarse de nuevo con la componente directa para obtener una simulaci´on acerca de c´omo lucir´ıa la persona capturada con una tonalidad de piel distinta. 35 Conclusiones En cuanto al segundo de los escenarios contemplados, un aspecto que se ha quedado pendiente, es el relativo a la sincronizaci´on del tablet NVIDIA con el barrido de la sombra proyectada sobre la escena. La aplicaci´on desarrollada podr´ıa mostrar a trav´es de su interfaz gr´afica alg´un tipo de ayuda para que el usuario conozca en tiempo real si la sombra se esta desplazando adecuadamente. Tambi´en podr´ıa realizar un r´apido pre-procesado de la captura para determinar si los datos son suficientemente buenos para continuar o si por el contrario, convendr´ıa repetir el proceso de captura. 5.4. Conclusiones personales A nivel personal, la experiencia ha sido francamente agradable dado que me ha permitido introducirme en el mundo de la investigaci´on dentro de la inform´atica gr´afica, siendo este mi prop´osito inicial. El hecho de poder abordar un prestigioso trabajo publicado por otros investigadores y ser capaz de entenderlo, reproducirlo e incluso construir sobre ´el es algo muy gratificante. He aprendido mucho gracias a este proyecto y gracias al Graphics and Imaging Lab, no s´olo conocimientos propios del tema sino tambi´en relativos al trabajo de investigaci´on en grupo y a la organizaci´on. 42 Bibliograf´ıa [AL10] JACOBS D. DOLSON J. TICO M. PULLI K. TALVALA E. AJDIN B. VAQUERO D. LENSCH H. HOROWITZ M. PARK S. GELFAND N. BAEK J. MATUSIK W. ADAMS, A. and M. LEVOY. The frankencamera: An experimental platform for computational photography. In Proc. of SIGGRAPH, 2010. [AO05] FORSYTH D. ARIKAN, O. and J. O’BRIEN. Fast and detailed approximate global illumination by irradiance decomposition. ACM Trans. on Graph, pages 1108–1114, 2005. [AX08] D. ALIAGA and YI. XU. Photogeometric structured light: A selfcalibrating and multi-viewpoint framework for accurate 3d modeling. In CVPR, 2008. [BB89] M. BROOKS and HORN B. Shape from shading. 1989. [GN11] KOBAYASHI T. GUPTA M. GU, J. and S NAYAR. Multiplexed illumination for scene recovery in the presence of global illumination. ICCV, 2011. [JD06] GARDNER A. BOLAS M. MCDOWALL I. JONES, A. and P DEVEBEC. Simulating spatially varying lighting on a live performance. In Proc. of SIGGRAPH, 2006. [KAJ86] J. T KAJIYA. The rendering equation. In Proc. of SIGGRAPH, pages 143–150, 1986. [LT07] CRISPELL D. LANMAN, D. and G TAUBIN. Surround structured lighting for full object scanning. In 6th International Conference on 3D Digital Imaging and Modeling, 2007. [MK05] SEITZ S. MATSUSHITA, Y. and K KUTULAKOS. A theory of inverse light transport. In Proc. of ICCV, II, pages 1440–1447, 2005. 43 BIBLIOGRAF´ IA [NK91] IKEUCHI K. NAYAR, S. and T KANADE. Shape from interreflections. IJCV, pages 173–195, 1991. [NR06] KRISHNAN G. GROSSBERG D. M. NAYAR, S. and R RASKAR. Fast separation of direct and global components of a scene using high frequency illumination. ACM SIGGRAPH, 2006. [SF11] N. SILBERMAN and R FERGUS. Indoor scene segmentation using a structured light sensor. In Proc. of ICCV., 2011. [SS02] KAUTZ J. SLOAN, P. and J SNYDER. Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments. In Proc. of SIGGRAPH, pages 527–563, 2002. [SS03] D. SCHARSTEIN and R SZELISKI. High-accuracy stereo depth maps using structured light. In Proc. of CVPR, 2003. [WOO80] R WOODHAM. Photometric method for determining surface orientation from multiple images. ptical Engineering 19, 1 (January), pages 139–144, 1980. 44