solucionador de autoestereogramasson más conocidos como “ojo mágico” (magic eye). en la figura...

16
Solucionador de Autoestereogramas Higa, UTN FRBA Página 1 de 16 SOLUCIONADOR DE AUTOESTEREOGRAMAS Déborah Valeria Higa Procesamiento Digital de Imágenes, UTN FRBA 1 INTRODUCCIÓN 1.1 ESTEREOPSIS La estereopsis es el fenómeno en el cual el cerebro traduce las dos imágenes recibidas por los ojos en una escena tridimensional. Si se observan las dos imágenes de la Figura 1, con un enfoque distinto al normal, el cerebro podrá recrear la escena tridimensional [Stereoscopy]. Figura 1. Imágenes obtenidas de cada ojo. 1.2 ESTEREOGRAMAS Los estereogramas son imágenes 2D a partir de las cuales el observador tiene la percepción visual de ver imágenes 3D. Cuando se observa una imagen común y corriente, los ojos se enfocan directamente en ella (Normal View) para poder visualizarla de manera correcta. Pero para poder lograr el efecto del estereograma, el enfoque debe ser antes (convergiendo los ojos) o después (divergiendo los ojos) del mismo. A estas técnicas se las llaman CrossEye View y Parallel View, respectivamente. CrossEye View Normal View Parallel View Figura 2. Técnicas de visualización. La técnica a utilizar depende de cómo el estereograma se creó para ser visto. Si se utiliza la técnica opuesta, la única diferencia es que se observará la profundidad invertida (lo que sobresalía, se ve metido hacia adentro y viceversa). Por ejemplo, la imagen de la Figura 3 se creó para ser vista mediante CrossEye View.

Upload: others

Post on 04-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 1 de 16

SOLUCIONADOR DE AUTOESTEREOGRAMAS

Déborah Valeria Higa Procesamiento Digital de Imágenes, UTN FRBA

1 INTRODUCCIÓN

1.1 ESTEREOPSIS

La estereopsis es el fenómeno en el

cual el cerebro traduce las dos imágenes

recibidas por los ojos en una escena

tridimensional. Si se observan las dos

imágenes de la Figura 1, con un enfoque

distinto al normal, el cerebro podrá recrear

la escena tridimensional [Stereoscopy].

Figura 1. Imágenes obtenidas de cada ojo.

1.2 ESTEREOGRAMAS

Los estereogramas son imágenes 2D a

partir de las cuales el observador tiene la

percepción visual de ver imágenes 3D.

Cuando se observa una imagen común

y corriente, los ojos se enfocan

directamente en ella (Normal View) para

poder visualizarla de manera correcta. Pero

para poder lograr el efecto del

estereograma, el enfoque debe ser antes

(convergiendo los ojos) o después

(divergiendo los ojos) del mismo. A estas

técnicas se las llaman CrossEye View y

Parallel View, respectivamente.

CrossEye View Normal View Parallel View

Figura 2. Técnicas de visualización.

La técnica a utilizar depende de cómo

el estereograma se creó para ser visto. Si se

utiliza la técnica opuesta, la única diferencia

es que se observará la profundidad

invertida (lo que sobresalía, se ve metido

hacia adentro y viceversa). Por ejemplo, la

imagen de la Figura 3 se creó para ser vista

mediante CrossEye View.

Page 2: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 2 de 16

Figura 3. Estereograma.

Los dos puntos que se encuentran

arriba de la imagen, sirven como ayuda para

encontrar el punto correcto de

convergencia, que ocurre cuando ambos

puntos se convierten nítidamente en uno.

Al lograrlo, se llega a ver una tercera imagen

en el medio de las dos originales,

tridimensional y creada por nuestra mente.

Figura 4. Convergencia de los puntos de ayuda.

1.3 RELACIÓN DISPARIDAD –

PROFUNDIDAD

En una imagen estereoscópica, un

punto P1 de la imagen izquierda se

corresponde exactamente con un punto P2

de la imagen derecha. Si se suponen

imágenes sin distorsionar y alineadas

horizontalmente, P1 y P2 se encontrarían en

la misma fila en sus respectivas imágenes

[UW CSE Vision Facultry].

Se considera también que los dos

objetos C1 y C2 que capturan las imágenes

tienen planos exactamente coplanares

entre ellos, ejes ópticos paralelos, iguales

longitudes focales f y una separación de una

distancia b (baseline).

Figura 5. Triangulación.

