Iniciación a ARToolKit

41
Accesibilidad y Realidad Aumentada Iniciación a ARToolKit Vicente García Díaz – [email protected] Universidad de Oviedo, 2012

description

Iniciación a la realidad aumentada con Wikitude ARToolKit

Transcript of Iniciación a ARToolKit

Page 1: Iniciación a ARToolKit

Accesibilidad y Realidad Aumentada

Iniciación a ARToolKit

Vicente García Díaz – [email protected]

Universidad de Oviedo, 2012

Page 2: Iniciación a ARToolKit

Tabla de contenidos

1. Conceptos básicos

2. Principios de desarrollo

3. Otros datos de interés

4. AndAR

2

Iniciación a ARToolKit

Page 3: Iniciación a ARToolKit
Page 4: Iniciación a ARToolKit

¿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/

4

Conceptos básicos

Page 5: Iniciación a ARToolKit

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

5

Conceptos básicos

Fuente: http://www.cs.unc.edu/~azuma/azuma_AR.html

Page 6: Iniciación a ARToolKit

¿Cómo funciona?

6

Conceptos básicos

Fuente: https://www.artoolworks.com/

Page 7: Iniciación a ARToolKit

Un simple ejemplo

7

Conceptos básicos

Fuente: http://www.hitl.washington.edu/

Page 8: Iniciación a ARToolKit

Ejemplo ARToolKit (Audi)

8

AndAR

Fuente: http://www.youtube.com/watch?v=UgQfo7eNFdw&feature=related

Page 9: Iniciación a ARToolKit

Ejemplo ARToolKit (Manual de Lego)

9

AndAR

Fuente: http://www.youtube.com/watch?v=ogeIszG5ogQ

Page 10: Iniciación a ARToolKit

Ejemplo ARToolKit (Mueble virtual)

10

AndAR

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk

Page 11: Iniciación a ARToolKit

Ejemplo ARToolKit (Juego ARDefender)

11

AndAR

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk

Page 12: Iniciación a ARToolKit

Ejemplo (Libros)

12

AndAR

Fuente: http://www.youtube.com/watch?v=UVhtB-SH5b8

Page 13: Iniciación a ARToolKit

Ejemplo (Juego PITStrategy)

13

AndAR

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk

Page 14: Iniciación a ARToolKit

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)

14

Conceptos básicos

Page 15: Iniciación a ARToolKit

Patrones a utilizar

• calib_list.pdf y calib_cpara.pdf

15

Conceptos básicos Calibración de la cámara en 2 pasos

Page 16: Iniciación a ARToolKit

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

16

Conceptos básicos Calibración de la cámara en 2 pasos

Page 17: Iniciación a ARToolKit

Calibración mediante lista de puntos (II)

• Se debe repetir el proceso varias veces

17

Conceptos básicos Calibración de la cámara en 2 pasos

Page 18: Iniciación a ARToolKit

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

18

Conceptos básicos Calibración de la cámara en 2 pasos

Page 19: Iniciación a ARToolKit

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)

19

Conceptos básicos Calibración de la cámara en 2 pasos

Fuente: http://www.nikonusa.com/

Page 20: Iniciación a ARToolKit

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

20

Conceptos básicos Calibración de la cámara en 2 pasos

Page 21: Iniciación a ARToolKit

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

21

Conceptos básicos

Page 22: Iniciación a ARToolKit

Arquitectura

22

Conceptos básicos

Fuente: http://www.hitl.washington.edu/

Page 23: Iniciación a ARToolKit

Estructura

23

Conceptos básicos

Fuente: http://www.hitl.washington.edu/

Page 24: Iniciación a ARToolKit
Page 25: Iniciación a ARToolKit

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

25

Principios de desarrollo

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

Page 26: Iniciación a ARToolKit

Idea general

26

Desarrollo de una aplicación sencilla Principios de desarrollo

Page 27: Iniciación a ARToolKit

Principales funciones utilizadas

27

Principios de desarrollo

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

Desarrollo de una aplicación sencilla

Page 28: Iniciación a ARToolKit
Page 29: Iniciación a ARToolKit

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

▫ Posición de los marcadores

▫ Condiciones de luz

29

Otros datos de interés

Tamaño del marcador (cm)

Alcance (cm)

7 41

9 64

11 86

19 127

Page 30: Iniciación a ARToolKit

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

30

Otros datos de interés

Page 31: Iniciación a ARToolKit

Sistemas a los que ha sido portado

31

Otros datos de interés

Page 32: Iniciación a ARToolKit

Versión de ARToolkit para Android - http://code.google.com/p/andar/

Page 33: Iniciación a ARToolKit

Ejemplo AndAR (Planta)

33

AndAR

Fuente: http://www.kurzweilai.net/diminished-reality-software-removes-objects-from-video-in-real-time/

Page 34: Iniciación a ARToolKit

Arquitectura

34

AndAR

Page 35: Iniciación a ARToolKit

Paso 1. Crear actividad básica

• CustomActivity.java

35

AndAR Ejemplo de aplicación

Page 36: Iniciación a ARToolKit

Paso 1. Crear actividad básica (II)

• CustomObject.java

36

AndAR Ejemplo de aplicación

Page 37: Iniciación a ARToolKit

Paso 1. Crear actividad básica (III)

• CustomRenderer.java

37

AndAR Ejemplo de aplicación

Page 38: Iniciación a ARToolKit

Paso 2. Mostrar objeto

• CustomObject.java

38

AndAR Ejemplo de aplicación

Será necesario pasarle el context desde la actividad principal (en el constructor)

textureId será una propiedad que guardará el id de la textura cube será una propiedad que guardará un objeto de tipo Cube

Page 39: Iniciación a ARToolKit

Paso 2. Mostrar objeto (II)

• Cube.java

39

AndAR Ejemplo de aplicación

Se simplifica la creación de los FloatBuffers

Si el tamaño del marcador es de 80, un buen tamaño para los objetos podría ser 50

Page 40: Iniciación a ARToolKit

Paso 2. Mostrar objeto (III)

• Cube.java

40

AndAR Ejemplo de aplicación

No hace falta especificar la proyección, lo hace AndAR

Page 41: Iniciación a ARToolKit

Bibliografía

41

ARTOOLKIT Website; http://www.hitl.washington.edu/artoolkit/ ANDAR Website; http://code.google.com/p/andar/