1. RECONSTRUCCI´ON 3-D DE UN
MODELO BASADO EN SU VISI´ON
ESTEREOSC´OPICA
Tesista
Guillermo Enrique Medina Zegarra
Orientador
Dr. Edgar Lobaton, USA
Co-Orientador
Dr. Nestor Calvo, Argentina
Arequipa - Per´u
07 de Mayo del 2012
3. 2
Contenido
1 Introducci´on
Motivaci´on y contexto
Planteamiento del problema
Objetivos general
Objetivos espec´ıficos
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
5. 3
Motivaci´on y contexto
Los art´ıstas en la ´epoca del renacimiento y la profundidad.
Los puntos de fuga y la tridimensionalidad.
(b) La Escuela de Atenas
6. 3
Motivaci´on y contexto
Limitaciones en la ´epoca pre-renacentista para crear en 3D.
Los art´ıstas en la ´epoca del renacimiento y la profundidad.
Los puntos de fuga y la tridimensionalidad.
(a) Jes´us entrando
a Jerusal´en
(b) La Escuela de Atenas
Figura: Pintura pre-renacentista y renacentista [Ma et al., 2004].
7. 4
Planteamiento del problema
Arquitectura f´ısica, posici´on, distribuci´on e iluminaci´on.
(a) Una sola c´amara
[Cipolla et al., 2010]
(b) Iluminaci´on artificial
[VISGRAF., 2012]
8. 5
Planteamiento del problema (cont...)
Figura: ¿ C´omo obtener los par´ametros necesarios para realizar un
mapeamiento de un objeto al plano imagen ? [Faugeras, 1993].
10. 7
Planteamiento del problema (cont...)
Figura: ¿ C´omo hallar un punto en 3D de cada par de puntos
correspondientes ? [Szeliski, 2011].
11. 8
Planteamiento del problema (cont...)
Figura: ¿ C´omo reconstruir y suavizar una superficie a partir de una nube
de puntos ? [Hartley and Zisserman, 2004].
12. 9
Objetivos general
Objetivo general
Proponer un modelo para la reconstrucci´on de una imagen 3D de
un objeto, a partir de dos im´agenes capturadas por dos c´amaras
ubicadas adecuadamente.
13. 10
Objetivos espec´ıficos
Objetivos espec´ıficos
Posicionar correctamente las dos c´amaras digitales, en una
arquitectura f´ısica, para la adquisici´on de im´agenes y calibraci´on.
Hacer la rectificaci´on de las im´agenes, para calcular un adecuado
mapa de disparidad a trav´es de la correlaci´on normalizada cruzada.
Crear la superficie del objeto a partir de la triangulaci´on de
Delaunay del mapa de disparidad.
14. 11
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
15. 12
Modelo de c´amara pinhole
Ayuda a entender la formaci´on de una imagen desde un punto de
vista geom´etrico.
Partes del modelo de c´amara pinhole: centro ´optico(o), distancia
focal(f ) y plano imagen(I).
x = ¯op ∩ I x ∈ R2
, p ∈ R3
Figura: Modelo de c´amara pinhole [Ma et al., 2004].
16. 13
Modelo de c´amara pinhole (cont...)
Figura: Ejemplo de proyecci´on de un objeto en un plano imagen.
17. 14
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
18. 15
Geometr´ıa epipolar
Estudia la relaci´on geom´etrica y an´alisis matem´atico de un punto
3D p en sus planos imagen.
Figura: Analisis geom´etrico de dos vistas [Ma et al., 2004].
21. 18
C´alculo de disparidad
(a) (b) Mapa de disparidad
(a - b) Par de im´agenes de Tsukuba [Scharstein and Szeliski, 2002].
22. 19
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
25. 21
Descripci´on del pipeline de la propuesta
Arquitectura f´ısica
Adquisici´on de im´agenes
Caracter´ıstica Sony DSC-S750 Canon SD1200 IS
Tipo de sensor CCD CCD
Tama˜no de la imagen 640 × 480 640 × 480
ISO 100 100
Flash desactivado desactivado
Ajustes t´ecnicos en las dos c´amaras dig´ıtales
26. 21
Descripci´on del pipeline de la propuesta
Arquitectura f´ısica
Adquisici´on de im´agenes
Calibraci´on
Patr´on de calibraci´on (7 × 10)
27. 22
Descripci´on del pipeline de la propuesta
Rectificaci´on
Hace la b´usqueda lineal
La correspondencia de puntos
est´a en la misma l´ınea horizontal
Im´agenes originales Im´agenes rectificadas
28. 23
Descripci´on del pipeline de la propuesta
Pre-procesamiento
Segmentaci´on manual
Filtro Gaussiano
Im´agenes rectificadas Im´agenes pre-procesadas
29. 24
Descripci´on del pipeline de la propuesta
Mapa de disparidad
Correlaci´on Normalizada Cruzada
Filtro de la mediana
Imagen izquierda pre-procesada Imagen derecha pre-procesada Mapa de disparidad
30. 25
Descripci´on del pipeline de la propuesta
Malla 3D
Triangulaci´on de Delaunay
Intersecci´on de rectas
Enmallado tridimensional
Mapa de disparidad Nube de puntos Enmallado tridimensional
31. 26
Descripci´on del pipeline de la propuesta
Modelo reconstruido
Suavizaci´on de la superficie
Texturizaci´on de la imagen derecha
Creaci´on de la superficie Suavizaci´on de la superficie Texturizaci´on del modelo
33. 28
“Cubo m´agico” (cont...)
Mapa de disparidad Nube de puntos Enmallado tridimensional
Creaci´on de la superficie Suavizaci´on de la superficie Texturizado de la superficie
42. 30
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
Oso de peluche
Rostro humano
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
44. 32
Oso de peluche (cont...)
Mapa de disparidad Nube de puntos Enmallado tridimensional
Creaci´on de la superficie Suavizaci´on de la superficie Texturizaci´on del modelo
46. 34
Rostro humano (cont...)
Nube de puntos Modelo sin suavizar Modelo suavizado Modelo “transformado”
Enmallado tridimensional Modelo sin suavizar Modelo suavizado Modelo “transformado”
47. 35
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
48. 36
L´ımitaciones y problemas encontrados
Problemas en el tama˜no del vecindario Imperfecciones en el modelo creado
49. 37
L´ımitaciones y problemas encontrados (cont...)
Imagen original defectuosa Imagen original defectuosa
Mapa de disparidad err´oneo Reconstrucci´on 3D amorfa del “cubo m´agico”
50. 38
Contenido
1 Introducci´on
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Propuesta
5 Pruebas y resultados
6 L´ımitaciones y problemas encontrados
7 Conclusiones y trabajos futuros
51. 39
Conclusiones
Se dise˜n´o un arquitectura f´ısica simple y econ´omica.
Las condiciones de iluminaci´on deben ser las adecuadas.
Se propus´o un pipeline con una secuencia de pasos necesarios para
conseguir una reconstrucci´on 3D de un par est´ereo de im´agenes.
El m´etodo usado para el proceso de c´alculo de disparidad es simple
y no robusto.
Existe una fuerte dependencia entre cada uno de los pasos de la
reconstrucci´on.
52. 40
Trabajos futuros
Crear un ambiente con las adecuadas
condiciones para la calibraci´on, ilumi-
naci´on y adquisici´on de im´agenes.
Arquitectura f´ısica e iluminaci´on artificial [Bradley et al., 2008]
53. 40
Trabajos futuros
Crear un ambiente con las adecuadas
condiciones para la calibraci´on, ilumi-
naci´on y adquisici´on de im´agenes.
Arquitectura f´ısica e iluminaci´on artificial [Bradley et al., 2008]
Hacer una extensi´on a
m´ultiples c´amaras.
M´ultiples vistas [Hartley and Zisserman, 2004]
55. 42
Publicaci´on realizada
Art´ıculo en Simposio
“Reconstrucci´on visual 3-D : una perspectiva del sis-
tema.”
G. Medina-Zegarra y E. Lobaton
2nd International Symposium on Innovation and Techno-
logy (2011)
p´aginas 102-107, Noviembre 28-30, Lima - Per´u
ISBN: 978-612-45917-1-6
Lugar: Universidad Tecnol´ogica del Per´u (UTP)
Editor: International Institute of Innovation and Techno-
logy (IIITEC)
Chair: Mario Chauca Saavedra
56. 43
Agradecimientos
Dr. Alfedro Miranda
Mag. Alfedro Paz
Dr. Carlos Leyton
Dr(c). Christian L´opez del Alamo
Dr. Edgar Lobaton
Dr. Eduardo Tejada
Dr. Jes´us Mena
Dr. Jos´e Corrales-Nieves
Dr(c). Juan Carlos Gutierrez
Lic. Lu´ıs Pareja
Dr. Nestor Calvo
Dra(c). Regina Ticona
Familia Barrios Neyra
57. 44
Referencias
Bradley, D., Popa, T., Sheffer, A., Heidrich, W., and Boubekeur, T. (2008).
Markerless garment capture.
ACM Transactions on Graphics (TOG), 27:99:1–99:9.
Cipolla, R., Battiato, S., and Farinella, G. M. (2010).
Computer Vision: Detection, Recognition and Reconstruction.
Springer.
Faugeras, O. (1993).
Three-dimensional Computer Vision: A Geometric Viewpoint.
The MIT Press. ISBN: 0262061589.
Fusiello, A., Trucco, E., and Verri, A. (2000).
A compact algorithm for rectification of stereo pairs.
Machine Vision and Applications, 12:16–22.
Hartley, R. and Zisserman, A. (2004).
Multiple View Geometry in Computer Vision. Second Edition.
Cambridge University Press. ISBN: 0521540518.
Ma, Y., Soatto, S., Koˇseck´a, J., and Sastry, S. S. (2004).
An Invitation to 3D Vision from Images to Geometric Models.
Springer. ISBN: 0387008934.
Scharstein, D. and Szeliski, R. (2002).
A taxonomy and evaluation of dense two-frame stereo correspondence algorithms.
International Journal of Computer Vision, 47:7–42.
Szeliski, R. (2011).
Computer Vision: Algorithms and Applications.
Springer. ISBN: 9781848829343.
58. RECONSTRUCCI´ON 3-D DE UN
MODELO BASADO EN SU VISI´ON
ESTEREOSC´OPICA
Tesista
Guillermo Enrique Medina Zegarra
Orientador
Dr. Edgar Lobaton, USA
Co-Orientador
Dr. Nestor Calvo, Argentina
Arequipa - Per´u
07 de Mayo del 2012
44
59. 45
Puntos de vista (percepci´on)
(a) ¿ El vaso esta medio
lleno o medio vacio ?
(b) ¿ Es un pato o un conejo ?
60. 46
Contenido extra
Contenido extra
1 Datos de procesamiento
2 Geometr´ıa de una vista
3 Geometr´ıa de dos vistas
4 Rectificaci´on e intersecci´on de rectas
5 Mapa de disparidad
6 Filtro Gaussiano y filtro de la mediana
7 Propiedades de la triangulaci´on de Delaunay
61. 47
Datos de procesamiento
Un procesador Intel (R) Core (TM) 2 CPU 1.66 GHz y una
memoria RAM 2GB.
El costo computacional del algoritmo en el peor caso es O(n3
) y en
el mejor caso es Θ(n2
).
El tiempo del procesamiento del algoritmo es de 25 minutos.
62. 48
Modelamiento geom´etrico (matriz de mapeamiento)
propuesta
slide
π : R4
→ R3
; p → x
fsx fsθ ox
0 fsy oy
0 0 1
K
=
sx sθ ox
0 sy oy
0 0 1
Ks
f 0 0
0 f 0
0 0 1
Kf
(1)
u
v
1
x
= K
1 0 0 0
0 1 0 0
0 0 1 0
Π0
R t
0 1
g
π
X
Y
Z
1
p
(2)
63. 49
Ecuaciones de la Geometr´ıa Epipolar
slide
Restricci´on epipolar
xT
2 Fx1 = 0
64. 49
Ecuaciones de la Geometr´ıa Epipolar
slide
Restricci´on epipolar
xT
2 Fx1 = 0
Matriz Fundamental
F = K−T
2 EK−1
1
65. 49
Ecuaciones de la Geometr´ıa Epipolar
slide
Restricci´on epipolar
xT
2 Fx1 = 0
Matriz Fundamental
F = K−T
2 EK−1
1
Matriz esencial
E = [t]x R
66. 49
Ecuaciones de la Geometr´ıa Epipolar
slide
Restricci´on epipolar
xT
2 Fx1 = 0
Matriz Fundamental
F = K−T
2 EK−1
1
Matriz esencial
E = [t]x R
Matriz antisim´etrica
[t]x =
0 −c b
c 0 −a
−b a 0
(3)
68. 51
Sistema lineal para la matriz F (cont...)
Minimizar:
A F
2
=
8
i=1
(u
T
i Fui )
2
(7)
Sujeto a:
F 2
= 1 (8)
Por lo tanto, se forma la siguiente funci´on de Lagrange:
L(F, λ) = A F 2
− λ( F 2
− 1) (9)
Por consiguiente, se aplica el m´etodo de los multiplicadores de Lagrange:
JL(F, λ){
2AT
AF − λ(2F)
F 2
− 1
, λ ∈ R
+
(10)
Ahora, se procede a resolver la ecuaci´on JL(f , λ) = 0. La cual, es equivalente a hallar los autovalores y
autovectores de la matriz sim´etrica AT
A:
AT
AF = λ.F
F 2
= 1
(11)
Al calcular los autovectores, se habra encontrado la matriz fundamental F.
69. 52
Calculando los autovalores de una matriz (ejemplo)
A =
1 1 0
2 0 1
0 0 3
A − λI =
1 − λ 1 0
2 −λ 1
0 0 3 − λ
(12)
det( A - λ I ) = (1 - λ)(- λ )(3 - λ ) - 2( 3 - λ )
det( A - λ I ) = ( - λ + λ2 )(3 - λ )- 6 + 2 λ
det( A - λ I ) = - λ3 + 4 λ2 - λ - 6
det( A - λ I ) = λ3 - 4 λ2 + λ + 6
Resolviendo el polinomio se encuentran las raices (autovalores), los
cuales son: -1, 2 y 3
70. 53
Calculando los autovectores de una matriz (ejemplo)
A =
1 1 0
2 0 1
0 0 3
A − λI =
1 − λ 1 0
2 −λ 1
0 0 3 − λ
(13)
I) Para λ = -1
(A - λ I)v =0
(A - (-1) I)v =0
(A + I)v =0
2 1 0
2 1 1
0 0 4
(A+I)
a
b
c
=
0
0
0
(14)
71. 54
Calculando los autovectores de una matriz (ejemplo)
Haciendo el m´etodo de Gauss tenemos:
1 1
2 0
0 0 1
0 0 0
(15)
c=0 (a, b, c) = (−b
2 , b, 0)
a + b
2 = 0 ⇒ a = −b
2 (a, b, c) = b(−1
2, 1, 0)
72. 55
Calculando los autovectores de una matriz (ejemplo)
II) Para λ = 2
−1 1 0
2 −2 1
0 0 1
(A−2×I)
1 −1 0
0 0 1
0 0 0
(16)
c=0 (a,b,c) = (b,b,0)
a-b=0 ⇒ a = b (a,b,c) = b(1,1,0)
73. 56
Calculando los autovectores de una matriz (ejemplo)
III) Para λ = 3
−2 1 0
2 −3 1
0 0 0
(A−3×I)
1 −1
2 0
0 1 −1
2
0 0 0
(17)
b − c
2 = 0 a − b
2 = 0 (a,b,c) = (c
4 , c
2 , c)
b = c
2 a = b
2 (a,b,c) = c(1
4, 1
2, 1)
a = c
4
Los autovalores son: {(−1
2, 1, 0), (1, 1, 0), (1
4, 1
2, 1)}
74. 57
Planteamiento inicial de la rectificaci´on
propuesta
slide
La variable π representa a la matriz de mapeamiento
x ∼= π p (18)
Factorizaci´on QR de la matriz π
π = K[R | t] (19)
La matriz π se re-escribe como:
π =
qT
1 |q14
qT
2 |q24
qT
3 |q34
= Q|q (20)
75. 58
Planteamiento inicial de la rectificaci´on (cont...)
Las coordenadas del centro ´optico c est´a definido como:
c = −Q−1
q (21)
Se hace un despeje de la ecuaci´on 21 en funci´on de q.
π = [Q| − Qc] (22)
76. 59
Desarrollo de la rectificaci´on
Matriz de transformaci´on
xr1 = λ Qr1Q−1
o1
Tl
xo1 λ ∈ R+
(23)
Para lo cual:
πo1 = [Qo1|qo1] πo1 MPP imagen izquierda inicial
πr1 = [Qr1 |qr1] πr1 MPP imagen izquierda rectificada
77. 60
Pasos para hallar la matriz de transformaci´on
Se hace una factorizaci´on QR de las matrices iniciales
π1 = K[R | − R c1] π1 MPP de la imagen izquierda
π2 = K[R | − R c2] π2 MPP de la imagen derecha
(24)
Los centros ´opticos se hallan con la ecuaci´on 21
La matriz K es la matriz de par´ametros intr´ınsecos
La matriz de rotaci´on R es la misma para ambas matrices de
mapeamiento
78. 61
Pasos para hallar la matriz de transformaci´on (cont...)
Hallando la matriz de rotaci´on R
R =
rT
1
rT
2
rT
3
(25)
El nuevo eje X es paralelo a la l´ınea base: r1 = ( c1−c2
c1−c2
)
El nuevo eje Y es ortogonal a X, k : r2 = k ∧r1
El nuevo eje Z es ortogonal a XY r3 = r1 ∧ r2
79. 62
Vector unitario k
Demostraci´on de la ortogonalidad del vector Y a trav´es del
vector unitario k.
Plano R3
Z × X =
i j k
0 0 1
1 0 0
Z × X = i(0) - j(-1) + k(0)
Z × X = 0i + 1j + 0k
Z × X
Y
= (0,1,0)
return
80. 63
Intersecci´on de rectas (triangulaci´on)
slide
p = c1 + tQ−1
r1 x1 t ∈ R
p = c2 + sQ−1
r2 x2 s ∈ R
(26)
81. 64
Intersecci´on de rectas (ejemplo)
return
L1 : (X, Y , Z)
p
= (1, 2, 1)
c1
+t (2, 0, 3)
Q−1
r1 x1
L2 : (X, Y , Z)
p
= (5, 4, 1)
c2
+s (−2, −2, 3)
Q−1
r2 x2
L1 : (X, Y , Z) = (1 + 2t, 2, 1 + 3t)
L2 : (X, Y , Z) = (5 − 2s, 4 − 2s, 1 + 3s)
t = 1 , s = 1
(X, Y , Z) = (3, 2, 4)
(27)
82. 65
Representaci´on del punto medio
Calculando el punto medio
c1Q1 + λ = R1 tx1 +
Q2−Q1
2
= R1 tx1 +
(c2+sx2)−(c1+tx1)
2
= R1 tx1 +
(c2−c1)+(sx2−tx1)
2
= R1
c2Q2 − λ = R2 sx2 −
Q1−Q2
2
= R2 sx2 −
(c1+tx1)−(c2+sx2)
2
= R2 sx2 −
(c1−c2)+(tx1−sx2)
2
= R2
L1 = c1 + mR1 M = (
Q1+Q2
2
)
L2 = c2 + nR2 M = (
c1+tx1+c2+sx2
2
)
L1 ∩ L2 = M M = (
c1+c2
2
+
tx1+sx2
2
)
83. 66
Factorizaci´on QR
La factorizaci´on de la matriz de mapeamiento π consta de la
siguientes dos matrices:
π = Q × R
donde:
La matriz Q se obtiene a trav´es del proceso de Gram-Schmidt
La matriz R se consigue a trav´es de la siguiente multiplicaci´on
R = QT × π
return
86. 69
Pseudo-c´odigo del algoritmo de c´alculo de disparidad
dispComp(imDerecha,imIzquierda,maxDisp)
1 thNorm ← escalar ∗ (2 ∗ r + 1)
2 for i = 1 + r to col − r do
3 for j = 1 + r to fil − maxDisp − r do
5 pBase ← imDerecha(i − r : i + r, j − r : j + r)
6 pBase ← pBase − promedio(pBase)
7 nBase ← norma(pBase)
8 if nBase <= thNorm then
9 continue
10 end if
11 pBase ← pBase/nBase
12 for sh = 1 to maxDisp do
13 pShift ← imIzquierda(i − r : i + r, j + sh − r : j + sh + r)
14 pShift ← pShift − promedio(pShift)
15 nShift ← norma(pShift)
16 if nShift <= thNorm then
17 corr[sh] ← 0
18 continue
19 end if
20 corr[sh] ← sum((pShift/nShift). ∗ (pBase))
21 end for
22 [valor indice] ← max(corr)
23 if valor == 0 then
24 imDisp[i, j] ← 0
25 else
26 imDisp[i, j] ← indice
27 end if
28 end for
29 end for
30 return(imDisp)
90. 72
Filtro de la mediana
slide
Valores de ejemplo
6 2 0
3 97 4
19 3 10
En orden ascendente los
n´umeros ser´ıan : 0, 2, 3,
3, 4, 6, 10, 15, 97
91. 72
Filtro de la mediana
slide
Valores de ejemplo
6 2 0
3 97 4
19 3 10
En orden ascendente los
n´umeros ser´ıan : 0, 2, 3,
3, 4, 6, 10, 15, 97
Valor actualizado
* * *
* 4 *
* * *
El valor inicial fue 97 y
luego de utilizar el filtro
de la mediana fue
reemplazado por 4
92. 73
Suavizaci´on del Laplaciano
slide
Calcula la posici´on de un
v´ertice q a partir del
promedio de los v´ertices
adyacentes.
Ejemplo:
3,6
5,4
9,2
14,3
16,10
7,6
———
54, 31
p(9,5) = 54
6 , 31
6
Representaci´on de la suavizaci´on del Laplaciano [Vollmer et al., 1999]
93. 74
Propiedades de la Triangulaci´on de Delaunay
slide
Figura: Ilustraci´on de la primera propiedad de la Triangulaci´on de
Delaunay.
94. 75
Propiedades de la Triangulaci´on de Delaunay (cont...)
Figura: Ilustraci´on de la segunda propiedad de la Triangulaci´on de
Delaunay.
95. 76
Propiedades de la Triangulaci´on de Delaunay (cont...)
(a) Arista ilegal (b) Correcci´on de la
arista ilegal
96. 77
Consideraciones del patr´on de calibraci´on
Detecci´on de las esquinas del patr´on Detecci´on de los puntos internos del patr´on