La disparidad d es la diferencia entre

las posiciones absolutas de P1 y P2 dentro

de sus respectivas imágenes. Este valor se

traduce luego en un nivel de profundidad z

del punto P, por triangulación:

𝑧 =𝑓. 𝑏

𝑃1 − 𝑃2=

𝑓. 𝑏

𝑑

Ecuación 1. Relación disparidad - distancia.

Como se puede observar en la Figura 5,

mientras mayor sea la disparidad, mayor

profundidad.

Page 3: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 3 de 16

En la Figura 6 se observan 6 tigres 2D

(1 - 6) separados por una determinada

cantidad de pixeles [Autostereogram]. Cada

par generará un tigre 3D, con lo cual en total

serán 5 tigres 3D (A - E).

Tigre 1 – Tigre 2: 140 pixeles → Tigre A.

Tigre 2 – Tigre 3: 140 pixeles → Tigre B.

Tigre 3 – Tigre 4: 130 pixeles → Tigre C.

Tigre 4 – Tigre 5: 120 pixeles → Tigre D.

Tigre 5 – Tigre 6: 120 pixeles → Tigre E.

Figura 6. Estereograma marcado con las distancias entre imágenes.

Si el autoestereograma se observa con

la técnica de Parallel View, como la

separación es mayor en los dos primeros

casos, los tigres A y B serán los que se verán

más al fondo; mientras que los tigres D y E

serán los que más sobresalgan. Si se observa

con la técnica de CrossEyed View, el efecto

será el opuesto.

1.4 AUTOESTEREOGRAMAS

Los autoestereogramas son un tipo

particular de estereogramas donde la

imagen tridimensional se encuentra oculta

por otra imagen [How Stereograms Work].

Son más conocidos como “ojo mágico”

(Magic Eye). En la Figura 7 se muestra un

ejemplo.

Figura 7. Autoestereograma.

1.5 CONSTRUCCIÓN DEL

AUTOESTEREOGRAMA

Los autoestereogramas son creados a

partir de dos componentes:

El mapa de profundidades de la imagen

a ser vista tridimensionalmente.

El patrón vertical repetitivo que oculta al

mapa de profundidades.

1.6 MAPA DE PROFUNDIDADES

El mapa de profundidades es una

imagen en escala de grises, que representa

los distintos niveles de profundidad de la

imagen tridimensional. El blanco representa

a lo que se encuentra más adelante y el

negro a lo que se encuentra más atrás.

Figura 8. Mapa de profundidades.

1.7 PATRÓN VERTICAL

A lo largo del autoestereograma se

repite un patrón vertical donde cada panel

se encuentra modificado sutilmente en

base a la información del mapa de

Page 4: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 4 de 16

profundidades (ver 1.3). El cerebro detecta

esas diferencias y crea la ilusión de una

imagen tridimensional [Stereogram Guide].

Figura 9. Mapa de profundidades + patrón vertical = autoestereograma.

1.8 DISPARIDAD

En un autoestereograma, las imágenes

izquierda y derecha se encuentran

superpuestas, como se puede observar en

la Figura 10. Observando la Figura 11, que

está basada en la Figura 5, se encuentra que

la imagen que se encuentra más a la

izquierda dentro del autoestereograma, en

realidad es la imagen derecha de una

imagen estereoscópica común y viceversa

para el caso de su otra contraparte. La

disparidad resulta ser entonces la diferencia

entre las posiciones absolutas de P1 y P2

dentro del autoestereograma.

Autoestereograma

Imagen derecha

Imagen izquierda

Figura 10. Imágenes izquierda y derecha del objeto 3D a visualizar dentro del autoestereograma.

Figura 11. Superposición de las imágenes izquierda y derecha.

Page 5: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 5 de 16

El objetivo de este proyecto es realizar

un programa que decodifique los

autoestereogramas y obtenga el mapa de

profundidades tal como lo logra nuestro

cerebro. Para ello, se utilizaron la librería de

OpenCV 3.2 para el procesamiento de

imagen y la librería de QT para la realización

de la aplicación, ambas para C++.

2 MÉTODO 1:

STEREOMATCHER DE

OPENCV

OpenCV ya tiene implementadas

funciones para encontrar el mapa de

disparidades a partir de imágenes

estereoscópicas (solamente en la versión

contrib). La clase base se llama

StereoMatcher y de ella derivan: StereoBM,

StereoSGBM y StereoBeliefPropagation

[StereoMatcher].

