Está en la página 1de 4

Ingeniera Superior de Informtica

Universidad Rey 1uan Carlos


Asignatura: Jisin Artificial
Curso 2007/08
Prctica 7 : Calibracin de dos cmaras de un par estreo


Objetivo

El objetivo de la practica es que el alumno aprenda una metodologia de calibracion
de camaras para un sistema de vision estereo. Se considerara que el modelo de las camaras
es la transIormacion perspectiva directa. Esta se representa por una matriz de dimension
3x4 que aplicada a puntos del espacio tridimensional proporciona sus proyecciones en la
imagen. Para el calculo de los modelos de las camaras MATLAB proporciona las
Iunciones necesarias (p.e. el calculo de la pseudoinversa de una matriz). El alumno
calibrara dos camaras a partir de sendas imagenes de una plantilla adquiridas por ellas y
puntos 3D conocidos de las mismas.

Finalmente los modelos de las camaras calculados se utilizaran para la obtencion de
puntos 3D seleccionados en otras imagenes tomadas por dichas camaras mediante vision
estereo binocular. Para ello contamos con un programa que a partir de correspondencias de
puntos 2D seleccionados manualmente en dos imagenes y de los modelos de las camaras,
calcula los puntos en el espacio tridimensional.

Obligatoriedad

La practica no es obligatoria

Prerrequisitos

Conocer el metodo analitico de obtencion de la transIormacion perspectiva directa a
partir de puntos 3D de una plantilla de calibracion y de sus proyecciones en una imagen de
la misma.

Descripcin

Mediante un sistema de vision estereo binocular con una disposicion como la de la
Fig.1 se han adquirido las dos imagenes de una platilla de calibracion, que se muestran en
la Fig. 2.
Camara1
Plantilla de calibracion
Fig. 1 Sistema de vision estereo binocular
Camara2
(a) a:\IotoPlantilla1.bmp (b) a:\IotoPlantilla2.bmp

Fig. 2 Imagenes de la plantilla adquiridas con
la camara 1 y con la camara 2 respectivamente.

Los puntos que se van a utilizar para la calibracion se encuentran marcados con una
cruz en la Fig. 3.

Se dispone de las coordenadas 3D (x, y, z) de los 10 puntos de la plantilla en el
Iichero a:\Coordenadas3D.txt. Los 10 puntos 3D de la plantilla se han escrito en el Iichero
ordenados por su posicion en la plantilla de izquierda a derecha y de arriba a abajo.

PASO 1: Obtener las coordenadas 2D de los puntos de calibracion en la imagen 1
a.fotoPlantilla1.bmp, y escribirlas en un Iichero denominado a.Coordenadas2D.txt, cuyo
Iormato ha de ser como el de la Fig. 5. Para ello se marcaran los 10 puntos en la imagen en
la herramienta Paint o Gimp para obtener sus coordenadas.

PASO 2: A partir de los puntos de calibracion 3D y de sus proyecciones 2D en la imagen 1
guardados en los Iicheros a.coordenadas3D.txt y a.coordenadas2D.txt respectivamente,
es posible obtener el modelo de la camara 1 resolviendo el sistema de ecuaciones que se
muestra a continuacion (excepto c
34
que es igual a 1).


Fig. 3. Imagenes de la Fig. 2 con 10 puntos marcado con una cruz. Estos son los que se emplearan en
la calibracion.
-38.474579 182.708710 -106.338287
2.824604 234.271729 -105.531479
-0.876623 87.275887 -137.959641
93.622856 204.514633 -136.891129
94.558876 204.010223 -165.770966
-0.273942 86.831810 -194.727341
14.006490 233.082382 -211.579575
119.292908 233.758362 -221.255356
4.043584 233.725204 -231.127914
94.622833 203.701660 -248.099960
Fig. 4 Fichero a:\Coordenadas3D.txt. En cada linea aparecen
las coordenadas x, v y : de un punto de calibracion 3D,
ordenados por su aparicion en la plantilla de izquierda a
derecha y de arriba a abajo.
238 179
348 180
122 230
368 235
368 284
120 329
352 364
427 377
343 398
365 422
Fig. 5 Fichero a:\Coordenadas2D.txt de los
puntos de calibracion correspondientes a
una de las imagenes de la plantilla. En cada
linea aparecen las coordenadas U, V de un
punto de calibracion 2D, ordenados como
sus correspondientes puntos 3D en el
Iichero.


