1. Accesibilidad y Realidad
Aumentada
Iniciación a ARToolKit
Vicente García Díaz – garciavicente@uniovi.es
Universidad de Oviedo, 2012
2. 2
Tabla de contenidos
Iniciación a ARToolKit
1. Conceptos básicos
2. Principios de desarrollo
3. Otros datos de interés
4. AndAR
3.
4. 4
Conceptos básicos
¿Qué es ARToolKit?
• Es una librería software que sirve para
construir aplicaciones AR
• Multiplataforma (Linux, Mac, Windows, …)
• Escrita en C y C++
• Creado inicialmente por Hirokazu Kato (1999)
• Human Interface Technology Laboratory
(HITLab) – University of Washington
• Libre para usos no comerciales (GNU General
Public Licence)
▫ Las licencias comerciales las administra
ARToolworks (Seattle, USA)
• http://www.hitl.washington.edu/artoolkit/
5. 5
Conceptos básicos
Principales características
• Rastreo de posiciones
▫ Es muy complicado calcular el punto de vista del usuario para
que los objetos superpuestos aparezcan alineados con los
objetos del mundo real
• Realidad aumentada a través de video
▫ Los objetos se superponen a un video en directo del mundo real
• Realidad aumentada a través de una vista óptica
▫ Los objetos se colocan directamente en una vista del mundo
real
Fuente: http://www.cs.unc.edu/~azuma/azuma_AR.html
14. 14
Conceptos básicos
Calibración de la cámara
• Los valores de configuración de las cámaras se
guardan en un fichero camera_para.dat
• Se pueden crear ficheros específicos para cada
cámara
• Existen dos tipos de calibraciones:
▫ En dos pasos (3D)
▫ En un paso (2D)
15. 15
Conceptos básicos Calibración de la cámara en 2 pasos
Patrones a utilizar
• calib_list.pdf y calib_cpara.pdf
16. 16
Conceptos básicos Calibración de la cámara en 2 pasos
Calibración mediante lista de puntos (I)
• calib_list.pdf se utiliza para ubicar el centro de la
imagen y para calcular la distorsión de las lentes
• Se utiliza el programa calib_dist
17. 17
Conceptos básicos Calibración de la cámara en 2 pasos
Calibración mediante lista de puntos (II)
• Se debe repetir el proceso varias veces
18. 18
Conceptos básicos Calibración de la cámara en 2 pasos
Calibración mediante lista de puntos (III)
• Después de marcar los puntos se puede pasar a calcular
el centro de la imagen y los parámetros de dispersión
• Se puede comprobar el resultado mostrando líneas entre
los puntos
19. 19
Conceptos básicos Calibración de la cámara en 2 pasos
Calibración mediante rectángulos (I)
• calib_cparam.pdf se utiliza principalmente para
calcular la distancia focal
• Se utiliza el programa calib_cparam
1. Indicar los parámetros obtenidos con calib_list
2. Poner el patrón en frente de la cámara (grande)
Fuente: http://www.nikonusa.com/
20. 20
Conceptos básicos Calibración de la cámara en 2 pasos
Calibración mediante rectángulos (II)
• Irán apareciendo líneas blancas
▫ Horizontales (hay que colocarlas de arriba abajo)
▫ Verticales (hay que colocarlas de izquierda a derecha)
• Se debe repetir el proceso varias veces (alejando la imagen
hasta 50cm)
• Finalmente se pide un nombre de archivo para guardar los
parámetros
21. 21
Conceptos básicos
Calibración de la cámara en un paso
• Se utiliza únicamente calib_list.pdf (el
primero de los patrones anteriores)
• Se utiliza el programa calib_camera2
• Pide al usuario la distancia entre cada punto y
después hay que hacer los mismos pasos que con
calib_list
• Es menos preciso que la calibración en dos pasos
25. 25
Principios de desarrollo
Introducción
• Las aplicaciones que utilizan ARToolKit tienen dos partes
bien diferenciadas:
1. Escribir la aplicación
2. Entrenar a las rutinas de procesamiento de imágenes
INICIO 1- Leer los parámetros de la cámara y cargar los archivos con los patrones
usados como marcadores. Inicializar la captura de la cámara
REPETICIÓN 2- Capturar un frame a partir de la entrada de video
3- Detectar los marcadores situados dentro del frame
4- Calcular la posición y tamaño de los objetos virtuales
5- Superponer los objetos virtuales sobre el marcador
CIERRE 6- Finalizar la captura de video
27. 27
Principios de desarrollo Desarrollo de una aplicación sencilla
Principales funciones utilizadas
FASE PASO CORRESPONDENCIA CON FUNCIÓN EN CÓDIGO
INICIO 1- Inicializar captura init
REPETICIÓN 2- Capturar frame arVideoGetImage
3- Detectar marcadores arDetectMarker
4- Calcular posicionamiento arGetTransMat
5- Superponer objetos draw
CIERRE 6- Finalizar captura cleanup
• Además se utilizará una función main y una función
mainLoop
28.
29. 29
Otros datos de interés
Limitaciones de ARToolKit
• Es necesario que el marcador se pueda ver por completo
para poder ser identificado
• Sólo reconoce marcadores 2D
• La calidad depende de:
▫ Capacidad de la cámara
▫ Sencillez de los marcadores Tamaño del Alcance (cm)
▫ Posición de los marcadores marcador (cm)
7 41
▫ Condiciones de luz 9 64
11 86
19 127
30. 30
Otros datos de interés
Algunos complementos
• ARToolkit Professional
▫ Versión de pago con mejoras
• OpenVRML for ARToolkit
▫ Para trabajar con modelos creados utilizando Virtuality
Reality Modeling Language (VRML)
• osgART
▫ Para trabajar con modelos creados utilizando
OpenSceneGraph
• Studierstube tracker
▫ Una librería para mejorar la calidad y precisión de los
marcadores 2D
• ARToolKit patternmaker
▫ Aplicación para facilitar el desarrollo de marcadores
38. 38
AndAR Ejemplo de aplicación
Paso 2. Mostrar objeto
• CustomObject.java
textureId será una propiedad que guardará el id de la textura
cube será una propiedad que guardará un objeto de tipo Cube
Será necesario pasarle el context
desde la actividad principal
(en el constructor)
39. 39
AndAR Ejemplo de aplicación
Paso 2. Mostrar objeto (II)
• Cube.java
Si el tamaño del marcador es de 80, un buen
tamaño para los objetos podría ser 50
Se simplifica la creación
de los FloatBuffers
40. 40
AndAR Ejemplo de aplicación
Paso 2. Mostrar objeto (III)
• Cube.java
No hace falta especificar la
proyección, lo hace AndAR