2.1 STEREOBM

StereoBM encuentra las

correspondencias entre dos imágenes a

través del algoritmo “Block Matching” de K.

Konolige [Kaehler & Bradski]. Este algoritmo

busca la correspondencia entre un bloque

de la imagen izquierda con un bloque de la

imagen derecha, comparando el bloque

izquierdo con cada bloque derecho que se

encuentre sobre la misma fila.

Para cada par bloque izquierdo-

derecho, calcula la suma de diferencia

absoluta (SAD, Sum of Absolute Diference)

que consiste en calcular la diferencia

absoluta entre cada pixel del bloque

izquierdo con el pixel correspondiente del

bloque derecho y luego sumar todos los

módulos de las diferencias.

𝐵𝑙𝑜𝑞𝑢𝑒 𝑑𝑒 𝑡𝑎𝑚𝑎ñ𝑜 𝑁𝑥𝑁:

𝐵𝑁(𝑥, 𝑦) = {𝑢, 𝑣|𝑥 −

𝑁

2≤ 𝑢 ≤ 𝑥 +

𝑁

2,

𝑦 −𝑁

2≤ 𝑣 ≤ 𝑦 +

𝑁

2

}

𝑆𝐴𝐷 𝑒𝑛 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑙𝑎 𝑑𝑖𝑠𝑝𝑎𝑟𝑖𝑑𝑎𝑑 𝑑:

𝑆𝐴𝐷(𝑥, 𝑦, 𝑑) =

∑ |𝑌𝐿(𝑢, 𝑣) − 𝑌𝑅(𝑢 + 𝑑, 𝑣)|

(𝑢,𝑣)∈𝐵𝑁(𝑥,𝑦)

Ecuación 2. SAD (Sum of Absolute Differences).

El de mínimo SAD encontrado, será el

par de bloques correcto y la distancia entre

ellos, la disparidad.

Imagen izquierda

Imagen derecha

Mapa de disparidades

Figura 12. StereoBM de OpenCV.

Para poder utilizar esta función,

primero se deben extraer del

autoestereograma las imágenes izquierda y

derecha de la imagen a ver en 3D.

Page 6: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 6 de 16

2.2 OBTENCIÓN DE LAS IMÁGENES

IZQUIERDA Y DERECHA

Para obtener las imágenes izquierda y

derecha, se aplica el método mencionado

anteriormente, pero tomando como bloque

a la imagen entera.

Autoestereograma

Corrimiento del 10%

Corrimiento al punto donde se encontró el SAD mínimo.

Corrimiento del 90%

Figura 13. Barrido del autoestereograma.

Se convierte el autoestereograma a

escala de grises debido a que es el

equivalente al canal luminosidad en YCbCr y

es el que más información importante lleva

de la imagen. Luego, se lo duplica y se

realizan corrimientos hacia la derecha de

una de las imágenes, calculando en cada

paso la SAD. Realizar lo anterior, equivale a

trasladar el P2 de la Figura 14 hasta el final

de la línea. Cuando se encuentra P1, la

cantidad de puntos que tuvo que

trasladarse equivale a la disparidad.

Figura 14.Block Matching a nivel de puntos..

Como se puede observar en la Figura

15, el corrimiento al punto donde se

encontró la SAD mínima es igual al ancho

del patrón vertical.

Figura 15. Ancho del patrón vertical.

Page 7: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 7 de 16

En este punto, los patrones de la

imagen original están superpuestos con sus

patrones contiguos a la izquierda. Al hacer

la diferencia entre ellos, se obtiene una

zona oscura en los puntos donde coinciden

exactamente. Es decir, no hubo

modificaciones, la distancia entre ellos es la

disparidad máxima (el ancho del patrón) y

se corresponden al fondo del mapa de

profundidades. En las zonas donde no

ocurre esto, los pixeles de uno de los

patrones han sufrido corrimientos, lo que

produce una disparidad horizontal entre

ellos y que, en conjunto, son los que luego

formarán la imagen tridimensional.

Para obtener la máscara, a la imagen

obtenida se le realizan:

Threshold: para eliminar las espurias que

hayan quedado en el fondo y binarizar la

imagen.

Close: operaciones de primero dilatación

y luego erosión con distintos tamaños de

kernels para obtener una máscara con

relleno.

Luego del threshold.

Luego de las operaciones close.

Figura 16. Obtención de la máscara.

Una vez obtenida la máscara, se la

aplica sobre el autoestereograma para