El programa a.CalcMatri:Coeficientes.exe calcula la matriz X a partir de los
Iicheros coordenadas3D.txt y coordenadas2D.txt , y la escribe en un Iichero que se llama
Matri:Coeficientes.txt. Ejecutelo y observe como es el Iichero generado.

Genere otro Iichero con la matriz columna Y, que se denomine
Matri:TerminosIndependientes.txt.

PASO 3: Mediante MATLAB, lea ambos Iicheros para almacenarlos en sendas matrices X
e Y, con los comandos:

Xload(Matri:Coeficientes.txt)
Yload(Matri:TerminosIndependientes.txt)

PASO 4: Obtenga la solucion al sistema de ecuaciones mediante minimos cuadrados.

C (X
T
X)
-1
X
T
Y X

Y donde X

es la matriz pseudoinversa de X.

MATLAB dispone de la Iuncion pinv(X) que calcula la pseudoinversa de una matriz X.

Finalmente la matriz de transIormacion perspectiva C se obtendra asi:

C X

Y

Aada a C el termino c
34
y copie esa matriz a un Iichero que se denomine
matri:ProveccionPerspectiva1.sch. Esta matriz es el modelo de la camara 1.

PASO 5: Obtenga del mismo modo el modelo de la camara 2 repitiendo todos los pasos
anteriores, pero ahora con los puntos 2D de la imagen 2, y guardelo en un Iichero que se
denomine matri:ProveccionPerspectiva2.sch.


x
1
y
1
z
1
1 0 0 0 0 -U
1
x
1
-U
1
y
1
-U
1
z
1
c
11
U
1
0 0 0 0 x
1
y
1
z
1
1 -V
1
x
1
-V
1
y
1
-V
1
z
1
c
12
V
1

x
2
y
2
z
2
1 0 0 0 0 -U
2
x
2
-U
2
y
2
-U
2
z
2
c
13
U
2

0 0 0 0 x
2
y
2
z
2
1 -V
2
x
2
-V
2
y
2
-V
2
z
2
c
14
V
2

x
3
y
3
z
3
1 0 0 0 0 -U
3
x
3
-U
3
y
3
-U
3
z
3
c
21
U
3

0 0 0 0 x
3
y
3
z
3
1 -V
3
x
3
-V
3
y
3
-V
3
z
3
c
22
V
3

. . c
23
U
4

. . c
24
V
4

. . c
31
U
5

x
10
y
10
z
10
1 0 0 0 0 -U
10
x
10
-U
10
y
10
-U
10
z
10
c
32
V
5
0 0 0 0 x
10
y
10
z
10
1 -V
10
x
10
-V
10
y
10
-V
10
z
10
c
33
.
.
U
10
V
10

X
C
Y
PASO 6: Una vez obtenidos los modelos de las dos camaras, es posible calcular puntos 3D
de imagenes adquiridas con ambas camaras (sin haberlas movido desde que se obtuvieron
las imagenes de la plantilla). Con este sistema se han adquirido dos imagenes de un
individuo: a.fotoIndividuo1.bmp, a.fotoIndividuo2.bmp.

Ejecute la aplicacion a.Calculo3DEstereo.exe cuya interIaz es como el que se
muestra en la Fig. 6:



En el menu archivo ha de realizar:

1. Abra imagen 1: seleccione el Iichero de la imagen a.fotoIndividuo1.bmp adquirida
con la camara 1.
2. Abra imagen 2: seleccione el Iichero de la imagen a.fotoIndividuo2.bmp adquirida
con la camara 2.
3. Abra calibracion 1 lineal: seleccione el Iichero matri:ProveccionPerspectiva1.sch
donde esta la matriz de proyeccion perspectiva de la camara 1.
4. Abra calibracion 2 lineal: seleccione el Iichero matri:ProveccionPerspectiva2.sch
donde esta la matriz de proyeccion perspectiva de la camara 2.

Posteriormente seleccione correspondencias de puntos en ambas imagenes,
introduciendolos en el mismo orden en ambas. Cuando lo desee pulse el boton 3D y se
obtendran las coordenadas 3D de esos puntos cuyas correspondencias ha introducido. Si
pulsa 2D apareceran proyectados en ambas imagenes los puntos 3D calculados. Notese que
al ser un metodo aproximativo, y que al haber introducido los puntos manualmente tanto
en la calibracion como en las correspondencias 3D hay un error en esas proyecciones.

PASO 7: En el menu archivo seleccione Salvar 3D y se salvaran en un Iichero las
coordenadas 3D calculadas correspondientes a los puntos que ha seleccionado, en el
mismo orden en que Iueron seleccionados en ambas imagenes.

También podría gustarte