Table Of ContentUNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS F˝SICAS Y MATEM`TICAS
DEPARTAMENTO DE INGENIER˝A EL(cid:201)CTRICA
GENERACI(cid:211)N DE MAPAS DE PROFUNDIDAD A PARTIR DE
IM`GENES EST(cid:201)REO UTILIZANDO REGISTRO NO R˝GIDO
MEMORIA PARA OPTAR AL T˝TULO DE
INGENIERO CIVIL ELECTRICISTA
DANIEL SEBASTI`N CALDER(cid:211)N SAAVEDRA
SANTIAGO DE CHILE
AGOSTO 2012
UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS F˝SICAS Y MATEM`TICAS
DEPARTAMENTO DE INGENIER˝A EL(cid:201)CTRICA
GENERACI(cid:211)N DE MAPAS DE PROFUNDIDAD A PARTIR DE
IM`GENES EST(cid:201)REO UTILIZANDO REGISTRO NO R˝GIDO
MEMORIA PARA OPTAR AL T˝TULO DE
INGENIERO CIVIL ELECTRICISTA
DANIEL SEBASTI`N CALDER(cid:211)N SAAVEDRA
PROFESOR GU˝A:
TAKESHI ASAHI KODAMA
MIEMBROS DE LA COMISI(cid:211)N:
CLAUDIO P(cid:201)REZ FLORES
JORGE SILVA S`NCHEZ
SANTIAGO DE CHILE
AGOSTO 2012
RESUMEN DE LA MEMORIA
PARA OPTAR AL T˝TULO DE
INGENIERO CIVIL ELECTRICISTA
POR: DANIEL CALDER(cid:211)N SAAVEDRA
FECHA: 21/08/2012
PROF. GU˝A: TAKESHI ASAHI KODAMA
GENERACI(cid:211)N DE MAPAS DE PROFUNDIDAD A PARTIR DE
IM`GENES EST(cid:201)REO UTILIZANDO REGISTRO NO R˝GIDO
El presente trabajo trata sobre la aplicaci(cid:243)n de registro no r(cid:237)gido al caso de imÆgenes
estØreo con el (cid:28)n de generar un mapa de profundidad. En particular, la correspondencia entre
las dos imÆgenes se describe como soluci(cid:243)n de una ecuaci(cid:243)n diferencial cuyos parÆmetros son
determinados a travØs de un problema de optimizaci(cid:243)n.
El proceso completo requiere etapas previas de calibraci(cid:243)n, recti(cid:28)caci(cid:243)n y preparaci(cid:243)n
de las imÆgenes, las que se implementan sobre la librer(cid:237)a OpenCV. Se incluyen ademÆs los
conceptos te(cid:243)ricos que se encuentran detrÆs de cada subproceso.
Una vez que las imÆgenes son recti(cid:28)cadas, se procesan (cid:28)la por (cid:28)la, adquiriØndose un
enfoque unidimensional. El registro no r(cid:237)gido se efectœa mediante el cÆlculo de una transfor-
maci(cid:243)n espacial difeom(cid:243)r(cid:28)ca φ, capaz de deformar de manera no lineal una de las imÆgenes
para que iguale a la otra. En particular, φ es la soluci(cid:243)n de la ecuaci(cid:243)n diferencial ordinaria
no lineal d φ(x,t) = v(φ(x,t)), donde se desconoce el campo vectorial v, el cual se determina
t
utilizando el mØtodo del gradiente para minimizar un funcional con componentes de similitud
y regularizaci(cid:243)n. Se adopta el esquema Forward Euler Method, es decir, primero se calcula v,
y luego φ, utilizando la relaci(cid:243)n φ(x,t+dt) = φ(x,t)+v(φ(x,t))dt.
Tanto las imÆgenes como el campo vectorial son tratados de forma continua utilizan-
do B-splines unidimensionales. La elecci(cid:243)n radica en sus caracter(cid:237)sticas interpoladoras y
de soporte compacto, dado que solo se esperan deformaciones locales. De esta forma, los
parÆmetros a determinar en el problema son los coe(cid:28)cientes a[i] que de(cid:28)nen el campo
v(x) = (cid:80) a[i]βn(x−i).
i
Una vez obtenido el difeomor(cid:28)smo, es directo el cÆlculo del mapa de disparidad, pues se
cumple que d = φ−x. Y posteriormente, al aæadir los parÆmetros de la cÆmara estØreo, es
posible generar el mapa de profundidad con la ecuaci(cid:243)n Z = fT (en el caso de alineaci(cid:243)n
d
binocular).
La estrategia de soluci(cid:243)n demuestra ser œtil en casos con objetos de super(cid:28)cies suaves y
sin necesidad de pronunciados gradientes de intensidad del nivel de gris, destacando sobre
alternativas mÆs tradicionales, que se enfocan bÆsicamente en correspondencias de puntos ca-
racter(cid:237)sticos. El caso de imÆgenes generales, con combinaciones de zonas de gradientes suaves
y pronunciados, no es resuelto completamente, restando abordar problemas de oclusiones,
diferencias en los bordes de las imÆgenes, tiempo de c(cid:243)mputo, y exceso de suavidad en la
funci(cid:243)n de deformaci(cid:243)n. El trabajo constituye un primer acercamiento a un nuevo enfoque
continuo, por lo que se proponen variantes que puedan generar mejores resultados.
A mis padres
Agradecimientos
Quisiera agradecer primero a mis padres, Jessica Saavedra y Daniel Calder(cid:243)n, por haber-
me apoyado incondicionalmente durante todos estos aæos. Su compaæ(cid:237)a y fortaleza me han
permitido terminar esta etapa, y desarrollar de buena forma todos los proyectos que me he
propuesto. Muchas gracias por estar ah(cid:237), siempre.
Agradecimientosatodasmisamistades,cercanasylejanas,portodoslosgratosmomentos
vividos durante estos aæos. Menci(cid:243)n honrosa a Paulina Arellano, Claudio Burgos, SebastiÆn
Fehlandt, SebastiÆn Fuentealba, Karen Salvatierra, Felipe ValdØs y Grace Varela (en orden
alfabØtico para que no se sienta ni mÆs ni menos). No puedo dejar fuera a los cabros del
Instituto Nacional; a las amistades de la secci(cid:243)n 5 2006, en especial a Alejandro Abarzœa,
Jaime Arias, V(cid:237)ctor Bucarey y Alejandro Quezada; Al equipo Eolian 2, por toda esa energ(cid:237)a
sinØrgicamente puesta en un mismo objetivo; y (cid:28)nalmente, a todo el escuadr(cid:243)n elØctrico con
quienes nos juntamos una y otra vez.
Muchas gracias a las profesoras Mar(cid:237)a Cecilia Rivara y Nancy Hitschfeld por darme la
oportunidad de ser profesor auxiliar en computaci(cid:243)n grÆ(cid:28)ca durante 5 semestres.
PorsupuestoagradeceraTakeshiAsahi,quienmÆsqueunprofesorgu(cid:237)a,fueuncompaæero
de trabajo. A Alfredo L(cid:243)pez, por ayudarme a entender varios conceptos relacionados con esta
memoria.Juntoconellos,agradezcotambiØnaFernandoPadillayaJaimeOrtegaporgenerar
un ambiente de trabajo muy grato en el laboratorio de imÆgenes del CMM.
Gracias a los profesores Claudio PØrez y Jorge Silva por aceptar ser parte de mi comisi(cid:243)n.
Esta memoria fue (cid:28)nanciada por el proyecto FONDEF D04I1237.
May the Force be with you
˝ndice general
1. Introducci(cid:243)n 1
1.1. Descripci(cid:243)n del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Marco Te(cid:243)rico 5
2.1. CÆmara simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Modelo de cÆmara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1.1. ParÆmetros intr(cid:237)nsecos . . . . . . . . . . . . . . . . . . . . . 5
2.1.1.2. ParÆmetros extr(cid:237)nsecos . . . . . . . . . . . . . . . . . . . . . 9
2.1.2. Calibraci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. CÆmara estØreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1. Triangulaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2. Geometr(cid:237)a epipolar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2.1. Conceptos bÆsicos . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2.2. Matrices Esencial y Fundamental . . . . . . . . . . . . . . . 16
2.2.2.3. CÆlculo de la matriz Esencial . . . . . . . . . . . . . . . . . 17
2.2.2.4. CÆlculo la matriz Fundamental . . . . . . . . . . . . . . . . 18
2.2.2.5. Alineaci(cid:243)n binocular . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3. Calibraci(cid:243)n estØreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.4. Recti(cid:28)caci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.5. Correspondencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
vii
2.2.6. Mapas de profundidad . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Deformaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1. Introducci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.2. Generando difeomor(cid:28)smos . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.3. Un problema de optimizaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . 29
2.4. B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1. Introducci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.3. Evaluando una B-spline . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.4. Interpolaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.5. Filtrado inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.6. Condiciones de borde . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3. Implementaci(cid:243)n 40
3.1. Descripci(cid:243)n general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2. Plataformas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4. Implementaci(cid:243)n te(cid:243)rica de registro no r(cid:237)gido . . . . . . . . . . . . . . . . . . 43
3.4.1. Mecanismo de soluci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.2. Formulaci(cid:243)n de funcionales . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4.2.1. Funcionales de similitud . . . . . . . . . . . . . . . . . . . . 45
3.4.2.2. Funcionales de regularizaci(cid:243)n . . . . . . . . . . . . . . . . . 46
3.4.3. CÆlculo de los funcionales de similitud . . . . . . . . . . . . . . . . . 47
3.4.3.1. CÆlculo del difeomor(cid:28)smo y su derivada. . . . . . . . . . . . 48
3.4.4. CÆlculo de los funcionales de regularizaci(cid:243)n . . . . . . . . . . . . . . . 49
3.4.4.1. Regularizaci(cid:243)n con energ(cid:237)a del campo v . . . . . . . . . . . 49
3.4.4.2. Regularizaci(cid:243)n con energ(cid:237)a del laplaciano del campo v . . . 50
3.4.5. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5. Descripci(cid:243)n de m(cid:243)dulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5.1. Calibraci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
viii
3.5.2. Calibraci(cid:243)n estØreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5.3. Recorte y alineaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.4. Filtrado de las imÆgenes . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.5. Registro no r(cid:237)gido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.6. Generaci(cid:243)n de mapa de profundidad . . . . . . . . . . . . . . . . . . 57
4. Resultados Experimentales 59
4.1. Calibraci(cid:243)n de una cÆmara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1.1. ImÆgenes desde cÆmara 3D . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1.2. Ejemplos de OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2. Calibraci(cid:243)n estØreo y recti(cid:28)caci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.1. Ejemplos de OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.2. ImÆgenes de la cÆmara 3D . . . . . . . . . . . . . . . . . . . . . . . . 66
4.3. Registro no r(cid:237)gido de una l(cid:237)nea . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3.1. Interpretaci(cid:243)n de grÆ(cid:28)cas . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3.2. Distintos funcionales de similitud . . . . . . . . . . . . . . . . . . . . 70
4.3.3. Distintos funcionales de regularizaci(cid:243)n . . . . . . . . . . . . . . . . . 71
4.3.4. Nodos del campo de velocidades . . . . . . . . . . . . . . . . . . . . . 72
4.3.5. Discretizaci(cid:243)n temporal . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.6. Discretizaci(cid:243)n espacial . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3.7. Filtrado inicial de las imÆgenes . . . . . . . . . . . . . . . . . . . . . 75
4.3.8. Oclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4. Registro no r(cid:237)gido de una imagen . . . . . . . . . . . . . . . . . . . . . . . . 77
4.5. Generaci(cid:243)n de mapa de profundidad . . . . . . . . . . . . . . . . . . . . . . 80
5. Conclusiones 82
5.1. Geometr(cid:237)a de cÆmaras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2. B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3. Registro no r(cid:237)gido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
ix
Bibliograf(cid:237)a 87
Anexo A: Terminolog(cid:237)a 88
Anexo B: ParÆmetros de cada prueba 90
x
Description:no lineal dtφ(x, t) = v (φ(x, t)), donde se desconoce el campo vectorial v, el cual se determina utilizando el Tanto las imágenes como el campo vectorial son tratados de forma continua utilizan- 1En efecto, la librería OpenCV 2.3.0 implementa funciones de calibración para un tablero de ajedr