obtener la imagen izquierda. Para obtener

la imagen derecha, se traslada el

autoestereograma hacia la derecha una

cantidad igual al ancho del patrón y luego se

aplica la máscara. El resultado es el que se

observa en la Figura 17.

Autoestereograma

Imagen izquierda

Imagen derecha

Figura 17. Imágenes izquierda y derecha del autoestereograma.

Page 8: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 8 de 16

2.3 MAPA DE DISPARIDADES

Finalmente, el resultado obtenido del

StereoBM se observa en Figura 18. Las áreas

más claras corresponden a valores altos de

disparidades (como el fondo) y áreas más

oscuras a valores bajos de disparidades.

Figura 18. Mapa de disparidades obtenido de StereoBM sobre un autoestereograma.

El área negra dentro de la imagen del

mapa de disparidades coincide con la

intersección entre las imágenes izquierda y

derecha dentro del autoestereograma,

como se puede observar en la Figura 19.

Como en esta zona los puntos de las

imágenes izquierda y derecha coinciden en

la misma posición, la disparidad es cero.

Figura 19. Intersección entre las imágenes izquierda y derecha dentro del autoestereograma.

Debido a esto, con StereoBM no es

posible obtener un mapa de disparidades

correcto. Esta función de OpenCV está

preparada para procesar imágenes

obtenidas de dos cámaras, no para

autoestereogramas. Además, cuando se

falla en obtener las imágenes izquierda y

derecha, StereoBM no logra encontrar el

mapa de disparidades correcto, como se

puede observar en la Figura 20.

Figura 20. Mapa de disparidades incorrecto obtenido de StereoBM debido a que no se encontraron las imágenes izquierda y derecha correctas.

Page 9: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 9 de 16

2.4 STEREOSGBM Y

STEREOBELIEFPROPAGATION

Como se mencionó al principio de la

sección, OpenCV tiene implementados,

además de StereoBM, otros métodos

llamados StereoSGBM y

StereoBeliefPropagation.

StereoSGBM utiliza una versión

modificada del algoritmo “Semi Global

Block Matching” de Hirschmuller que

consiste en minimizar una función global de

energía descripta en [Hirschmuller]. Los

resultados con este algoritmo son similares

a los de StereoBM.

StereoBeliefPropagation utiliza el

algoritmo “Belief Propagation” de

Felzenszwalb y Huttenlocher [Felzenszwalb

& Huttenlocher]. Como requiere de CUDA,

no fue probado.

3 MÉTODO 2:

IMPLEMENTACIÓN PROPIA

La implementación consiste en las

siguientes etapas:

1. Estimación de la disparidad máxima.

Permite limitar las búsquedas de las

correspondencias.

2. Block Matching para las

correspondencias del fondo. Se realiza

con un tamaño de bloque mediano para

eliminar la mayor cantidad de ruido

posible.

3. Block Matching para las

correspondencias de la imagen. Se

realiza con un tamaño de bloque

pequeño para poder profundizar

detalles.

4. Filtrado. Permite refinar el mapa de

disparidades.

5. Conversión de mapa de disparidad a

mapa de profundidad.

3.1 ESTIMACIÓN DE LA DISPARIDAD

MÁXIMA

La estimación de la disparidad máxima

dMAX se realiza de la misma manera que la

descripta en la sección 2.2.

3.2 BLOCK MATCHING PARA LAS

CORRESPONDENCIAS DEL FONDO

El Block Matching se realiza de una

manera similar a la que trabaja StereoBM,

descripta en la sección 2.1.

Una de las diferencias es que toma un

bloque de NxN de la imagen derecha y barre

la fila de la imagen izquierda desde su

propia posición más un 0,2.dMAX hasta dMAX.

De esta manera, el extremo inferior se evita

el error de correspondencia por

intersección de las imágenes visto en la

sección 2.3 y el extremo superior limita para

no tener que barrer la imagen hasta el final

para cada bloque.

En la Figura 21 se muestran los

resultados para distintos tamaños de

bloques. Se puede observar que cuanto

mayor sea el tamaño del bloque, más ruido

de fondo se filtra. Sin embargo, se pierden

detalles de la imagen y queda con menor

resolución. Es por ello que para estas zonas

luego se trabaja con un tamaño de bloque

menor [Kitani].

3.3 BLOCK MATCHING PARA LAS

CORRESPONDENCIAS DE LA IMAGEN

Cada vez que con el Block Matching

con el bloque de NxN se encuentre una

disparidad distinta de 0 (es decir, que no se

corresponde con el fondo), se cambia a un

bloque menor de nxn y se vuelve a realizar

todo el barrido. En la Figura 22 se muestran

los resultados para distintos tamaños de

bloques.

Page 10: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 10 de 16

N = 4

N = 8

N = 12

N = 16

Figura 21. Block Matching para las correspondencias del fondo con distintos bloques de NxN.

n = 2

n = 4

n = 6

n = 8

Figura 22. Block Matching para las correspondencias de la imagen con distintos bloques de nxn

Page 11: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 11 de 16

Se puede observar que tamaños muy

pequeños de n no resultan favorables ya

que los bloques al contener menos

información, no encuentran correctamente

las correspondencias.

3.4 MAPA DE PROFUNDIDADES

La Ecuación 1 está definida para

imágenes de estereográficas obtenidas a

partir de dos cámaras, con lo cual no existen

en este caso la separación entre las cámaras

b y la distancia focal en cada punto f. Sin

embargo, podemos considerar que b=dMAX

ya que se corresponde con el fondo y para

que z=0 cuando d=dMAX, se utiliza la

Ecuación 3.

𝑧 =255. 𝑑𝑀𝐴𝑋

𝑑− 255

Ecuación 3. Relación disparidad – distancia utilizada.

Finalmente, el resultado es el de la

Figura 23.

3.5 FILTRADO

OpenCV además de tener

implementadas funciones para encontrar el

mapa de disparidades, también las tiene

para su filtrado: DisparityWLSFilter.

Figura 23. Mapa de profundidades (N=13 y n=5).

DisparityWLSFilter está basado en el

filtro “Weighted Least Squares” [Min, y

otros]. Permite refinar los resultados en

zonas de oclusiones parciales y áreas

uniformes [DisparityWLSFilter].

Este filtro requiere de la configuración

de algunos parámetros como:

Depth Discontinuity Radius: define el

tamaño de las regiones de baja confianza

alrededor de las discontinuidades de

profundidad.

Lambda: define la regularización del

filtrado. Valores grandes fuerzan a los

bordes del mapa de disparidades a

considerar bordes de la imagen fuente.

El valor típico es 8000.

Sigma: define cuán sensible es el filtrado

a los bordes de la imagen fuente. Valores

grandes pueden hacer que se pierdan

valores de disparidades y valores

pequeños pueden hacer al filtro

demasiado sensible al ruido de la imagen

fuente. Los valores típicos son entre 0.8

y 2.0.

La combinación de los tamaños de los

bloques descriptos en Block Matching y los

parámetros de filtrado, no son genéricos ya

que dependen de varios factores como la

resolución de la imagen, el diseño del

patrón, etc.

Figura 24. Mapa de profundidades filtrado.

Page 12: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 12 de 16

4 RESULTADOS

A continuación se muestran distintos resultados obtenidos, incluyendo el de la Figura 20

con el que la función de OpenCV falló y al ejemplo de la Figura 7.

Page 13: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 13 de 16

Figura 25. Resultados.

Page 14: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 14 de 16

5 APLICACIÓN

La aplicación (Figura 26) permite

seleccionar el autoestereograma, iniciar el

proceso y mostrar como resultados las

imágenes izquierda y derecha y el mapa de

profundidades.

El procesamiento de imagen se realiza

en un thread aparte del de la interfaz gráfica

(UI, User Interface) para que la aplicación no

se bloquee durante el proceso, permitiendo

además finalizarlo en cualquier momento

sin necesidad de cerrar el programa. El

thread de procesamiento se comunica

continuamente con los widgets de la UI a

través de signals y slots para actualizar las

imágenes durante el proceso.

Figura 26. Aplicación del solucionador de autoestereogramas.

6 CONCLUSIONES

Se obtuvieron resultados mejores a los esperados, como se observa en la Figura 27.

Figura 27. Comparación de resultados. SteroMatcher [izq.] vs. Implementación propia [der.]

Page 15: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 15 de 16

Aunque se pueden observar detalles

que incluso para el ojo humano serían

difíciles de ver, queda por mejorar los

contornos (sobre todo en zonas circulares)

y las zonas de oclusiones.

Además de calcular la SAD para las

correspondencias, se probó calculando la

SSD (Sum of Squared Difference). La SSD

consiste en calcular la diferencia absoluta

entre cada pixel del bloque izquierdo con el

pixel correspondiente del bloque derecho y

luego sumar todas las diferencias elevadas

al cuadrado [Scharstein & Szeliski] [Okutomi

& Kanade] [Hermann & Klette].

𝐵𝑙𝑜𝑞𝑢𝑒 𝑑𝑒 𝑡𝑎𝑚𝑎ñ𝑜 𝑁𝑥𝑁:

𝐵𝑁(𝑥, 𝑦) = {𝑢, 𝑣|𝑥 −

𝑁

2≤ 𝑢 ≤ 𝑥 +

𝑁

2,

𝑦 −𝑁

2≤ 𝑣 ≤ 𝑦 +

𝑁

2

}

𝑆𝑆𝐷 𝑒𝑛 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑙𝑎 𝑑𝑖𝑠𝑝𝑎𝑟𝑖𝑑𝑎𝑑 𝑑:

𝑆𝑆𝐷(𝑥, 𝑦, 𝑑) =

∑ [𝑌𝐿(𝑢, 𝑣) − 𝑌𝑅(𝑢 + 𝑑, 𝑣)]2

(𝑢,𝑣)∈𝐵𝑁(𝑥,𝑦)

Ecuación 4. SSD (Sum of Squared Differences).

Sin embargo, no se encontraron

resultados con diferencias considerables.

Esto puede deberse a que no se trabajó en

este caso con dos imágenes capturadas por

cámaras distintas donde la iluminación, el

enfoque y otros factores pueden dificultar

la correspondencia entre bloques, sino que

se trata de buscar correspondencias entre

imágenes casi idénticas.

7 REFERENCIAS

Autostereogram. (s.f.). Obtenido de

Wikipedia:

en.wikipedia.org/wiki/Autostereog

ram

DisparityWLSFilter. (s.f.). Obtenido de

OpenCV Docs:

https://docs.opencv.org/3.1.0/d9/

d51/classcv_1_1ximgproc_1_1Disp

arityWLSFilter.html

Felzenszwalb, P., & Huttenlocher, D.

(2006). Efficient belief propagation

for early vision. International

journal of computer vision.

Hermann, S., & Klette, R. (s.f.). The Naked

Truth about Cost Functions for

Stereo Matching. New Zeland:

University of Auckland.

Hirschmuller, H. (2008). Stereo processing

by semiglobal matching and

mutual information. Pattern

Analysis and Machine Intelligence.

IEEE Transactions.

How Stereograms Work. (s.f.). Obtenido de

Eyetricks 3D Stereograms:

http://www.eyetricks-3d-

stereograms.com/how_stereogram

s_work.html

Kaehler, G., & Bradski, A. (2008). Chapter

12: Projection and 3D Vision. En G.

Bradski, & A. Kaehler, Learning

OpenCV (págs. 439-445). United

States of America: O’Reilly Media,

Inc.

Kitani, K. (s.f.). Stereo Matching. Carnegie

Mellon University.

Min, D., Choi, S., Lu, J., Ham, B., Sohn, K., &

Do, M. (s.f.). Fast Global Image

Smoothing Based on Weighted

Least Squares. IEEE Transaction on

Image Processing.

Okutomi, M., & Kanade, T. (1993). A

Multiple-Baseline Stereo. IEEE

Transactions on Pattern Analysis

and Machine Intelligence.

Scharstein, D., & Szeliski, R. (1996). Stereo

Matching with Non-Linear

Diffusion. San Francisco: IEEE

Page 16: SOLUCIONADOR DE AUTOESTEREOGRAMASSon más conocidos como “ojo mágico” (Magic Eye). En la Figura 7 se muestra un ejemplo. Figura 7. Autoestereograma. 1.5 CONSTRUCCIÓN DEL AUTOESTEREOGRAMA

Solucionador de Autoestereogramas Higa, UTN FRBA

Página 16 de 16

Computer Society Conference on

Computer Vision and Pattern

Recognition.

Stereogram Guide. (s.f.). Obtenido de

Custom Stereograms:

www.custom-

stereograms.com/stereogram_guid

e.html

StereoMatcher. (s.f.). Obtenido de OpenCV

Docs:

docs.opencv.org/3.1.0/d2/d6e/clas

scv_1_1StereoMatcher.html

Stereoscopy. (s.f.). Obtenido de

CodeProject:

www.codeproject.com/Articles/31

420/Stereoscopy

UW CSE Vision Facultry. (s.f.). Lecture 16:

Stereo and 3D Vision.