Avances en la representación y modelado computacionales de - RUA

Loading...

AVANCES EN LA REPRESENTACIÓN Y MODELADO COMPUTACIONALES DE LA ESTRUCTURA DEL ESPACIO Antonio Javier Gallego Sánchez

UNIVERSIDAD DE ALICANTE ´ D EPARTAMENTO DE C IENCIA DE LA C OMPUTACI ON E I NTELIGENCIA A RTIFICIAL

TESIS DOCTORAL:

´ Y AVANCES EN LA REPRESENTACION MODELADO COMPUTACIONALES DE LA ESTRUCTURA DEL ESPACIO

Autor: Antonio Javier Gallego S´anchez Director: Dr. Rafael Molina Carmona Alicante, diciembre de 2012

TESIS DOCTORAL EN FORMA DE COMPENDIO DE PUBLICACIONES

´ Y AVANCES EN LA REPRESENTACION MODELADO COMPUTACIONALES DE LA ESTRUCTURA DEL ESPACIO

Este documento contiene la s´ıntesis del trabajo realizado por Antonio Javier Gallego S´anchez, bajo la direcci´on del doctor Rafael Molina Carmona, para optar al grado de Doctor en Inform´atica. Se presenta en la Universidad de Alicante y se estructura seg´un la normativa establecida para la presentaci´on de tesis doctorales en forma de compendio de publicaciones: una primera parte con un resumen de la labor realizada y una segunda que incluye las divulgaciones cient´ıficas que de ella surgieron.

Alicante, diciembre de 2012

Agradecimientos Me gustar´ıa expresar mi m´as sincero agradecimiento a todas aquellas personas que de un modo u otro me han ayudado a llevar a cabo este proyecto. En primer lugar quisiera agradecer el apoyo ofrecido por todos mis compa˜neros del departamento de Ciencia de la Computaci´on e Inteligencia Artificial as´ı como al grupo de investigaci´on de Reconocimiento de Formas e Inteligencia Artificial. En especial a mi director de tesis Rafael Molina Carmona, por haberme ofrecido esta oportunidad y sacar siempre tiempo para ayudarme. Tambi´en agradecer a los coautores de los art´ıculos presentados, por el tiempo y aprendizajes compartidos, Gabriel L´opez, Jorge Calera, Dami´an L´opez, Juan Luis Dalmau, Patricia Compa˜n, Carlos Villagr´a y Pilar Arques. Y por supuesto estas u´ ltimas l´ıneas de agradecimientos est´an dedicadas a mis padres, mi hermana y mi amiga Nela, que sin duda han estado junto a m´ı desde el primer momento, ofreci´endome su apoyo incondicional sin el cual jam´as habr´ıa podido llegar hasta aqu´ı.

´ Indice general P´agina

Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

III

I Resumen

1

1 Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2 Visi´on artificial . . . . . . . . . . . . . . . 2.1 Introducci´on a la visi´on est´ereo . . . . 2.2 C´alculo de la distancia . . . . . . . . 2.3 Modelo de visi´on est´ereo generalizado 2.4 Est´ereo basado en regiones . . . . . . 2.4.1 Modelo propuesto . . . . . . 2.5 Detecci´on de objetos . . . . . . . . . 2.6 Resultados y conclusiones . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

9 9 10 12 13 14 18 20

3 Reconstrucci´on y mapeado . . . . . . . . . . . . . . . 3.1 Introducci´on . . . . . . . . . . . . . . . . . . . . 3.2 Rectificaci´on geom´etrica . . . . . . . . . . . . . 3.2.1 Calculo del error en el rectificado . . . . 3.3 Aplicaciones del rectificado geom´etrico . . . . . 3.4 Reconstrucci´on utilizando precisi´on sub-p´ıxel . . 3.4.1 Experimentaci´on sobre la reconstrucci´on 3.5 Algoritmo de mapeado . . . . . . . . . . . . . . 3.5.1 Experimentaci´on sobre el mapeado . . . 3.6 Resultados de rendimiento . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

23 23 25 27 28 28 29 31 32 33

´ Indice general

VI 3.7 3.8

Trabajo previo . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34 35

4

Lenguaje de modelado . . . . . . . . . . . . . . . . . 4.1 Introducci´on . . . . . . . . . . . . . . . . . . . 4.2 Modelo para la Generaci´on de Mundos Virtuales 4.2.1 Sintaxis . . . . . . . . . . . . . . . . . . 4.2.2 Sem´antica . . . . . . . . . . . . . . . . . 4.3 Caso pr´actico . . . . . . . . . . . . . . . . . . . 4.4 Conclusiones y trabajo futuro . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

37 37 38 39 40 45 51

5

Lenguajes k-testables para grafos . . . . . . . . . . . . . . 5.1 Introducci´on . . . . . . . . . . . . . . . . . . . . . 5.2 Notaci´on y definiciones . . . . . . . . . . . . . . . . 5.2.1 Multiconjuntos . . . . . . . . . . . . . . . . 5.3 Lenguaje k-testable para grafos . . . . . . . . . . . . 5.4 Aut´omata para grafos . . . . . . . . . . . . . . . . . 5.5 Algoritmo de inferencia . . . . . . . . . . . . . . . . 5.6 Experimentaci´on . . . . . . . . . . . . . . . . . . . 5.7 Grafos ac´ıclicos dirigidos a partir de im´agenes . . . . 5.7.1 Grafos de vecindad . . . . . . . . . . . . . . 5.7.2 Grafos mediante una rejilla estructural . . . . 5.7.3 Grafos a partir de la extracci´on del esqueleto 5.8 Conclusiones y resultados . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

53 53 54 56 57 60 62 64 67 67 70 70 71

Bibliograf´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

II Publicaciones 1

79

Detecci´on de objetos y estimaci´on de su profundidad mediante un algoritmo de est´ereo basado en segmentaci´on . . . . . . . . . . . . . .

81

2

Improving Edge Detection In Highly Noised Sheet-Metal Images

. .

97

3

Scene reconstruction and geometrical rectification from stereo images

111

´ Indice general

VII

4 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5 Three-Dimensional Mapping from Stereo Images with Geometrical Rectification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 6 Rectified Reconstruction from Stereo Pairs and Robot Mapping

. . . 153

7 3D Reconstruction and Mapping from Stereo Pairs with Geometrical Rectification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 8 Hacia un modelo integral para la generaci´on de Mundos Virtuales . . 179 9 Formal model to integrate Multi-Agent Systems and Interactive Graphic Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 10 Modeling a Mobile Robot using a Grammatical Model . . . . . . . . 215 11 A Grammatical Approach to the Modeling of an Autonomous Robot . 227 12 Inference of k-testable directed acyclic graph languages 13 Structural Graph Extraction from Images

. . . . . . . 249

. . . . . . . . . . . . . . . 271

Parte I Resumen

Cap´ıtulo 1

Introducci´on El origen y motivaci´on inicial de este trabajo se encuentra en las nuevas posibilidades que nos ofrecen los dispositivos tecnol´ogicos actuales para ayudarnos en nuestra vida, proporcionando una asistencia eficaz y con bajo coste. Esto es especialmente interesante en determinados contextos, como cuando la ayuda humana no es posible por las condiciones del entorno, cuando existen problemas de discapacidad en los que una ayuda de este tipo puede suponer la mejora de la calidad de vida y de la independencia de la persona o cuando un asistente autom´atico supone una disminuci´on importante de los costes econ´omicos. Muchos de estos sistemas de asistencia necesitan conocer la estructura del espacio en el que se desenvuelven. Por ejemplo, en sistemas autom´aticos de navegaci´on, en sistemas de ayuda a la movilidad de personas con discapacidad visual, o en aplicaciones de realidad aumentada, es imprescindible tener un modelo del mundo real y de la estructura del espacio que los rodea. Una de las l´ıneas m´as activas de investigaci´on en el a´ mbito de la Inteligencia Artificial es el uso de dispositivos de percepci´on visual (diferentes c´amaras y dispositivos de captaci´on de im´agenes) para esta labor. En este contexto se presenta este trabajo, cuyo eje principal parte de la siguiente hip´otesis: es posible utilizar dispositivos de percepci´on visual como sensores principales para identificar la estructura tridimensional del espacio real, y as´ı poder reconstruirlo, y clasificar y etiquetar los objetos que en e´ l aparecen. A partir de esta hip´otesis se plantea la construcci´on de un sistema en el que confluyen los resultados de investigaci´on de varios campos, principalmente el estudio de los modelos de representaci´on del espacio, junto con todas las t´ecnicas y pro-

4

Introducci´on

cedimientos que dan soporte a esta disciplina, entre ellos, y de forma destacada, la visi´on artificial. Las t´ecnicas de visi´on artificial, tambi´en conocida como visi´on computacional, tratan de emular el sistema de visi´on humano y sus capacidades mediante un ordenador, de forma que mediante la interpretaci´on de las im´agenes adquiridas, por ejemplo mediante una c´amara, se puedan reconocer los diversos objetos en el ambiente y su posici´on en el espacio. La facilidad con la que el ser humano realiza este proceso, llev´o a pensar a los primeros investigadores en este campo (hacia 1960) que hacer que un ordenador interpretase im´agenes ser´ıa relativamente sencillo. Pero no result´o as´ı, muchos a˜nos de investigaci´on han demostrado que es un problema esencialmente complejo y que a´un en la actualidad sigue sin estar resuelto. La visi´on es un actividad que llevamos a cabo de forma inconsciente y autom´atica, sin embargo se estima que empleamos entre el 70 % y el 75 % del procesamiento del cerebro en el an´alisis de la informaci´on visual. La automaticidad de esta acci´on dificulta su an´alisis de forma cient´ıfica con la intenci´on de averiguar los procesos que intervienen en ella e intentar imitarlos en un ordenador. Uno de los principales obst´aculos con el que se encuentra la visi´on artificial es que la percepci´on del entorno se realiza a partir de proyecciones en im´agenes de dos dimensiones. La reducci´on de una dimensi´on produce la p´erdida de gran cantidad de informaci´on, lo que eleva notablemente la dificultad del proceso de visi´on. Para intentar solventar este tipo de problemas aparecen t´ecnicas como la visi´on est´ereo. Estos sistemas tratan de imitar la capacidad visual que tiene el ser humano, y otros seres vivos, de extraer informaci´on del entorno que les rodea y estimar la distancia hasta los objetos a partir de im´agenes binoculares. Las c´amaras de visi´on est´ereo se componen de dos sensores de caracter´ısticas similares montadas a una peque˜na distancia horizontal. De esta forma no es necesario realizar el reconocimiento de caracter´ısticas ni la interpretaci´on de lo que se est´a captando en ese momento; sino que se obtiene la informaci´on tridimensional a partir de las diferencias existentes entre las im´agenes obtenidas. El an´alisis de las im´agenes adquiridas simult´aneamente por los dos sensores debe permitir establecer una correspondencia entre los puntos de ambas im´agenes y realizar el c´alculo de la profundidad. El proceso de correspondencia se realiza a partir de algoritmos que tratan de localizar las proyecciones de un punto de la escena en las dos im´agenes capturadas. La principal limitaci´on en este c´alculo

5 es que un u´ nico p´ıxel de una imagen no proporciona informaci´on suficiente para identificar el punto correspondiente en la otra. Las soluciones que aplican estos algoritmos son analizar los p´ıxeles de su vecindad por medio de t´ecnicas de correlaci´on, detecci´on y emparejamiento de bordes as´ı como de segmentaci´on de regiones, entre otras. El primer bloque de las aportaciones presentadas se centra en el a´ rea de la visi´on est´ereo. En concreto, con el objetivo de mejorar las im´agenes necesarias para la reconstrucci´on y modelado del espacio, se ha trabajado en un sistema de visi´on estereosc´opica basado en segmentaci´on. La principal aportaci´on presentada es la correspondencia basada en regiones, para las que se define un vector de caracter´ısticas que utiliza la posici´on, el tama˜no, el color y la forma de las regiones en la funci´on de emparejamiento. Posteriormente realiza un proceso de extracci´on de capas para obtener objetos m´as consistentes. Se complementa con el desarrollo de un factor de correcci´on emp´ırico que permite reducir las aberraciones producidas por la lente de la c´amara. Este sistema permite detectar los objetos de la escena y estimar su profundidad, por lo que los resultados obtenidos sirven como base para el resto de trabajos presentados. Todo esto da lugar a un sistema m´as robusto y preciso en los resultados, con unos tiempos de c´omputo muy razonables. Dentro de las t´ecnicas de visi´on artificial, tambi´en se presentan un par de m´etodos para la detecci´on de los objetos que aparecen en la imagen: Una primera soluci´on basada en el color y la forma de los segmentos extra´ıdos durante el proceso de correspondencia; y una segunda propuesta para la detecci´on robusta y precisa de la orientaci´on y la localizaci´on de objetos en im´agenes de bajo contraste. La principal aportaci´on es la introducci´on de un proceso de segmentaci´on con auto-umbral, el uso de un nuevo tipo de histograma de forma y de un m´etodo de regresi´on robusta que permiten obtener una mayor precisi´on y robustez en los resultados. Los resultados obtenidos muestran un coste temporal muy bajo, lo que permite su uso en entornos muy exigentes, como el propuesto en la reconstrucci´on del espacio, o en entornos industriales. El bloque central de las aportaciones de esta tesis son los avances en la definici´on de un modelo computacional adecuado para la representaci´on del espacio. En estos trabajos se presenta un modelo de enumeraci´on espacial que posibilita la reconstrucci´on de una escena a partir de im´agenes, en este caso, estereosc´opicas. Este trabajo se enfrenta a un primer reto: la necesidad de rectificar las im´agenes para corregir la perspectiva c´onica producida por la c´amara. El efecto de

6

Introducci´on

perspectiva se produce al realizar la proyecci´on de puntos tridimensionales del espacio (la escena real) en puntos bidimensionales de un plano (la imagen adquirida por la c´amara). Este efecto produce que el tama˜no de representaci´on de un objeto var´ıe seg´un su profundidad, y por lo tanto, impide el uso de esta informaci´on de forma directa en la reconstrucci´on. Se presentan varias soluciones para resolver este problema y como resultado se consigue una rectificaci´on de la imagen que permite una reconstrucci´on muy cercana a la realidad. A partir de la rectificaci´on, se realiza el proceso de reconstrucci´on mediante etiquetado del espacio (enumeraci´on espacial), adem´as se aplica un filtro c´ubico que mejora el resultado utilizando informaci´on redundante. A partir de los resultados obtenidos en la reconstrucci´on, se propone su aplicaci´on al problema del mapeado del espacio utilizando un robot durante el proceso de adquisici´on de la secuencia de im´agenes. Una vez obtenida la estructura de una escena, se hace necesario dotar al modelo de representaci´on de mayor potencia, estableciendo un modelo que recoja las relaciones entre los objetos del espacio y que permita, adem´as, una representaci´on m´as compacta. En este sentido, se propone un lenguaje de modelado basado en gram´aticas que tiene diversas ventajas: permite la representaci´on del espacio en forma de cadena perteneciente a un lenguaje y facilita la expresi´on de relaciones entre los componentes de la cadena. Adem´as, el modelo as´ı definido, tambi´en posibilita la obtenci´on de escenas sint´eticas (incluyendo un sistema gr´afico) y la evoluci´on de las cadenas para dotar a la escena de dinamismo y comportamiento inteligente. Por otro lado, se da un paso m´as y se emparenta al modelo con los sistemas multi-agente (SMA), al detectar los puntos en com´un y constatar las ventajas de utilizar un modelo formal bien definido como el de los SMA. El sistema propuesto se valida con varios ejemplos de utilizaci´on, entre los que destaca la construcci´on de un sistema de navegaci´on para un robot m´ovil. En el u´ ltimo bloque se da un primer paso hacia la conexi´on entre el lenguaje de modelado propuesto y la reconstrucci´on de escenas mediante visi´on est´ereo. Es decir, a partir de la representaci´on gr´afica de una escena (el modelo de datos basado en enumeraci´on) se pretende obtener las posibles cadenas del lenguaje de modelado que lo describan. Para realizar este proceso en primer lugar necesitamos una estructura de representaci´on de los objetos del espacio a partir del cual podamos inferir las cadenas. Una de las estructuras de datos que m´as potencia de representaci´on proporcionan son los grafos. Prueba de esto son la amplia

7 variedad de campos en las que se utilizan, como por ejemplo la biolog´ıa, sociolog´ıa, numerosos algoritmos matem´aticos e inform´aticos como el problema del viajante, o especialmente las tareas de reconocimiento de patrones. En esta u´ ltima parte se aborda la tarea del aprendizaje de grafos mediante un lenguaje k-testable. Estos lenguajes son ampliamente conocidos y utilizados en cadenas y a´ rboles, pero todav´ıa no se hab´ıa dado el paso a su utilizaci´on en grafos. En este trabajo se extiende la definici´on de k-testabilidad a grafos ac´ıclicos dirigidos, y se propone un algoritmo gramatical de inferencia con complejidad polin´omica para el aprendizaje de esta clase de grafos. Estos avances nos permiten identificar la pertenencia de grafos a un lenguaje k-testable o la posterior generaci´on o inferencia de grafos que pertenezcan al lenguaje. Para el proceso de experimentaci´on de los lenguajes k-testables se proponen tres nuevos algoritmos que permiten extraer y representar la estructura de una imagen a partir de grafos ac´ıclicos dirigidos. El primer m´etodo propuesto crea caminos de vecindad dentro de la representaci´on q-tree de una imagen, proporcionando nuevos datos y nuevas posibilidades de operaci´on y aplicaci´on. El segundo algoritmo trata la imagen como una rejilla estructural, de forma que tras un postproceso se obtiene un grafo ac´ıclico dirigido. El u´ ltimo m´etodo utiliza un esqueleto para construir el grafo. La principal aportaci´on de este trabajo es la extensi´on del uso de grafos en otras aplicaciones, especialmente en las tareas de reconocimiento de patrones. Resumiendo, aunque los trabajos presentados se corresponden a a´ mbitos distintos de investigaci´on, existe un hilo conductor entre todos ellos, con un fin u´ ltimo, que es el avance en la representaci´on y modelado computacionales de la estructura del espacio real. Los resultados obtenidos han tenido impacto a dos niveles: con publicaciones en congresos internacionales y revistas, y como origen de un grupo de trabajo en este tema. De forma que dos nuevas l´ıneas de investigaci´on se encuentran en desarrollo a partir de algunos de los aspectos aqu´ı se˜nalados: la definici´on m´as completa del modelo gramatical de representaci´on del espacio y su aplicaci´on a casos reales; y el estudio del enlace entre los dos modelos, de enumeraci´on espacial y gramatical, a partir de los resultados obtenidos en los lenguajes ktestables o mediante otras propuestas como las gram´aticas evolutivas. En los siguientes cap´ıtulos se detalla de forma m´as extensa el contenido de cada uno de estos trabajos. En la segunda parte se incluye el compendio de divulgaciones cient´ıficas agrupado por tem´aticas para facilitar su lectura.

Cap´ıtulo 2

Visi´on artificial En este primer cap´ıtulo se resume el contenido de los trabajos “Detecci´on de objetos y estimaci´on de su profundidad mediante un algoritmo de est´ereo basado en segmentaci´on” (p´agina 81) y “Improving edge detection in highly noised sheet-metal images” (p´agina 97) sobre visi´on est´ereo, c´alculo de mapas de disparidad y detecci´on de objectos. En primer lugar se realiza una breve introducci´on a la visi´on est´ereo y a continuaci´on se resume el contenido de las publicaciones citadas.

2.1 Introducci´on a la visi´on est´ereo La visi´on est´ereo modela la capacidad visual que tiene el ser humano, y muchos otros animales, de extraer informaci´on del entorno que le rodea. As´ı, el ser humano, a partir de un proceso binocular transforma dos im´agenes que se forman en las retinas de cada ojo en una visi´on espacial del conjunto. Este sistema no necesita realizar el reconocimiento de caracter´ısticas ni la interpretaci´on de lo que est´a captando en ese momento; sino que obtiene la informaci´on tridimensional a partir del desplazamiento lateral entre las dos im´agenes retinales correspondientes a una escena del mundo real. Esto es posible gracias a que tenemos dos ojos separados, cuyos campos visuales se solapan en la regi´on central de la visi´on. Por ello, un mismo punto del entorno se proyecta en la retina en posiciones desplazadas seg´un lo cerca o lejos que est´e el objeto visualizado del punto de fijaci´on [1, 2]. Las t´ecnicas de visi´on est´ereo por computador tratan de emular el sistema de

10

Visi´on artificial

visi´on humano, en el que se analizan las diferencias de la proyecci´on de la escena en dos im´agenes tomadas desde dos posiciones diferentes [2]. A las diferencias entre ambas im´agenes se las denomina disparidad, y su an´alisis permite obtener la dimensi´on perdida en la proyecci´on de la escena tridimensional en la imagen bidimensional [3]. En el caso de los seres humanos el cerebro es el encargado de combinar ambas im´agenes y de calcular su disparidad. En el caso de un sistema de visi´on por computador, el an´alisis de las im´agenes adquiridas simult´aneamente por dos sensores distanciados espacialmente debe permitir establecer una correspondencia entre los puntos de ambas im´agenes y realizar el c´alculo de la profundidad. El proceso de correspondencia se realiza a partir de algoritmos que tratan de localizar las proyecciones de un punto de la escena en las dos im´agenes capturadas. La principal limitaci´on en este c´alculo es que un u´ nico p´ıxel de una imagen no proporciona informaci´on suficiente para identificar el punto correspondiente en la otra. Las soluciones que aplican estos algoritmos son analizar los p´ıxeles de su vecindad por medio de t´ecnicas de correlaci´on, detecci´on y emparejamiento de bordes as´ı como de segmentaci´on de regiones [4], entre otras. El c´alculo de la profundidad se basa en el conocimiento de la geometr´ıa del sistema de visi´on por computador, especialmente en la posici´on que ocupa cada una de las c´amaras en el espacio. En el caso de que las dos c´amaras est´en perfectamente alineadas, configuraci´on ideal del sistema, para calcular las coordenadas tridimensionales de un punto de la escena se aplican relaciones entre tri´angulos semejantes obtenidos de la geometr´ıa del sistema. En situaciones en que la geometr´ıa del sistema no cumpla la configuraci´on ideal se debe modelar la transformaci´on que liga los sistemas de coordenadas de ambas c´amaras, o bien aplicar alg´un algoritmo de rectificaci´on a las dos im´agenes que proporcione las mismas im´agenes en la configuraci´on ideal [5].

2.2 C´alculo de la distancia En nuestro caso nos centraremos en el supuesto b´asico de dos im´agenes pertenecientes a una escena, obtenidas mediante una c´amara est´ereo de objetivos paralelos. De este modo el a´ rea de b´usqueda de cada p´ıxel de la imagen izquierda (imagen de referencia) se reduce a su misma fila en la imagen derecha. Esta propiedad se denomina “restricci´on epipolar” y se debe a que los ejes o´ pticos de las c´amaras son paralelos.

C´alculo de la distancia

11

Figura 2.1: Ejemplo de un par est´ereo y una l´ınea epipolar.

Figura 2.2: Imagen de disparidad obtenida a partir del par de im´agenes de la figura 2.1

A una fila de la imagen de referencia y su correspondiente fila en la otra imagen se le denomina l´ınea epipolar (figura 2.1). Cada uno de los p´ıxeles de esta l´ınea epipolar tendr´a su correspondiente en la otra imagen, pero estar´a situado en una columna diferente debido a la separaci´on de las c´amaras. La diferencia absoluta entre las columnas se denomina disparidad. Cuanto mayor sea la distancia a la que se sit´ua el objeto de la c´amara menor ser´a la disparidad y viceversa, o dicho de otra forma, la disparidad es inversamente proporcional a la distancia a la que se encuentran los objetos percibidos [3]. Puesto que la disparidad es un valor entero, es posible representarla en forma de imagen, llamada imagen de profundidad o de disparidad (figura 2.2), asociando a cada p´ıxel un valor de gris. Las tonalidades m´as claras representan disparidades m´as altas (objetos cercanos) y las m´as oscuras disparidades m´as bajas (objetos lejanos).

12

Visi´on artificial

Existe una relaci´on inversa entre el valor de disparidad y la distancia a la que se encuentra el objeto de la c´amara. De esta forma, la disparidad es una medida de profundidad, que en funci´on de la geometr´ıa de la c´amara, se puede traducir a coordenadas dentro de un espacio Eucl´ıdeo donde el centro es el objetivo de la imagen de referencia. La ecuaci´on 2.1 muestra el c´alculo de la distancia a partir de la disparidad y de los par´ametros de la c´amara [11, 6, 26, 27]. Z= f

T d

(2.1)

Donde: • Z es la profundidad (distancia de la c´amara al objeto). • T es la longitud de la l´ınea base (distancia entre los centros o´ pticos). • f es la distancia focal (distancia entre el centro o´ ptico de la lente y el punto focal). • d es la disparidad del objeto (representado mediante tonos de gris en la imagen).

2.3 Modelo de visi´on est´ereo generalizado En un modelo de visi´on est´ereo generalizado se suelen realizar los siguientes pasos, desde que se adquieren las im´agenes mediante la c´amara est´ereo, hasta que se genera el mapa de disparidad y se reconstruye: 1. Captura: El primer paso es obtener un par de im´agenes est´ereo. 2. Rectificaci´on epipolar: Este proceso transforma las im´agenes est´ereo para que las l´ıneas epipolares coincidan con las l´ıneas horizontales de rastreo, de esta forma se reduce la complejidad de implementaci´on de los algoritmos de emparejamiento. En el caso de utilizar una c´amara est´ereo de objetivos paralelos no ser´a necesario realizar esta rectificaci´on. 3. Preprocesado: Esta fase consiste en cualquier preprocesado de las im´agenes, que no sea la rectificaci´on ya comentada, y que se realice antes del emparejamiento. Algunos ejemplos de preprocesamiento que se emplean

Est´ereo basado en regiones

13

com´unmente en los sistemas de visi´on est´ereo son la extracci´on de caracter´ısticas que ser´an emparejadas, como bordes, regiones u otro tipo de transformaciones no param´etricas [4]. 4. Emparejamiento, correspondencia o matching: El proceso de emparejamiento consiste en localizar los puntos (o caracter´ısticas de la imagen) que se corresponden entre ambas im´agenes del par est´ereo. Su c´alculo se considera la principal dificultad de la visi´on est´ereo, y el resultado final depender´a de que se haya hecho de forma adecuada las correspondencias entre los p´ıxeles. 5. C´alculo del mapa de profundidades: Este c´alculo se realiza a partir de los resultados de disparidad obtenidos mediante el proceso de emparejamiento y los par´ametros de orientaci´on de la c´amara. 6. Reconstrucci´on 3D: El proceso final es la reconstrucci´on de la escena en 3D utilizando los datos del mapa de profundidades calculado, los par´ametros de la c´amara, la informaci´on de color o texturas de la escena y otras caracter´ısticas necesarias como la perspectiva. En el siguiente apartado nos centraremos en el trabajo realizado sobre el preprocesado y emparejamiento basado en regiones de las im´agenes est´ereo para la obtenci´on de un mapa de profundidades. En el cap´ıtulo siguiente se tratar´a en detalle la fase final del proceso, la reconstrucci´on 3D.

2.4 Est´ereo basado en regiones La correspondencia mediante regiones se enmarca dentro de la familia de los m´etodos basados en caracter´ısticas. En general estas t´ecnicas dividen una o, a veces, las dos im´agenes est´ereo en regiones no solapadas de color homog´eneo. En lugar de computar la disparidad para cada p´ıxel individual, asignan un u´ nico valor de disparidad a cada una de las regiones obtenidas. A priori este planteamiento presenta varias ventajas: cuanto mayor es el nivel sem´antico de la primitiva, las correspondencias que se obtienen son m´as robustas; por otro lado, la cantidad de emparejamientos a realizar entre las regiones es mucho menor que el que se tendr´ıa que realizar para el total de p´ıxeles. Sin embargo, la reducci´on del n´umero de emparejamientos tiene una contrapartida: debemos realizar un proceso previo de segmentaci´on, cuesti´on no trivial,

14

Visi´on artificial

y debemos elegir un conjunto de propiedades que caractericen convenientemente a las regiones para poder realizar la correspondencia. Hay una considerable cantidad de literatura sobre el problema de la correspondencia en est´ereo. En [14] se puede encontrar una extensa revisi´on de los algoritmos actuales de est´ereo que producen un mapa de disparidad denso (con informaci´on para todos los puntos de la imagen). Centr´andonos en t´ecnicas que emplean segmentaci´on, en [15] los autores proponen un algoritmo est´ereo basado en regiones que utiliza deformaci´on de la imagen para medir la calidad del mapa de disparidad. Otras t´ecnicas, como en [12], combinan el emparejamiento basado en regiones con la optimizaci´on basada en grafos. En [9] se puede encontrar una amplia documentaci´on sobre todos estos algoritmos, a la vez que se proponen dos m´etodos con unos buenos resultados para el c´alculo del mapa de disparidad utilizando segmentaci´on. En [10] tambi´en se tienen en cuenta las ocultaciones que se producen al realizar el est´ereo, para lo que se segmentan ambas im´agenes con la intenci´on de encontrar las partes de cada regi´on que est´an parcialmente ocultas (para esto se ayuda de una funci´on de coste). A parte de los m´etodos comentados, en [13] se hace un interesante estudio sobre t´ecnicas que resuelven el problema de la correspondencia mediante est´ereo. En esta secci´on se presenta un sistema de visi´on estereosc´opica basada en segmentaci´on que aprovecha la informaci´on obtenida y las ventajas de este tipo de sistemas para el c´alculo del mapa de profundidades de una escena y la detecci´on de los objetos que aparecen en ella.

2.4.1 Modelo propuesto Como se ha comentado, la finalidad del sistema propuesto es la detecci´on de objetos y la estimaci´on de su profundidad. El esquema de procesamiento puede dividirse en cinco pasos que se presentan resumidamente a continuaci´on: 1. En primer lugar se segmentan las im´agenes de entrada en regiones de color homog´eneo. 2. A partir de estas regiones se obtiene un vector de caracter´ısticas que nos permite realizar el emparejamiento. 3. A continuaci´on se calcula la profundidad de cada una de las regiones utilizando la informaci´on de disparidad.

Est´ereo basado en regiones

15

4. Se analizan las profundidades encontradas y se reajustan mediante la asignaci´on a capas. 5. El u´ ltimo paso es la detecci´on de objetos, para lo cual se utiliza la informaci´on obtenida en la segmentaci´on. Impl´ıcitamente este modelo aplica dos asunciones b´asicas: en primer lugar, los p´ıxeles de un segmento con color homog´eneo tendr´an valores de disparidad que siguen un modelo de disparidad suavizado (restricci´on de continuidad). En segundo lugar, se asume que las discontinuidades en profundidad coinciden con las fronteras de dichas regiones. Todo esto se justifica en el hecho de que los p´ıxeles pertenecientes a una regi´on con un mismo color lo m´as probable es que provengan del mismo objeto de la escena, por lo que se espera que la disparidad var´ıe suavemente. En las siguientes secciones se analiza en detalle cada uno de los pasos del algoritmo. Segmentaci´on El proceso de segmentaci´on puede definirse como la acci´on de dividir una imagen en un conjunto de regiones disjuntas cuyos p´ıxeles comparten atributos similares, generalmente de intensidad, color o textura. En principio cualquier algoritmo que divida la imagen en regiones de un color homog´eneo puede ser utilizado por el modelo propuesto. En la implementaci´on actual se ha utilizado un algoritmo de segmentaci´on que utiliza una nueva t´ecnica denominada “umbralizaci´on adaptativa” y que gracias a su reducido tiempo de c´omputo permite trabajar en tiempo real [7]. Lo m´as importante es que devuelva una serie de caracter´ısticas descriptivas para cada regi´on segmentada, que, como se ver´a en la siguiente secci´on, ser´an las que se utilizar´an en el proceso de correspondencia. Emparejamiento de regiones Para realizar la correspondencia de regiones (establecer para cada regi´on de la imagen izquierda su regi´on correspondiente en la imagen derecha) se ha utilizado un m´etodo de comparaci´on basado en la similitud de caracter´ısticas. En este trabajo se propone la caracterizaci´on de las regiones en base a su posici´on, tama˜no, color y forma. Para ello se utilizan las caracter´ısticas que facilita el m´etodo de segmentaci´on, concretamente se utilizan como descriptores de los objetos el

16

Visi´on artificial

centroide (posici´on), el a´ rea (tama˜no), el color y el histograma de distancias al centroide (forma). Existen otras muchas posibilidades para describir un objeto, pero e´ stas se proponen por sus ventajas (en cuanto a su facilidad de obtenci´on) y por ser lo suficientemente significativas para caracterizar una regi´on [8]. En el art´ıculo (p´agina 85) se puede consultar una descripci´on detallada del proceso de extracci´on de cada una de estas caracter´ısticas, as´ı como las ecuaciones definidas para el c´alculo de las distancias que se utilizan en la comparaci´on. A partir del conjunto de caracter´ısticas de una regi´on se forma su vector de caracter´ısticas, el cual permite realizar el proceso de emparejamiento y adem´as, en una etapa posterior, ayudar´a al reconocimiento de los objetos de la escena. Como medida de similitud entre dos regiones se ha tomado el inverso de la media ponderada de las distancias de los descriptores propuestos. En la ecuaci´on 2.2 se puede ver esta medida, donde w0 , . . . , w3 son los pesos utilizados para ajustar el valor de cada componente en el resultado total de la ecuaci´on. De esta forma se puede dar m´as peso a una determinada caracter´ıstica que d´e mejores resultados en el proceso de emparejamiento (como el color y la posici´on) y menos a otras (como la forma y el tama˜no).

δ = 1/(w0 DistCentroide + w1 DistArea + w2 DistColor + w3 DistForma) (2.2) En el proceso de correspondencia se van comparando una a una las regiones que est´en todav´ıa sin emparejar y que adem´as cumplan las restricciones propuestas. Finalmente se emparejar´an aquellas para las que se obtenga el menor valor de δ . C´alculo de la disparidad La disparidad se calcula a partir de la diferencia absoluta de la posici´on en cada imagen de cada una de las regiones emparejadas, esta posici´on vendr´a dada por la componente x de su centroide. Una vez realizado el c´alculo de la disparidad, y teniendo en cuenta la relaci´on inversamente proporcional existente entre disparidad y profundidad, estamos en disposici´on de obtener la profundidad a la que se encuentran los objetos de la escena mediante la ecuaci´on 2.1 (z = f Td ), donde f indica la distancia focal, T la l´ınea base y d el valor de disparidad. Para la c´amara est´ereo utilizada (Bumblebee HICOL-60) estos valores son de f = 0,006m y T = 0,12m.

Est´ereo basado en regiones

17

(a)

(b)

Figura 2.3: (a) Dimensiones del CCD de la c´amara est´ereo. (b) Comparaci´on del error producido en las ecuaciones del c´alculo de la profundidad.

El principal problema es que la disparidad d est´a expresada en p´ıxeles, mientras que el resto de unidades lo est´an en metros. Para unificar las unidades se ha empleado el factor de conversi´on λ = ancho del CCD en metros / ancho de la imagen en p´ıxeles. Para calcular el ancho del CCD de la c´amara necesitamos conocer sus dimensiones y su proporci´on ancho/alto, que para la c´amara utilizada son de 1/3” y de x/y = 4/3 respectivamente (figura 2.3(a)). De forma que substituyendo en la igualdad x2 + y2 = (1/3”)2 podemos despejar el valor de x y obtener as´ı el ancho total en metros. Adem´as existen un error que aparece cuando la distancia obtenida se compara con la distancia real (figura 2.3(b)). Este error es una peque˜na desviaci´on lineal debida a la concavidad de las lentes, el cual se puede corregir a˜nadiendo un factor de correcci´on ρ a la ecuaci´on (este valor se obtiene emp´ıricamente, en la secci´on de experimentaci´on de art´ıculo se puede consultar el proceso seguido [p´agina 91]). En la ecuaci´on 2.3 se muestra la ecuaci´on final con las modificaciones propuestas que se ha utilizado para el c´alculo de la profundidad. z= f

T ρ dλ

(2.3)

18

Visi´on artificial

Figura 2.4: Esquema de la extracci´on de capas.

Extracci´on de capas Lo que se pretende con este proceso es agrupar en una capa todas aquellas regiones que puedan ser aproximadas por una misma profundidad. De esta forma se eliminan los posibles outliers (regiones de un tama˜no muy peque˜no que adem´as no se pueden asignar a ninguna capa) y se minimizan los posibles errores en el c´alculo de la profundidad (debidos a peque˜nas diferencias en los valores de los centroides). Suponiendo que las regiones est´an ordenadas seg´un su profundidad, los pasos que sigue el algoritmo son los siguientes (ver tambi´en figura 2.4): 1. Se toma la primera regi´on y se crea una capa a esa profundidad. 2. Se comprueba si la distancia desde la capa hasta la siguiente regi´on es menor que un umbral u dado. En caso afirmativo se asigna la regi´on a la capa y se recalcula la profundidad como la media entre la profundidad actual de la capa y la de la regi´on. En caso negativo se coge la siguiente regi´on, se crea una nueva capa y se vuelve a repetir este paso (hasta que no queden m´as regiones).

2.5 Detecci´on de objetos En el mismo art´ıculo tambi´en se propone una primera aproximaci´on para la detecci´on y reconocimiento de objetos utilizando informaci´on de color y la forma de las regiones (histograma de distancias hasta el centroide). Debido a que estas caracter´ısticas ya son extra´ıdas previamente en el c´alculo del mapa de disparidad, se consigue que el proceso de reconocimiento sea muy eficiente. En la p´agina 90 se pueden consultar el algoritmo propuesto y los resultados obtenidos.

Detecci´on de objetos

19

Por otro lado, y dentro de las t´ecnicas de visi´on artificial y del reconocimiento de objetos, en el art´ıculo “Improving edge detection in highly noised sheet-metal images” (p´agina 97) se presenta un nuevo m´etodo para la detecci´on robusta y precisa de la orientaci´on y la localizaci´on de objetos en im´agenes de bajo contraste. En este trabajo se proponen nuevas t´ecnicas orientadas a aumentar la precisi´on de los resultados obtenidos. En primer lugar, y para obtener un mayor precisi´on, se realiza un proceso de calibraci´on de la c´amara utilizando el algoritmo de Zhang [16] mediante patrones de calibraci´on 2D. A continuaci´on, y para cada imagen a procesar, se realizan los siguientes pasos: 1. Eliminar la distorsi´on de la imagen a partir de los datos de calibraci´on obtenidos previamente. 2. Segmentar la imagen mediante un algoritmo iterativo con auto-umbral. Mediante este proceso se obtienen unos resultados m´as robustos a cambios en la iluminaci´on o brillos de la imagen. 3. Aplicar la transformada de Hough para la detecci´on de los bordes de los objetos pero aplicando un proceso de clasificaci´on, filtrado y de uni´on ponderada de las l´ıneas obtenidas. 4. Detectar los bordes con mayor ruido utilizando un nuevo tipo de histograma para la detecci´on de la forma (llamado histograma de tama˜no acumulado), que nos permite eliminar los posibles outliers en los bordes obtenidos. 5. Por u´ ltimo, mediante un m´etodo de regresi´on robusta, se calculan las l´ıneas representativas de cada lateral del objeto, as´ı como su posici´on y orientaci´on. Para el proceso de experimentaci´on se utiliz´o una base de datos de 200 im´agenes de planchas met´alicas con diferentes posiciones, orientaciones, y variaciones en las condiciones de iluminaci´on. Los resultados se compararon con medidas muy precisas tomadas sobre la imagen, adem´as se compararon los resultados con los de otros algoritmos de detecci´on. En la tabla 2.1 se puede ver un resumen de estos resultados, donde para el m´etodo propuesto se obtuvo un error medio en la orientaci´on de 0.144◦ y de 1.42 mm en la posici´on. En la p´agina 107 se puede ver una explicaci´on m´as completa del proceso de experimentaci´on.

20

Visi´on artificial M´etodo

M´etodo propuesto RANSAC Iterative re-weighting Regresi´on lineal RR without sampling Model-based technique RR without filtering

Error medio angular 0.144◦ 0.162◦ 0.171◦ 0.181◦ 0.986◦ 2.43◦ 3.67◦

Error medio posici´on 1.42 m 1.46 mm 1.49 mm 1.53 mm 8.7 mm 19.4 mm 25.6 mm

Lateral correcto %

95.7 % 94.2 % 93.9 % 93.6 % 89.1 % 78.6 %

Tabla 2.1: Resultados de la experimentaci´on realizada

Como resultado se obtuvo un algoritmo con un error m´ınimo en la localizaci´on y un coste temporal muy bajo, lo que posibilita su uso en entornos muy exigentes, como el propuesto en la reconstrucci´on del espacio, o en entornos industriales.

2.6 Resultados y conclusiones Para el proceso de experimentaci´on del c´alculo del mapa de disparidad se realizaron pruebas con varias secuencias de im´agenes a diferentes distancias, comparando las distancias estimadas con las distancias reales esperadas. Para el proceso de detecci´on se experiment´o con el reconocimiento de un conjunto de se˜nales de tr´afico, y con una base de datos de planchas met´alicas industriales con diferentes orientaciones y condiciones de iluminaci´on para validar la precisi´on y robustez de los m´etodos propuestos. En la secci´on de experimentaci´on de los art´ıculos resumidos (p´aginas 91 y 107) se pueden consultar todos los resultados obtenidos sobre el algoritmo de segmentaci´on, emparejamiento, c´alculo del mapa de disparidad y detecci´on de objetos. En las figuras 2.5 y 2.6 se muestran algunos de estos resultados. En la primera (2.5) aparece el proceso de segmentaci´on del par est´ereo y el emparejamiento en base a sus caracter´ısticas. En la segunda figura (2.6) se ha incluido otro ejemplo de la segmentaci´on realizada, del proceso de detecci´on de objetos y del mapa de disparidad obtenido.

Resultados y conclusiones

(a)

21

(b)

(c)

(d)

Figura 2.5: (a,b) Par est´ereo a 1.0m. (c) Segmentaci´on. (d) Resultado del emparejamiento.

(a)

(b)

(c)

(d)

Figura 2.6: (a) Imagen de referencia. (b) Segmentaci´on. (c) Resultado de la detecci´on. (d) Mapa de disparidad.

El c´alculo de mapas de disparidad mediante la comparaci´on basada en caracter´ısticas es una soluci´on m´as eficiente que otros m´etodos (como los de correlaci´on por ventana o minimizaci´on de energ´ıa) ya que manipulan muchos menos datos (s´olo se maneja el conjunto de las regiones segmentadas) y facilitan el proceso de detecci´on de objetos en la escena. En contrapartida proporcionan un mapa de disparidad poco denso, pero para algunas aplicaciones pueden ser m´as adecuados, como la navegaci´on guiada, la detecci´on de marcadores y profundidades de los objetos, la ayuda a personas con alguna discapacidad o la conducci´on autom´atica, por enumerar s´olo unos pocos. Algunas l´ıneas de investigaci´on abiertas son: mejorar del algoritmo de segmentaci´on aplicando t´ecnicas de sobresegmentaci´on para reducir el n´umero de errores, tratar el problema de las ocultaciones, probar otro tipo de caracter´ısticas para mejorar el emparejamiento, e incorporar el algoritmo a un sistema aut´onomo de navegaci´on guiada que aproveche la informaci´on de profundidades obtenida y la detecci´on de los objetos de la escena.

Cap´ıtulo 3

Reconstrucci´on y mapeado En este cap´ıtulo se resumen las aportaciones sobre la definici´on de un modelo computacional para la representaci´on del entorno mediante enumeraci´on espacial. Concretamente nos centraremos en los procesos de reconstrucci´on de una escena 3D a partir de im´agenes est´ereo y de su aplicaci´on a un algoritmo de mapeado. Este trabajo se puede encontrar en las siguientes publicaciones: 1. “Scene reconstruction and geometrical rectification from stereo images” (p´agina 111). 2. “Discrete and continuous reconstruction of 3D scenes from disparity maps” (p´agina 123). 3. “Three-Dimensional Mapping from Stereo Images with Geometrical Rectification” (p´agina 139). 4. “3D Reconstruction and Mapping from Stereo Pairs with Geometrical Rectification” (p´agina 165). 5. “Rectified Reconstruction from Stereo Pairs and Robot Mapping” (p´agina 153).

3.1 Introducci´on La reconstrucci´on de entornos desconocidos es un requisito indispensable en muchos campos de la investigaci´on. Muchos autores utilizan la visi´on est´ereo para

24

Reconstrucci´on y mapeado

resolver el problema de la reconstrucci´on 3D o el mapeado. Por ejemplo, una primera soluci´on a la reconstrucci´on tridimensional mediante tecnolog´ıa est´ereo fue propuesta por [17]. Esta soluci´on explora la posibilidad de componer varias vistas 3D a partir de las transformaciones de la c´amara. Hay otras aproximaciones que infieren rejillas 3D a partir de visi´on est´ereo, debido al hecho de que la informaci´on de apariencia no se puede obtener mediante sensores de rango. Para solucionar esto a˜naden una c´amara adicional a los robots m´oviles [18, 19]. Adem´as, se puede a˜nadir un m´odulo de reconocimiento 3D para la identificaci´on de objetos. Esta t´ecnica no es exclusiva de la rob´otica, pues puede ser utilizada en otro tipo de aplicaciones como el guiado autom´atico de m´aquinas o la detecci´on y estimaci´on del movimiento de un veh´ıculo [20]. La visi´on est´ereo puede mejorar la percepci´on de las escenas y el modelado del mundo, prueba de ello son los muchos algoritmos existentes que trabajan con im´agenes de disparidad. El problema es que estos algoritmos no se pueden aplicar de una forma gen´erica a todo tipo de estructuras, dado que las im´agenes o los objetos capturados mediante una c´amara no conservan su tama˜no ni perspectiva real. Esto es debido a que se ven deformados por el efecto de la perspectiva c´onica. En general, cualquier imagen tomada por una c´amara se ve deformada por este efecto, por lo que una reconstrucci´on directa generar´ıa escenas con un aspecto irreal. Hay muy pocos trabajos que se centren en crear buenos resultados en esta reconstrucci´on y en obtener una apariencia real. Sin embargo, podemos encontrar algunas publicaciones interesantes como [21, 23, 22], pero en ninguno de ellos realiza ning´un tipo de rectificado geom´etrico. En estos trabajos se reconstruye objectos espec´ıficos en lugar de escenas completas, por lo que la estructura real del entorno no es recuperada. En otros campos s´ı que podemos encontrar la aplicaci´on de soluciones al problema del rectificado, como en [24] para rectificar carreteras y obtener as´ı su apariencia real. Este trabajo se centra en la reconstrucci´on de la estructura de una escena que muestre su aspecto real, utilizando solamente la informaci´on proporcionada por las im´agenes est´ereo y los mapas de disparidad (en realidad utilizamos mapas de profundidad). Nuestra propuesta no realiza suposiciones sobre la escena o la estructura de los objetos contenidos, ni realiza ning´un proceso de segmentaci´on de objetos intentando identificar formas conocidas. Solo se emplea un par de im´agenes est´ereo. El rectificado de perspectiva permite eliminar el efecto de perspectiva c´onica de la escena adem´as de permitir modificar la orientaci´on de la c´amara. De esta forma el algoritmo recupera la estructura de la escena y

Rectificaci´on geom´etrica

25

otra informaci´on como la geometr´ıa de los objetos, su volumen o profundidad. Adem´as, el m´etodo de reconstrucci´on se ha extendido para realizar el mapeado de una secuencia de im´agenes mediante el mismo procedimiento.

3.2 Rectificaci´on geom´etrica El efecto de perspectiva est´a presente en la forma en que percibimos el entorno que nos rodea. Este efecto deforma el tama˜no y la geometr´ıa del espacio y de los objetos que contiene. Debido a esta deformaci´on se crea el efecto de profundidad, por el que vemos m´as peque˜nos los objetos seg´un aumente la distancia. En la figura 3.1(b) se muestra como el efecto de perspectiva c´onica cambia el tama˜no de los objetos seg´un aumente la distancia al punto de visi´on. La rectificaci´on se utiliza para corregir este efecto y recuperar la geometr´ıa real de la escena. Como ejemplo, la figura 3.1(a) muestra una imagen de un pasillo, en la cual, un p´ıxel que est´e situado en la parte inferior de la imagen representa un volumen muy peque˜no de la escena (debido a que est´a en primer plano). Sin embargo, un p´ıxel que est´e en el centro de la misma imagen representa un volumen mucho mayor (debido a que la parte de la escena representada est´a en el fondo). Si se reconstruyese la escena directamente, se conservar´ıa ese efecto de perspectiva. Por lo que para realizar una reconstrucci´on correcta se deber´ıa de eliminar este efecto, realizando una correcci´on sobre la posici´on de cada uno de los p´ıxeles. De esta forma el resultado mostrar´a el mismo aspecto que la escena real. El rectificado se realiza sobre los valores del mapa de profundidad D, el cual se calcula a partir de un par de im´agenes est´ereo. En principio el mapa de profundidad puede ser calculado por cualquier m´etodo, pero para este trabajo se ha utilizado un algoritmo que combina multi-resoluci´on y minimizaci´on de energ´ıa (EM) [25]. Cada valor D(x, y) del mapa de profundidad contiene la profundidad asociada con el p´ıxel (x, y) de la imagen de referencia (imagen izquierda) [26, 27]. En la figura 3.1(c) se muestra el esquema de este proceso. En la parte izquierda aparece el resultado deseado tras el rectificado de una de las paredes, la cual es rotada α ◦ para recuperar su inclinaci´on real. En el lado derecho de este esquema se muestra el p´ıxel actual Q (obtenido de la imagen de profundidad) con las coordenadas (x, y, D(x, y)), el cual se rectifica para obtener Q′ . Este p´ıxel forma parte de un supuesto objeto de la imagen, que tras rectificar el conjunto de los p´ıxeles que lo componen recuperar´a su tama˜no real.

26

Reconstrucci´on y mapeado

(a)

(b)

(c)

Figura 3.1: (a) Muestra el efecto de la perspectiva c´onica. (b) Muestra como disminuye el tama˜no de los objetos seg´un aumenta la profundidad, debido al efecto de la perspectiva. (c) Esquema del rectificado geom´etrico sobre una escena no rectificada visto desde arriba (plano x-z).

El primer paso para rectificar Q es obtener la l´ınea L, que conecta los puntos V P (punto de fuga) y Q. A continuaci´on se calcula la intersecci´on de esta l´ınea con el plano x-y, obteniendo de esta forma el punto P. A partir de este punto P, la l´ınea L es rotada para que sea perpendicular al plano x-y. De esta forma se obtienen las coordenadas (x, y) de Q′ . El calculo de la coordenada z de Q′ se obtiene utilizando la versi´on modificada de la ecuaci´on z = f Td [11] que se propuso en el cap´ıtulo anterior (p´agina 16, ecuaci´on 2.3). En resumen, la funci´on referida como π en 3.1 muestra como calcular el nuevo punto rectificado Q′ = (x′ , y′ , z′ ) de la forma Q′ = π (Q).    xQ′ π (Q) = yQ′   zQ′

x

−x

y

−y

= xV P + zV P zVQP−zVPQ = yV P + zV P zVQP−zVPQ = f dTλ ρ

(3.1)

Como se puede ver en la ecuaci´on 3.1, es necesario calcular el punto de fuga V P. En general se puede utilizar el punto central de la imagen, con lo que se obtendr´ıa una reconstrucci´on que mantendr´ıa el a´ ngulo original de la c´amara. En el caso de que el punto de vista sea oblicuo, se puede calcular su posici´on y corregir en la reconstrucci´on final obteniendo una perspectiva frontal de la escena final. Cuando no se puede calcular el punto de fuga (im´agenes en las que

Aplicaciones del rectificado geom´etrico

27

no aparezcan rectas, conocidas como “non Manhattan Worlds”), se usar´a por defecto el punto central de la imagen. Para la profundidad del punto de fuga V P se utiliza el m´aximo valor de profundidad de todo el mapa de disparidad D. Para calcular la posici´on (x, y) de V P en la imagen se ha utilizado el m´etodo propuesto en [28]. Este m´etodo utiliza un modelo Bayesiano que combina la geometr´ıa 3D de la escena con informaci´on estad´ıstica de los bordes encontrados en la imagen. Como soluci´on devuelve un a´ ngulo (llamado Ψ) que define la orientaci´on de la c´amara en la direcci´on cos Ψ − sin Ψ. Finalmente, las coordenadas cartesianas (x, y, z) de V P se pueden calcular a partir de las componentes del vector u = (u, v) obtenidas de la forma:

u=

f · (−xV P sin Ψ − yV P cos Ψ) , xV P cos Ψ − yV P sin Ψ

v=

f · zV P xV P cos Ψ − yV P sin Ψ

(3.2)

3.2.1 Calculo del error en el rectificado La imagen 3.2(b) muestra el error en el tama˜no de representaci´on de los objetos despu´es del proceso de rectificado. Para obtener este error se ha utilizado una secuencia de im´agenes en las que aparece el mismo objeto a diferentes distancias (la se˜nal de la imagen 3.2(a)). En esta gr´afica se compara el tama˜no de obtenido despu´es del rectificado con el tama˜no real esperado del objeto. Este error se puede calcular f´acilmente debido a que se conoce el tama˜no real del objeto y las coordenadas esperadas de cada punto.

3.3 Aplicaciones del rectificado geom´etrico El m´etodo propuesto se puede utilizar en un amplio rango de aplicaciones, dado que se recupera informaci´on muy valiosa de la escena, como es la geometr´ıa, el volumen y la profundidad. Por ejemplo, se podr´ıa aplicar en sistemas de Realidad Aumentada (RA) para desarrollar nuevas aplicaciones, mejoras o solucionar problemas relacionados con este campo. A continuaci´on se presentan dos posibles aplicaciones. La primera es la reconstrucci´on tridimensional de escenas utilizando la precisi´on sub-p´ıxel e im´agenes est´ereo. La segunda es la construcci´on de un mapa a partir de una secuencia de im´agenes est´ereo. Estas dos aplicaciones demuestran la utilidad del rectificado geom´etrico y las ventajas de su aplicaci´on a esta clase de problemas. En la

28

Reconstrucci´on y mapeado

(a)

(b)

Figura 3.2: (a) Secuencia de im´agenes usadas para calcular el error en el tama˜no de representaci´on. (b) Comparaci´on del error cometido en el tama˜no seg´un aumenta la profundidad.

secci´on de conclusiones se proponen algunas posibles aplicaciones adicionales.

3.4 Reconstrucci´on utilizando precisi´on sub-p´ıxel Para realizar la reconstrucci´on 3D de una escena en primer lugar se calcula el mapa de profundidad D a partir de un par de im´agenes est´ereo (imagen izquierda o de referencia LI e imagen derecha RI). Este mapa de profundidad se obtiene utilizando los m´etodos propuestos en [25]. A partir de D se realiza el proceso de rectificado geom´etrico. El resultado de esta etapa es una matriz rectificada de v´oxeles R que representa la ocupaci´on espacial. Esta matriz se inicializa a cero y a continuaci´on se rellena de la forma R(x′ , y′ , D(x, y)) = 1 donde (x′ , y′ ) son las coordenadas rectificadas de (x, y), ∀x, y ∈ R/{0 ≤ x ≤ m − 1, 0 ≤ y ≤ n − 1} y (m, n) son las dimensiones de la imagen. El u´ ltimo paso es convertir las coordenadas de los p´ıxeles obtenidos en unidades reales. La ecuaci´on 3.1 muestra como calcular la equivalencia en metros a partir de un valor de disparidad y de las coordenadas rectificadas. En la figura 3.3 se puede ver un esquema de este proceso, y como se utiliza el resultado obtenido en el algoritmo de mapeado (explicado en la siguiente secci´on). En la reconstrucci´on obtenida tras realizar el rectificado aparecen agujeros en la representaci´on. Esto es debido a que los mapas de profundidad son discretos,

Reconstrucci´on utilizando precisi´on sub-p´ıxel

29

Figura 3.3: Esquema de los algoritmos de reconstrucci´on y mapeado.

y por lo tanto al rectificar (o modificar) la posici´on de los p´ıxeles, los v´oxeles resultantes se separan en la reconstrucci´on 3D (en la figura 3.4 se puede ver el espacio creado tras la rectificaci´on entre los p´ıxeles representados). Este efecto aumenta de forma proporcional seg´un la profundidad del objecto, puesto que sufrir´a una rectificaci´on mayor. Para minimizar este problema se ha utilizado la precisi´on sub-p´ıxel para introducir p´ıxeles ficticios y as´ı rellenar estos agujeros. El n´umero de p´ıxels ficticios creados tambi´en aumenta seg´un la distancia, introduciendo n = 1−(z/Dmax ) p´ıxeles entre dos p´ıxeles consecutivos. Esta ecuaci´on devuelve un valor m´ınimo cuando los p´ıxeles se encuentran en primer plano y m´aximo cuando pertenecen al fondo. A continuaci´on se resumen todos los pasos de este algoritmo: 1. D := CalculateDepthMap(LI, RI) 2. while ( x ≤ m − 1 ) (a) while ( y ≤ n − 1 ) i. (x′ , y′ ) := π (x, y) ii. R(x′ , y′ , D(⌊x⌋, ⌊y⌋)) = 1 iii. y = y + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) (b) x = x + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) 3. Display(R)

3.4.1 Experimentaci´on sobre la reconstrucci´on En la figura 3.4 se pueden ver dos ejemplos de reconstrucci´on utilizando la precisi´on sub-p´ıxel. En las im´agenes de la izquierda se muestra la malla obtenida durante la reconstrucci´on del mismo objecto pero en el primero no se ha utilizado la precisi´on sub-p´ıxel y en el segundo s´ı. En la parte de la derecha aparece

30

Reconstrucci´on y mapeado

Figura 3.4: Ejemplos de reconstrucci´on utilizando la precisi´on sub-p´ıxel.

(a)

(b)

(c)

(d)

(e)

Figura 3.5: Ejemplos de rectificado geom´etrico utilizando el mapa de disparidad sint´etico de un pasillo.

otro ejemplo de reconstrucci´on utilizando v´oxeles. La primera imagen muestra la reconstrucci´on sin la precisi´on sub-p´ıxel. Como se puede ver los v´oxeles est´an separados debido al rectificado geom´etrico. En la segunda imagen s´ı que se ha aplicado, obteniendo un resultado mucho m´as realista al eliminar los agujeros. La figura 3.5 muestra ejemplos de una reconstrucci´on 3D utilizando un mapa de profundidad sint´etico que simula un pasillo (figura (a)). Este ejemplo clarifica el efecto conseguido con el rectificado geom´etrico. En la figura (b) se puede ver la segmentaci´on realizada para calcular el punto de fuga, el cual se ha estimado que es de −4◦ mediante el m´etodo descrito en la secci´on 3.2. En las figuras (c), (d) y (e) se compara el efecto del rectificado: (c) muestra una reconstrucci´on sin aplicar el rectificado (visto desde arriba), y (d) y (e) muestran vistas superiores y laterales del resultado de la reconstrucci´on despu´es de aplicar el rectificado. Como se puede ver, los muros aparecen rectos y paralelos, como era de esperar.

Algoritmo de mapeado

31

3.5 Algoritmo de mapeado Para realizar el mapeado de la escena se ha utilizado una secuencia de N pares de im´agenes est´ereo de la escena a reconstruir, numeradas de la forma (LI0 , RI0 ), (LI1 , RI1 ), ..., (LIN−1 , RIN−1 ). Esta secuencia de im´agenes se ha tomado a distancias equidistantes entre si. Una vez capturado un par de im´agenes est´ereo (LIk , RIk ), se calcula el mapa de disparidad correspondiente Dk y se a˜nade a la lista Σ que contiene todos los mapas de disparidad. A continuaci´on se utiliza el algoritmo de rectificado geom´etrico para calcular las matrices rectificadas Rk de cada mapa de disparidad. Para cada matriz Rk se calcula su intersecci´on con la matriz anterior (Rk−1 ∩ Rk ), y se a˜nade el resultado a la matriz global Mmap , la cual representa el mapeado final de la escena. En la figura 3.3 se puede ver un resumen de este proceso. En esta aproximaci´on la posici´on de los frames se obtiene directamente de la odometr´ıa del robot. Para reducir el efecto de los errores en la odometr´ıa se aplica un filtro c´ubico en cada una de las intersecciones realizadas entre mapas. Este filtro F (explicado a continuaci´on) discretiza el resultado obtenido, transform´andolo en una rejilla de cubos rectangulares. Por u´ ltimo, el resultado obtenido (Mmap ) es representado calculando la equivalencia en unidades reales (metros). A continuaci´on se resumen los pasos del algoritmo de mapeado: 1. for each Dk ∈ Σ do (a) Dk := CalculateDepthMap(LIk , RIk ) (b) Rk := ApplyRecti f ication(Dk ) (c) Mmap := Mmap ∩ Rk 2. Mmap := ApplyCubicFilter(Mmap) 3. Display(Mmap )

El filtro c´ubico F aplica la ecuaci´on g(x, y, z) := Σ(i, j,k)∈S f (i, j, k) a cada cubo de la matriz, donde S representa el conjunto de coordenadas de los puntos que est´an en la vecindad de g(x, y, z), incluyendo el propio punto. De esta forma, se suma la ocupaci´on espacial de cada cubo en su punto medio, y cada celda contiene el conjunto de lecturas de esa porci´on del espacio. Denominamos “votos” al n´umero de lecturas que se suman en cada cubo, estos votos representan

32

Reconstrucci´on y mapeado

la probabilidad de ocupaci´on de esa porci´on del espacio. Gracias a este procedimiento conseguimos reducir los posibles errores de odometr´ıa, pues los valores obtenidos no depender´an u´ nicamente de la lectura de una posici´on del espacio.

3.5.1 Experimentaci´on sobre el mapeado Para realizar la experimentaci´on sobre el algoritmo de mapeado se han tomado dos secuencias de 30 im´agenes de dos pasillos diferentes (im´agenes 3.7 y 3.8). Las figuras 3.7(a) y 3.8(a) muestran las tres primeras capturas de cada secuencia y los mapas de profundidad correspondientes. El objetivo principal es que los muros, suelo y techo aparezcan sin inclinaci´on en la reconstrucci´on, y que no aparezca ruido de por medio en el espacio del pasillo. Tambi´en es importante que las columnas (representadas por c´ırculos en el esquema del pasillo de la figura 3.7(b)) y que la m´aquina de caf´e (representada por un rect´angulo en el esquema de la figura 3.8(b)) sean detectados correctamente. En las figuras 3.7(c, d) y 3.8(c, d) se muestran los resultados obtenidos del mapeado. En 3.7(c) y 3.8(c) no se ha aplicado el rectificado geom´etrico, como se puede ver se obtiene una reconstrucci´on incorrecta: el espacio intermedio del pasillo est´a completamente lleno de ruido. Esto es debido a que al acumularse las matrices sin rectificar en el mapeado se solapan unas con otras, como se puede ver en el esquema de la figura 3.6.

(a)

(b)

Figura 3.6: (a) Ejemplo del error cometido en el mapeado al no aplicar el rectificado geom´etrico. (b) Resultado correcto esperado tras aplicar el rectificado.

En 3.7(d) y 3.8(d) s´ı que se ha aplicado el rectificado, obteniendo unos resultados mucho mejores. El pasillo est´a correctamente definido, sin ruido, y se puede identificar claramente todos los elementos: las paredes, las columnas y la m´aquina de caf´e en la parte de la derecha de cada uno de los resultados. Para estos ejemplos se ha utilizado un filtro c´ubico con un tama˜no de 3×3×3 y un n´umero de votos m´ınimo de 5.

Resultados de rendimiento

33

(a)

(b)

(c)

(d)

Figura 3.7: (a) Secuencia de im´agenes para el mapeado. (b) Esquema del pasillo. (c, d) Resultados del mapeado del pasillo sin aplicar rectificado y aplic´andolo, respectivamente.

(a)

(b)

(c)

(d)

Figura 3.8: (a) Secuencia de im´agenes para el mapeado. (b) Esquema del pasillo. (c, d) Resultados del mapeado del pasillo sin aplicar el rectificado y aplic´andolo, respectivamente.

3.6 Resultados de rendimiento Para realizar los experimentos se ha utilizado un Pentium IV a 3,20GHz con 2GB de RAM y una tarjeta gr´afica de 512MB. La reconstrucci´on de los mapas se ha

34

Reconstrucci´on y mapeado

realizado utilizando una matriz de v´oxeles con un tama˜no de 320 × 240 × 256 y mapas de profundidad con resoluciones de 320 × 240 p´ıxeles. Hay que tener en cuenta que u´ nicamente se procesan los p´ıxeles no nulos (con profundidad finita) de los mapas de profundidad. El coste computacional depende linealmente del tama˜no de las im´agenes de entrada y de la precisi´on requerida para la reconstrucci´on. En los casos propuestos el algoritmo obtiene un buen rendimiento: tarda una media de 9 segundos para procesar toda una secuencia de 30 im´agenes (considerando que cada imagen tiene aproximadamente un 70 % de p´ıxeles no nulos), y algo menos de 0.3 segundos para realizar la reconstrucci´on de una imagen de forma individual.

3.7 Trabajo previo En este cap´ıtulo se han resumido principalmente los u´ ltimos resultados de los trabajos publicados sobre reconstrucci´on y mapeado. Pero previamente se publicaron otros m´etodos o aproximaciones a estos resultados: • En el art´ıculo “Scene reconstruction and geometrical rectification from stereo images” (p´agina 111) se present´o una primera soluci´on a la reconstrucci´on del entorno a partir de im´agenes de disparidad. Para realizar este proceso se propon´ıan y comparaban tres posibles algoritmos de reconstrucci´on: un m´etodo lineal y otros dos que hac´ıan uso de la funci´on logaritmo para aumentar el rectificado seg´un la distancia. • En “Discrete and continuous reconstruction of 3D scenes from disparity maps” (p´agina 123) se ampl´ıa el trabajo anterior con un nuevo m´etodo de reconstrucci´on continua para intentar solventar el problema de los huecos producidos tras el rectificado. • Posteriormente, en “Three-Dimensional Mapping from Stereo Images with Geometrical Rectification” (p´agina 139) se propone una nueva ecuaci´on de reconstrucci´on, que ya utiliza el concepto de punto de fuga pero que u´ nicamente funciona para perspectivas frontales. Adem´as se propone una primera aproximaci´on al algoritmo de mapeado.

Conclusiones

35

Los resultados presentados en este cap´ıtulo ampl´ıan estos trabajos previos con: una nueva formulaci´on para el proceso de rectificado geom´etrico (que permite cualquier tipo de perspectiva), un nuevo algoritmo de mapeado, el uso de un filtro c´ubico y de la precisi´on sub-p´ıxel, y una nueva secci´on de experimentaci´on.

3.8 Conclusiones Se ha presentado un nuevo m´etodo para realizar la reconstrucci´on de escenas a partir de im´agenes est´ereo, adem´as de un algoritmo para realizar el mapeado de un entorno a partir de una secuencia de im´agenes est´ereo. Estos m´etodos son una mejora sobre los m´etodos previos debido a que se ha utilizado un nuevo filtro de rectificado, la precisi´on sub-p´ıxel, y nuevos algoritmos para la reconstrucci´on y el mapeado. Estos m´etodos usan el rectificado geom´etrico para eliminar el efecto de la perspectiva c´onica, con la intenci´on de recuperar el aspecto real de la escena en el resultado final. Adem´as el rectificado tambi´en permite recuperar informaci´on muy importante de la escena, como es la geometr´ıa de los objetos, su volumen y profundidad. Sin embargo, la calidad final obtenida en la reconstrucci´on depender´a de la calidad de los mapas de profundidad con los que se trabaje. Los resultados muestran como este proceso corrige el efecto de la perspectiva y como ayuda a mejorar el proceso de emparejamiento en el algoritmo de mapeado. Estos algoritmos se podr´ıan utilizar en una amplia variedad de aplicaciones debido al buen rendimiento que obtienen y su baja carga computacional adicional. Los trabajos actuales est´an orientados a aplicar los resultados obtenidos en un sistema de Realidad Aumentada. Estos sistemas podr´ıan aprovechar la informaci´on de geometr´ıa obtenida para desarrollar nuevas aplicaciones (como nuevos tipos de interfaces o juegos) y para solucionar problemas relacionados con esta disciplina (como el visual tracking, el alineamiento o el ocultamiento). Tambi´en se pretende utilizar este trabajo en un sistema rob´otico aut´onomo que utilice la informaci´on del entorno para identificar ciertas a´ reas espec´ıficas.

Cap´ıtulo 4

Lenguaje de modelado En este cap´ıtulo se presenta un resumen del trabajo realizado sobre modelos computacionales para la definici´on formal de sistemas gr´aficos. Este trabajo se recoge en las siguientes publicaciones: • “Hacia un modelo integral para la generaci´on de Mundos Virtuales” (p´agina 179) • “Formal model to integrate Multi-Agent Systems and Interactive Graphic Systems” (p´agina 203) • “Modeling a Mobile Robot using a Grammatical Model” (p´agina 215) • “A Grammatical Approach to the Modeling of an Autonomous Robot” (p´agina 227)

4.1 Introducci´on Una vez obtenida la estructura del espacio, se hace necesario dotar al modelo de una representaci´on de mayor potencia, estableciendo un m´etodo que recoja las relaciones entre los objetos del espacio y que permita, adem´as, una representaci´on m´as compacta. En este cap´ıtulo se propone un lenguaje para el modelado de mundos virtuales basado en gram´aticas, mediante el cual se obtienen diversas ventajas: permite la representaci´on del espacio en forma de cadenas pertenecientes a un lenguaje y facilita la expresi´on de relaciones entre los componentes de la cadena.

38

Lenguaje de modelado

Este modelo adem´as afronta uno de los problemas m´as importantes en los sistemas gr´aficos: la diversidad de los dispositivos visuales y de interacci´on que existen en la actualidad. Junto a esto, la heterogeneidad de los motores gr´aficos, los motores f´ısicos y los m´odulos de Inteligencia Artificial, propicia que no exista un modelo que a´une todos estos aspectos de una forma integral y coherente. En la p´agina 182 se realiza un estudio del arte sobre la diversidad existente en este tipo de sistemas. El modelo propuesto se basa en la definici´on de una gram´atica que integra toda la actividad necesaria de un sistema gr´afico, su visualizaci´on y su interacci´on con el usuario. La descripci´on de un mundo (ya sea un entorno real o una escena sint´etica) se presenta como una secuencia ordenada de primitivas, transformaciones y actores. Estos conceptos se definen en un sentido mucho m´as amplio de lo que es habitual en un lenguaje de modelado cl´asico: Las primitivas no son simples primitivas de dibujo sino acciones que se deben ejecutar en un determinado sistema de representaci´on, gr´afico o no; las transformaciones modifican el comportamiento de las primitivas dependiendo de su naturaleza; y los actores definen la actividad del sistema, los cuales se visualizan mediante primitivas y transformaciones, y usan el concepto de eventos para controlar la activaci´on de su comportamiento. Este modelo tiene como virtud la separaci´on de la actividad del sistema de los dispositivos visuales y de interacci´on concretos que lo componen. Gracias a esto los dispositivos pueden ser sustituidos por otros dispositivos o por simulaciones, los elementos del sistema pueden ser reutilizados, y la representaci´on gr´afica puede ser diferente dependiendo del dispositivo visual. En definitiva, se ha pretendido dise˜nar un sistema integral, adaptativo, reutilizable y gen´erico. En las pr´oximas secciones se presenta la gram´atica que define este lenguaje, al cual hemos denominado como “lenguaje Generador de Mundos Virtuales” o GMV. Por u´ ltimo se incluye un caso de estudio para explicar el uso del modelo propuesto. En este ejemplo se formaliza un sistema de navegaci´on aut´onoma para un robot que utiliza informaci´on multimodal y un sistema h´ıbrido de control [30].

4.2 Modelo para la Generaci´on de Mundos Virtuales En el modelo GMV propuesto, una escena gr´afica (o de forma gen´erica, un mundo virtual) se describe como una secuencia ordenada de primitivas, transforma-

Modelo para la Generaci´on de Mundos Virtuales

39

ciones y actores, cuya funci´on se define como: • Una primitiva es la descripci´on o representaci´on de un objeto en un sistema de representaci´on dado. Normalmente consistir´an en primitivas gr´aficas, pero tambi´en podr´ıan ser sonidos u otro tipo de primitiva en un espacio de representaci´on. • Las transformaciones modifican el comportamiento de las primitivas. • Los actores son los componentes que realizar´an la actividad del sistema, cuya representaci´on ser´a definida mediante primitivas y transformaciones. Para modelar las acciones de los actores se introduce adem´as el concepto de evento. Estos eventos provocar´an la activaci´on de un determinado comportamiento en uno o varios actores. Cada elemento de la escena se representa mediante un s´ımbolo del conjunto de s´ımbolos de la escena. A partir de estos s´ımbolos, y siguiendo unas reglas sint´acticas, se podr´an construir cadenas para describir mundos virtuales. Estas reglas definen la gram´atica M del lenguaje [29] que veremos a continuaci´on.

4.2.1 Sintaxis La gram´atica M queda definida por una tupla M = < Σ, N, R, s >, donde Σ es el conjunto de s´ımbolos terminales, N es el conjunto de s´ımbolos no terminales, R es el conjunto de reglas sint´acticas (una regla sint´actica es una aplicaci´on de la forma r: N → W ∗ , donde W = Σ∪N) y s ∈ N es el s´ımbolo inicial de la gram´atica. En nuestro caso, M queda definida como: 1. Σ = P ∪ T ∪ O ∪ AD ATT R , donde: • P: conjunto de s´ımbolos para las primitivas. • T : conjunto de s´ımbolos para las transformaciones. • O = {· ()}: s´ımbolos para la indicaci´on del a´ mbito “()” y la concatenaci´on de s´ımbolos “·”. • AD AT T R : conjunto de s´ımbolos para los actores, donde D es el conjunto de todos los tipos de eventos generados por el sistema y AT T R es el conjunto de todos los atributos de los actores, los cuales definen

40

Lenguaje de modelado todos sus posibles estados. Por ejemplo, el actor aH a su attr realizar´ actividad cuando reciba el evento eh , donde h ∈ H, H ⊆ D y attr ∈ AT T R es su estado actual. ´ 2. N = {MUNDO, OBJETOS, OBJECTO, ACTOR, TRANSFORMACION, FIGURA}. 3. Las reglas gramaticales R se definen como: • Regla 1. MUNDO → OBJETOS • Regla 2. OBJETOS → OBJECTO | OBJECTO · OBJETOS • Regla 3. OBJECTO → FIGURA | TRANSFORM. | ACTOR D H • Regla 4. ACTOR → aH attr , aattr ∈ AAT T R , H ⊆ D ´ → t(OBJETOS), t ∈ T • Regla 5. TRANSFORMACION

• Regla 6. FIGURA → p+ , p ∈ P 4. s = MUNDO, es el s´ımbolo inicial de la gram´atica. La gram´atica M es una gram´atica independiente del contexto, o de tipo 2, y por lo tanto se asegura que existe un procedimiento que verifica si una escena est´a bien construida o no, o dicho de otro modo, que la cadena pertenece o no al lenguaje L(M).

4.2.2 Sem´antica Adem´as de la sintaxis del lenguaje es necesario definir su sem´antica, la cual determina la funcionalidad de las cadenas generadas. Existen varias formas de definici´on: operacional, denotacional y axiom´atica. En este caso vamos a utilizar el m´etodo denotacional para su descripci´on mediante funciones matem´aticas. Funci´on sem´antica de las primitivas (Regla 6) La regla 6 describe una figura como una secuencia de primitivas, cuya sem´antica queda definida a trav´es de la funci´on α , de la forma:

α :P→G

(4.1)

Modelo para la Generaci´on de Mundos Virtuales

41

Cada s´ımbolo del conjunto P tendr´a su correspondiente representaci´on mediante primitivas en un sistema geom´etrico G dado. Dependiendo de la definici´on de α y del sistema geom´etrico G, la representaci´on del sistema podr´a variar. La funci´on α proporciona una capa de abstracci´on con respecto a diferentes sistemas gr´aficos o de representaci´on. Debido a esto, solo es necesario una u´ nica cadena descriptiva para reproducir la misma escena en diferentes sistemas de representaci´on, tanto visuales como no visuales (como un sistema rob´otico, por ejemplo). Funci´on sem´antica de las transformaciones (Regla 5) En la regla 5 se utilizan dos funciones para describir la sem´antica de una transformaci´on, cuyo a´ mbito estar´a delimitado por los s´ımbolos “()”:

β :T →G δ :T →G

(4.2)

La funci´on β representa el inicio de una transformaci´on, la cual ser´a activada cuando se encuentre el s´ımbolo “(”. La funci´on δ define el final de la transformaci´on activada previamente por la funci´on β . Esta funci´on se realizar´a al encontrar el s´ımbolo “)”. Funci´on sem´antica de los actores (Regla 4) La regla 4 define la evoluci´on en el tiempo de los actores, por esta raz´on hemos denominado esta funci´on como “funci´on de evoluci´on” λ . Su expresi´on general se define como: D λ : AD AT T R × E → L(M)

(4.3)

donde E D es el conjunto de todos los eventos posibles. La funci´on λ tendr´a una expresi´on diferente dependiendo de la evoluci´on del actor y de los eventos recibidos. Sin embargo podemos generalizar esta funci´on como:  u0 ∈ L(M) if h = h0    ... h λ (aH AT T R , e ) = u ∈ L(M) if h = hn    nH aAT T R if h ∈ /H

      

(4.4)

42

Lenguaje de modelado

donde u0 , . . . , un son cadenas de L(M), y {h0 , . . . , hn } es el subconjunto de eventos H ⊆ D a los que el actor aH a preparado para responder. Esta funAT T R est´ ci´on nos indica que un actor puede evolucionar y transformarse en otra cadena ui cuando recibe un determinado evento. Sin embargo, el actor permanecer´a inalterado cuando reciba alg´un evento que no pertenezca al conjunto de eventos para los cuales tiene definida alguna acci´on. Para poder representar a los actores en un espacio geom´etrico G se deben convertir en una cadena de primitivas y transformaciones. Esta operaci´on es llevada a cabo por la funci´on de visualizaci´on θ : V ′ θ : AD AT T R × E → L(M )

(4.5)

donde V ⊆ D es el conjunto de eventos creados en el proceso de visualizaci´on, y L(M ′ ) es un subconjunto del lenguaje L(M) formado por cadenas sin actores. Los eventos de visualizaci´on sirven para definir el tipo de visualizaci´on que se desea de entre los diferentes tipos de vista que tenga el sistema. Adem´as nos permitir´an filtrar determinados elementos y devolver diferentes representaciones seg´un el sistema de dibujado. Funci´on sem´antica de: OBJECTO, OBJECTOS y MUNDO (Reglas 1, 2 y 3) La funci´on sem´antica de las reglas 1, 2 y 3 trocea las cadenas y las prepara para poder ser procesadas por el algoritmo del sistema. Este proceso es llevado a cabo mediante las funciones η , π y ϕ que veremos a continuaci´on. Se define la funci´on η , llamada funci´on de evoluci´on del sistema, la cual realizar´a una serie de llamadas recursivas a la funci´on λ para llevar a cabo la evoluci´on de los actores:  w    t(η (v, S)) η (w, S) = i  ∏ i λ (aH attr , e )   e ∈S η (u, S) · η (v, S)

if if if if

w∈P w = t(v) ∧ t ∈ T w = aH attr w = u · v ∧ u, v ∈ L(M)

      

(4.6)

Esta funci´on recibe un conjunto de eventos ordenados S = e1 · e2 . . . en y una i cadena w de L(M). El operador ∏ei ∈S λ (aH on de las attr , e ) realiza la concatenaci´ cadenas devueltas por λ .

Modelo para la Generaci´on de Mundos Virtuales

43

Para representar los actores contenidos en la cadena primero tenemos que transformarlos a primitivas y transformaciones. Para realizar esta acci´on se define la funci´on de visualizaci´on del sistema π . La cual recibir´a una cadena de L(M) y una secuencia de eventos de visualizaci´on ordenada S′ = e1 · e2 . . . en , y devolver´a una cadena del lenguaje L(M ′ ):   w if w ∈ P       if w = t(v) t(π (v, S′ )) ′ (4.7) π (w, S ) = , ei ) if w = aH   ∏ei ∈S θ (aH AT T R AT T R     π (u, S′ ) · π (v, S′ ) if w = u · v

Por u´ ltimo, para representar la cadena en un sistema geom´etrico G dado, definimos la funci´on ϕ . La cual recibir´a una cadena de L(M ′ ) formada u´ nicamente por primitivas y transformaciones:   if w ∈ P  α (w)  ϕ (w) = β (t); ϕ (v); δ (t) if w = t(v) ∧ v ∈ L(M) ∧ t ∈ T   ϕ (u); ϕ (v) if w = u· v ∧ u, v ∈ L(M)

(4.8)

Eventos y generadores

Los eventos son el mecanismo utilizado para modelar la actividad del sistema. Estos eventos pueden ser producidos por otra actividad o por un dispositivo de entrada, y se definen como: Se define edc como el evento de tipo d ∈ D que tiene como datos asociados c. Cada actor, seg´un su definici´on, estar´a preparado para realizar una determinada actividad cuando reciba un evento de un tipo concreto. El concepto de evento dentro de un actor es importante, ya que define cu´ando se va a ejecutar la actividad independientemente del origen del evento. Esta independencia es necesaria para la generalizaci´on de los dispositivos de entrada, ya que independiza el dispositivo de la actividad que se debe procesar, y adem´as facilita la realizaci´on de simulaciones. Definimos tambi´en el concepto de generador de eventos Cd (t) como una funci´on que produce una secuencia ordenada de eventos de tipo d en el instante de tiempo t. Es posible que estos generadores produzcan el mismo tipo de evento, por lo que se hace necesario establecer un orden de prioridad para evitar ambig¨uedades.

44

Lenguaje de modelado

Dados dos generadores Ci y C j , los cuales pueden crear el mismo tipo de evento, se establece que si i < j entonces el sistema dar´a una mayor prioridad a los eventos generados por Ci . Algoritmo del sistema Una vez definidos todos los elementos implicados en el modelo se puede establecer el algoritmo que ejecutar´a todo el sistema, tanto la evoluci´on como la visualizaci´on del mismo, para cada instante de tiempo t o frame: 1) 2) 3)

4)

w = w0 t=0 mientras w 6= ε hacer - S = Obtener los eventos de los generadores C∗ en orden de prioridad. - Z = Extraer los eventos visuales de S. - wnext = η (w, S) - v = π (w, Z) - g = ϕ (v) - w = wnext - t = t +1 fin mientras

Resumidamente, los pasos que realiza este algoritmo son: 1. En primer lugar se realiza la inicializaci´on del sistema: se asigna la cadena inicial wo y se pone a cero el contador de tiempo. 2. A continuaci´on se recogen los eventos del sistema llamando a los generadores de eventos C∗ y se separan los eventos de visualizaci´on asign´andolos a Z. 3. Seguidamente se llama a la funci´on de evoluci´on del sistema η con la cadena actual y el conjunto de eventos obtenidos S. Esta funci´on nos devolver´a la siguiente cadena wnext del sistema. 4. A continuaci´on se llama a la funci´on de visualizaci´on del sistema π para obtener una cadena v que contenga solamente los elementos a visualizar. 5. Esta cadena v se la pasamos a la funci´on ϕ para realizar la representaci´on en el sistema geom´etrico g dado.

Caso pr´actico

45

6. Para continuar asignamos wnext a la cadena actual e incrementamos el contador de tiempo. 7. El algoritmo finalizar´a cuando w contenga una cadena vac´ıa. Esta cadena se puede obtener mediante un evento especial que se genere cuando se desee terminar el algoritmo.

4.3 Caso pr´actico En este caso pr´actico se plantea un sistema de navegaci´on aut´onoma en el que un robot est´a programado para transportar objetos en un entorno conocido. Este robot dispone de varios sensores e inputs que le proporcionan la siguiente informaci´on: • Un sensor de rango que le permitir´a detectar obst´aculos y distancias. • Imagen de una c´amara a color para identificar objetos y lugares mediante el uso de landmarks o marcadores. • Una representaci´on interna o mapa del entorno en el cual se va a mover. • Instrucciones de un supervisor humano, el cual podr´a u´ nicamente podr´a dar o´ rdenes de alto nivel, como por ejemplo detener la tarea actual o empezar una nueva tarea. Esta informaci´on ser´a combinada utilizando un algoritmo multimodal basado en prioridades [30], para que el robot pueda atender las o´ rdenes del supervisor y a la vez utilizar la informaci´on de sus sensores para evitar obst´aculos, e indentificar objetos o lugares. Un sistema de este tipo se puede modelar utilizando un esquema h´ıbrido cl´asico, como el que se muestra en la figura 4.1, basado en la combinaci´on de comportamientos reactivos y proactivos. Se pretende adaptar este esquema y sus componentes al lenguaje de modelado GMV para aprovechar algunas de sus ventajas: independencia de los dispositivos de entrada y del sistema de representaci´on. En la figura 4.1 el “Mundo” representa el entorno real y el “modelo del mundo” el mapa interno del que dispone el robot. El sistema reactivo estar´ıa constituido por varios generadores de eventos para los sensores y las instrucciones del supervisor. El sistema proactivo

46

Lenguaje de modelado

Figura 4.1: Esquema de un sistema rob´otico h´ıbrido.

representar´ıa la inteligencia del robot. El estado actual es el conjunto de atributos del robot y el proceso de fusi´on ser´ıa llevado a cabo por su funci´on de evoluci´on. Primitivas y transformaciones En este sistema solo necesitamos una primitiva para representar al robot, la cual puede ser modificada por dos posibles transformaciones: mover y girar (tabla 4.1). Cuando el sistema sea ejecutado en un entorno real la primitiva del robot representar´a el robot real, y las transformaciones a las acciones reales de movimiento realizadas por el robot. Si se utiliza en un simulador estas primitivas y transformaciones representar´an instrucciones de visualizaci´on en el sistema gr´afico (SG).

PRobot T Move

Entorno real Ninguna acci´on Mover una distancia dist

T Rotate

Girar un a´ ngulo angle

Simulador Dibujar el robot en el SG Mover una distancia dist en el SG Girar un a´ ngulo angle en el SG

Tabla 4.1: Primitivas y transformaciones del sistema rob´otico.

Eventos y generadores En el sistema rob´otico propuesto se van a definir los siguientes generadores de eventos: • gLaser: Genera un evento de tipo eLaser cuando detecta un obst´aculo.

Caso pr´actico

47

• gCamera: Genera un evento eCamera cuando se detecta un marcador en la imagen. Estos marcadores se utilizan para identificar las localizaciones en el entorno. • gDecide: Genera un evento de tipo eDecide en cada frame para activar en el robot la acci´on de toma de decisiones. • gExecute: Genera un evento eExecute que indica al sistema que tiene que llevar a cabo las acciones del robot en el espacio de representaci´on actual. Si este espacio de representaci´on es el entorno real se realizar´an las operaciones reales sobre la plataforma rob´otica (mover, rotar, etc.), y si es el simulado se utilizar´an las operaciones de representaci´on en el sistema gr´afico. • gObjective: Genera un evento eObjective para establecer un nuevo marcador objetivo. Este generador ser´a activado cuando el supervisor d´e la instrucci´on de cambio de objetivo. En la tabla 4.2 se muestra un resumen de los generadores de eventos del sistema y los eventos asociados. Adem´as se tiene que establecer un orden de prioridad entre los generadores. Este orden se ha definido como: gLaser, gCamera, gObjective, gDecide, gExecute. Por lo que los eventos relacionados con los sensores tienen una mayor prioridad que los de toma de decisiones y de ejecuci´on.

Actores En el sistema planteado el u´ nico actor es el propio robot, que se define como: eLaser,eCamera,eDecide,eExecute,eOb jective ARobot

(4.9)

donde el super´ındice son los eventos para los que est´a preparado el robot y el sub´ındice sus atributos, cuyo significado es:

48

Lenguaje de modelado

Generadores y Descripci´on eventos gLaser = Evento generado cuaneLaser do el l´aser detecta un obst´aculo gCamera = Evento producido cuando eCamera la c´amara detecta un marcador gDecide = Evento generado en cada eDecide frame para indicar al robot la toma de decisiones gExecute = Evento generado cada fraeExecute me para ejecutar las acciones del robot en el entorno real o en el simulador gOb jective = Evento producido cuando eOb jective el supervisor cambia el marcador objetivo

Datos asociados dist: distancia hasta el obst´aculo; angle: a´ ngulo con respecto al obst´aculo marker: marcador detectado

Sin datos

Sin datos

marker: marcador objetivo

Tabla 4.2: Generadores y eventos del sistema rob´otico

• El grid o rejilla representa el entorno en el que se mueve el robot. En cada celda de la rejilla se almacenan los datos obtenidos por los sensores para esa regi´on del espacio (si por ejemplo se ha detectado un obst´aculo o un marcador). • Row y column son la posici´on ocupada por el robot en el grid. • Angle es la orientaci´on del robot. • Objective es el marcador objetivo. • Action es la cadena que indica la pr´oxima acci´on a realizar por el robot.

Caso pr´actico

49

Para simplificar, en la siguiente ecuaci´on este actor ser´a referido como: E ARobot

En la funci´on de evoluci´on del robot definiremos su comportamiento, que en este caso comprender´a tambi´en su inteligencia artificial ante determinados eventos. Esta funci´on se define como: E λ (ARobot , e) =

 E ARobot    E  ARobot    E ARobot E  α (ARobot )    E  ARobot    E ARobot

if e = eLaser if e = eCamera if e = eDecide if e = eExecute if e = eOb jective otherwise

(4.10)

donde e es el evento recibido por el actor y el s´ımbolo de ap´ostrofe (’) en un atributo indica que ese valor se ve modificado como consecuencia del evento recibido. A continuaci´on se describe la forma en que cambian estos atributos: • Si e = eLaser se actualiza el grid (g) para indicar que se ha detectado un obst´aculo. La celda a marcar se encontrar´a en la posici´on: (r + dist cos(ang + angle), c + dist sin(ang + angle)). • Si e = eCamera se actualiza el grid (g) para indicar que se ha detectado un marcado. La celda a marcar ser´a: (r + dist cos(ang), c + dist sin(ang)). • Si e = eDecide se actualiza la posici´on y orientaci´on actual del robot (fila r, columna c y a´ ngulo ang) y las acciones a realizar. En esta funci´on es donde se podr´a incluir la inteligencia del robot, para que tome una decisi´on u otra dependiendo del estado de todos sus atributos. • Si e = eExecute se representar´an las acciones del robot en el espacio de visualizaci´on utilizado. • Si e = eOb jective significa que el supervisor ha seleccionado un nuevo objetivo, por lo que se asignar´a al objetivo actual “o” el nuevo valor (marker). • En cualquier otro caso el actor permanecer´a inalterado.

50

Lenguaje de modelado

Cadena inicial La cadena inicial del sistema se define de la forma: eLaser,eCam.,eDecide,eExec.,eOb jct. ARobot

(4.11)

An´alisis y resultados Para el an´alisis del sistema se propusieron un conjunto de pruebas para la validaci´on de diferentes caracter´ısticas: • Test de la funci´on de evoluci´on: se probaron varios algoritmos de inteligencia artificial implementados en esta funci´on. • Independencia de los dispositivos de entrada: esto se realiz´o a˜nadiendo nuevos tipos de sensores, como la c´amara Kinect. • Independencia del sistema de visualizaci´on: se probaron diferentes sistemas 2D, 3D y entorno real. • Test de simulaci´on: se substituyeron algunos sensores por simuladores. • Test de extensibilidad: se prob´o que con simples modificaciones en la cadena de entrada se pod´ıa a˜nadir nuevas instancias de robots y crear de esta forma un sistema multi-rob´otico. En la p´agina 237 se puede consultar una descripci´on m´as detallada de la experimentaci´on realizada y de los resultados obtenidos. En la figura 4.2 se muestran un par de capturas del sistema desarrollado utilizando modelos de visualizaci´on 2D y 3D. Otros casos de estudio Adem´as del ejemplo aqu´ı propuesto se pueden consultar otros casos de estudio en los art´ıculos correspondientes, como la simulaci´on de incendios forestales producidos por tormentas (p´agina 194) o la utilizaci´on del modelo GMV para trabajar con sistemas multiagente (p´agina 209).

Conclusiones y trabajo futuro

51

Figura 4.2: Resultados de la simulaci´on con diferentes sistemas de visualizaci´on 2D y 3D.

4.4 Conclusiones y trabajo futuro El modelo presentado permite definir formalmente a trav´es de una gram´atica un sistema gr´afico (o no gr´afico como hemos visto) y la interacci´on con los dispositivos f´ısicos de una forma generalizada. De esta forma se consigue la correcta separaci´on de la actividad del sistema de la de los dispositivos visuales y de interacci´on. La separaci´on de los dispositivos de entrada de la definici´on del sistema se ha articulado a trav´es de los generadores de eventos, que levantan una capa entre el hardware de entrada y la representaci´on del sistema. Para enlazar las acciones generadas por los dispositivos de entrada se utiliza el concepto de eventos. En general, se puede comprobar que todo el modelo intenta separar las partes dependientes del tipo de dispositivo de las de la definici´on formal de un sistema gr´afico. La t´ecnica empleada para dicha separaci´on es utilizar modelos matem´aticos que transformen las acciones de los dispositivos, tanto visuales como de entrada, en acciones m´as generales que puedan ser identificados por el sistema independientemente del origen de la acci´on. Esto supone varias ventajas: en primer lugar los dispositivos de entrada pueden ser sustituidos por otros dispositivos o por simulaciones de estos. Por otro lado existe la posibilidad de que los elementos del sistema sean reutilizados. Adem´as, la representaci´on de los elementos puede ser visual o no visual, e incluso ser diferente dependiendo del dispositivo de visualizaci´on o de las necesidades del usuario. As´ı, si el dispositivo tiene unas caracter´ısticas concretas, la representaci´on siempre se podr´a adaptar al dispositivo.

52

Lenguaje de modelado

Como trabajo futuro se pretende estudiar la posibilidad de obtener la funci´on inversa de la ecuaci´on de dibujado ϕ definida en GMV. Esta funci´on recibe como entrada una cadena w con la descripci´on de una escena y devuelve su representaci´on gr´afica en un sistema G dado, de la forma: G = ϕ (w). Al calcular la inversa de esta funci´on tendr´ıamos que a partir de la representaci´on gr´afica de una escena (el modelo de datos propuesto en el cap´ıtulo anterior) se obtendr´ıa una cadena que lo describa: w = ϕ −1 (G). Como una primera aproximaci´on se plantea el uso de gram´aticas evolutivas y de grafos de adyacencias para realizar la estimaci´on de esta funci´on inversa. En el primer caso, siguiendo las reglas gramaticales establecidas por GMV, se generan cadenas mediante el uso de algoritmos evolutivos, y posteriormente se comparan con la estructura del espacio de la escena a obtener. En el segundo caso se aborda el problema analizando la estructura del espacio y generando grafos de adyacencias, sobre los cuales se pretende utilizar el algoritmo de inferencia de lenguajes k-testables para grafos que se propone en el cap´ıtulo siguiente. Este algoritmo nos permite la comprobaci´on de la pertenencia a un lenguaje L(M ′ ) dado de las estructuras k-testables extra´ıdas de estos grafos.

Cap´ıtulo 5

Lenguajes k-testables para grafos En este cap´ıtulo se resume el contenido de los art´ıculos “Inference of k-testable directed acyclic graph languages” (p´agina 249) y “Structural Graph Extraction from Images” (p´agina 271) en los cuales se propone un algoritmo de inferencia para aprendizaje de lenguajes k-testables para grafos ac´ıclicos dirigidos. Adem´as tambi´en se presentan tres nuevos m´etodos para la extracci´on de este tipo de grafos a partir de im´agenes.

5.1 Introducci´on Los algoritmos de inferencia en lenguajes de cadenas regulares son ampliamente utilizados en muchas tareas, desde la bioinform´atica [49, 42] hasta el reconocimiento de scripts [45]. En el trabajo [32] se puede encontrar un completo estudio bibliogr´afico. Sin embargo en muchos a´ mbitos es necesario el uso de informaci´on estructural, la cual no se puede modelar f´acilmente con subclases de un lenguaje regular de cadenas. En trabajos como los de Sakakibara [47, 48] u otros m´as recientes [41, 31] se presentan algoritmos que trabajan con este tipo de informaci´on mediante gram´aticas independientes del contexto de varios tipos. Las estructuras en forma de a´ rbol son en realidad un tipo simple de grafo pero con unas propiedades muy interesantes. En varios trabajos se estudian los lenguajes de inferencia para a´ rboles, como en [33, 39], o su aplicaci´on a tareas

54

Lenguajes k-testables para grafos

reales [44, 37]. En el campo de la inferencia gramatical, cuando se consideran grafos m´as generales, aparece el problema de la complejidad computacional, lo cual se suele solucionar reduciendo la representaci´on de los grafos a alg´un tipo de recorrido por su estructura. A pesar de esta complejidad existe un gran n´umero de campos que aprovechan la gran potencia de representaci´on que proporcionan los grafos, como por ejemplo la biolog´ıa, sociolog´ıa, o una amplia variedad de algoritmos matem´aticos e inform´aticos como el problema del viajante. El poder expresivo de las primitivas de un grafo es especialmente utilizado en tareas de reconocimiento de patrones para la representaci´on de objetos [53] o para la bioinform´atica [57]. Esto es debido a que los grafos proporcionan una estructura apropiada para la representaci´on de cualquier clase de relaci´on entre los datos o componentes de un problema dado. En este trabajo se consideran los grafos como elementos de un lenguaje formal. En este marco, en el trabajo de Rozemberg [46] se resumen, entre otros resultados, los dos principales formalismos utilizados para generar lenguajes de grafos (gram´aticas de sustituci´on de nodos e hyper-arcos). Pero a pesar de todos estos trabajos sobre el paradigma generador, no existe ninguna soluci´on sobre el reconocimiento que encaje correctamente todas las clases de lenguajes de grafos. En algunos trabajos se estudia las gram´aticas de inferencia para grafos, pero todas ellas se basan en el isomorfismo de grafos, y, por lo tanto, tienen una alta complejidad computacional [35, 36, 38]. En la soluci´on propuesta se extiende la familia de lenguajes k-testables y ktestables en el sentido estricto (k-TSS) [40] a los lenguajes para grafos ac´ıclicos dirigidos. Seguidamente, y teniendo en cuenta el trabajo de [43], se propone un modelo de aut´omata para lenguajes de grafos ac´ıclicos dirigidos. Finalmente se presenta un nuevo algoritmo de inferencia gramatical para el aprendizaje de la clase k-TSS de grafos ac´ıclicos dirigidos. El algoritmo propuesto tiene una complejidad polin´omica e identifica esta clase de lenguajes a partir de datos positivos.

5.2 Notaci´on y definiciones Se define un grafo etiquetado dirigido (de ahora en adelante referido simplemente como grafo si no se indica otra cosa) como una tupla g = (V, E, µ ), donde V es el conjunto finito de nodos (tambi´en llamados v´ertices), E ⊆ (V × V ) es el conjunto de arcos, y µ : V → Σ es la funci´on de etiquetado de los nodos. Nos

Notaci´on y definiciones

55

referiremos a los componentes de un grafo g como Vg , Eg y µg solo cuando sea necesario. Para un nodo dado v, los arcos de entrada ser´an aquellos en sentido (u, v), respectivamente los de salida lo ser´an en (v, u). La aridad de entrada de un nodo v se define como idg(v) = |{(u, v) ∈ E}|, mientras que su aridad de salida vendr´a dado por odg(v) = |{(v, u) ∈ E}|. Para un grafo dado g = (V, E, µ ), denotaremos sus v´ertices de la forma Vmn (g) = {v ∈ V : idg(v) = n ∧ odg(v) = m}. Adem´as utilizaremos εg para referenciar los grafos vac´ıos (un grafo sin nodos), y V 0 (g) y V0 (g) para los nodos con aridad cero de entrada o salida respectivamente. Definimos el alfabeto tipado Σστ como la asociaci´on de un alfabeto Σ con la relaci´on r ⊆ (Σ×N×N). Dado que los nodos de un grafo pueden tener diferentes grados de entrada y de salida, es necesario establecer los s´ımbolos que pueden etiquetar esos nodos. Denotaremos como Σnm al conjunto {s ∈ Σ : (s, n, m) ∈ r}, el cual nos indica los s´ımbolos disponibles para etiquetar los nodos con aridad de entrada n y de salida m. Una vez definido el alfabeto tipado, podemos establecer el conjunto de todos los posibles grafos etiquetados sobre este alfabeto. Formalmente, G (Στσ ) denota el conjunto de grafos que utiliza el alfabeto Στσ . Un lenguaje de grafos es cualquier conjunto formado como LG ⊆ G (Στσ ). Dado un alfabeto tipado Στσ , el alfabeto extendido se define como el conjunto: b = {anm : a ∈ Σ, (a, n, m) ∈ r} Σ

A partir del alfabeto extendido, y dado un grafo g = (V, E, µ ), se define su b de tal manera que pagrafo extendido como gˆ = (V, E, µˆ ), donde µˆ : V → Σ, n ra cada nodo v en Vm (g), si µ (v) = a, entonces µˆ (v) = anm . Intuitivamente, las etiquetas de los nodos del grafo extendido gˆ incluyen expl´ıcitamente la aridad de entrada y de salida de cada nodo del grafo. En la figura 5.1 se muestra un ejemplo. En adelante se considerar´a por simplicidad u´ nicamente el esqueleto de los grafos y lenguajes para estos. Por esqueleto de un grafo nos referimos a grafos cuyos nodos internos v (con odg(v) 6= 0) est´an etiquetados con el mismo s´ımbolo. Sin embargo, los resultados obtenidos se pueden utilizar de la misma forma con grafos de tipo general. Adem´as, para clarificar la representaci´on de los grafos se utilizar´an letras griegas para los nodos internos y letras del alfabeto latino para los nodos frontera (aquellos con aridad de salida cero).

56

Lenguajes k-testables para grafos

σ g:

σ

σ

σ21 g: ˆ

σ σ

a

σ

b

σ20

σ11

σ11 σ11

a20

σ22

b10

Figura 5.1: Ejemplo de un grafo ac´ıclico dirigido g y su correspondiente grafo extendido g. ˆ Por claridad se han etiquetado los nodos internos (aquellos con aridad de salida mayor que cero) con letras griegas.

Para una secuencia de nodos w1 , w2 , . . . , wk , si (wi , wi+1 ) ∈ E para 1 ≤ i < k, entonces decimos que existe un camino desde w1 hasta wk . Se define la longitud de este camino como el n´umero de nodos en la secuencia. En un grafo es posible que existan varios caminos entre un par de nodos u y v dados. Se denota el conjunto de los caminos m´as cortos desde u hasta v por ((u, v)), y la longitud del camino (o caminos) m´as corto como |((u, v))|. Si un camino no existe entonces su longitud ser´a infinita, adem´as la longitud de un nodo a si mismo es |((u, u))| = 1. Se define el di´ametro de un grafo g = (V, E, µ ) como la m´axima distancia entre dos nodos del grafo: diameter(g) = max {|((u, v))| : |((u, v))| < ∞} u,v∈V

Dado un grafo g = (V, E, µ ), el subgrafo de g con ra´ız en el nodo v y radio k se define como Rg (v, k) = (W, E ′ , µ ′ ) tal que W = {u ∈ V : |((v, u))| ≤ k} y donde E ′ = E ∩ (W × W ), esto es, el conjunto de arcos restringido a los nodos en W . De la misma forma, µ ′ es la restricci´on de la funci´on µ a los nodos en W . Adem´as extendemos esta definici´on para considerar, para un grafo g = (V, E, µ ), el subgrafo de g con ra´ız en el nodo v denotado por Rg (v) = (W, E ′ , µ ′ ) donde W = {u ∈ V : |((v, u))| < ∞} con el conjunto E ′ y la funci´on de etiquetado µ ′ definidas de la misma forma.

5.2.1 Multiconjuntos Recordamos algunas definiciones de la teor´ıa de multiconjuntos que utilizaremos en la funci´on de transici´on del nuevo modelo de aut´omata para grafos. En el texto siguiente denotaremos al conjunto de los n´umeros naturales como N.

Lenguaje k-testable para grafos

57

Para un conjunto dado D, un multiconjunto de D es un par hD, f i donde f es una funci´on de enumeraci´on de la forma f : D → N. Esto es, para un a ∈ D, la funci´on f (a) denota el n´umero de elementos de a en el multiconjunto. Adem´as decimos que a se encuentra en A, y escribimos a ∈ A, si y solo si f (a) 6= 0. El tama˜no de un multiconjunto se define como el n´umero de elementos que contiene. Este n´umero puede ser finito, en este caso el multiconjunto ser´a finito. El tama˜no de un multiconjunto M se denota por |M|. En particular nos interesan los tipos de multiconjuntos cuyo tama˜no es igual a una constante n. Esto es, la clase de todos los multiconjuntos hD, f i tal que ∑a∈D f (a) = n. En lo que sigue denotaremos esta clase por Mn (D). Decimos que un multiconjunto AhD, f i est´a vac´ıo si y solo si para todo a ∈ D, f (a) = 0. De esta forma, para cualquier par de multiconjuntos A = hD, f i y B = hD, gi, decimos que A = B si y solo si para todo a ∈ D, f (a) = g(a), y, de la misma forma, A es un subconjunto de B (A ⊆ B) si y solo si para todo a ∈ D, f (a) ≤ g(a). Adem´as definimos la suma de dos multiconjuntos A = hD, f i y B = hD, gi (denotado A⊕B) como el multiconjunto C = hD, hi donde para todo a ∈ D, h(a) = f (a) + g(a). Por u´ ltimo, se extiende la definici´on de conjunto potencia a multiconjuntos, de la forma: dado un multiconjunto C, su conjunto potencia es el conjunto de todos los posibles subconjuntos de C, y se denotar´a como 2C . Un concepto muy u´ til para trabajar con multiconjuntos es el mapeado de Parikh. Formalmente, el mapeado de Parikh puede verse como la aplicaci´on Ψ : D∗ → Nn donde D = {d1 , d2 , . . . , dn } y D∗ es el conjunto de cadenas sobre D. Para cualquier x ∈ D∗ , este mapeado se define como Ψ(x) = (#d1 , #d2 , . . . , #dn ) donde #di denota el n´umero de ocurrencias de d j en x. Esto nos permite representar un multiconjunto utilizando cualquier cadena con el mapeado de Parikh correcto (es decir, no importa la ordenaci´on). Este concepto lo utilizaremos a continuaci´on.

5.3 Lenguaje k-testable para grafos Los lenguajes testables y testables en el sentido estricto [40] se definen mediante un vector (I, S, F) que representa las estructuras permitidas en los miembros del lenguaje. Estos conceptos est´an definidos para lenguajes de cadenas y a´ rboles, como podemos ver en [34, 33]. En esta secci´on extendemos su definici´on para considerar los lenguajes de grafos. Dado un alfabeto tipado Στσ y el correspondiente conjunto de grafos sobre este alfabeto G (Στσ ), para cualquier g = (V, E, µ ) ∈ G (Στσ ), definimos el vector

58

Lenguajes k-testables para grafos

de k-testabilidad Tk (g) = (Ik−1 (g), Pk (g), Fk−1 (g)) donde:  Ik−1 (g) = Rgˆ (v, k − 1) : v ∈ V 0 (g)

Pk (g) = {Rgˆ (v, k) : v ∈ V, diameter(Rg (v)) ≥ k}

Fk−1 (g) = {Rgˆ (v, k − 1) : v ∈ V, diameter(Rg (v)) ≤ k − 1} El conjunto Pk (g) = 0/ si diameter(g) < k. A continuaci´on se incluyen algunos ejemplos. Ejemplo. Dado el grafo de la figura 5.1, en la figura 5.2 se muestran los componentes del vector 3-testable extra´ıdos. Los nodos de los subgrafos de cada componente de un vector k-testable se etiquetan mediante la funci´on µ extendida µˆ . Para cada nodo, la funci´on de etiquetado extendida respecta la aridad de entrada y salida que ten´ıa en el grafo original. Por ejemplo, los nodos etiquetados con a20 en la figura 5.2 no tienen siempre dos arcos de entrada, sin embargo se mantiene este etiquetado porque es el que ten´ıa en el grafo original. Esta funci´on extendida permite tratar de forma sencilla informaci´on estructural muy importante, la cual utilizaremos posteriormente en el algoritmo de inferencia propuesto.

I2 (g) =

   

   σ21

P3 (g) =

σ20 σ11               

      

;

F2 (g) =

σ20

σ21 σ11 σ11

    σ11    a20

σ22 ; a20

b10

σ21

σ11 ; σ11 σ22

       

σ11 σ11 ;

a20

; a20 ; b10

σ22

σ22 a20

b10

      

;

      

Figura 5.2: Componentes del vector 3-testable obtenidos a partir del grafo de la figura 5.1.

Para obtener el vector k-testable no es necesario imponer la condici´on de grafo ac´ıclico. Como ejemplo, en la figura 5.3 se muestra los componentes del vector

Lenguaje k-testable para grafos

59

2-testable a partir de un grafo c´ıclico. En este caso el conjunto I1 (g) est´a vac´ıo dado que no hay ning´un nodo inicial, es decir, el conjunto V 0 (g) est´a vac´ıo.

σ

g:

σ

σ

P2 (g) =

   σ12

σ12 ;

F1 (g) =

σ22

σ 

b10

;

σ21

;

σ21

σ 

σ21

;

σ22

σ

σ

I1 (g) = 0; /

σ

σ

b

σ

    σ11

σ

σ21

; b10

σ21

;

σ12

σ11

  σ11     σ11 

Figura 5.3: Grafo dirigido y su correspondiente vector 2-testable.

Las funciones Ik , Fk y Pk se pueden extender de forma natural a un conjunto de grafos G de la forma:

Ik (G) = {Ik (g) : g ∈ G} ;

Pk (G) = {Pk (g) : g ∈ G} ;

Fk (G) = {Fk (g) : g ∈ G}

Para cualquier grafo G con k ≥ 2, se cumple la propiedad Lk+1 (G) ⊆ Lk (G). Esta propiedad est´a demostrada para lenguajes de cadenas [34] y a´ rboles [33], en este caso se necesita demostrar que, para cualquier g ∈ Lk+1 (G), g se encuentra tambi´en en Lk (G), o en otras palabras, se tiene que demostrar que para cualquier g ∈ Lk+1 (G), Ik−1 (g) ⊆ Ik−1 (G), Fk−1 (g) ⊆ Fk−1 (G) y Pk (g) ⊆ Pk (G). Los conjuntos Ik−1 (G) y Fk−1 (G) se pueden obtener a partir de Ik (G) y Fk (G) de la forma: Ik−1 (G) = Ik−1 (Ik (G)) Fk−1 (G) = Fk−1 (Fk (G)) En el caso de Pk (G) y Pk+1 (G), para cada grafo g ∈ Lk+1 (G), se distinguen dos casos:

60

Lenguajes k-testables para grafos • Si diameter(g) ≤ k, entonces Pk+1 (g) = 0, / el cual es un subconjunto de Pk (G). • Si diameter(g) > k, entonces Pk (g) = Pk (Pk+1 (g)) ⊆ Pk (Pk+1 (G)) = Pk (G).

Por lo tanto, cualquier grafo que cumpla las condiciones de un lenguaje (k + 1)-testable tambi´en cumplir´a las del k-testable, o expresado formalmente: Lk+1 (G) ⊆ Lk (G) En la p´agina 254 se puede consultar una definici´on m´as extensa del lenguaje k-testable y k-testable en el sentido estricto [40] para grafos que hemos propuesto, as´ı como la demostraci´on de otras propiedades de los lenguajes k-testables. En la siguiente secci´on se propone un nuevo modelo de aut´omata de grafos para grafos ac´ıclicos diridos y se utiliza este modelo para proponer un algoritmo de inferencia gramatical.

5.4 Aut´omata para grafos El modelo de aut´omata propuesto se basa en el trabajo de Potthoff [43]. Este aut´omata no puede ser utilizado para procesar toda clase de grafos dirigidos, sino solamente aquellos sin ciclos. La funci´on de transici´on del aut´omata utiliza el concepto de multiconjunto explicado antes, el cual nos permite procesar los grafos de una forma natural sin tener en cuenta el orden entre los nodos, excepto el orden parcial impuesto por los arcos dirigidos. El an´alisis de grafos es, en esencia, similar al an´alisis realizado para los lenguajes de a´ rboles, pero considerando que no existe orden entre los nodos hermanos. Este proceso se puede realizar en tiempo polin´omico utilizando un esquema de programaci´on din´amica similar al propuesto por Zhang en [50] para obtener una distancia de edici´on entre dos a´ rboles sin ordenaci´on. b Definici´on. Sea Σστ un alfabeto tipado y m la aridad m´axima de salida en Σ. σ Un aut´omata para grafos que use el lenguaje Στ se define como una tupla GA = b δ , F), donde Q es un conjunto finito de estados, Σ b es el alfabeto extendido (Q, Σ, σ de Στ , el conjunto F ⊆ Q contiene los estados finales y δ es un conjunto de funciones de transici´on definidas como:

δ=

[

0≤ j≤m j : ∃n > 0, Σnj 6= 0/

δj

Aut´omata para grafos

61

donde cada δ j se define como: bnj × M j (Q) → 2M1 (Q) , δj : Σ

0≤ j≤m

y donde M j representa la clase de multiconjunto de tama˜no j seg´un se defini´o en la secci´on 5.2.1. Estas funciones de transici´on utilizan el alfabeto extendido en lugar del original. Esto permite procesar los grafos teniendo en cuenta tanto la aridad de salida (que ser´ıa el tama˜no del multiconjunto) como la aridad de entrada (almacenada en el s´ımbolo correspondiente del alfabeto extendido). Al extender la funci´on de transici´on para que funcione en grafos, se tiene que realizar un an´alisis recursivo a partir de cada nodo cuya aridad de entrada sea cero. Formalmente, para un grafo g dado la funci´on δ se extiende de la forma:

b → 2M (Q) δ : G (Σ)

δ (g) = δ (g) ˆ =

M

δ (Rgˆ (vi ))

vi ∈V 0 (g) ˆ

donde:

δ (Rg (vi )) = δm (µgˆ (vi ), Mi1 ⊕ . . . ⊕ Mim ) : Mi j ∈ δ (Rg (w j )), (vi , w j ) ∈ E El lenguaje aceptado por este aut´omata se define como: L(GA) = {g ∈ G (Στσ ) : ∀q ∈ δ (g), ˆ q ∈ F} Por lo que un grafo g es aceptado por el aut´omata GA si y solo si la funci´on de transici´on devuelve un multiconjunto para el que todo estado q, cuya funci´on de enumeraci´on sea distinta de cero, dicho estado sea final. Estos conjuntos ser´an denominados multiconjuntos finales. Ejemplo. En la figura 5.4 se puede ver un esquema del an´alisis realizado por el aut´omata propuesto sobre del grafo de la figura 5.1. En la siguiente tabla se puede ver las funciones de transici´on extra´ıdas:

62

Lenguajes k-testables para grafos

δ (a20 , λ )= q1 δ (b10 , λ )= q2 δ (σ22 , q1 q2 )= q1 δ (σ11 , q1 )= q2 δ (σ21 , q2 q2 )= q1 δ (σ20 , q1 q2 )= q1 , where q1 ∈ F δ (σ21 , q2 q2 ) = q1

δ (σ20 , q1 q2 ) = q1

δ (σ11 , q1 ) = q2

δ (σ11 , q1 ) = q2 δ (σ11 , q1 ) = q2

δ (a20 , λ ) = q1

δ (σ22 , q1 q2 ) = q1 δ (b10 , λ ) = q2

Figura 5.4: Ejemplo del parsing realizado por el aut´omata para el grafo de la figura 5.1. El grafo se recorre recursivamente hasta alcanzar los nodos cuya aridad de salida sea cero. Las flechas muestran el orden del proceso de parsing.

5.5 Algoritmo de inferencia En esta secci´on proponemos el algoritmo de inferencia de lenguajes k-testables para grafos (ver algoritmo 1). Este algoritmo sigue el mismo esquema que se ha utilizado previamente para inferir lenguajes k-testables para cadenas y a´ rboles [34, 33]. En primer lugar el algoritmo obtiene el conjunto de estados a partir de las estructuras del grafo de di´ametro k − 1 en el vector k-testable de la muestra de entrada. Seguidamente define el conjunto de estados finales (F o estados de aceptaci´on) y extrae las funciones de transici´on usando los subgrafos de Fk−1 (G) y Pk (G). A continuaci´on se incluye una traza de ejemplo de este algoritmo. Ejemplo. A partir del conjunto G de grafos mostrados en la figura 5.5 y con k = 2 se extrae los elementos del vector 2-testable que se muestran en la figura 5.6. En primer lugar, el algoritmo construye el conjunto de estados a partir de I1 (G), F1 (G) y I1 (P2 (G)), de la forma:

Algoritmo de inferencia

63

Algoritmo 1. Algoritmo de inferencia gramatical a partir de muestras positivas para lenguajes k-testables de grafos. Requiere: Un conjunto G de grafos. Un valor k ≥ 2 M´etodo: Calcular (Ik−1 (G), Pk (G), Fk−1 (G)) bτσ su alfabeto extendido. Sea Στσ el alfabeto tipado de G y Σ for {g ∈ {Ik−1 (G) ∪ Fk−1 (G) ∪ Ik−1 (Pk (G))}} do Sea Q[g] el nuevo estado obtenido de g end for F = {Q[g] : g ∈ Ik−1 (G)} // Estados de aceptaci´on for all {g ∈ Fk−1 (G) con (v, wi ) ∈ Eg , v ∈ V 0 (g), 1 ≤ i ≤ m} do δm (µ (v), Q[Rg (w1 )] . . . Q[Rg (wm )]) = Q[g] end for for all {g ∈ Pk (G) con v ∈ V 0 (g), (v, wi ) ∈ Eg , 1 ≤ i ≤ m} do δm (µ (v), Q[Rg (w1 , k − 1)] . . .Q[Rg (wm , k − 1)]) = Q[Rg (v, k − 1)] end for bτσ , F, δ ) return (Q, Σ Fin M´etodo

G=

       σ   σ    

σ σ

      

σ

σ

σ ;

σ

a

b

σ

σ σ

b

σ

a

Figura 5.5: Conjunto de grafos de ejemplo.

σ σ

b

     

Q [ a20 ] = q1 ; Q [ b10 ] = q2 ; Q [ σ22 ] = q3 ; Q [ σ11 ] = q4 ; Q [ σ21 ] = q5 ; Q [ σ20 ] = q6 El algoritmo obtiene el conjunto de estados finales (o de aceptaci´on), que en este caso es F = {q6 }. A continuaci´on procesa los grafos en Fk−1 (G) (cuyo di´ametro en este caso es de 1), obteniendo las transiciones: δ (a20 , λ ) = q1 y δ (b10 , λ ) = q2 (en este caso λ denota la cadena vac´ıa). Seguidamente el algoritmo procesa los grafos en Pk (G). Por ejemplo, para el siguiente grafo en P2 (G):

σ21

σ20

σ11

64

Lenguajes k-testables para grafos

I1 (G) =

(

P2 (G) =

σ11 σ21

;

σ11 σ22

;

σ11 a20

σ20

)

    

;

F1 (G) =

σ20

    σ21

; a20

σ11

;

σ21 σ11

σ11

σ20

; b10

)

a20 ; b10

;

σ11

σ22

(

σ22

;

σ11

σ11

    

   σ11 

Figura 5.6: Elementos del vector 2-testable para los grafos de ejemplo de la figura 5.5.

El algoritmo extrae los subgrafos de tama˜no k − 1 con ra´ız en los nodos hijos de σ20 y el grafo de di´ametro k − 1 con ra´ız en el nodo σ20 . En este caso el algoritmo a˜nade la transici´on: δ (σ20 , q5 q4 ) = q6 . Una vez procesadas todas las estructuras en el vector k-testable se obtiene el siguiente aut´omata:

δ (a20 , λ )= q1 δ (b10 , λ )= q2 δ (σ20 , q5 q4 )= q6 , donde q6 ∈ F δ (σ21 , q4 q4 )= q5 δ (σ11 , q3 )= q4

δ (σ11 , q5 )= q4 δ (σ11 , q1 )= q4 δ (σ22 , q1 q2 )= q3 δ (σ20 , q4 q4 )= q6 , donde q6 ∈ F δ (σ22 , q4 q4 )= q3

En la p´agina 262 se puede consultar una explicaci´on m´as completa del algoritmo de inferencia propuesto, as´ı como otras trazas y ejemplos. Adem´as tambi´en se demuestran en estas p´aginas dos propiedades muy importantes del algoritmo, las cuales son: • Identifica en el l´ımite a partir de muestras positivas. • Se ejecuta en tiempo polin´omico.

Experimentaci´on

65

Figura 5.7: Ejemplo de representaci´on mediante un grafo de una mol´ecula ARN con hairpin loops con la secuencia AAAUCGCCGGAAAAGGCAAU y dos bucles. Se ha seguido el orden 5′ → 3′ para definir la orientaci´on de los arcos del grafo.

5.6 Experimentaci´on A continuaci´on se presentan los resultados experimentales obtenidos de la aplicaci´on del m´etodo propuesto al reconocimiento de grafos ac´ıclicos dirigidos. Para realizar esta tarea se han generado una base de datos sint´etica de grafos que representan mol´eculas ARN. Concretamente se han utilizado las mol´eculas conocidas como “hairpin RNA molecules”. Esta estructura biol´ogica se forma a partir de subsecuencias complementarias de ARN las cuales forman bucles o hairpin loops en sus l´ımites. Para construir una estructura de este tipo definimos el alfabeto Σ con las cuatro posibles bases del ARN: adenina (A), guanina (G), timina (U) y citosina (C), donde la adenina y la timina al igual que la citosina y la guanina son complementarias. Estas relaciones complementarias se utilizan para la formaci´on de la cadena y para obtener la posici´on de los bucles. Como se puede observar en la figura 5.7 cuando en el plegado de la cadena aparezcan bases no complementarias se formar´a un bucle. Adem´as tambi´en se considera el orden de la secuencia proporcionado por la estructura molecular para definir la orientaci´on de los arcos del grafo (desde la mol´ecula situada en el extremo 5′ hasta el otro extremo 3′ ). La base de datos de grafos de este tipo se ha generado siguiendo los siguientes criterios: • Los valores de las bases se obtuvo de forma aleatoria, pero siguiendo los criterios explicados para el pareado. • La longitud de los bucles se genera de forma aleatoria siguiendo una distribuci´on normal con una media de 6 bases y una desviaci´on est´andar de 1.5 bases.

66

Lenguajes k-testables para grafos

Figura 5.8: Resultados de la experimentaci´on utilizando la base de datos sint´etica de mol´eculas ARN de tipo hairpin.

• La longitud de las mol´eculas se obtiene de forma aleatoria en el rango [10, 60]. • La posici´on del bucle se genera tambi´en de forma aleatoria, permitiendo secuencias sin bucles (las cuales suceden con una probabilidad de 0.2 %). En el proceso de inferencia se utilizaron conjuntos de entrenamiento incrementales y considerando valores de k desde 2 hasta 4. En el test se utilizaron tres conjuntos de 10000 muestras sin solapamiento para las cuales se comprob´o su pertenencia al lenguaje. En la figura 5.8 se muestra la media de los resultados obtenidos. Como se esperaba, los lenguajes 2-testables necesitan menos informaci´on para converger al lenguaje objetivo. Esto es debido a que las estructuras de tama˜no menor generalizan m´as, y por lo tanto se necesitan menos muestras para representar el lenguaje. En el siguiente experimento se tuvo en cuenta u´ nicamente la informaci´on estructural de los grafos (sin etiquetas). La experimentaci´on se realiz´o de la misma forma, obteniendo los resultados mostrados en la figura 5.9. Estos resultados muestran que los lenguajes k-testables para grafos propuestos son adecuados para modelar estructuras biol´ogicas. Sin embargo, no dispone-

Grafos ac´ıclicos dirigidos a partir de im´agenes

67

Figura 5.9: Resultados de la experimentaci´on considerando u´ nicamente la estructura de los grafos.

mos de bases de datos reales para aplicar nuestro algoritmo en otro tipo de tareas como la clasificaci´on. Por este motivo se realiz´o el trabajo que se propone en la siguiente secci´on, en la cual se proponen nuevos algoritmos para la extracci´on de grafos ac´ıclicos dirigidos que representen estructuras reales.

5.7 Grafos ac´ıclicos dirigidos a partir de im´agenes En el art´ıculo “Structural Graph Extraction from Images” (p´agina 271) se presentan tres nuevos algoritmos que permiten extraer y representar la estructura de una imagen a partir de grafos ac´ıclicos dirigidos. Este trabajo fue motivado por la necesidad de generar bases de datos reales de este tipo de grafos para realizar la experimentaci´on de los lenguajes k-testables para grafos. En las siguientes secciones se describen los m´etodos propuestos: (1) grafos obtenidos de la vecindad del a´ rbol q-tree de una imagen, (2) mediante el uso de una rejilla estructural y (3) a partir de la extracci´on del esqueleto que representa una imagen.

68

Lenguajes k-testables para grafos

5.7.1 Grafos de vecindad El primer m´etodo extrae el grafo ac´ıclico dirigido a partir de los caminos de vecindad obtenidos en la representaci´on en forma de q-tree de una imagen. El grafo se crea siguiendo un recorrido de arriba hacia abajo y de izquierda a derecha del a´ rbol q-tree y uniendo los nodos no vac´ıos encontrados. Para cada nodo no vac´ıo se calculan sus 8-vecinos, teniendo en cuenta que: no se a˜naden arcos hacia nodos que ya hayan sido procesados, y que cuando se tenga que crear un arco desde un nodo no apuntado (que no existan arcos que lleguen a e´ l) hasta uno que s´ı que lo est´e, se deber´a cambiar la direcci´on de dicho arco. Estos criterios se utilizan para evitar la formaci´on de ciclos. El c´alculo de los 8-vecinos de un nodo en un a´ rbol q-tree no es una tarea trivial debido a que los vecinos se pueden encontrar en ramas diferentes y a distintos niveles de profundidad en el a´ rbol (ver figura 5.10).

Figura 5.10: Ejemplo de q-tree y de los 8-vecinos calculados a partir del nodo J.

Debido a esto es necesario utilizar un sistema que nos permita calcular dicha

Grafos ac´ıclicos dirigidos a partir de im´agenes

69

vecindad. En el algoritmo propuesto se ha extendido los trabajos para el c´alculo de vecindad en q-trees de [52, 55], los cuales u´ nicamente calculan los 4-vecinos de un nodo, o realizan dos pasos para calcular los 8-vecinos. Nuestra soluci´on calcula en una sola etapa y con el mismo nivel de complejidad los 8-vecinos de un nodo y adem´as con cualquier nivel de profundidad en el a´ rbol. A continuaci´on se describe el proceso que realiza este c´alculo. C´alculo de la vecindad Se define un array de localizaci´on para codificar la posici´on de las particiones en la imagen y su correspondiente recorrido en el q-tree. Cada dimensi´on de este array representa una coordenada (vertical u horizontal) que se codifica utilizando 1 bit: las direcciones positivas (arriba y derecha) se codifican con 1 y las negativas (abajo e izquierda) con 0 (ver figura 5.11).

Figura 5.11: Ejemplos del array de condificaci´on binaria.

El algoritmo propuesto calcula la vecindad para un nodo dado a partir de su array de localizaci´on (M) y la direcci´on en la cual se quiere calcular su vecino. Dependiendo de esta direcci´on el algoritmo distingue entre dos casos: los vecinos esquina (dos regiones que u´ nicamente comparten un punto, por ejemplo en la figura 5.10 ser´ıan A e I), y los vecinos que comparten m´as de un punto (llamados “face neighbours”, A y B en la figura 5.10). Para el c´alculo de un vecino, el algoritmo recorre el array de localizaci´on (M) de derecha a izquierda en la dimensi´on indicada (o dimensiones en el caso de los vecinos esquina), y va negando el valor de cada bit hasta que el resultado obtenido sea igual a la direcci´on indicada (1: positiva, 0: negativa). Por ejemplo, para calcular el vecino derecho (direcci´on positiva: 1) de I (figura 5.10), el algoritmo niega el valor de cada bit de la columna superior (direcci´on

70

Lenguajes k-testables para grafos

horizontal) empezando por la derecha y hacia la izquierda, hasta que alcance la condici´on de finalizaci´on: el resultado sea igual a 1: I=



0 1

  1¯ 0¯ ⇒ 0 1

  1 0 ⇒ 1 0

 0 =J 0

Cuando el algoritmo termina la exploraci´on de una dimensi´on del array sin alcanzar la condici´on de finalizaci´on indica que el nodo no tiene vecino en esa direcci´on (por ejemplo si intentamos calcular el vecino izquierdo del nodo A). El proceso para el c´alculo de los vecinos esquina es el mismo, pero realizando la misma operaci´on en ambas direcciones hasta alcanzar la condici´on de finalizaci´on en ambas. En el siguiente ejemplo se puede ver el c´alculo del vecino superior izquierda del nodo N: N=

 1 0

  1 1¯ ⇒ 0¯ 1¯

  0 1 ⇒ 1 0

 0 =J 0

Una vez calculado el vecino el algoritmo comprueba el tipo de nodo obtenido, distinguiendo tres posibles casos: 1. Nodo hoja: el algoritmo termina devolviendo dicho nodo. 2. Nodo interno: en este caso se tienen que calcular los vecinos de mayor nivel hasta obtener un nodo hoja. 3. Ning´un nodo: esto es debido a que el vecino es de menor nivel que el nodo actual, por lo que habr´a que calcular los nodos padre hasta obtener un nodo hoja. En el art´ıculo se puede encontrar una descripci´on m´as detallada de cada uno de estos procesos y los algoritmos completos para su c´alculo (ver p´agina 274).

5.7.2 Grafos mediante una rejilla estructural El segundo algoritmo trata la imagen como una rejilla estructural, de forma que tras un postproceso obtiene un grafo ac´ıclico dirigido. Los grafos obtenidos mantienen las mismas ventajas que el m´etodo anterior: permiten la reconstrucci´on de la muestra y la extracci´on mediante una resoluci´on parametrizable.

Grafos ac´ıclicos dirigidos a partir de im´agenes

71

Empezando en la esquina superior derecha el algoritmo divide la imagen en regiones cuadradas de un tama˜no dado k. Las regiones cuyo valor supere un determinado umbral son consideradas los nodos del grafo. Los arcos se definen desde un nodo dado hasta sus nodos adyacentes en las direcciones: este, sur y sureste. En la figura 5.12 se puede ver un ejemplo.

Figura 5.12: Ejemplo del c´alculo de un grafo mediante una rejilla estructural. Los nodos ra´ız se han marcado en gris.

5.7.3 Grafos a partir de la extracci´on del esqueleto El tercer m´etodo propuesto es una extensi´on natural a grafos del trabajo realizado en [56, 54] para a´ rboles. El algoritmo primero procesa la imagen para obtener el esqueleto que la representa [51]. A continuaci´on genera el grafo recorriendo dicho esqueleto, teniendo en cuenta que cuando dos caminos se crucen significar´a una conjunci´on en el grafo (el algoritmo completo se puede consultar en la p´agina 278). En la figura 5.13 se puede ver un ejemplo de los resultados obtenidos.

Figura 5.13: Resultados de la extracci´on de grafos a partir de su esqueleto.

72

Lenguajes k-testables para grafos

5.8 Conclusiones y resultados En este trabajo se extiende la definici´on de lenguaje k-testable a grafos ac´ıclicos dirigidos. Este es el primer resultado que utiliza las caracter´ısticas de los grafos en vez de la estructura de las reglas gramaticales. Adem´as se propone un modelo de aut´omata para grafos que nos permite la introducci´on de un algoritmo de inferencia que identifica la clase de los lenguajes k-testables de grafos ac´ıclicos dirigidos. Este algoritmo se ejecuta en tiempo polin´omico e identifica este tipo de lenguajes a partir de muestras positivas. La definici´on propuesta para los lenguajes k-testables permite el uso de grafos dirigidos que contengan ciclos. Sin embargo, el aut´omata y el algoritmo de inferencia propuesto no lo permiten, y se enfocan u´ nicamente para la clase de grafos ac´ıclicos dirigidos. El principal problema para extender estos resultados a grafos que contenga ciclos es que se necesita establecer un orden de procesamiento y un criterio de aceptaci´on, y en el caso general, al ser c´ıclicos, es posible que los grafos no tuvieran nodos de inicio o final. Debido a la no disposici´on de bases de datos reales para el proceso de experimentaci´on, se realiz´o un primer estudio utilizando una base de datos de grafos generados de forma sint´etica. Posteriormente se propusieron nuevos algoritmos para la extracci´on de grafos a partir de im´agenes. Los resultados obtenidos de la extracci´on de grafos se validaron mediante m´etodos de clasificaci´on simples para identificar la correcta separaci´on de las clases (para m´as informaci´on sobre la experimentaci´on ver p´agina 279). En este sentido los resultados obtenidos demostraron la validez de los m´etodos, siendo un punto de partida para trabajos futuros y para su utilizaci´on en los modelos k-testables. Estos avances nos permiten identificar la pertenencia de grafos a un lenguaje k-testable o la posterior generaci´on o inferencia de grafos que pertenezcan al lenguaje. Tambi´en abren nuevas posibilidades de operaci´on y aplicaci´on, extendiendo el uso de los grafos a otro tipo de aplicaciones. Muchos campos pueden obtener ventaja de los resultados obtenidos, como la bioinform´atica, la compresi´on de datos, o especialmente las tareas de reconocimiento de patrones. Como futuras l´ıneas de investigaci´on se pretende obtener la extensi´on probabil´ıstica por interpolaci´on y backing-off de los lenguajes k-testables propuestos, as´ı como el estudio de un algoritmo generador a partir de un lenguaje k-testable dado. Se estudiar´a tambi´en su uso para el aprendizaje de las estructuras pro-

Conclusiones y resultados

73

puestas para la reconstrucci´on y modelado del espacio. De forma que a partir de grafos que representen la forma de los objetos de una escena se realice un proceso de clasificaci´on en posibles primitivas del lenguaje de modelado.

Bibliograf´ıa [1] Amador Gonz´alez, J. A. Adquisici´on y procesamiento de im´agenes estereosc´opicas y modelado de mundos 3D para su implementaci´on en exploraci´on de ambientes. PhD Thesis. Universidad de las Am´ericas-Puebla. 2004. [2] J. M. L´opez-Vall´es, A. Fern´andez-Caballero y M. A. Fern´andez. Conceptos y t´ecnicas de estereovisi´on por computador. Inteligencia artificial, 9(27):p´ags. 35–62. 2006. [3] S. Guti´errez and J. L. Marroqu´ın. Robust approach for disparity estimation in stereo vision. Image and Vision Computing, 22(3):p´ags. 183–195. 2004. [4] M. Sonka, V. Hlavac and R. Boyle. Image processing, analysis and machine vision. Chapman & Hall, Londres, Reino Unido. 1993. [5] J. G. Jim´enez. Visi´on por computador. Paraninfo, Madrid, Espa˜na. 1999. [6] Satorre Cuerda, Rosana. Visi´on est´ereo, multirresoluci´on y modelo integrado. Tesis doctoral. Universidad de Alicante. 2002 [7] P. Arques, F. Aznar, M. Pujol, R. Rizo. Segmentaci´on de Im´agenes en Tiempo Real Mediante Umbralizaci´on Adaptativa. Conferencia de la Asociaci´on Espa˜nola para la Inteligencia Artificial. 2005. [8] P. Arques, R. Molina, M. Pujol, R. Rizo. Distance Histogram to Centroid as a Unique Feature to Recognize Objects. First International Conference on Computer Vision Theory and Applications. Portugal, 2006. [9] Michael Bleyer. PhD Thesis. Segmentation-based Stereo and Motion with Occlusions. Institute for Software Technology and Interactive Systems - Interactive Media Systems Group, 2006.

76

Lenguajes k-testables para grafos

[10] Y. Deng, Q. Yang, X. Lin, and X. Tang. A symmetric patch-based correspondence model for occlusion handling. In International Conference on Computer Vision, pages 542-567, 2005. [11] Oliver Faugeras. Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachussets, 1993. [12] L. Hong and G. Chen. Segment-based stereo matching using graph cuts. In conference on Computer Vision and Pattern Recognition, volume 1, pages 74-81, 2004. [13] A. L´opez. Visi´on estereosc´opica basada en regiones: estado del arte y perspectivas de futuro. Conferencia de la Asociaci´on Espa˜nola para la Inteligencia Artificial. 2001. [14] D. Scharsteing and R. Szeliski. A taxonomy and evaluation of dense twoframe stereo correspondence algorithms. International Journal of Computer Vision, 47(1/2/3):7-42, 2002. [15] H. Tao and H. Sawhney. Global matching criterion and color segmentation based stereo. In Workshop on the Application of Computer Vision, pages 246-253, 2000. [16] Z. Zhang. A flexible new technique for camera calibration. IEEE Trans. on Pattern Analysis and Machine Intelligence, 22(11):1330–1334, 2000. [17] Hans P. Moravec. Robot spatial perception by stereoscopic vision and 3D evidence grids. The Robotics Institute Carnegie Mellon University. Pittsburgh, PA (1996) [18] Stephen Se, D. Lowe, J. Little. Vision-based mobile robot localization and mapping using scale-invariant features. ICRA (2001) [19] C. Martin and S. Thrun. Real-time acquisition of compact volumetric maps with mobile robots. ICRA (2002) [20] Gonzalo Pajares Martinsanz, Jess M. de la Cruz Garca. Visi´on por computador: im´agenes digitales y aplicaciones. Ed. Ra-Ma, D.L. Madrid (2001) [21] G. Vogiatzis, P.H.S. Torr and R. Cipolla. Multi-view stereo via Volumetric Graph-cuts. CVPR (2005) 391–398.

Bibliograf´ıa

77

[22] L. Zhang, Steven M. Seitz. Parameter estimation for MRF stereo. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, June (2005). [23] S. Sinha, M. Pollefeys. Multi-view Reconstruction using Photo-consistency and Exact Silhouette Constraints: A Maximum-Flow Formulation. ICCV (2005). [24] Alberto Broggi. Robust Real-Time Lane and Road Detection in Critical Shadow Conditions. In Proceedings IEEE International Symposium on Computer Vision, Coral Gables, Florida. IEEE Computer Society (1995) [25] Compa˜n, P.; Satorre, R.; Rizo, R. Disparity estimation in stereoscopic vision by simulated annealing. Artificial Intelligence research and development. IOS Press. (2003) 160–167 [26] E. Trucco and A. Verri. Introductory techniques for 3-D Computer Vision. Prentice Hall (1998) [27] I. Cox, S. Ignoran, and S. Rao. A maximum lilelihood stereo algorithm. Computer Vision and Image Understanding, 63 (1996) [28] J. Coughlan and A. L. Yuille. Manhattan World: Orientation and Outlier Detection by Bayesian Inference. Neural Computation. Vol. 15, No. 5 (2003) 1063–88 [29] Davis, Martin; Sigal, Ron and Weyuker, Elaine J. Computability, Complexity, and Languages. Fundamentals of Theoretical Computer Science, 2nd ed. San Diego: Elsevier Science, 1994. [30] Singhal, A.; Brown, C. Dynamic bayes net approach to multimodal sensor fusion. SPIE, 1997. [31] A. Clark, R. Eyraud, and A. Habrard. A polynomial algorithm for the inference of context free languages. LNAI, 5278:29–42, 2008. Proceedings of ICGI-08. [32] C. de la Higuera. Grammatical inference. Learning automata and grammars. Cambridge University Press, 2010.

78

Lenguajes k-testables para grafos

[33] P. Garc´ıa. Learning k-testable tree sets from positive data. Technical Report DSIC/II/46/1993, Departamento de Sistemas Inform´aticos y Computaci´on. Universidad Polit´ecnica de Valencia, 1993. Available on: http://www.dsic.upv.es/users/tlcc/tlcc.html. [34] P. Garc´ıa and E. Vidal. Inference of k-testable languages in the strict sense and application to syntactic pattern recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12:920–925, 1990. [35] E. Jeltsch and H. J. Kreowski. Grammatical inference based on hyperedge replacement. LNCS, 532:461–474, 1991. 4th International workshop on graph grammars and their application to computer science. [36] I. Jonyer, L. B. Holder, and D. J. Cook. Concept formation using graph grammars. In Proceedings of the KDD Workshop on Multi-Relational Data Mining, pages 71–792, 2002. [37] R. Kosala, H. Blockeel, M. Bruynooghe, and J. Van den Bussche. Information extraction from documents using k-testable tree automaton inference. Data & Knowledge Engineering, 58:129–158, 2006. [38] J. P. Kukluk, L. B. Holder, and D. J. Cook. Inference of node replacement recursive graph grammars. In Proceedings of the Sixth SIAM International Conference on Data Mining, 2006. [39] D. L´opez, J. M. Sempere, and P. Garc´ıa. Inference of reversible tree languages. IEEE Transactions on System Man. and Cybernetics, Part B: Cybernetics, 34(4):1658–1665, 2004. [40] R. McNaughton. Algebraic decision procedures for local testability. Math. Sysr. Theory, 8(1):60–76, 1974. [41] K. Nakamura. Incremental learning of context free grammars by bridging rule generation and search for semi-optimum rule sets. LNAI, 4201:72–83, 2006. Proceedings of ICGI-06. [42] P. Peris, D. L´opez, and M. Campos. IgTM: An algorithm to predict transmembrane domains and topology in proteins. BMC - Bioinformatics, 9:367, 2008.

Bibliograf´ıa

79

[43] A. Potthoff, S. Seibert, and W. Thomas. Nondeterminism versus determinism on finite automata over directed acyclic graphs. Bull. Belg. Math. Soc., 1:285–298, 1994. [44] J. R. Rico-Juan, J. Calera-Rubio, and R. C. Carrasco. Smoothing and compression with stochastic k-testable tree languages. Pattern Recognition, 38: 1420–1430, 2005. [45] D. Ron, Y. Singer, and N. Tishby. On the learnability and usage of acyclic probabilistic finite automata. Journal of Computer and System Sciences, 56: 133–152, 1998. [46] G. Rozemberg, editor. Handbook of graph grammars and computing by graph transformation, volume 1. Word Scientific, 1997. [47] Y. Sakakibara. Learning Context-Free Grammars from Structural Data in Polynomial Time. Theoretical Computer Science, 76:223–242, 1990. [48] Y. Sakakibara. Efficient Learning of Context-Free Grammars from Positive Structural Examples. Information and Computation, 97:23–60, 1992. [49] Y. Sakakibara. Grammatical inference in bioinformatics. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(7):1051–1062, 2005. [50] K. Zhang. A constrained edit distance between unordered labelled trees. Algorithmica, 15:205–222, 1996. [51] J. M. Cychosz. Thinning algorithm from the article: Efficient binary image thinning using neighbourhood maps. Graphics Gems IV. Academic Press, p. 465–473, 1994. [52] M. Goodchild. Quadtree algorithms and spatial indexes. Technical Issues in GIS, NCGIA, Core Curriculum, (37):5–6, 1990. [53] J. Liu, M. Li, Q. Liu, H. Lu, and S. Ma. Image annotation via graph learning. Pattern Recognition, 42:218–228, 2009. [54] D. L´opez and I. Pi˜naga. Syntactic pattern recognition by error correcting analysis on tree automata. Advances in Pattern Recognition, LNCS 1876, p. 133–142, 2000.

80

Lenguajes k-testables para grafos

[55] J. Poveda and M. Gould. Multidimensional binary indexing for neighbourhood calculations in spatial partition trees. Comput. Geosci., 31(1):87–97, 2005. [56] J. R. Rico-Juan, L. Mic´o. Comparison of AESA and LAESA search algorithms using string and tree edit distances. Pattern Recognition Letters, 24:1427–1436, 2003. [57] H. Shin, K. Tsuda, and B. Sch¨olkopf. Protein functional class prediction with a combined graph. Expert Systems with Applications, 36:3284–3292, 2009.

Parte II Publicaciones

En esta segunda parte se incluye el compendio de publicaciones siguiendo un orden cronol´ogico pero agrupado por tem´aticas para facilitar su lectura y comprensi´on.

Publicaci´on 1

Detecci´on de objetos y estimaci´on de su profundidad mediante un algoritmo de est´ereo basado en segmentaci´on Antonio Javier Gallego, Patricia Compa˜n, Pilar Arques, Carlos Villagr´a, Rafael Molina Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, company, arques, villagra, rmolina}@dccia.ua.es VIII Workshop en Agentes F´ısicos WAF (2007) pp. 65-72. ISBN: 978-84-9732-597-4

84

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

Detecci´on de objetos y estimaci´on de su profundidad mediante un algoritmo de est´ereo basado en segmentaci´on Antonio Javier Gallego, Patricia Compa˜n, Pilar Arques, Carlos Villagr´a, Rafael Molina Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, company, arques, villagra, rmolina}@dccia.ua.es

Resumen Se presenta un sistema de visi´on estereosc´opica basada en segmentaci´on que aprovecha la informaci´on obtenida y las ventajas de este tipo de sistemas para la detecci´on de objetos en la escena y la estimaci´on de su profundidad. El proceso de segmentaci´on elegido, umbralizaci´on adaptativa, permite obtener buenos resultados con un tiempo de c´omputo muy bajo. Cada regi´on extra´ıda debe ser caracterizada mediante un vector de propiedades que permita la identificaci´on eficiente y un´ıvoca del objeto, proponemos una serie de caracter´ısticas basadas en la posici´on, el tama˜no, el color y la forma. El proceso de correspondencia utiliza este vector para emparejar las regiones en base a la similitud que presentan. Esta medida se obtiene mediante la ponderaci´on de las caracter´ısticas que forman el vector. Posteriormente se realiza el c´alculo de la disparidad y de la profundidad, incorporando un factor de correcci´on emp´ırico. Adem´as se ha a˜nadido un postproceso de extracci´on de capas que consigue eliminar outliers y mejorar las profundidades obtenidas. Por u´ ltimo, en base a la segmentaci´on inicial y a las profundidades calculadas, se detectan los objetos buscados. El modelo propuesto presenta ventajas de tiempo de c´omputo y de precisi´on en la estimaci´on de la profundidad y en la detecci´on de objetos.

Introduction

85

1.1 Introduction La detecci´on de objetos y el c´alculo de la profundidad a la que se encuentran son dos procesos de gran utilidad en multitud de a´ mbitos, como la rob´otica, la supervisi´on y el control de calidad, la ayuda a personas con alguna discapacidad o la conducci´on autom´atica, por enumerar s´olo unos pocos. La visi´on estereosc´opica puede ser una soluci´on, aunque hoy en d´ıa es todav´ıa un campo abierto de investigaci´on. Se han conseguido resultados adecuados en entornos simples, sin embargo el c´alculo de la profundidad en determinados casos es un problema muy complejo, especialmente cuando hay poca textura, existen oclusiones, etc. Por otro lado, los procesos asociados a la visi´on estereosc´opica (emparejamiento, c´alculo de disparidades, etc.) son procedimientos intr´ınsecamente complejos, con costes temporales muy altos. Una posible aproximaci´on al problema es la segmentaci´on previa de las im´agenes estereosc´opicas. Estas t´ecnicas dividen una o, a veces, las dos im´agenes est´ereo en regiones no solapadas de color homog´eneo. En lugar de computar la disparidad para cada p´ıxel individual, estas t´ecnicas asignan un u´ nico valor de disparidad a cada uno de las regiones obtenidas. A priori este planteamiento presenta dos ventajas: por un lado, el hecho de utilizar regiones en vez de p´ıxeles hace el proceso m´as robusto frente a la presencia o no de texturas; por otro lado, la cantidad de emparejamientos a realizar entre las regiones es mucho menor que el que se tendr´ıa que realizar para el total de p´ıxeles. Sin embargo, la reducci´on del n´umero de emparejamientos tiene una contrapartida: debemos realizar un proceso previo de segmentaci´on, cuesti´on no trivial, y debemos elegir un conjunto de propiedades que caractericen convenientemente a las regiones para poder realizar la correspondencia. Hay una considerable cantidad de literatura sobre el problema de la correspondencia en est´ereo. En [11] se puede encontrar una extensa revisi´on de los algoritmos actuales de est´ereo que producen un mapa de disparidad denso (con informaci´on para todos los puntos de la imagen). Centr´andonos en t´ecnicas que emplean segmentaci´on, en [12] los autores proponen un algoritmo est´ereo basado en regiones que utiliza deformaci´on de la imagen para medir la calidad del mapa de disparidad. Otras t´ecnicas, como en [9], combinan el emparejamiento basado en regiones con la optimizaci´on basada en grafos. En [4] se puede encontrar una amplia documentaci´on sobre todos estos algoritmos, a la vez que se proponen dos m´etodos con unos buenos resultados para el c´alculo del mapa de disparidad

86

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

utilizando segmentaci´on. En [7] tambi´en se tienen en cuenta las ocultaciones que se producen al realizar el est´ereo, para lo que se segmentan ambas im´agenes con la intenci´on de encontrar las partes de cada regi´on que est´an parcialmente ocultas (para esto se ayuda de una funci´on de coste). Aparte de los m´etodos comentados, en [10] se hace un interesante estudio sobre t´ecnicas que resuelven el problema de la correspondencia mediante est´ereo. En este trabajo presentamos un esquema de visi´on estereosc´opica basado en segmentaci´on cuya finalidad es la detecci´on de objetos y el c´alculo de la profundidad de los mismos. El uso de la segmentaci´on previa aporta varias ventajas frente a otros algoritmos. En primer lugar la detecci´on de los objetos ya viene dada de antemano por dicha segmentaci´on (en un sistema basado en correspondencia entre p´ıxeles ser´ıa necesaria una segmentaci´on posterior) y, adem´as, los objetos pueden ser diferenciados a trav´es del vector de caracter´ısticas (aprovechado para el proceso de correspondencia del est´ereo). Otra ventaja del m´etodo propuesto es su velocidad. La baja complejidad del algoritmo permite utilizarlo en tiempo real en multitud de aplicaciones, como por ejemplo la navegaci´on, la detecci´on de objetos y su profundidad o el guiado mediante landmarks.

1.2 Modelo propuesto Como se ha comentado, la finalidad del sistema propuesto es la detecci´on de objetos y la estimaci´on de su profundidad. El punto de partida es un par de im´agenes estereosc´opicas en color, que han sido rectificadas epipolarmente [8]. Dichas im´agenes rectificadas se obtienen directamente de la c´amara est´ereo sin ning´un coste adicional para el algoritmo. El esquema de procesamiento puede dividirse en cinco pasos que se presentan resumidamente a continuaci´on: 1. En primer lugar se segmentan las im´agenes de entrada en regiones de color homog´eneo. 2. A partir de estas regiones se obtiene un vector de caracter´ısticas que nos permite realizar el emparejamiento. 3. A continuaci´on se calcula la profundidad de cada una de las regiones utilizando la informaci´on de disparidad. 4. Se analizan las profundidades encontradas y se reajustan mediante la asignaci´on a capas.

Modelo propuesto

87

5. El u´ ltimo paso es la detecci´on de objetos, para lo cual se utiliza la informaci´on obtenida en la segmentaci´on. Impl´ıcitamente este modelo aplica dos asunciones b´asicas: en primer lugar, los p´ıxeles de un segmento con color homog´eneo tendr´an valores de disparidad que siguen un modelo de disparidad suavizado (restricci´on de continuidad). En segundo lugar, se asume que las discontinuidades en profundidad coinciden con las fronteras de dichas regiones. Todo esto se justifica en el hecho de que los p´ıxeles pertenecientes a una regi´on con un mismo color lo m´as probable es que provengan del mismo objeto de la escena, por lo que se espera que la disparidad var´ıe suavemente. En las siguientes secciones se analiza en detalle cada uno de los pasos del algoritmo.

1.2.1 Segmentaci´on En un sistema automatizado de visi´on, la segmentaci´on de im´agenes es uno de los procesos m´as importantes, ya que permite extraer los objetos de la imagen para su posterior descripci´on y reconocimiento. Puede definirse como el proceso de dividir una imagen en un conjunto de regiones disjuntas cuyos p´ıxeles comparten atributos similares, generalmente de intensidad, color o textura. En principio cualquier algoritmo que divida la imagen en regiones de un color homog´eneo puede ser utilizado por el modelo propuesto. En la implementaci´on actual se est´a trabajando con un algoritmo de segmentaci´on que utiliza una nueva t´ecnica denominada “umbralizaci´on adaptativa” y que gracias a su reducido tiempo de c´omputo permite trabajar en tiempo real [1]. Lo m´as importante es que devuelva una serie de caracter´ısticas descriptivas para cada regi´on segmentada, que, como se ver´a en la siguiente secci´on, ser´an las que se utilizar´an en el proceso de correspondencia.

1.2.2 Emparejamiento de regiones Para realizar la correspondencia de regiones (establecer para cada regi´on de la imagen izquierda cu´al es su correspondiente en la imagen derecha) se ha utilizado un m´etodo de comparaci´on basado en la similitud de caracter´ısticas. En este trabajo proponemos la caracterizaci´on de las regiones en base a su posici´on, tama˜no, color y forma. Para ello se utilizan las caracter´ısticas que facilita el m´etodo

88

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

de segmentaci´on, concretamente se utilizan como descriptores de los objetos el centroide (posici´on), el a´ rea (tama˜no), el color (color) y el histograma de distancias al centroide (forma). Existen otras muchas posibilidades para describir un objeto, pero e´ stas se proponen por sus ventajas (en cuanto a su facilidad de obtenci´on) y por ser lo suficientemente significativas para caracterizar una regi´on [2]. A continuaci´on se ver´a cada una de estas caracter´ısticas en detalle. Centroide: Es el punto que define el centro geom´etrico de una regi´on y, por consiguiente, su posici´on en la imagen. Un m´etodo sencillo para hallarlo es calcular el promedio de las coordenadas de todos los puntos que forman parte del objeto. Para realizar la comparaci´on (DistC) se calcula la distancia eucl´ıdea entre los centroides de las regiones a emparejar. En el proceso de emparejamiento hay que tener en cuenta que, dado que las im´agenes est´an rectificadas, las l´ıneas epipolares de b´usqueda coinciden. Por lo que el valor de la componente y del centroide de una regi´on pr´acticamente coincidir´a con el de su regi´on correspondiente en la otra imagen. De esta forma podemos restringir el a´ rea de b´usqueda de dicha comparaci´on a un ε dado. ´ Area: Indica el tama˜no de la superficie comprendida dentro del per´ımetro de una regi´on. El m´etodo m´as simple para estimar el a´ rea es contar el n´umero de p´ıxeles que representan dicha forma. Para comparar la similitud entre dos a´ reas (DistA) se utiliza el valor absoluto de su diferencia. Color: Una medida que se utiliza habitualmente como m´etrica en el espacio RGB es la distancia eucl´ıdea y variaciones de la misma. En [5] se estudian dos medidas de similitud de colores: la distancia eucl´ıdea (ecuaci´on 1) y la distancia angular (ecuaci´on 2). La distancia eucl´ıdea presenta una pobre discriminaci´on entre valores distintos que tienen una intensidad similar. Por otra parte, la distancia angular presenta un comportamiento inestable cuando los colores est´an cerca del origen de coordenadas. Debido a esto, para realizar la comparaci´on (DistRGB) se ha optado por utilizar una distancia combinada sobre la media RGB de cada regi´on obtenida en la segmentaci´on, de modo que utiliza la distancia eucl´ıdea cuando la saturaci´on es baja y la distancia angular cuando es alta [6]. Para calcular la saturaci´on de un p´ıxel se utiliza la ecuaci´on 3. −p − − → DEUC (p, q) = r k→ qk  − 2 → → p T ·− q DANG (p, q) = 1 − k− → → − p k·k q k

S(p) = 1 −

3·min(R p ,G p ,B p ) R p +G p +B p

(1) (2) (3)

Modelo propuesto

89

Histograma de distancias al centroide: Es el histograma de las distancias existentes desde el centroide hasta cada uno de los puntos que forman el per´ımetro de la regi´on. Esta m´etrica es muy importante para la posterior detecci´on de objetos, pues es un rasgo que caracteriza un´ıvocamente la forma de los objetos y adem´as es invariante a traslaci´on, rotaci´on y escalado [2]. En el siguiente algoritmo muestra el procedimiento para calcular el histograma de distancias al centroide H para la regi´on R y para NCAT categor´ıas, donde Per es su per´ımetro, F1 , . . . , FN son sus puntos frontera, Dist(Fi ) es la distancia eucl´ıdea entre un punto frontera y el centroide, DMAX es la distancia m´axima al centroide, Cat(Dist(Fi )) es la categor´ıa de la distancia calculada (ecuaci´on 4) y H[1]..H[NCAT ] son los valores obtenidos para cada categor´ıa. Para todo Fj de R hacer Calcular Dist(Fj ) Calcular dc = Cat( Dist(Fj ) ) H[dc]++ Desde i = 1 hasta NCAT hacer H[i] = H[i] / Per

En este algoritmo, una vez calculada la distancia eucl´ıdea de los puntos frontera al centroide, se asigna dicha distancia a la categor´ıa correspondiente, teniendo en cuenta el valor de la distancia m´axima de la frontera al centroide. Por u´ ltimo normalizamos el histograma dividiendo por el per´ımetro, de esta forma obtenemos la invarianza ante el escalado (importante para el reconocimiento de objetos). Como medida de comparaci´on se ha utilizado la ra´ız cuadrada de la suma de los cuadrados de las diferencias entre dichas series de histogramas. En la ecuaci´on 5 se muestra esta medida. CAT Cat(Dist(F − i)) = Dist(Fi ) · DNMAX s

DistHlr =

NCAT

∑ (Hl [i] − Hr [i])2

(4) (5)

i=1

Todas estas caracter´ısticas definen el denominado vector de caracter´ısticas de cada regi´on, el cual permite realizar el proceso de emparejamiento y adem´as, en una etapa posterior, ayudar´a al reconocimiento de los objetos. Como medida de similitud entre dos regiones se ha tomado el inverso de la media ponderada de las distancias de los descriptores propuestos. En la ecuaci´on

90

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

6 se puede ver esta medida, donde w0 , . . . , w3 son los pesos utilizados para ajustar el valor de cada componente en el resultado total de la ecuaci´on. De esta forma se puede dar m´as peso a una determinada caracter´ıstica que de mejores resultados en el proceso de emparejamiento (como el color y la posici´on) y menos a otras (como la forma y el tama˜no). En el proceso de correspondencia se van comparando una a una las regiones que est´en todav´ıa sin emparejar y que adem´as cumplan las restricciones propuestas (explicadas en el p´arrafo correspondiente de cada caracter´ıstica). Finalmente se emparejar´an aquellas para las que se obtenga el menor valor de δ .

δ = 1/(w0 DistC + w1 DistA + w2 DistRGB + w3DistH)

(6)

1.2.3 C´alculo de la disparidad y profundidad Por disparidad nos referimos al desplazamiento lateral que se produce en la representaci´on de los objetos de la escena en cada una de las im´agenes del par est´ereo, esto es debido a la separaci´on horizontal de los objetivos de la c´amara. En el caso de c´amaras paralelas y asumiendo que las im´agenes se encuentran convenientemente rectificadas, se puede calcular la disparidad a partir de la diferencia absoluta de la posici´on en cada imagen de cada una de las regiones emparejadas (esta posici´on vendr´a dada por la componente x de su centroide). Una vez realizado el c´alculo de la disparidad, y teniendo en cuenta la relaci´on inversamente proporcional existente entre disparidad y profundidad, estamos en disposici´on de obtener la profundidad a la que se encuentran los objetos de la escena mediante la ecuaci´on z = f Td [8], donde f es la distancia focal, T es la l´ınea base (distancia entre los centros o´ pticos) y d es el valor de disparidad. Para la c´amara est´ereo utilizada (Bumblebee HICOL-60) estos valores son de f = 0,006m y T = 0,12m. El problema es que la disparidad d est´a expresada en p´ıxeles, mientras que el resto de unidades lo est´an en metros. Para unificar las unidades se ha empleado el factor de conversi´on λ = ancho del CCD en metros / ancho de la imagen en p´ıxeles. Para calcular el ancho del CCD de la c´amara necesitamos conocer sus dimensiones y su proporci´on ancho/alto, que para la c´amara utilizada (ver apartado 1.3) son de 1/3” y de x/y = 4/3 respectivamente (figura 1.1). De forma que substituyendo en la igualdad x2 + y2 = (1/3”)2 podemos despejar el valor de x y obtener as´ı el ancho total en metros.

Modelo propuesto

91

Figura 1.1: Dimensiones del CCD de la c´amara est´ereo.

Adem´as se ha a˜nadido el factor de correcci´on ρ para solucionar un peque˜no error debido a la concavidad de la lente de la c´amara. Este factor ρ ha sido obtenido emp´ıricamente (ver secci´on de experimentaci´on). En la ecuaci´on 7 se puede ver la ecuaci´on final que se ha utilizado para el c´alculo de la profundidad. z = f dTλ ρ

(7)

1.2.4 Extracci´on de capas Lo que se pretende con este proceso es agrupar en una capa todas aquellas regiones que puedan ser aproximadas por una misma profundidad. De esta forma se eliminan los posibles outliers (regiones de un tama˜no muy peque˜no que adem´as no se pueden asignar a ninguna capa) y se minimizan los posibles errores en el c´alculo de la profundidad (debidos a peque˜nas diferencias en los valores de los centroides). Suponiendo que las regiones est´an ordenadas seg´un su profundidad, los pasos que sigue el algoritmo son los siguientes (ver tambi´en figura 1.2): 1. Se toma la primera regi´on y se crea una capa a esa profundidad. 2. Se comprueba si la distancia desde la capa hasta la siguiente regi´on es menor que un umbral u dado. En caso afirmativo se asigna la regi´on a la capa y se recalcula la profundidad como la media entre la profundidad actual de la capa y la de la regi´on. En caso negativo se coge la siguiente regi´on, se crea una nueva capa y se vuelve a repetir este paso (hasta que no queden m´as regiones).

92

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

Figura 1.2: Esquema de la extracci´on de capas.

1.2.5 Detecci´on de objetos La detecci´on de objetos se basa en una modificaci´on del modelo propuesto en [3], el cual trabaja en el espacio RGB y realiza segmentaci´on en color. Se ha elegido este modelo para realizar una primera aproximaci´on a la detecci´on y reconocimiento de objetos, en concreto de se˜nales de tr´afico. En nuestro caso se utilizan las regiones obtenidas en la segmentaci´on, a partir de las cuales se buscar´an las regiones con unos colores y formas determinadas (empleando la media de color y el histograma de distancias al centroide). La comparaci´on de las regiones con el objeto que se desea encontrar se realiza f´acilmente a partir de las distancias definidas en la secci´on anterior. La detecci´on se basa en que las se˜nales de tr´afico son de colores muy llamativos (rojo o azul), los cuales son f´acilmente diferenciables. De esta forma se pueden desechar el resto de p´ıxeles de la imagen y obtener una localizaci´on r´apida y sencilla de los objetos que deseamos reconocer. Pero tenemos el inconveniente de que tambi´en se localizan otras regiones que cumplen estas condiciones, incluyendo ruido. Para minimizar este problema se desechar´an las zonas que no tengan una m´ınima agrupaci´on de las tonalidades seleccionadas. Para la detecci´on se han empleado los umbrales RU = 255− 70, GU = 255/2, BU = 255/2 y la condici´on definida en la ecuaci´on 8. Estos valores se han obtenido emp´ıricamente mediante un estudio de los colores de las se˜nales en diferentes momentos del d´ıa. 

Gp R p −70

<

GU RU

  Bp ∧ R p −70 <

BU RU



(8)

Resultados de la experimentaci´on

93

1.3 Resultados de la experimentaci´on En este apartado se muestran los resultados obtenidos del proceso de experimentaci´on sobre el algoritmo de segmentaci´on, el emparejamiento, el c´alculo del mapa de disparidad y el proceso de reconocimiento. En las figuras 1.3, 1.4 y 1.5 se pueden ver los resultados de c´omo se realiza la segmentaci´on de un par est´ereo y del emparejamiento en base a sus caracter´ısticas. En cada uno de estos ejemplos se muestra el par est´ereo utilizado (a,b), la segmentaci´on de la imagen de referencia junto con el centroide de cada regi´on (c) y por u´ ltimo el resultado del emparejamiento (d), donde adem´as se puede ver como se unen las regiones. En la figura 1.5, debido a errores en la segmentaci´on (para la imagen derecha se obtienen m´as regiones que para la izquierda), se puede ver en la parte inferior como hay alguna regiones para las que no se ha podido realizar la correspondencia.

(a)

(b)

(c)

(d)

Figura 1.3: (a,b) Par est´ereo de una se˜nal a 0.5m. (c) Segmentaci´on. (d) Emparejamiento.

(a)

(b)

(c)

(d)

Figura 1.4: (a,b) Par est´ereo a 1.0m. (c) Segmentaci´on. (d) Resultado del emparejamiento.

En las figuras 1.6 y 1.7 se muestran dos ejemplos de los resultados obtenidos para la segmentaci´on y la detecci´on de objetos. En las im´agenes se observan otras tonalidades azules que en alg´un caso pueden llegar a confundirse con las

94

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

(a)

(b)

(c)

(d)

Figura 1.5: (a,b) Par est´ereo a 2.0m. (c) Segmentaci´on. (d) Resultado del emparejamiento.

(a)

(b)

(c)

(d)

Figura 1.6: (a) Imagen de referencia. (b) Segmentaci´on. (c) Resultado de la detecci´on. (d) Mapa de disparidad.

tonalidades de una se˜nal, pero que son eliminadas por las restricciones impuestas al algoritmo de detecci´on (color e histograma de distancias, ver secci´on correspondiente). Adem´as, en la figura 1.6 se ha incluido la segmentaci´on y el resultado del c´alculo del mapa de disparidad. Se puede ver como se han agrupado todas las regiones peque˜nas que aparecen en la segmentaci´on (gracias al proceso de extracci´on de capas) y como de esta forma se han obtenido valores de profundidad unificados para las capas.

(a)

(b)

Figura 1.7: (a) Imagen de referencia. (b) Resultado del proceso de detecci´on de objetos.

Resultados de la experimentaci´on

95

Figura 1.8: Secuencia de im´agenes a diferentes distancias.

Figura 1.9: Comparaci´on del error producido en las ecuaciones del c´alculo de la profundidad.

Para obtener el error cometido al calcular la profundidad se tom´o una secuencia de im´agenes del mismo objeto (la se˜nal de la figura 1.8) a diferentes distancias. De esta forma se pudo calcular el error cometido por la ecuaci´on original frente a la distancia real a la que se encontraba la se˜nal. Se lleg´o a la conclusi´on de que este error lineal se deb´ıa a la concavidad de la lente de la c´amara. Para solucionarlo se calcul´o la media del error de todas las distancias calculadas, y se obtuvo as´ı el factor ρ (ver ecuaci´on 7) que permite corregir dicho error. En la figura 1.9 se muestra una gr´afica con los resultados obtenidos, en la que se compara la distancia real a la que est´a la se˜nal con la profundidad calculada mediante la ecuaci´on original y la ecuaci´on 7. En lo referente a la complejidad temporal, en realidad el algoritmo no realiza tantas iteraciones como las que se muestran en el esquema inicial del apartado

96

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

1.2. En primer lugar se realiza la segmentaci´on para la que se tienen que recorrer los m*n p´ıxeles de la imagen (complejidad lineal). A continuaci´on se calcula el emparejamiento, este proceso s´olo se realiza para el conjunto de las regiones obtenidas, adem´as a la vez se calcula la profundidad de la regi´on y se compara con el objeto a detectar. Por u´ ltimo se vuelve a recorrer el conjunto de las regiones para realizar el reajuste de las profundidades. En resumen, s´olo se recorre una vez toda la imagen y dos veces el conjunto de regiones obtenidas. Como se ve la complejidad del algoritmo es lineal, lo que ha permitido obtener unos resultados temporales muy buenos (incluso para procesamiento en tiempo real). En [1] se pueden ver los resultados temporales del algoritmo de segmentaci´on utilizado. El proceso completo para una imagen de 320x240 p´ıxeles tarda menos de 0,1 seg. Es importante tener en cuenta que todos los experimentos se han realizado en un Pentium IV a 3,20GHz con 2GB de RAM y una tarjeta gr´afica de 512MB, y que el tama˜no utilizado para todas las im´agenes es de 320x240 p´ıxeles.

1.3.1 Conclusiones Se ha presentado un modelo para realizar la detecci´on de objetos y la estimaci´on de su profundidad a partir de informaci´on est´ereo y t´ecnicas de segmentaci´on. Para el c´alculo del mapa de disparidad se ha utilizado una comparaci´on basada en caracter´ısticas, la cual suele ser m´as r´apida que otros m´etodos (como los de correlaci´on por ventana o minimizaci´on de energ´ıa) ya que manipulan muchos menos datos (s´olo se maneja el conjunto de las regiones segmentadas, en otros m´etodos el proceso de correspondencia se realiza p´ıxel a p´ıxel, por lo que se tiene que recorrer toda la imagen). En contrapartida proporcionan un mapa de disparidad poco denso, pero para algunas aplicaciones pueden ser m´as adecuados. Como la finalidad del proyecto es la detecci´on de un marcador y de su profundidad (y en futuras versiones la navegaci´on visual) se concluye que es el m´etodo m´as adecuado por las siguientes razones: se puede aprovechar la informaci´on de las caracter´ısticas para el proceso de detecci´on, la informaci´on de profundidad es suficiente para nuestro prop´osito y adem´as los resultados temporales son m´as r´apidos que con otros m´etodos. Al utilizar segmentaci´on nos hemos encontrado con algunos problemas: el m´as severo es que la segmentaci´on obtenida no siempre tiene que ser la correcta. Por lo que la precisi´on de estos m´etodos depende directamente del algoritmo de segmentaci´on. Adem´as, es probable obtener segmentaciones diferentes para

Bibliograf´ıa

97

cada imagen, debido principalmente a objetos que aparecen o se ocultan por los lados de la imagen, diferentes iluminaciones, etc. Para intentar minimizar estos problemas se concluye que en general es preferible realizar una sobresegmentaci´on de la imagen, pues tiene muchas ventajas: el algoritmo es m´as sencillo y la complejidad temporal mucho menor, adem´as se reduce el n´umero de errores (al intentar agrupar regiones m´as grandes se suelen obtener resultados diferentes entre ambas im´agenes), y otra ventaja muy importante es que ante un error de emparejamiento el error es mucho menor (por ejemplo, para una imagen de 320x240 (76800 p´ıxeles en total), un error en el emparejamiento de un regi´on de 100 p´ıxeles s´olo supondr´ıa un error del 0.1 %. mientras que un error en una regi´on de 10000 p´ıxeles supondr´ıa un error del 13 %). Otro problema son las ocultaciones, pues resolverlas u´ nicamente a nivel de segmentos es muy complicado. De hecho, este problema es doble: primero est´a el problema del emparejamiento incorrecto de puntos medio ocultos a puntos mutuamente visibles y, segundo, incluso si un punto puede ser identificado como parcialmente oculto, ¿qu´e profundidad se le deber´ıa de asignar? En el m´etodo propuesto no se ha realizado ning´un tratamiento espec´ıfico de las ocultaciones, por lo que como trabajo futuro se pretende estudiar posibles soluciones a este problema. Tambi´en se planea analizar si mediante el uso de otro tipo de m´etricas RGB o HLS se obtienen mejores resultados en el emparejamiento o en la detecci´on de objetos. Por u´ ltimo se pretende experimentar con otro tipo de caracter´ısticas en el emparejamiento y reconocimiento de objetos. Agradecimientos Este trabajo se ha realizado gracias a la ayuda del proyecto “Utilizaci´on de la informaci´on de color para reconocer un marcador y la distancia a la que se encuentra mediante visi´on est´ereo y t´ecnicas de segmentaci´on (GV06/158)” financiado por la Generalitat Valenciana.

Bibliograf´ıa [1] P. Arques, F. Aznar, M. Pujol, R. Rizo. Segmentaci´on de Im´agenes en Tiempo Real Mediante Umbralizaci´on Adaptativa. Conferencia de la Asociaci´on Espa˜nola para la Inteligencia Artificial. 2005.

98

Detecci´on de objetos y estimaci´on de su profundidad mediante un . . .

[2] P. Arques, R. Molina, M. Pujol, R. Rizo. Distance Histogram to Centroid as a Unique Feature to Recognize Objects. First International Conference on Computer Vision Theory and Applications. Portugal, 2006. [3] Mohamed B´enallal and Jean Meunier. Real-time color segmentation of road signs. Proceedings of The IEEE Canadian Conference of Electrical and Computer Engineering, 2003. [4] Michael Bleyer. PhD Thesis. “Segmentation-based Stereo and Motion with Occlusions”. Institute for Software Technology and Interactive Systems Interactive Media Systems Group, 2006. [5] S. Bogumil. Color image edge detection and segmentation: a comparison of the vector angle and the euclidean distance color similarity measures. PhD thesis, Waterloo, 1999. [6] P. Compa˜n. Estimaci´on de la disparidad en visi´on estereosc´opica. Tratamiento del color. PhD thesis, Alicante, 2004. [7] Y. Deng, Q. Yang, X. Lin, and X. Tang. A symmetric patch-based correspondence model for occlusion handling. In International Conference on Computer Vision, pages 542-567, 2005. [8] Oliver Faugeras. Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachussets, 1993. [9] L. Hong and G. Chen. Segment-based stereo matching using graph cuts. In conference on Computer Vision and Pattern Recognition, volume 1, pages 74-81, 2004. [10] A. L´opez. Visi´on estereosc´opica basada en regiones: estado del arte y perspectivas de futuro. Conferencia de la Asociaci´on Espa˜nola para la Inteligencia Artificial. 2001. [11] D. Scharsteing and R. Szeliski. A taxonomy and evaluation of dense twoframe stereo correspondence algorithms. International Journal of Computer Vision, 47(1/2/3):7-42, 2002. [12] H. Tao and H. Sawhney. Global matching criterion and color segmentation based stereo. In Workshop on the Application of Computer Vision, pages 246-253, 2000.

Publicaci´on 2

Improving Edge Detection In Highly Noised Sheet-Metal Images Antonio-Javier Gallego-S´anchez, Jorge Calera-Rubio Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain {jgallego, calera}@dlsi.ua.es IEEE Workshop on Applications of Computer Vision (WACV), Snowbird, Utah (2009). ISBN: 978-1-4244-5498-3, ISSN: 1550-5790. Calificado como CORE A

100

Improving Edge Detection In Highly Noised Sheet-Metal Images

Improving Edge Detection In Highly Noised Sheet-Metal Images Antonio-Javier Gallego-S´anchez, Jorge Calera-Rubio Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain, {jgallego, calera}@dlsi.ua.es Abstract This article proposes a new method for robust and accurate detection of the orientation and the location of an object on low-contrast surfaces in an industrial context. To be more efficient and effective, our method employs only artificial vision. Therefore, productivity is increased since it avoids the use of additional mechanical devices to ensure the accuracy of the system. The technical core is the treatment of straight line contours that occur in close neighbourhood to each other and with similar orientations. It is a particular problem in stacks of objects but can also occur in other applications. New techniques are introduced to ensure the robustness of the system and to tackle the problem of noise, such as an auto-threshold segmentation process, a new type of histogram and a robust regression method used to compute the result with a higher precision.

2.1 Introduction Our aim is to accurately detect the location and the orientation of objects so as to transmit this data to industrial robots. The objects that we are working with are rectangular, but the algorithm allows other types of straight edged shapes. These objects are stacked up and always are placed in roughly the same location. The main problem is that although their location is known, as they are stacked up, they could be gently moved or rotated. It causes a lot of noise just around the areas of interest, due to faint edges: overlapping edges, little projections or parallel laterals (better explained in section 2.2).

Description of the Algorithm

101

Production lines use an intermediate system, called squaring machine, to obtain the precise location of these objects. This process is very slow, because the robotic arm, after taking a sheet from the stack, has to deposite it in this machine to obtain the correct orientation, and then to pick it up again. To be more efficient and effective, our method only employs artificial vision to solve this problem. Therefore, it accelerates the whole process (as shown in the experimentation), since it avoids the necessity of this additional mechanical device. Accuracy and robustness are fundamental in the area of industrial applications, because it directly influence the results of a subsequent processing. There are also several problems and requirements inherent in these types of environments, such as the multiplicity of experimental situations, the lighting, the shadows or the possible defects of the objects. Moreover, the system has associated another major difficulty: The lens of the camera produce a radial distortion which change the appearance of the image, so that straight lines appear to be curve. In addition, it is a generic problem in which the objects can have different sizes, shapes and colors. For all these reasons, we can not soley rely on the results of basic techniques. The proposed algorithm is designed specifically for this type of problem, but it can have many other applications as proposed in the conclusions. The following section describes the proposed method in details. Section 2.3 shows the results of the experimentation and a comparison with other methods. The last section presents the conclusions and the lines for future work.

2.2 Description of the Algorithm The main problem in detecting the position and the orientation of stacked objects is that they are usually slightly moved. It may seem that the topmost sheet occludes all others. But in general, a minimal variation creates a bundle of such lines just around the areas of interest. In addition, there may be dirt or burrs caused by the production of the sheets close to the margin or highlights from the cutting or punching deformations. From now on, all these lines will be referred as lines of noise (see Figure 2.1). The following algorithm is proposed to detect the location and the orientation of the topmost object of a stack of objects: 1. Capture an image and correct the distortion. All the images are taken from the top using controlled lighting in order to improve imaging conditions.

102

Improving Edge Detection In Highly Noised Sheet-Metal Images (a)

(b)

(c)

(d)









Figure 2.1: First row: Different images of the used dataset (see section 2.3). Second row: Detail of the above image in which appears more lines of noise (indicated by an arrow).

2. Iterative edge-based segmentation with auto-threshold. 3. Hough transform: It is applied to find the straight lines of the object. The extracted lines are also filtered and classified. 4. Weighted union of nearly-coincident lines: It joins the discontinued lines. 5. Accumulated size histogram: It adjusts the lines that belong to each lateral. 6. Calculate the representative line of each lateral: To perform this task a robust regression estimator is used. Steps 1 and 3 are known techniques, but properly tuned to match the specific problem requirements. In steps 2, 4, 5 and 6 new algorithms are introduced. Each step is described in details in next sections.

2.2.1 Calibration and Undistortion Lots of research has been done in this area (in [10] can be seen a review). We have used the calibration algorithm proposed by Zhang [10]. It uses a twodimensional calibration pattern, and it does not need to know the movement of the camera. Moreover, the modifications proposed in [7] have been applied.

Description of the Algorithm

103

They improve the results using different pre and post-processes, and separating in two parts the calculation of the parameters. If all the parameters are calculated at the same time, the results would be worse. It is due to the fact that the error in a variable could be offset by other errors. The steps that this algorithm follows are: 1. Take n images of the calibration pattern from different positions. 2. Detect the reference marks of the calibration pattern with subpixel precision. 3. Preprocess the distortions and normalize the coordinates of the points [1, 3]. 4. Estimate the matrix of the intrinsic camera parameters [10]. 5. Compute the extrinsic parameters given the intrinsic parameters [10]. 6. Calculate the undistortied image using the homografy matrix H. This algorithm reduces the average error of the estimation to 0.053 ± 0.012 (in points of the image, using the same resolution as in [10]). It improves the results of the basic algorithm of Zhang, which obtains an error of 0.345 ± 0.059. This error is calculated using the average of geometric distances between the set of measured points and the marks of the pattern projected with the estimated parameters [7]. To reduce the error of calibration, the following considerations are proposed: Take about 10 pictures in which the pattern covers the whole image. According to [9], there is no improvement in the results with more than 8 images. The same camera parameters have to be maintained for the calibration and for all the images that are going to be undistortied.

2.2.2 Iterative Segmentation with Auto-Threshold A Canny segmentation algorithm is applied iteratively over the undistortied image until the gray level reaches the value of δ . This value is an empirically calculated percentage of the level of border pixels that the segmented image should have (In our case, it is set to δ = 2.5% and ξ = 0.5%).

104

Improving Edge Detection In Highly Noised Sheet-Metal Images th := lastThreshold; do { img := Canny(img, th); δ c := CalculateGrayLevel(img); if( δ c > δ ) th++; else th--; } while( | δ c - δ | > ξ ); lastThreshold := th;

Other edge-based segmentation algorithms have been tried, but due to variability (lighting, shadows, defects, colours) better results are obtained by applying a simple method iteratively until the desired threshold is reached. In this way, it obtains more robustness to possible changes in brightness and lighting.

2.2.3 Hough Transform Hough transform [8] is applied to extract the straight lines that appear after the segmentation. We use the classical algorithm which is based on a probabilistic approach to find straight lines. We have also tried some variations of the classical algorithm, such as multi-scale or fuzzy Hough, obtaining similar results. Therefore, it is preferred to use a simple and fast method to extract the segments. The threshold values are set reaching a compromise, because, if it removes a lot of noise, it may also remove real edges (In our case, they are set to: threshold = 30, minimum − length = 50, and maximum − gap = 20). The extracted segments are filtered and classified using the following criteria: 1. Orientation: A range of possible orientations [θ1 , θ2 ] is established (θR ±10º, where θR is the reference orientation of the object). The lines with a different orientation are filtered. Overlapping lines are also filtered, because Hough algorithm sometimes obtains more than one result for the same line. 2. Location: It is used to: (a) Classify: Each line is classified in the set Mk for its corresponding lateral k (For this type of objects: 0 ≤ k < 4). (b) Filter: All the lines whose location is outside of the limits are removed. These limits are obtained from the known dimensions of the

Description of the Algorithm

105

object (see section 2.3) and the range of allowed error in the displacement (Rk ±0.05m, where Rk is the expected position for the lateral Mk ).

2.2.4 Weighted Union of Nearly-Coincident Lines This process is applied to join discontinued lines, and form a new line l j with a new orientation θ j . The new angle is calculated by weighting the angle of each line by its size, thereby, it gives more weight to the orientation of long lines i) and forms more solid lines. θ j is obtained using θ j = ∑ θi ·d(l ∀li ∈ N , where dt p d(li ) = (x2 − x1 )2 + (y2 − y1 )2 , dt = ∑ d(li ) ∀li ∈ N and N is the set of lines which fulfills all the following criteria: • Lines with the same classification (Section 2.2.3). • Coincident lines with the same slope and y-interception. However, a small angle error |θ1 − θ2 | ≤ φ is permited (In our case, it is set to φ = 0.05). This way, it also allows the union of lines that are nearly coincident. • Lines within a certain range of distance (dm ≤ max(d(li ))/30 ∀li ∈ Mk ). ~ AC ~ It uses the point-line distance equation dm = AB× , from the line AB to ~ |AB| the midpoint C of the line to join. All the lines which keep having a size smaller than a given threshold U are filtered (It is set to U = max(d(li ))/20 ∀li ∈ Mk ). These lines are mainly created by points of noise, so it often has a wrong orientation. It would be possible to adjust the Hough parameters to be less restrictive, but this post-processing obtains better results because: First, with a more restrictive parameters, it ensures that the extracted lines actually appear in the image. Second, this process takes into account the possible angle errors, allowing a small error in the union, and also adjusting the angle of the resulting line.

2.2.5 Accumulated Size Histogram An histogram is calculated for each of the main orientations of the object (vertical and horizontal). It establishes a relation between the lines’ location and their size. To calculate the vertical histogram (Fig. 2.2(a)) the equation 2.1 is used, where dk is the accumulated size of all the lines in the set Lk , Lk = {li : k ≤ bi <

106

Improving Edge Detection In Highly Noised Sheet-Metal Images

k + 1, 0 ≤ k < imgWidth } (Fig. 2.2(c)) and li ≡ x = ai y + bi . Thus, the histogram is divided into ranges of [k, k + 1] which accumulate the size of all the lines that appear in them. For the horizontal histogram (Fig. 2.2(b)) the same equation is used, but li ≡ y = ai x + bi and 0 ≤ k < imgHeight . dk = ∑ d(li ) ∀ li ∈ Lk

(a)

(b)

(2.1)

(c)

Figure 2.2: (a, b) Accumulated-size histogram for the vertical and the horizontal lines. (c) Size-accumulation scheme for the range [k, k + 1].

We have also tried other types of histogram, such us accumulating the size at the midpoint of each segment. But the current filter obtains better results because it takes into account the main orientation of each lateral and the orientation and the position of each individual line. These histograms are used to remove the outliers (lines of noise) in the distribution. First, the standard deviation σ is calculated for each mode. Then, the interquartile range (IQR) is defined as IQR = 1, 35σ [5] and its limits are set as lower quartile Q1 = x¯ − IQR/2 and upper quartile Q3 = x¯ + IQR/2. All the lines which are outside the range [ f1 , f2 ] = [Q1 − 1, 5IQR, Q3 + 1, 5IQR] are considered outliers, and therefore are removed. In other words, the lateral’s frequency distribution is compared with an ideal distribution (a perfect edge represented by a single line) which identifies the atypical values in the distribution.

Description of the Algorithm

107

(a)





(b)





(c)





(d)





Figure 2.3: Steps of the process for the objects in Figure 2.1: Iterative segmentation, Hough transform and filtering. The parts with more lines of noise are indicated by arrows.

108

Improving Edge Detection In Highly Noised Sheet-Metal Images

2.2.6 Calculate the Representative Line of each Lateral To calculate the representative line of each side, instead of using a couple of points of each line, a sampling of the filtered lines at a constant distance τ is used. Thus, more weight is applied to long lines. τ is calculated as τ = gcd(d(li )) ∀ li ∈ Mk . The sampling equation is derived from the formula of the Euclidean distance τ 2 = (x2 − x1 )2 + (y2 − y1 )2 and the straight line’s equation y2 = ax2 + b. The combination of these two formulas returns two solutions that correspond to the previous and the next point. This sampling process returns a two-dimensional sample (x1 , y1 ), (x2 , y2 ),..., (xn , yn ) for each lateral. The intention is to approximate this distribution by the line which minimizes the sum of quadratic differences between the observed values and the adjusted by the line [6]. The problem is that the linear model provides an estimator which is very sensitive to the possible presence of abnormal data and homoscedasticity. Robust regression is a powerful alternative which obtains better results with a slightly higher computational cost. It is insensitive to small departures from the idealized assumptions for which a statistical estimator is optimized [4]. The basic idea is to calculate the estimator α which minimizes the function: n

Ψ (α ) = ∑ ωα (ei )e2

(2.2)

i=1

where ω is a weighted function that is introduced to reduce (or even remove) the effect of the outliers. Thus, the weights ω (ei ) are defined to take small values for the high remainders ei . There are many estimators that can be used for this purpose. In this case, as the error is not normally distributed, it is better to use a maximum-likelihood formula for the parameter estimation [6]. The independent variable is changed depending on the orientation of the lateral. The vertical and the horizontal laterals will be adjusted to the line which minimizes the error e2i = (xi − xˆi )2 and e2i = (yi − yˆi )2 respectively. Therefore, it obtains good results without the need of using a multiple regression model, much more complex and time-comsuming. It has also been compared with other robust methods, such as iterative re-weighting [6] and RANSAC [3] (see section 2.3), obtaining similar results but with a higher computational cost. Moreover, the solutions obtained with these alternative methods may not be the optimal one and the convergence is not guaranteed.

Results

109

2.2.7 Calculating the Final Location and Orientation The last step is to calculate the correlation coefficient R of each representative line. It is a measure of the linear relationship among variables. An absolute value of |R| close to 1 indicates a strong linear relationship. Therefore, it allows to identify the most appropriate lateral to calculate the final orientation of the object (primary lateral). To calculate the final location and orientation, it is only necessary to know with precision one lateral and one corner. The location of the primary corner is calculated from the intersection between the primary lateral and the perpendicular lateral with the highest correlation coefficient. In the example of Figure 2.3, the chosen laterals are: (a) bottom-right, (b) right-top, (c) bottom-left and (d) top-left. The location of the rest of laterals can be estimated geometrically. First, the equivalence in pixels of the object’s size has to be calculated. The conversion factor λ ={ CCD width in meters / Image width in pixels } is used to convert pixels into metres. To calculate the CCD width, its dimensions (1/3′′ ) and its proportions ( yx = 43 ) are needed. Therefore, the value of x (total width in metres) ′′

can be isolated from the equation x2 + y2 = ( 13 )2 . Next, the object’s size is calculated using the general equation of lens 1s + s1′ = 1f , where s is the object distance, s′ is the image distance and f is the focal length [2].

2.3 Results In order to test the algorithm, a database of 200 images with a resolution of 3072 × 2304 pixels has been used1 . These images are obtained from a top view of a stack of 50 sheets (similar to Fig. 2.1). In each image, slight variations in lighting and in the position and the orientation of the sheets are introduced. The dimensions of the sheet metal are 50 × 40 × 0.1 cm. The obtained results have been compared with very precise measures taken manually over the image. Table 1 shows the results of the proposed method. It is also compared with previous results obtained using: RANSAC, iterative re-weighting (explained in section 2.2.6), Linear Regression, Robust Regression (RR) without sampling, RR without filtering and a simple Model-Based Technique (First, the edges closest to the center are detected, then they are used in this order to find the object that matches the model). In addition, other methods have been tried getting worse 1 If

you want to obtain this database, please contact the first author.

110

Improving Edge Detection In Highly Noised Sheet-Metal Images

results, this is due to the high variability of the problem (see explanation in the Introduction section). Table 1 shows the average error of the primary lateral orientation and of the primary corner location. It also shows the percentage of hits obtained during the selection of the most appropriate lateral (see section 2.2.7). The proposed method obtains better results with a similar computational cost. Its average angle error is 0.144◦ , with a minimum error of 0.02◦ and a maximum error of 0.25◦ . The complete algorithm has an average computational cost of 0.37 sec. It is linear with respect to the size of the image. The squaring machine takes ∼15 sec. in performing the same task (as described in the introduction). So, if the total manipulation time by the robot is ∼60 sec., by incorporating the proposed system, productivity would be increased in ∼20 items per hour. Method

Proposed method RANSAC Iterative re-weighting Linear regression RR without sampling Model-based technique RR without filtering

Average angle error 0.144◦ 0.162◦ 0.171◦ 0.181◦ 0.986◦ 2.43◦ 3.67◦

Average corner error 0.00142 m 0.00146 m 0.00149 m 0.00153 m 0.0087 m 0.0194 m 0.0256 m

Correct lateral %

95.7% 94.2% 93.9% 93.6% 89.1% 78.6%

Table 2.1: Benchmarking

2.4 Conclusions and Future Work A new method for accurate and robust detection of the location and the orientation of an object on low-contrast surfaces has been presented. It has been designed specifically for this type of problem, in which each step is focused to ensure the reliability and the accuracy of the system. It is a particular problem in stacks of objects but can also occur in other applications, such as industrial automation, control of measures, quality control, positioning of objects, and packaging. Moreover, the algorithm allows other types of straight edged shapes, sizes and colors.

Bibliography

111

According to the results, the proposed method could be incorporated into an operating environment to replace the squaring machine, thereby substantially increasing the productivity of the entire production line. Acknowledgments The authors thank the reviewers for their thoughtful comments which helped to improve the initial manuscript. This work is partially supported by Spanish MICINN (contract TIN2009-14205-C04-01, contract DPI2006-15542-C04-01) and CONSOLIDER-INGENIO 2010 (contract CSD2007-00018).

Bibliography [1] M. Ahmed and A. Farag. Nonmetric calibration of camera lens distortion: differential methods and robust estimation. Image Processing, IEEE Transactions on, 14(8):1215–1230, Aug. 2005. [2] O. Faugeras. Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachusetts, 1993. [3] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, second edition, 2004. [4] P. J. Huber. Robust Statistics. Wiley Series in Probability and Statistics, 1981. [5] I. Michael Sullivan. Fundamentals of Statistics. Pearson Prentice Hall, 2006. [6] W. H. Press, B. P. Flanner, S. A. Teukolsky, and W. T. Vetterling. Numerical Recipes: The Art of Scientific Computing. Cambridge University Press, 2007. [7] C. Ricolfe-Viala and A.-J. Sanchez-Salmeron. Improved camera calibration method based on a two-dimensional template. In Pattern Recognition and Image Analysis, pages 420–427, 2007. [8] L. Shapiro and G. Stockman. Computer Vision. Prentice-Hall, Inc, 2001.

112

Improving Edge Detection In Highly Noised Sheet-Metal Images

[9] W. Sun and J. R. Cooperstock. An empirical evaluation of factors influencing camera calibration accuracy using three publicly available techniques. Machine Vision and Applications, 17:51–67, 2006. [10] Z. Zhang. A flexible new technique for camera calibration. IEEE Trans. on Pattern Analysis and Machine Intelligence, 22(11):1330–1334, 2000.

Publicaci´on 3

Scene reconstruction and geometrical rectification from stereo images A. Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial (I3A) Universidad de Alicante, Alicante (Spain) {ajgallego, rmolina, villagra}@dccia.ua.es The 9th World Multi-conference on Systemics Cybernetics and Informatics. Orlando, Florida, USA, July 2005. Vol. 2. pp. 354 – 358. ISBN: 980-6560-52-3. Calificado como CORE C

114

Scene reconstruction and geometrical rectification from stereo images

Scene reconstruction and geometrical rectification from stereo images A. Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial (I3A) Universidad de Alicante, Alicante (Spain) {ajgallego, rmolina, villagra}@dccia.ua.es

Abstract A system to reconstruct three-dimensional scenes from stereo images is presented. The reconstruction is based on a dense disparity image obtained by a process of window correlation, applying a geometrical rectification before generating a three-dimensional matrix which stores the spatial occupation. The geometrical rectification is essential to correct the conical perspective of the camera and to obtain real scenes. For the geometrical rectification, three approaches are proposed, based on one linear and two logarithmic functions. As a result, the rectification allows the system to adequately correct the reconstruction, showing that the best choice depends on the features of the original images. Keywords: stereoscopic vision, disparity images, geometrical rectification and three-dimensional scene reconstruction.

3.1 Introduction A central aspect nowadays in artificial intelligence research is the perception of the environment by artificial systems. Specifically, stereoscopic vision opens new paths that in future will allow these systems to capture the three-dimensional structure of the environments without any physical contact. For instance, a first solution to three-dimensional reconstruction with stereo technology is developed in Carnegie Mellon University. The possibility of composing several three-dimensional views from the camera transforms is set out, to build the socalled “3D evidence grid”. [1]

Problem description

115

Most proposals in this field are based on disparity maps obtained by the extraction of scene characteristics, such as corners, borders, and so on, or this extraction can be done once the disparity map is obtained [2, 3]. There are some solutions which use a background image to obtain objects and silhouettes, making a difference operation with the image to reconstruct the scene [4, 5]. It is also habitual to use a general model or a priori knowledge to compare the result with, so that the reconstruction is built using this knowledge as a model. This is the case with the reconstruction of faces or known objects [6]. For instance, in [2] the author reconstructs some basic objects from a stereo image using primitives, such as cubes or boxes, and the objects are displayed in 3D. Moreover, several views of a scene or a sequence of them can be used to make the reconstruction [7]; or it can be based on other type of sensors, such as laser range sensors. All these algorithms cannot be applied in a general manner and their field of application is limited. Nevertheless, our proposal has some advantages, due to the fact that it does not make assumptions about the scene nor the object structure, no characteristics are extracted, it does not segment objects trying to find a known shape and a stereo pair only is used, not a sequence. The method that we propose reconstructs a three-dimensional scene from a dense disparity map (the map contains depth information for every pixel in the image) obtained from a binocular camera. It makes a geometrical rectification to show the same aspect as the real scene, removing the conical perspective (see section 3.3) that the images from a camera show. For instance, if the image of a corridor is reconstructed with no rectification, the walls, the floor and the ceiling would appear with a slope, seeming to converge at a point. In the second section a more detailed description of the problem is given, with special focus on stereo vision and disparity maps. The proposed model is explained in the third section, including several solutions. Experiments are shown in the fourth section and, finally, some conclusions and future works to be developed are presented.

3.2 Problem description Stereo vision techniques are based on the possibility of extracting three-dimensional information from a scene, using two or more images taken from different view points. We will focus on the basic case of two images belonging to a scene. The function of corresponding pixels from each image must be obtained. Let

116

Scene reconstruction and geometrical rectification from stereo images

us consider that the camera objectives are parallel, so that the search area for each pixel in the image from the left camera (reference image) is reduced to the same row as the image from the right camera. Every pixel in this row, named epipolar line (figure 3.1), has a corresponding pixel in the other image, placed in a different column, due to the separation of cameras. The difference between the columns in absolute value is called disparity. The further the object is from the camera, the smaller the disparity, and vice versa.

Figure 3.1: A stereo par showing an epipolar line (left). Image of disparity (right)

Due to the fact that the disparity is a numerical value, it can be displayed as an image, named depth or disparity image (figure 3.1), assigning a grey level to every pixel. Bright colours represent high disparities (near objects) and dark ones low disparities (distant objects). There is an inverse relationship between the disparity value and the distance to the object. Depending on the camera geometry, the distance can be transformed to coordinates in an Euclidean space, where the centre is placed in the camera position. [2, 8, 9, 10, 11] The quality of the three-dimensional reconstruction depends on the quality of the disparity map. Strange objects (or false objects) can cause mistaken shapes and depth values, so errors will be translated to the reconstruction. Another important consideration is the characteristics of the environment where the images are taken. Most techniques are developed to work in indoor environments, such as office spaces or similar. This is due to the fact that the capture systems usually have a limited reach and modelling of the environment is conducted using geometrical primitives (walls, ceilings, floors and, even, guiding marks). All these constraints avoid the problems to be solved in open spaces. Therefore, some unlimited and general solutions to non-structured environments are set out in this paper.

Proposed Model

117

3.3 Proposed Model 3.3.1 Three-dimensional Reconstruction The reconstruction is based on a dense disparity image obtained through a process of window correlation (the correspondence between pixels from both images is done using a window correlation criterion, in order to identify similar areas in both images) [10, 11]. This depth image Vdepth contains the disparity which is associated to each pixel in the reference image (left image). Therefore, for every pixel [i,j] in the original image, we can find the disparity value in Vdepth [i][ j]. Horizontal and vertical components for each point are directly obtained from the row and the column in which the point is located in the image. [12, 13] To perform a three-dimensional reconstruction process four basic steps are taken: firstly the disparity image is stored in a two-dimensional matrix, then some smooth filters are applied (average and/or median filters), then the geometrical rectification is done (see next section) and, finally, a three-dimensional matrix is generated to store the spatial occupation. M2D[x][y] = Vdepth [x][y] ∀x, y ∈ Vdepth M2D = ApplySmoothFilters(M2D) M3D = ApplyRecti f ication(M2D) Display(ObtainRealU nits(M3D[x][y])) ∀x, y ∈ M3D

(3.1)

where: • Vdepth : disparity matrix • M2D: two-dimensional matrix • M3D: three-dimensional matrix • ApplySmoothFilters(): applies smooth filters on a 2D matrix, and leaves the result in a new 2D matrix. • ApplyRectification(): applies geometrical rectification on a 2D matrix, and returns a 3D matrix containing the result. • Display(): displays a given point on the screen.

118

Scene reconstruction and geometrical rectification from stereo images • ObtainRealUnits(): returns a value in real units (metres) given a value in pixels.

3.3.2 Geometrical Rectification In order to correct the perspective in the images a rectification is needed. An image taken with a camera is in conical perspective, such that all parallel lines converge at a point (see figure 3.2). So, to perform the reconstruction correctly the perspective must be rectified.

Figure 3.2: Conical perspective

A rectification on each point coordinates x and y is performed, maintaining the same value for z. The rectification depends on depth and on coordinates x and y. The higher the value of z, the higher the rectification; the more central the point appears in the image, the higher the rectification. Figure 3.3 shows the scheme for the rectification process: figure 3.3(a) shows a non-rectified scene in 3D, in figure 3.3(b) the scene is seen from the top (only x and z coordinates are shown), and figure 3.3(c) shows the scene after being rectified. After the analysis of variables implied in geometrical rectification, we can conclude that the process of rectification depends on depth and difference between x, y and centre coordinates. As a result, the so called Lineal Rectification is obtained. The coordinates are lineally corrected, so that the rectification directly depends on grey level (that is, z coordinate) and position (x and y coordinates). In an ideal situation, the Linear Rectification rectifys the scene to

Proposed Model

119

Figure 3.3: Rectification scheme

obtain the result given in figure 3.3(c), but in real images some problems arise. The most important drawback is the fact that this method does not distinguish whether the figure is very close, and so some errors occur with certain images, especially if the main object is too far from the camera. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. So, important far non-centred objects can have holes and be dispersed. The rectification equation is: newX = x + (Vdepth [x][y]/kMax) ∗ f actorX newY = y + (Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(3.2)

Where: • Vdepth [x][y] contains the grey level corresponding to the pixel of coordinates ‘x’ and ‘y’. • kMax is the maximum value of depth. ( −x i f x < width/2 • f actorX = width − x i f x ≥ width/2 ( −y i f y < height/2 • f actorY = height − y i f y ≥ height/2 Observe that in the previous equation the new coordinates of a pixel are obtained from the former value of the coordinates, the depth value and the x, y

120

Scene reconstruction and geometrical rectification from stereo images

position of the pixel. Variables factorX and factorY contain the highest displacement that can be performed to place one pixel at the borders of the scene, that is, if the pixel is placed at the centre, the highest displacement is half the image. The value of Vdepth [x][y]/kMax is in the range [0, 1], and it depends on the depth: it is 0 if the pixel is in the foreground, and it is 1 if it is in the background (in this case, if the pixel is also in the centre of the image, the rectification is maximum, so the pixel is moved to the border of the image). In order to improve the rectification and avoid the holes in the main objects, we propose a Natural Logarithmic Rectification. In this case, a logarithmic function is applied to the depth value. The logarithm has the property of reducing the rectification when the object is close to the camera, and of magnifying the rectification when the object is far away. So, objects in the background suffer a higher correction than those in the foreground. newX = x + ln(Vdepth [x][y]/kMax) ∗ f actorX newY = y + ln(Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(3.3)

Finally, we also propose to use the Base-10 Logarithmic Rectification, whose function has a smoother slope than the natural logarithm. In some images, it is a better option due to the fact that small details do not disappear and holes are smaller. newX = x + log10 (Vdepth [x][y]/kMax) ∗ f actorX newY = y + log10 (Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(3.4)

3.4 Experiments Some experiments have been done to prove the validity of every kind of proposed geometrical rectification. Figure 3.4 shows four cases: the first image corresponds to the reconstruction of the disparity image of figure 3.1, without any kind of rectification. The result of linear and both types of logarithmic rectifications are shown in images (b), (c) and (d) of figure 3.4. In the non-rectified image, the floor shows several steps, corresponding to the conical perspective effect.

Conclusions and future work

121

(a)

(b)

(c)

(d)

Figure 3.4: Reconstruction and rectification: (a) no rectification, (b) lineal rectification, (c) natural logarithmic rectification and (d) base-10 logarithmic rectification

The images in figure 3.4 show that the rectification reduces the slope of the floor, especially in logarithmic rectifications. However, as the rectification increases, some details tend to disappear. Figure 3.5 show the effect of rectification on the floor.

3.5 Conclusions and future work In this paper we have presented a method of reconstructing three-dimensional scenes from stereo images. The reconstruction is corrected using three kinds of rectification. Although the results show that rectification improves the reconstruction, the final quality of the reconstructed image depends on the quality of the disparity map. In future, we will try to obtain better disparity images that

122

Scene reconstruction and geometrical rectification from stereo images

(a)

(b)

(c)

(d)

Figure 3.5: Effect of rectification on the floor: (a) no rectification, (b) lineal rectification, (c) natural logarithmic rectification and (d) base-10 logarithmic rectification

will improve the final result. It can also be concluded that each type of rectification is suitable for a different kind of images. If the main object in the image is central and close to the observer, the best choice is the logarithmic rectification, to avoid holes in the shapes. However, is the scene is made up of several objects, distributed throughout the image, the best choice is linear rectification, to conserve all details. We are very interested in obtaining a method to rectify all kinds of images. So, a new line of research, the Continuous Geometrical Rectification, is set out. Due to the discreteness of disparity maps, rectifying each pixel produces holes, as we have already shown. To solve this drawback, we propose treating the disparity maps in a continuous way, so that given two points in the space, the number of points (or pixels, in the map) between them is not finite but infinite. Nevertheless, although from a theoretical point of view the real space is continuous, the representation we use (the disparity map) is a discrete sample of the real space. So a way is needed to fill the “gaps” between given points (the pixels of the map). In order to fill these gaps it is first necessary to detect which the objects in the scene are, so some kind of segmentation is needed. As a first approach, the objects are detected using segmentation by colour and then, starting with the first pixel detected, the object is explored to obtain its silhouette. Only the points in

Bibliography

123

the silhouette are rectified and the holes are interpolated to obtain a filled object. In figure 3.6, the proposed scheme is shown.

Figure 3.6: Scheme for continuous rectification

Acknowledgments This work has been done with the support of the project “Scene reconstruction and integration of 3D visual information in an augmented reality system (GV04A-730)” given by the “Generalitat Valenciana” (regional government of Valencia, Spain).

Bibliography [1] Hans P. Moravec. “Robot spatial perception by stereoscopic vision and 3D evidence grids”. The Robotics Institute Carnegie Mellon University. Pittsburgh, Pennsylvania, 1996. [2] Amador Gonz´alez, J.A. “Adquisici´on y procesamiento de im´agenes estereosc´opicas y modelado de mundos 3D para su implementaci´on en exploraci´on de ambientes”. Tesis. Universidad de las Am´ericas-Puebla. 2004. [3] Camillo J. Taylor. “Surface Reconstruction from Feature Based Stereo”. Proceedings of the Ninth IEEE International Conference on Computer Vision (ICCV 2003), pp. 184-190. [4] Bastian Goldl¨ucke, Marcus A. Magnor. “Joint 3D-Reconstruction and Background Separation in Multiple Views using Graph Cuts”. Proceedings of CVPR 2003, pp. 683-694, IEEE Computer Society, Madison, USA, June 2003.

124

Scene reconstruction and geometrical rectification from stereo images

[5] K.M. Cheung, T. Kanade, J. Bouguet, and M. Holler. “A real time system for robust 3D voxel reconstruction of human motions”. Proceedings of the 2000 IEEE Conference on Computer Vision and Pattern Recognition (CVPR ’00), Vol. 2, June, 2000, pp. 714 - 720. [6] Richard Lengagne, Pascal Fua and Olivier Monga. “3D Stereo Reconstruction of Human Faces driven by Differential Constraints”. Image and Vision Computing 18, pp.337-343, 2000. [7] M. Li, H. Schirmacher, M. Magnor, and H.P. Seidel. “Combining stereo and visual hull information for on-line reconstruction and rendering of dynamic scenes”. In IEEE Workshop on MMSP, pages 9–12, 2002. [8] E. Trucco and A. Verri. “Introductory techniques for 3-D Computer Vision”. Prentice Hall, 1998 [9] I. Cox, S. Ignoran, and S. Rao. “A maximum lilelihood stereo algorithm”. Computer Vision and Image Understanding, 63, 1996. [10] Compa˜n Rosique, Patricia. “Estimaci´on de la disparidad en visi´on estereosc´opica. Tratamiento del color”. Tesis doctoral. Universidad de Alicante. 2004 [11] Satorre Cuerda, Rosana. “Visi´on est´ereo, multirresoluci´on y modelo integrado”: tesis doctoral. Universidad de Alicante. 2002 [12] M. Pollefeys, R. Koch and L. Van Gool. “A simple and efficient rectification method for general motion”. Proc. International Conference on Computer Vision, pp.496-501, Corfu (Greece), 1999. [13] M. Pollefeys. “3D modelling from images”. Tutorial on conjunction with ECCV 2000, 2000.

Publicaci´on 4

Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps A. Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial (I3A) Universidad de Alicante, Alicante (Spain) {ajgallego, rmolina, villagra}@dccia.ua.es Proceedings of the Fifth IASTED International Conference on Visualization, Imaging, and Image Processing. September 7-9, 2005, Benidorm, Spain. pp. 366–371. ISBN 0-88986-528-0. Calificado como CORE C

126 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps

Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps A. Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial (I3A) Universidad de Alicante, Alicante (Spain) {ajgallego, rmolina, villagra}@dccia.ua.es

Abstract A system to reconstruct three-dimensional scenes from stereo images is presented. It is based on a dense disparity image obtained by a process of window correlation. Starting from these images and after the application of a geometrical rectification, the 3D reconstruction of the scene is obtained. The geometrical rectification is essential to correct the conical perspective of the camera and to obtain real scenes. Two 3D reconstruction types will be compared, one made in a discrete way and the other in a continuous way to try to solve the problems of the discrete reconstruction. In the case of the discrete reconstruction, two variants of the geometrical rectification equation are also proposed. Keywords: Disparity images, geometrical rectification, scene reconstruction.

4.1 Introduction Nowadays a central aspect in artificial intelligence research is the perception of the environment by artificial systems. Specifically, stereoscopic vision opens new paths that in the future will allow these systems to capture the three-dimensional structure of their environment without any physical contact. For instance, an initial solution to three-dimensional reconstruction with stereo technology was developed at Carnegie Mellon University. The possibility of composing several three-dimensional views from the camera transforms is set out, to build the so-called “3D evidence grid”. [1]

Introduction

127

Most proposals in this field are based on disparity maps obtained by the extraction of scene characteristics, such as corners, borders, and so on. Or this extraction can be done once the disparity map is obtained [2, 3]. Some solutions propose the use of a background image to obtain objects and silhouettes, performing a different operation with the image to reconstruct the scene [4]. It is also habitual to use a general model or a priori knowledge with which the result is compared, so that the reconstruction is built using this knowledge as a model. This is the case with the reconstruction of faces or known objects [5]. For instance, in [2] the author reconstructs some basic objects from a stereo image using primitives, such as cubes or boxes, and the objects are displayed in 3D. Moreover, several views of a scene, or a sequence of them can be used to make the reconstruction [6]; or it can be based on other types of sensors, such as laser range sensors. All of these algorithms cannot be applied in a general manner and their field of application is limited. Nevertheless, our proposal has some advantages. Due to the fact that it does not make assumptions about the scene nor the object structure, it does not segment objects trying to find a known shape and only a stereo pair is used, not a sequence. Moreover, there are very few works which focus on creating a good reconstruction and on obtaining a real appearance of the scene. The two methods proposed here reconstruct a three- dimensional scene from a dense disparity map (the map contains depth information for every pixel in the image) obtained from a binocular camera. Both make a geometrical rectification to show the same aspect as the real scene, removing the conical perspective (see section 4.3) that the images from a camera show. For instance, if the image of a corridor is reconstructed with no rectification, the walls, the floor and the ceiling would appear with a slope, seeming to converge at a point. In the next section a more detailed description of the problem is given, with special focus on stereo vision and disparity maps. The geometrical rectification and the two types of reconstruction are explained in the third section. The experiments are shown in the fourth section, where we compare two reconstruction methods which use the geometrical rectification equation. One of them is carried out in a discrete way and the other in a continuous way. Finally, experiments on both methods and some conclusions and future works to be undertaken are presented.

128 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps

4.2 Problem description Stereo vision techniques are based on the possibility of extracting three-dimensional information from a scene using two or more images taken from different view points. We will focus on the basic case of two images belonging to a scene, obtained with a stereo camera with parallel objectives. In order to gather this 3D information, a function that computes the correspondence between the pixels from the left camera (reference image) and those from the right camera must be defined. The difference between each of these pairs of pixels is a value called disparity. This information can be displayed as an image, and is known as the depth or disparity image (figure 4.1). Depending on the camera geometry, the distance can be transformed to coordinates in a Euclidean space, where the centre is placed in the camera position. [2, 7, 8, 9]

Figure 4.1: Reference and disparity images.

The methods of making the geometrical rectification and the discrete 3D reconstruction are presented in [10]. However, as these algorithms presented some problems in the visual aspect of the final result, further research has been carried out.

4.3 Proposed Model In this section the proposed method is be presented. Firstly, the geometrical rectification equation, which is used by the two reconstruction methods, is briefly explained. Then a comparison between discrete and continuous reconstruction is shown, in order to be able to see the problems that they have and how they are solved.

Proposed Model

129

4.3.1 Geometrical Rectification In order to correct the perspective in the images a rectification is needed. An image taken with a camera is in conical perspective, such that all parallel lines converge at a point (see figure 4.2.a). So, to perform the reconstruction correctly the perspective must be rectified, thus the obtained result shows the same aspect as the real scene.

(a)

(b)

(c)

(d)

Figure 4.2: (a) Conical perspective and (b, c, d) rectification scheme

A rectification of each point for coordinates x and y is performed, whilst maintaining the same value for z. The rectification depends on depth and on coordinates x and y. The higher the value of z, the higher the rectification; the more central the point appears in the image, the higher the rectification. Figure 4.2 shows the scheme for the rectification process: figure 4.2(b) shows a nonrectified scene in 3D, in figure 4.2(c) the scene is seen from above (with only x and z coordinates shown), and figure 4.2(d) shows the scene after being rectified. After the analysis of variables implied in geometrical rectification, we can conclude that the process of rectification depends on the depth and difference between x, y and centre coordinates. As a result, the so called Lineal Rectification is obtained. The coordinates are lineally corrected, so that the rectification directly depends on grey level (that is, z coordinate) and position (x and y coordinates). In an ideal situation, the Linear Rectification would rectify the scene to obtain the result given in figure 4.2(d), but with real images some problems arise. The rectification equation is: newX = x + (Vdepth [x][y]/kMax) ∗ f actorX newY = y + (Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(4.1)

130 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps Where: • Vdepth [x][y] contains the grey level corresponding to the pixel of coordinates ‘x’ and ‘y’. • kMax is the maximum value of depth. ( −x i f x < width/2 • f actorX = width − x i f x ≥ width/2 ( −y i f y < height/2 • f actorY = height − y i f y ≥ height/2 Observe that in the previous equation the new coordinates of a pixel are obtained from the former value of the coordinates, the depth value and the x, y position of the pixel. Variables factorX and factorY contain the highest displacement that can be performed to place one pixel at the borders of the scene, that is, if the pixel is placed at the centre, the highest displacement is half the image. The value of Vdepth [x][y]/kMax is in the range [0, 1], and depends on the depth: it is 0 if the pixel is in the foreground, and it is 1 if it is in the background (in this case, if the pixel is also in the centre of the image, the rectification is maximum, so the pixel is moved to the border of the image).

4.3.2 Discrete three-dimensional reconstruction The reconstruction is based on a dense disparity image obtained through a process of window correlation (the correspondence between pixels from both images is done using a window correlation criterion, in order to identify similar areas in both images) [9]. This depth image Vdepth contains the disparity which is associated to each pixel in the reference image (left image). Therefore, for every pixel [i,j] in the original image, we can find the disparity value in Vdepth [i][ j]. Horizontal and vertical components for each point are directly obtained from the row and the column in which the point is located in the image. [11, 12] To perform a three-dimensional reconstruction process four basic steps are taken: firstly the disparity image is stored in a two-dimensional matrix, then some smooth filters are applied (average and/or median filters), then the geometrical rectification is done (see previous section) and, finally, a three-dimensional matrix is generated to store the spatial occupation.

Proposed Model

131

M2D[x][y] = Vdepth [x][y] ∀x, y ∈ Vdepth M2D = ApplySmoothFilters(M2D) M3D = ApplyRecti f ication(M2D) Display(ObtainRealU nits(M3D[x][y])) ∀x, y ∈ M3D

(4.2)

where: • Vdepth : disparity matrix • M2D: two-dimensional matrix • M3D: three-dimensional matrix • ApplySmoothFilters(): applies smooth filters on a 2D matrix, and leaves the result in a new 2D matrix. • ApplyRectification(): applies geometrical rectification on a 2D matrix, and returns a 3D matrix containing the result. • Display(): displays a given point on the screen. • ObtainRealUnits(): returns a value in real units (metres) given a value in pixels. The most important drawback is the fact that when the geometrical rectification equation (4.1) is applied, holes are produced in the 3D representation. This is due to the discreteness of disparity maps. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. In order to solve these problems, a Natural Logarithmic Rectification is proposed. In this case, a logarithmic function is applied to the depth value. The logarithm has the property of reducing the rectification when the object is close to the camera, and of magnifying the rectification when the object is far away. So, objects in the background suffer a higher correction than those in the foreground. newX = x + ln(Vdepth [x][y]/kMax) ∗ f actorX newY = y + ln(Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(4.3)

132 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps We also propose to use the Base-10 Logarithmic Rectification, whose function has a smoother slope than the natural logarithm. In some images, it is a better option due to the fact that small details do not disappear and holes are smaller. newX = x + log10 (Vdepth [x][y]/kMax) ∗ f actorX newY = y + log10 (Vdepth [x][y]/kMax) ∗ f actorY Vdepth [newX ][newY ] = Vdepth [x][y]

(4.4)

4.3.3 Continuous three-dimensional reconstruction The following method is a 3D reconstruction system which works with the coordinates in a continuous way. It tries to solve the inconveniences that the original reconstruction algorithm has (see previous section) [10]. To solve these drawbacks, it is proposed to deal with the disparity maps in a continuous way, so that given two points in the space, the number of points (or pixels, in the map) between them is not finite but infinite. As a result of this, holes will not be formed when the geometrical rectification is made. This process basically takes the following steps: 1. The image is scanned by rows and columns, until the first pixel of an object’s border is detected: (a) The object’s border is scanned until it arrives at the beginning. (b) The interior of the object is emptied, so leaving only the border. (c) Each pixel of the border is geometrically rectified. (d) Any holes formed by the rectification of the border pixels are joined using lines. (e) The interior of the rectified object is then refilled. 2. The result is displayed The proposed reconstruction algorithm only needs a single scan of the disparity image to complete all the steps of the process. In other words, firstly it scans the image looking for a new object. When one is detected the scan of its border begins. For each new border pixel, the following steps are taken: The interior of the object is emptied, the position of the pixel is rectified and joined

Proposed Model

133

Figure 4.3: Continuous rectification scheme

with the previous pixel using a line, and finally, the interior of the rectified area is filled, leaving the result in a three-dimensional matrix. In order to detect the objects, the method is based on the difference of tonality among the pixels, which greatly facilitates the task because the disparity images are in grey scale. Therefore, in order to detect a new object, the disparity image will be scanned until an intensity difference is found between two adjacent pixels. This intensity difference means that a new object has been located.

Figure 4.4: Grey level segmentation of figure 4.1

In the following sections, a more detailed description of each of the steps comprising the continuous reconstruction algorithm is given. Scan of the Border (1.a) The border of each object is scanned following its contour until arriving at the beginning (first detected pixel) of the same border. This kind of ordered scan is used because when each pixel of the object’s border is rectified the previous pixel must be known (they must be joined in a later step). It would also be possible to

134 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps use a scan line algorithm, but in such a case a later process of ordering would be necessary, which would increase the cost. The scan method is based on the fact that each pixel of the border has a neighbour which is external to the object (a different colour’s pixel). This way, given a pixel of an object: another pixel also belonging to the object is searched for among its eight-neighbours, and subsequently it is checked to see if these two points share an external pixel (that has distance one to each of them). In the following algorithm these steps are detailed: For each border’s pixel scan their 8-neighbours If it belongs to the object Scan the 8-neighbours of the new pixel If it shares an external pixel with the initial pixel Finish

Figure 4.5 shows the scheme for the scan process, where the grey boxes represent the interior pixels of the object and the white boxes, the exterior pixels. Figure 4.5(a) shows the current pixel marked with an X. In (b) the 8-neighbours of the current pixel are shown. The candidate pixel has been marked with a circle. In (c) the new 8-neighbours used to find an external pixel can be seen, and the shared external pixel has been marked with a circle. Finally, in (d) the new border’s pixel is represented, and the direction of border growth represented by an arrow.

Figure 4.5: Scan of the border scheme

Empty the interior of the object (1.b) As the border of an object is scanned, the interior of the object is emptied. This step is necessary to detect that the object has already been processed when the scan arrives back at the beginning (Figure 4.6).

Proposed Model

135

Figure 4.6: Emptying of the object

Rectification of border pixels and joining using lines (1.c and 1.d) The geometrical rectification (equation 4.1) is only carried out on the border’s pixels (figure 4.7). When each pixel is moved to a rectified position, holes will appear in the silhouette. Hence, it will be necessary to join these holes using lines. The process is as follows: As the border of the object is scanned and its interior is emptied, so each pixel is rectified. Once the pixel has been moved to the rectified position it is joined with the previous pixel using a line. In this way, when the algorithm finishes, a complete contour of the object, without any holes, will remain.

Figure 4.7: Rectification and joining using lines

Fill the interior of the object (1.e) Once the border has been detected, rectified and joined using lines, then the final step of the algorithm is to fill the object. As the information provided by the disparity image is available, the interior of an object can be easily identified. In this way, the borders are classified as either incoming (if its right area is interior to the figure) or outcoming (if its right area is external). Scan lines will be followed to fill the interior of objects: when an incoming area is detected the current scan line is filled until arriving to the next border, and when an outcoming area is detected the scan line will be emptied. This process basically makes the following steps: Scan the line of the image toward the right If it is not a border of the object If it is incoming area → Fill Else if it is outcoming area → Empty Else Finish

136 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps

4.4 Experiments Some experiments on the continuous reconstruction algorithm have been done in order to make comparisons with previous results. Firstly, a synthetic image is used to be able to check the steps made by the algorithm.

(a)

(c)

(b)

(d)

(e)

Figure 4.8: Continuous reconstruction results

Figure 4.8 shows the steps that the continuous reconstruction algorithm follows until the obtainment of the final 3D reconstruction (e). In (a) the disparity image used to make the reconstruction is shown. Figure (b) shows the objects obtained after segmentation. In (c) the scan of the border and the geometric rectification of each border pixel have been made. In (d) the holes which appeared in the borders during (c) have been linked using lines. Finally, in (e) the interior of the object has been filled. In the following example (figure 4.9) a comparison of the different reconstruction types can be seen, based on the reference image (a) and on the disparity image (b). The results of discrete reconstruction and different types of rectification (lineal, natural logarithmic and base-10 logarithmic respectively) are shown in images (c, d, e) of figure 4.9. The geometrical rectification can result in some gaps appearing in the reconstruction result, even though the number of removed details from the shape will depend on the kind of geometrical rectification used. The lineal rectification has almost eliminated all the details, the other rectifica-

Experiments

137

tion types work quite better. Finally, in (f) the result of a continuous 3D reconstruction can be seen, where no holes appear, so giving a more realistic aspect.

(a)

(b)

(c)

(d)

(e)

(f)

Figure 4.9: Results of the reconstruction

Using the disparity image of figure 4.1 other comparisons are shown below in order to test the effectiveness of the proposed methods with an image taken of an external scene. The results of the discrete reconstruction and the different types of rectification (lineal, natural logarithmic and base-10 logarithmic respectively) are shown in figure 4.10, images (c, d, e). The result has some gaps, as shown in the previous example, thereby creating an unreal appearance. In (d) the result of the continuous 3D reconstruction is shown, where the holes have been joined together, so giving a better result with a more realist aspect. Finally, a detail of the floor reconstruction is included, (images (e, f), to appreciate the reduction of the slope of the floor. In (e) the floor without any rectification is shown, and (f) shows how rectification has really reduced the slope. It is important to note that the process time is less than 0.3 sec., therefore, it could be used for real-time applications. The time for the continuous reconstruction process takes only 0.09 sec. more than the discrete algorithm. The visualization time is only dependent on the precision required.

138 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps

(a)

(b)

(c)

(d)

(e)

(f)

Figure 4.10: Results of the reconstruction

Figure 4.11: Comparison of times

4.5 Conclusions and future work This paper has presented a new method of continuous reconstruction of 3D scenes from stereo images, as an improvement to a previous method based on discrete reconstruction [10]. The holes which appeared with the original algorithm have been eliminated, giving a realer aspect to the final reconstruction. Nevertheless, the final quality of the reconstructed image depends on the quality of the disparity map. In future experiments, better disparity images will try to be obtained that will improve the final result. The proposals given here do have certain aspects that need to be improved,

Bibliography

139

however. When the objects to reconstruct are distant from the camera, the reconstruction suffers from aliasing. Moreover, the segmentation process makes this method a little slower than the previous ones. Current work is focused on another method of continuous reconstruction, based on ”sub-pixel precision”. This method tries to solve the problems of the proposed algorithms. It is estimated that this method would be quicker than those proposed here, because it would remove the need to make segmentation or detection of borders. In addition, the obtained reconstruction would be of a better quality and would present a more realistic aspect, because it would eliminate the aliased borders. Acknowledgments This work has been done with the support of the project “Scene reconstruction and integration of 3D visual information in an augmented reality system (GV04A- 730)” given by the “Generalitat Valenciana” (Regional Government of Valencia, Spain).

Bibliography [1] Hans P. Moravec. “Robot spatial perception by stereoscopic vision and 3D evidence grids”. The Robotics Institute Carnegie Mellon University. Pittsburgh, Pennsylvania, 1996. [2] Amador Gonz´alez, J.A. “Adquisici´on y procesamiento de im´agenes estereosc´opicas y modelado de mundos 3D para su implementaci´on en exploraci´on de ambientes”. Tesis. Universidad de las Am´ericas-Puebla. 2004. [3] Camillo J. Taylor. “Surface Reconstruction from Feature Based Stereo”. Proceedings of the Ninth IEEE International Conference on Computer Vision (ICCV 2003), pp. 184-190. [4] Bastian Goldl¨ucke, Marcus A. Magnor. “Joint 3D- Reconstruction and Background Separation in Multiple Views using Graph Cuts”. Proceedings of CVPR 2003, pp. 683-694, IEEE Computer Society, Madison, USA, June 2003.

140 Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps [5] Richard Lengagne, Pascal Fua and Olivier Monga. “3D Stereo Reconstruction of Human Faces driven by Differential Constraints”. Image and Vision Computing 18, pp.337-343, 2000. [6] M. Li, H. Schirmacher, M. Magnor, and H.P. Seidel. “Combining stereo and visual hull information for on-line reconstruction and rendering of dynamic scenes”. In IEEE Workshop on MMSP, pages 9–12, 2002. [7] E. Trucco and A. Verri. “Introductory techniques for 3-D Computer Vision”. Prentice Hall, 1998 [8] I. Cox, S. Ignoran, and S. Rao. “A maximum lilelihood stereo algorithm”. Computer Vision and Image Understanding, 63, 1996. [9] Satorre Cuerda, Rosana. “Visi´on est´ereo, multirresoluci´on y modelo integrado”. Tesis doctoral. Universidad de Alicante. 2002 [10] Antonio Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo, “Scene reconstruction and geometrical rectification from stereo images”, World Multi- Conference on Systemics, Cybernetics and Informatics (WMSCI), Orlando, 2005 [11] M. Pollefeys, R. Koch and L. Van Gool. “A simple and efficient rectification method for general motion”. Proc. Internat. Conference on Computer Vision, pp.496-501, Corfu (Greece), 1999. [12] M. Pollefeys. “3D modelling from images”. Tutorial on conjunction with ECCV 2000, 2000.

Publicaci´on 5

Three-Dimensional Mapping from Stereo Images with Geometrical Rectification A. J. Gallego S´anchez, R. Molina Carmona and C. Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, villagra}@dccia.ua.es Proceedings of the 4th international conference on Articulated Motion and Deformable Objects (AMDO’06). Springer-Verlag - LNCS 4069 (2006) pp. 213 – 222. ISSN: 0302-9743. ISBN: 978-3-54036031-5

142

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

Three-Dimensional Mapping from Stereo Images with Geometrical Rectification A. J. Gallego S´anchez, R. Molina Carmona and C. Villagr´a Arnedo Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, villagra}@dccia.ua.es Abstract In this paper we present a method for mapping 3D unknown environments from stereo images. It is based on a dense disparity image obtained by a process of window correlation. To each image in the sequence a geometrical rectification process is applied, which is essential to remove the conical perspective of the images obtained with a photographic camera. This process corrects the errors in coordinates x and y to obtain a better matching for the map information. The mapping method is an application of the geometrical rectification and the 3D reconstruction, whose main purpose is to obtain a realistic appearance of the scene. Keywords: Disparity images, Geometrical rectification, 3D mapping.

5.1 Introduction Nowadays, a central aspect in artificial intelligence research is the perception of the environment by artificial systems. It is a critical element in robot navigation tasks like map building (mapping) and self-location. Specifically, stereoscopic vision opens new paths that in the future will allow these systems to capture the three-dimensional structure of their environment without any physical contact. Moreover, range sensors can also acquire very detailed models [1], but these types of sensors are more expensive and they cannot provide information of both range and appearance, which is useful for navigation algorithms and texture mapping. For these reasons we will focus on stereo vision. Several authors use stereo vision and disparity images to solve the 3D mapping problem. For instance, a first solution to three-dimensional reconstruction

Proposed Model

143

with stereo technology was developed at Carnegie Mellon University. The possibility of composing several three-dimensional views from the camera transforms is set out, to build the so-called “3D evidence grid” [2]. There are other approaches which infer 3D grids from stereo vision, due to the fact that appearance information is not provided by range finders. Hence, they add an additional camera to their mobile robots [3, 4]. Moreover, a module of 3D recognition could be added to identify some objects. This technique is not exclusive of robotics, but it could be used in other applications such as automatic machine guidance or also for detection and estimation of vehicle movement [5]. Stereo vision can improve the perception of scenes and world modelling, so there are some methods which work with disparity images due to their advantages. The problem is that these algorithms cannot be applied in a widespread manner with all types of structures; because the images (or the objects) obtained from a camera have no real size, since they are deformed by the conical perspective effect. We present an original mapping method which reconstructs the environment from a sequence of geometrically rectified images. For each pair of stereo images in the sequence a dense disparity map is calculated (the map contains depth information for every pixel in the image) and next it is geometrically rectified in order to show the same aspect as the real scene. This process is essential to remove the conical perspective of the images obtained with a binocular camera. Other simpler geometrical rectifications have already been used in other fields, like in [6] to rectify roads and to obtain their real appearance.

5.2 Proposed Model 5.2.1 Process Scheme Stereo vision techniques are based on the possibility of extracting 3D information from a scene using two or more images taken from different view points. We will focus on the basic case of two images of a scene, obtained with a stereo camera with parallel objectives. In order to gather this 3D information, a function that computes the correspondence between the pixels from the left camera (reference image) and those from the right camera must be defined. The positional difference between each of these pairs of pixels is a value called disparity.

144

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

This information can be displayed as an image, and is known as depth or disparity image. Depending on the camera geometry, the distance can be transformed to coordinates in an Euclidean space, where the centre is placed in the camera position. [7, 8, 9] In this work a 3D reconstruction method and a scene mapping algorithm are presented. For the 3D reconstruction several steps are followed: First, the disparity map is calculated starting from the images captured by the stereo camera. Then, a geometrical rectification process is applied in order to remove the effect of the conical perspective (see section 5.2.2). And finally, the 3D reconstruction is obtained (see section 5.2.3). The mapping algorithm is an application of this reconstruction method. It is based on a sequence of stereo images. For each image of this sequence its disparity map and its geometrical rectification are calculated. Once their space occupation matrix has been obtained, the mapping process is applied (see section 5.2.4). Camera calibration and disparity algorithm are not the purpose of this paper. The disparity image is computed using multi-resolution and energy function [10, 11]. Moreover, it is important to note that the quality of the three-dimensional reconstruction depends on the quality of the disparity map. Errors in the disparity map can cause mistaken shapes and incorrect depth values, so errors will be transferred to the reconstruction.

5.2.2 Geometrical Rectification In order to correct the perspective in the images a rectification is needed. An image taken with a camera is in conical perspective, such that all parallel lines converge at a point. As an example, figure 5.1(a) shows an image of a corridor, in which, due to the perspective effect induced by the acquisition conditions, the size of all the elements changes according to their distance from the camera. In this example, a pixel in the lower part of the image represents a small volume of the scene (it represents a part of the scene in the foreground); while a pixel in the centre of the same image represents a larger volume (because the part of the scene represented by the pixel is in the background). So, to correctly perform the 3D reconstruction the perspective must be rectified, thus the obtained result shows the same aspect as the real scene. [12, 13] Figure 5.1 shows the scheme for the rectification process: figure 5.1(b) shows a non-rectified scene in 3D, in figure 5.1(c) the scene is seen from above (with

Proposed Model

145

Figure 5.1: Rectification scheme

only x and z coordinates shown), and figure 5.1(d) shows the result which are desired after rectification. After the analysis of variables implied in geometrical rectification, it can be concluded that the process of rectification depends on the depth and difference between x, y and centre coordinates. As a result, the so called Linear Rectification is obtained. The coordinates are linearly corrected, so that the rectification directly depends on grey level (that is, z coordinate) and position (x and y coordinates). In an ideal situation, the Linear Rectification would rectify the scene to obtain the result given in figure 5.1(d), but with real images some problems arise. The rectification equation is:

Where:

 ′    x := x + y′ := y +    ′ z := z

f f





D(x,y) ×α ×w  Dmax  D(x,y) ×α ×w Dmax

(5.1)

• f is a depth modifier. In the original equation it is a linear function but other functions can also be applied (explained below). • D(x, y) contains the grey level or the depth corresponding to the pixel of coordinates x and y. • Dmax is the maximum value of depth. • α is a value in the range [0, 1] which measures the filter proportion.

146

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

• w := • h :=





−x ... width − x . . .

if x < width/2 if x ≥ width/2

−y ... height − y . . .

if y < height/2 if y ≥ height/2

It is important to note that in the previous equation the new coordinates of a pixel are obtained from the former value of the coordinates, the depth value and the x, y position of the pixel. Variables w and h contain the highest displacement that can be performed to place one pixel at the borders of the scene, that is, if the pixel is placed at the centre, the highest displacement is half the image. The value of D(x, y)/Dmax is in the range [0, 1], and depends on the depth: it is 0 if the pixel is in the foreground, and 1 if it is in the background (in this case, if the pixel is in the centre of the image, the rectification is maximum, so the pixel is moved to the border of the image). The most important drawback is the fact that this method does not distinguish whether the figure is very close, and therefore, errors occur with some images, especially if the main object is too far from the camera. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. So, important far non-centred objects can have holes and be dispersed. In order to minimize these problems, a Logarithmic Rectification is proposed. In this case, a logarithmic function is applied to the depth value, substituting the function f . The logarithm has the property of reducing the rectification when the object is close to the camera, and of magnifying the rectification when the object is far away. So, objects in the background suffer a higher correction than those in the foreground.

5.2.3 Discrete Three-Dimensional Reconstruction The reconstruction is based on a dense disparity image obtained through a process of window correlation (the correspondence between pixels from both images is carried out using a window correlation criterion, in order to identify similar areas in both images). This depth image contains the disparity which is associated to each pixel in the reference image (left image). Therefore, for every pixel in the original image, we can find the disparity value in D(x, y). Horizontal and vertical components for each point are directly obtained from the row and the column in which the point is located in the image [9, 12, 13, 14]. In this

Proposed Model

147

way, a three-dimensional matrix M3D which represents the space occupation of the scene can be filled. To perform a simple three-dimensional reconstruction process four basic steps are taken: firstly the disparity map (D) is stored in a two-dimensional matrix (M2D ) which has the same size as the disparity map (m × n), and then some smooth filters can be applied if needed (average and/or median filters). Next, a geometrical rectification process (see section 5.2.2) is applied, which takes the 2D matrix (M2D ) and returns a 3D matrix (M3D ) containing the result. In this way, the matrix M3D (which is initialized to zero) is filled, making M3D (x′ , y′ , D(x, y)) = 1 where x = 0, 1, ..., m − 1 and y = 0, 1, ..., n− 1, which will indicate the space occupation of the final result. Starting from each of the M3D depth values, their equivalence in real units (metres) is calculated and, finally, the result is shown. 1. M2D := ObtainDisparityData(D) 2. M2D := ApplySmoothFilters(M2D ) 3. M3D := ApplyRecti f ication(M2D ) 4. Display(ObtainRealU nits(M3D )) The most important drawback is the fact that when the geometrical rectification equation (5.1) is applied, holes are produced in the 3D representation. This is due to the discreteness of disparity maps. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. To minimize these problems the geometrical rectification filters which use a logarithmic function were introduced.

5.2.4 Mapping Algorithm In this section a novel mapping algorithm is presented. It demonstrates the utility of the geometrical rectification and the advantages of its application to this kind of problem. In order to do the 3D mapping of the scene, N stereo images I0 , I1 , ..., IN−1 of the environment are taken. Each of these images is captured at a fixed distance. Once a stereo pair (Ii , i = 0, 1, ..., N − 1) is obtained, its corresponding disparity map Di is calculated and added to the Σ list which stores all the disparity maps. Next, the algorithm of geometrical rectification (explained in the

148

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

previous section) is used in order to compute the rectified matrix M3Di of each disparity map. For each matrix M3Di its intersection with the previous matrix is calculated (M3Di−1 ∩ M3Di), and its result is added to the main matrix Mmap which represents the mapping of the scene. A cubic filter F (explained below) is applied to the whole matrix Mmap , which discretizes the three-dimensional matrix and transforms it into a grid of rectangular cubes. Lastly, the result (Mmap ) is represented according to the space occupation of this matrix and calculating its equivalence in real units (metres). All these steps could be summarized as follows: 1. for each Dk ∈ Σ do (a) M2D := ObtainDisparityData(Dk ) (b) M2D := ApplySmoothFilters(M2D ) (c) M3D := ApplyRecti f ication(M2D ) (d) Mmap := Mmap ∩ M3D 2. Mmap := ApplyCubicFilter(Mmap ) 3. Display(ObtainRealU nits(Mmap )) Cubic filter F applies the equation g(x, y, z) := Σ(i, j,k)∈S f (i, j, k) to each cube of the matrix, where S represents the set of point coordinates which are located in the neighbourhood of g(x, y, z), including the point in question. In this way the space occupation of each cube is in the centre, and each cell contains the set of readings of that portion of the space. The number of readings is referred to as “votes”, and represents the probability of space occupation. Figure 5.2 shows the scheme for the mapping process: figure 5.2(a) represents the first image of the sequence, in figure 5.2(b) the scene is seen from above (with only x and z coordinates shown), and figure 5.2(c) shows the union of this image with the following image in the sequence; also, the intersection area of both can be seen.

5.3 Experiment Results In this section the experiment results are shown. Figure 5.3 shows a reconstruction comparison using a synthetic disparity map (a) which simulates a corridor.

Experiment Results

149

Figure 5.2: Mapping scheme

It clearly shows the effect of the geometrical rectification. In figure 5.3(b) no rectification is applied and in (c) the result of the rectification is shown. As can be seen in (c), the walls are perfectly rectified, becoming parallel as expected. To do the mapping experimentation we took a sequence of 25 images of a corridor with a resolution of 320x240 pixels. Figure 5.4 shows three images of the sequence as well as their disparity maps, and the corridor plan is shown below. The main objective is that the walls, floor and roof appear without slope in the reconstruction; it is also important, that columns (represented by circles in the plan) are detected correctly and that there should not be any obstacle in the corridor. In figure 5.5 the results of the corridor mapping are shown; a comparison between the different types of rectification can be seen. For all of them a cubic filter size of 3x3x3, and a number of votes of 5 have been used. In figure 5.5(a) there is no geometrical rectification, and a wrong result is obtained: the in-between space of the corridor is not clear. In figure 5.5(b) the Logarithmic Rectification has been applied, but only with a factor of 50%. This result is better than the previous one, because the walls are limited and the inbetween area of the corridor can be seen. In (c) the same type of rectification has been used, but increasing the factor to 100%. The result is similar to the previous one, although the corridor appears clearer. In figures 5.5(d) and (e) the Linear Rectification (without applying the logarithm function to the depth value) has been made. These results show a better definition of the corridor and a clearer in-between space, moreover, the columns can be distinguished on the right hand side (they are marked with an arrow). Figure 5.6 shows a pair of lateral views of the result 5.5(e).

150

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

Figure 5.3: Effect of the geometrical rectification on a corridor

Figure 5.4: Sequence of images for the mapping

Experiment Results

151

Figure 5.5: Mapping results of the corridor

Figure 5.6: Lateral views of the corridor

152

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

To conduct the experiments, a Pentium IV 3,20GHz with 2GB of RAM and a 512MB graphic card has been used. The reconstruction of the map has been made using a 320x240x256 voxels matrix and disparity maps with a size of 320x240 pixels. Moreover, it is important to note that only the pixels which have some value in the disparity map are processed. In other words, the black pixels whose distance is considered infinite will not be processed. To process the sequence of 25 images (each image has a level of 70% of processed data) the algorithm takes approximately 8 seconds. This time depends on the precision of the final 3D reconstruction. So, the process time of an individual reconstruction is less than 0.3 seconds.

5.4 Conclusions and Future Work This paper has presented a novel mapping algorithm which works with disparity maps in order to reconstruct unknown environments. It is an application based on a previous 3D reconstruction work. This method uses geometrical rectification to eliminate the effect of conical perspective, with the intention of obtaining a real aspect in the final result. The cubic filter is very useful to solve odometry problems; if it is not applied the number of coincidences would be too small. Nevertheless, the final quality of the reconstructed image depends on the quality of the disparity map. In future experiments, better disparity images will improve the final result. These methods have several advantages. Firstly, due to the fact that in the reconstructed scene each position represents the same size, the matching of the mapping algorithm is improved, and also it would be possible to process the information in parallel, allowing a homogeneous distribution of the information among all the image pixels. For instance, as geometrical rectification is applied to all the pixels in the image, a SIMD massively parallel system could be used. Moreover, it can take advantage of the parallel processing to carry out more elaborate operations. Current work is focused on applying textures to the reconstruction in order to give a more realistic aspect to the final result. Furthermore, we will try to improve the geometrical rectification, calculating the point of view and considering the used camera characteristics [1]. As future work, the obtained results will be used in an Augmented Reality system and in an autonomous robot system. It could solve the occlusion problem using the depth information from the disparity

Bibliography

153

map, and it could take advantage of the scene reconstruction to recognize their geometry, objects, and so on.

Bibliography [1] Jose M. Sanchiz, Robert Burns Fisher: Viewpoint Estimation in ThreeDimensional Images Taken with Perspective Range Sensors. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 11 (2000) 1324–1329 [2] Hans P. Moravec: Robot spatial perception by stereoscopic vision and 3D evidence grids. The Robotics Institute Carnegie Mellon University. Pittsburgh, Pennsylvania (1996) [3] Stephen Se, D. Lowe, J. Little: Vision-based mobile robot localization and mapping using scale-invariant features. Proc. of IEEE International Conference on Robotics and Automation. Seoul, Korea (2001) [4] C. Martin and S. Thrun: Real-time acquisition of compact volumetric maps with mobile robots. In Proceedings of ICRA’02: IEEE International Conference on Robotics and Automation (2002) [5] Gonzalo Pajares Martinsanz, Jes´us M. de la Cruz Garc´ıa: Visi´on por computador: im´agenes digitales y aplicaciones. Ed. Ra-Ma, D.L. Madrid (2001) [6] Alberto Broggi: Robust Real-Time Lane and Road Detection in Critical Shadow Conditions. In Proceedings IEEE International Symposium on Computer Vision, Coral Gables, Florida. IEEE Computer Society (1995) [7] E. Trucco and A. Verri: Introductory techniques for 3-D Computer Vision. Prentice Hall (1998) [8] I. Cox, S. Ignoran, and S. Rao: A maximum lilelihood stereo algorithm. Computer Vision and Image Understanding, 63 (1996) [9] Oliver Faugeras: Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachusetts (1993)

154

Three-Dimensional Mapping from Stereo Images with Geometrical . . .

[10] Compa˜n, P.; Satorre, R.; Rizo, R.: Disparity estimation in stereoscopic vision by simulated annealing. Artificial Intelligence research and development. IOS Press. (2003) 160–167 [11] Patricia Compa˜n, Rosana Satorre, Ram´on Rizo, Rafael Molina: Inproving depth estimation using colour information in stereo vision. IASTED International Conference on Visualization, Imaging and Image Processing (VIIP 2005), Benidorm (Spain) (2005) 377–389 [12] Antonio Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo: Scene reconstruction and geometrical rectification from stereo images. World Multi-Conference on Systemics, Cybernetics and Informatics (WMSCI), Orlando (2005) [13] Antonio Javier Gallego S´anchez, Rafael Molina Carmona, Carlos Villagr´a Arnedo: Discrete and Continuous Reconstruction of 3D Scenes from Disparity Maps. IASTED International Conference on Visualization, Imaging, and Image Processing, Benidorm (Spain) (2005) 366–371 [14] M. Pollefeys, R. Koch and L. Van Gool: A simple and efficient rectification method for general motion. Proc. International Conference on Computer Vision, Corfu (Greece) (1999) 496–501

Publicaci´on 6

Rectified Reconstruction from Stereo Pairs and Robot Mapping

Antonio Javier Gallego, Rafael Molina, Patricia Compa˜n and Carlos Villagr´a Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, company, villagra}@dccia.ua.es Lecture Notes in Computer Science, Springer-Verlag, LNCS 4673 (2007), pp. 141-148. ISSN: 0302-9743. Calificado como CORE A

156

Rectified Reconstruction from Stereo Pairs and Robot Mapping

Rectified Reconstruction from Stereo Pairs and Robot Mapping Antonio Javier Gallego, Rafael Molina, Patricia Compa˜n and Carlos Villagr´a Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, company, villagra}@dccia.ua.es Abstract The reconstruction and mapping of real scenes is a crucial element in several fields such as robot navigation. Stereo vision can be a powerful solution. However the perspective effect arises, as well as other problems, when the reconstruction is tackled using depth maps obtained from stereo images. A new approach is proposed to avoid the perspective effect, based on a geometrical rectification using the vanishing point of the image. It also uses sub-pixel precision to solve the lack of information for distant objects. Finally, the method is applied to map a whole scene, introducing a cubic filter.

6.1 Introduction Nowadays, a central aspect in artificial intelligence research is the perception of the environment by artificial systems. It has been considered as one of the most important problems for effective autonomous robotic navigation and reconstruction [1]. Most research on robot mapping makes use of powerful computers and expensive sensors, such as scanning laser rangefinders. Nevertheless, other sensors, such as stereoscopic sensors, can be used. Stereo cameras are cheap and provide information of both range and appearance. Several authors use stereo vision and disparity images to solve the 3D reconstruction or mapping problems. For instance, a first solution to three-dimensional reconstruction with stereo technology explores the possibility of composing several 3D views from the camera

Process Scheme

157

transforms, to build the so-called ”3D evidence grid” [2]. There are other approaches which infer 3D grids from stereo vision, due to the fact that appearance information is not provided by range finders. Hence, they add an additional camera to their mobile robots [3, 4]. Moreover, a module of 3D recognition could be added to identify some objects. This technique is not exclusive of robotics, but it could be used in other applications such as automatic machine guidance or also for detection and estimation of vehicle movement [5]. Any image taken by a camera is deformed by the conical perspective effect, so direct reconstruction generates scenes with unreal aspect. There are very few works which focus on creating a good reconstruction and on obtaining a real appearance of the scene. However, some interesting works can be found [6, 7], but none of them makes any type of perspective rectification. Specific objects are reconstructed instead of the whole scene, so the real structure of the environment is not recovered. Some na¨ıve perspective rectifications have already been used in other fields, to rectify roads and to obtain their real appearance [8]. This work is centred in the reconstruction of the structure of the scene showing its real aspect, using the information provided by the stereo images and the disparity maps (in fact depth maps, their duals, are used). Our proposal does not make assumptions about the scene nor the object structure, it does not segment objects trying to identify known shapes, only a stereo pair is needed and it is nor correspondence dependent. Perspective rectification method allows to eliminate the conical perspective of the scene and to remove the camera orientation. This way the algorithm recovers the structure of the scene and some crucial information such us object geometry, volume and depth.

6.2 Process Scheme The reconstruction and mapping methods follow the process scheme shown in figure 6.1. In the upper part of the figure, the reconstruction method is presented (section 6.3). Given a pair of stereo images (LIk and RIk , where k is an index indicating the current image within a sequence) the depth map and the vanishing point position are calculated. A depth map Dk and the vanishing point position V Pk are obtained as a result. Then, a rectification process is applied in order to remove the effect of the conical perspective. The result of this stage is a rectified 3D matrix of voxels Rk representing the reconstructed scene. In the lower part of

158

Rectified Reconstruction from Stereo Pairs and Robot Mapping

Figure 6.1: Structure of both 3D reconstruction and mapping.

the figure, the mapping method is represented (section 6.4). Every reconstruction Rk is accumulated to finally obtain a whole mapping representation of the environment M. The camera position is needed to carry out this final step.

6.3 3D Reconstruction Method 6.3.1 Perspective Rectification using a Vanishing Point Let LI and RI (the k subindex is removed for simplicity) be a pair of stereo images (left and right image) of m × n pixels, and D a dense depth map obtained by any method (in this approach, the depth image is computed using multi-resolution and energy function [9]). Each value D(x, y) of the depth map contains the depth associated to the pixel (x, y) of the reference image (left image) [10, 11, 12, 13]. The reconstruction of the scene can be done by labelling a 3D matrix of voxels R representing the spatial occupation. However, due to the conical perspective, it would produce an unwanted effect in the reconstruction (figure 6.2(a) and 6.2(b)). So, to correctly perform the 3D reconstruction the perspective must be rectified making a correction to the pixel’s coordinates. This way the obtained result will show the same aspect as the real scene (figure 6.2(c)). Figure 6.2(b) shows the scheme of the process, in which the point Q (current pixel being processed obtained from the input depth map) with coordinates (x, y, D(x, y)) is rectified to obtain Q′ . The position of the scene vanishing point V P is calculated using the method proposed in [14]. It uses a Bayesian model which combines knowledge of the 3D geometry of world with statistical knowledge of edges in images. The method returns an angle (called as Ψ) which defines the orientation of the camera. This angle is transformed to Cartesian coordinates to obtain the position (x, y) of scene vanishing point V P. For the depth of point V P the maximum depth value (Dmax ) of the whole depth map is used.

3D Reconstruction Method

(a)

159

(b)

(c)

Figure 6.2: Rectification scheme: (a) shows the effect of the conical perspective, (b) shows a non-rectified scene seen from above (with only x and z coordinates shown), and (c) shows the result which is desired after rectification (with parallel walls). This image also illustrates the compass angle of the camera in the case of a lateral view.

Once the V P is obtained, a line L is traced through V P and Q. Next, the intersection of the line L with the x-y plane is calculated, obtaining in this way the point P. Starting from P, the line L is rotated to be perpendicular to the x-y plane. After this process, the new point Q′ = (x′ , y′ , z′ ) is calculated as follows:    xQ′ yQ′   zQ′

= xV P + zV P = yV P + zV P = zQ

xV P −xQ zQ −zV P yV P −yQ zQ −zV P

(6.1)

6.3.2 3D Reconstruction using Sub-pixel Precision Once the depth map (D) and the vanishing point (V P) are calculated (they can be obtained in parallel), the reconstruction process is performed, including the perspective rectification (section 6.3.1). The reconstruction method returns a 3D matrix (R) containing the space occupation of the final result. R is initialized to zero and, then, it is filled as follows: R(x′ , y′ , D(x, y)) = 1 where (x′ , y′ ) are the rectified coordinates of (x, y), ∀x, y ∈ R/{0 ≤ x ≤ m − 1, 0 ≤ y ≤ n − 1}. The final step is obtaining the real units. This is a direct calculation if the camera parameters are known. The most important drawback is the fact that when the perspective rectification corrects the pixels’ coordinates, the voxels are separated in the 3D rep-

160

Rectified Reconstruction from Stereo Pairs and Robot Mapping

(a)

(b)

(c)

Figure 6.3: Example of reconstruction using the depth map of figure (a). Figure (b) shows the reconstruction without using sub-pixel precision, in which the voxels are separated due to the perspective rectification. In figure (c) the sub-pixel precision has been used. The result has a more realistic appearance because holes have been filled.

resentation (figure 6.3(b)). This is due to the discreteness of depth maps. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. To minimize these problems a sub-pixel precision technique is proposed to calculate the position of n fictitious pixels between two consecutive pixels. The precision used for the reconstruction is calculated using the equation 1 − (z/Dmax ), which returns the minimum value when the pixel is in the foreground and the maximum one when it is in the background. All the steps of the sub-pixel reconstruction method can be summarized as follows: 1. D := CalculateDepthMap(LI, RI) 2. V P := CalculateVanishingPoint(LI) 3. while ( x ≤ m − 1 ) (a) while ( y ≤ n − 1 ) i. (x′ , y′ ) := Recti f y(x, y,V P) ii. R(x′ , y′ , D(⌊x⌋, ⌊y⌋)) = 1 iii. y = y + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) (b) x = x + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) 4. Display(ObtainRealUnits(R))

Mapping Algorithm

161

(a)

(b)

Figure 6.4: Mapping comparison with and without rectification.

6.4 Mapping Algorithm The mapping algorithm is an application of the reconstruction method. It demonstrates the utility of the perspective rectification and the advantages of its application to this kind of problem. A significant example is shown in figure 6.4, where (a) shows two consecutive images of a corridor (there is also a column) and the result of their intersection. Since the scene is not rectified, the intersection of the columns and walls are not coincident. The rectification of the images in (a) is presented in (b). In this case, the intersection is perfectly coincident, so the mapping algorithm is significantly improved. In order to do the 3D mapping of the scene, N stereo pairs (LI0 , RI0 ), (LI1 , RI1 ), ..., (LIN−1 , RIN−1 ) of the environment are taken. Each of these images is captured at a fixed distance. Once a stereo pair (LIk , RIk ) is obtained, its corresponding depth map Dk is calculated and added to the Σ list which stores all the depth maps. Next, the algorithm of perspective rectification is used in order to compute the rectified matrix Rk of each depth map. For each matrix Rk its intersection with the previous matrix is calculated (Rk−1 ∩ Rk ), and its result is added to the main matrix Mmap which represents the mapping of the scene. In this approach the position of the frames is obtained from robot odometry. The system only needs the relative position of the next frame to do the reconstruction from the sequence of images. In order to reduce the effect of possible odometry errors the algorithm uses a cubic filter. This filter F (explained below) is applied to the whole matrix Mmap , which discretizes the three-dimensional matrix and transforms it into a grid of rectangular cubes. Lastly, the result (Mmap ) is represented according to the space occupation of this matrix and calculating its equivalence in real units (metres). Cubic filter F applies the equation g(x, y, z) := Σ(i, j,k)∈S f (i, j, k) to each cube of the matrix, where S represents the set of point coordinates which are located in the neighbourhood of g(x, y, z), including the point in question. In this way the

162

Rectified Reconstruction from Stereo Pairs and Robot Mapping

(a)

(c)

(b)

(d)

(e)

Figure 6.5: Perspective rectification comparison using a corridor depth map.

space occupation of each cube is in the centre, and each cell contains the set of readings of that portion of the space. The use of these cells instead of a unique sample let the system avoid possible odometry errors. The number of readings is referred to as “votes”, and represents the probability of space occupation.

6.5 Experimentation and results In this section the experiment results are shown. Figure 6.5 shows a reconstruction comparison using a synthetic disparity map (a) which simulates a corridor. This example clearly shows the effect of the perspective rectification. Figure (b) shows the segmentation used to calculate the vanishing point, which is estimated to be -4º. In figures (c), (d) and (e) the rectification effect is compared: (c) shows a non-rectified reconstruction (seen from above), and (d) and (e) show a top and an oblique view of the correct result after the rectification. As it can be seen, the walls are perfectly rectified, becoming parallel as expected. To do the mapping experimentation two sequences of 30 images obtained from two different corridors have been used. All the images were taken using the Pioneer P3-AT robot and the Bumblebee HICOL-60 stereo camera (figure 6.6(a)). Figure 6.6(b) shows four images of one of these sequences as well as their depth maps. The main objective is that the walls, floor and roof appear without slope in the reconstruction, and that there should not be any obstacle

Experimentation and results

(c)

163

(d)

Figure 6.6: (a) Pioneer Robot P3-AT with stereo camera. (b) Sequence of images for the mapping. (c,d) Mapping results of the corridors.

(noise) in the corridor. It is also important that the columns (represented by circles in the plan (c)) and the coffee machine (represented by a rectangle in the plan (d)) are detected correctly. Figures (c) and (d) show the mapping results of the two sequences and their respective corridor maps. For these examples a cubic filter size of 3 × 3 × 3 and a number of votes of 5 have been used. These results show a good definition of the corridors because the walls are limited and the in-between area can be seen. Moreover, the columns and the coffee machine can be distinguished on the right hand side of each one of the results. To conduct the experiments, a Pentium IV 3,20GHz with 2GB of RAM and a 512MB graphic card have been used. The reconstruction of the maps have been made using a 320 × 240 × 256 voxels matrix and depth maps with a size of 320 × 240 pixels. Moreover, it is important to note that only non-null pixels (finite depth) in the depth map are processed. The computational cost linearly depends on the size of the input images and on the precision of the reconstruction. So the algorithm obtains a good performance: To process just one sequence of 30 images (each image has a level of 70% of processed data) the algorithm takes approximately 9 seconds. This time depends on the precision of the final 3D

164

Rectified Reconstruction from Stereo Pairs and Robot Mapping

reconstruction. So, the process time of an individual reconstruction is less than 0.3 seconds.

6.6 Conclusions A new method to reconstruct 3D scenes from stereo images has been presented, as well as an algorithm for environment mapping. These methods use geometrical rectification to eliminate the effect of conical perspective. Due to the fact that the vanishing point position is calculated, rectification can remove the camera orientation and obtain a front view of the scene. It is important to notice that the final quality of the reconstructed image depends on the quality of the depth map. In future experiments, better depth images will probably improve the final result. Moreover, other reconstruction algorithms with different geometric primitives will be implemented to be able to compare the results. The results show how this process corrects the perspective effect and how it helps to improve the matching in the mapping algorithm. An advantage of this method is that it is nor correspondence dependent. In addition, it could probably be used for real-time applications due to the low computational burden and to the good performance. The cubic filter is very useful to solve odometry problems in the mapping. This is a statistical approach used to compute the matrix of the occupancy evidence. The mapping algorithm will be improved in future experiments in order to consider moving objects, robot drift and other kind of problems. The main interest of the method is that some crucial information from the scene, such as object geometry, volume and depth, is retrieved. For these reasons the proposed methods are useful in a wide range of applications, such as Augmented Reality (AR) and autonomous robot navigation. As future work we want to use the obtained results in this type of applications.

6.7 Acknowledgments This work has been done with the support of the Spanish Generalitat Valenciana, Project GV06/158.

Bibliography

165

Bibliography [1] P´erez, J., Castellanos, J., Montiel, J., Neira, J., Tard´os, J.: Continuous mobile robot localization: Vision vs. laser. ICRA (1999) [2] Hans P. Moravec: Robot spatial perception by stereoscopic vision and 3D evidence grids. The Robotics Institute Carnegie Mellon University. Pittsburgh, PA (1996) [3] Stephen Se, D. Lowe, J. Little: Vision-based mobile robot localization and mapping using scale-invariant features. ICRA (2001) [4] C. Martin and S. Thrun: Real-time acquisition of compact volumetric maps with mobile robots. ICRA (2002) [5] Gonzalo Pajares Martinsanz, Jes´us M. de la Cruz Garc´ıa: Visi´on por computador: im´agenes digitales y aplicaciones. Ed. Ra-Ma, D.L. Madrid (2001) [6] G. Vogiatzis, P.H.S. Torr and R. Cipolla: Multi-view stereo via Volumetric Graph-cuts. CVPR (2005) 391–398. [7] S. Sinha, M. Pollefeys: Multi-view Reconstruction using Photo-consistency and Exact Silhouette Constraints: A Maximum-Flow Formulation. ICCV (2005). [8] Alberto Broggi: Robust Real-Time Lane and Road Detection in Critical Shadow Conditions. In Proceedings IEEE International Symposium on Computer Vision, Coral Gables, Florida. IEEE Computer Society (1995) [9] Compa˜n, P.; Satorre, R.; Rizo, R.: Disparity estimation in stereoscopic vision by simulated annealing. Artificial Intelligence research and development. IOS Press. (2003) 160–167 [10] E. Trucco and A. Verri: Introductory techniques for 3-D Computer Vision. Prentice Hall (1998) [11] I. Cox, S. Ignoran, and S. Rao: A maximum lilelihood stereo algorithm. Computer Vision and Image Understanding, 63 (1996) [12] Oliver Faugeras: Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachusetts (1993)

166

Rectified Reconstruction from Stereo Pairs and Robot Mapping

[13] A.J. Gallego S´anchez, R. Molina Carmona, C. Villagr´a Arnedo: ThreeDimensional Mapping from Stereo Images with Geometrical Rectification. AMDO, LNCS 4069, Mallorca, Spain (2006) 213–222 [14] J. Coughlan and A.L. Yuille: Manhattan World: Orientation and Outlier Detection by Bayesian Inference. Neural Computation. Vol. 15, No. 5 (2003) 1063–88

Publicaci´on 7

3D Reconstruction and Mapping from Stereo Pairs with Geometrical Rectification Antonio Javier Gallego, Rafael Molina, Patricia Compa˜n and Carlos Villagr´a Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, company, villagra}@dccia.ua.es Lecture Notes in Computer Science, Springer-Verlag, LNCS 4729 (2007), pp. 318–327. ISSN: 0302-9743. ISBN:978-3-540-75554-8.

168

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

3D Reconstruction and Mapping from Stereo Pairs with Geometrical Rectification Antonio Javier Gallego, Rafael Molina, Patricia Compa˜n and Carlos Villagr´a Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {ajgallego, rmolina, company, villagra}@dccia.ua.es Abstract In this paper a new method for reconstructing 3D scenes from stereo images is presented, as well as an algorithm for environment mapping, as an application of the previous method. In the reconstruction process a geometrical rectification filter is used to remove the conical perspective of the images. It is essential to recover the geometry of the scene (with real data of depth and volume) and to achieve a realistic appearance in 3D reconstructions. It also uses sub-pixel precision to solve the lack of information for distant objects. Finally, the method is applied to a mapping algorithm in order to show its usefulness.

7.1 Introduction Unknown environments reconstruction is a fundamental requirement in several fields of research. Stereoscopic vision opens new paths that in the future will allow to capture the three-dimensional structure of the environment, and take advantage of this to calculate the geometry, volume and depth of the objects in the scene. Range sensors can also acquire very detailed models [1], but these types of sensors are more expensive and they cannot provide information of both range and appearance, which is useful for reconstruction and texture mapping. For these reasons we will focus on stereo vision.

Introduction

169

Several authors use stereo vision and disparity images to solve the 3D reconstruction or mapping problems. For instance, a first solution to three-dimensional reconstruction with stereo technology explores the possibility of composing several 3D views from the camera transforms [2]. There are other approaches which infer 3D grids from stereo vision, due to the fact that appearance information is not provided by range finders. Hence, they add an additional camera to their mobile robots [3, 4]. Moreover, a module of 3D recognition could be added to identify some objects. This technique is not exclusive of robotics, but it could be used in other applications such as automatic machine guidance or also for detection and estimation of vehicle movement [5]. Stereo vision can improve the perception of scenes and world modelling, so there are some methods which work with disparity images due to their advantages. The problem is that these algorithms cannot be applied in a widespread manner with all types of structures; because the images (or the objects) obtained from a camera have no real size, since they are deformed by the conical perspective effect. In general, any image taken by a camera is deformed by this effect, so direct reconstruction generates scenes with unreal aspect. There are very few works which focus on creating a good reconstruction and on obtaining a real appearance of the scene. However, some interesting works can be found [6, 7, 8], but none of them makes any type of geometrical rectification. Specific objects are reconstructed instead of the whole scene, so the real structure of the environment is not recovered. Some na¨ıve rectifications have already been used in other fields, to rectify roads and to obtain their real appearance [9]. This work is centred in the reconstruction of the structure of the scene showing its real aspect, using the information provided by the stereo images and the disparity maps (in fact depth maps, their duals, are used). Our proposal does not make assumptions about the scene nor the object structure, it does not segment objects trying to identify known shapes, only a stereo pair is needed and it is not correspondence dependent. Perspective rectification allows the method to eliminate the conical perspective of the scene and to remove the camera orientation. This way the algorithm recovers the structure of the scene and some crucial information such us object geometry, volume and depth. Moreover, the reconstruction method is also extended to manage a sequence of stereo images to map a whole environment.

170

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

(a)

(b)

(c)

Figure 7.1: (a) shows the effect of the conical perspective. (b) shows how the object size decreases as the depth is increased, due to the perspective’s effect. (c) shows the rectification scheme on a non-rectified scene seen from above (x-z plane).

7.2 Geometrical Rectification: Recovery of the Real Perspective Perspective effect arises from the common appearance of the real world which surrounds us. This effect deforms the size and geometry of the space and the objects contained in it in order to create the depth effect. Figure 7.1(b) shows how the conical perspective effect changes the size with which the objects are represented according to their distance from the view point. Rectification is used for correcting this effect and recovering the real scene geometry. As an example, figure 7.1(a) shows an image of a corridor, in which, a pixel in the lower part of the image represents a small volume of the scene (it represents a part of the scene in the foreground); while a pixel in the centre of the same image represents a larger volume (because the part of the scene represented by the pixel is in the background). If the scene is directly reconstructed, the perspective is preserved. So, to correctly perform the 3D reconstruction the perspective must be rectified making a correction to the pixel’s coordinates. This way the obtained result will show the same aspect as the real scene. Rectification is performed on values of a depth map D calculated from a pair of stereo images. In principle the depth map can be obtained by any method, but in this approach the depth image is computed using multi-resolution and energy function [10]. Each value D(x, y) of the depth map contains the depth associated to the pixel (x, y) of the reference image (left image) [11, 12].

Geometrical Rectification: Recovery of the Real Perspective

171

Figure 7.1(c) shows the scheme of the process. On the left hand side it illustrates the desired result of the left wall rectification, which is rotated α ◦ to recover its real inclination. And on the right hand side, it shows the point Q (current pixel being processed obtained from the input depth map) with coordinates (x, y, D(x, y)), which is rectified to obtain Q′ . This pixel is a part of an object which is rectified to recover its real size. The first step to rectify Q is to obtain the line L, which links the points V P and Q. Next, the intersection of the line L with the x-y plane is calculated, obtaining in this way the point P. Starting from P, the line L is rotated to be perpendicular to the x-y plane. This way the coordinates (x, y) of Q′ can be obtained. The calculation of the coordinate zQ′ is shown in the section 7.2.1. In short, the equation 7.1 shows the calculation of the new rectified point Q′ = (x′ , y′ , z′ ). Rectification is referred as π , where the new coordinates of Q are obtained as Q′ = π (Q).    xQ′ π (Q) = yQ′   zQ′

x

−x

y

−y

= xV P + zV P zVQP−zV QP = yV P + zV P zVQP−zV QP = f dTλ ρ

(7.1)

As can be seen in the equation 7.1, the vanishing point position has to be obtained. In general, the central point can be used as the vanishing point of the scene, obtaining a reconstruction that maintains the original angle of the camera. If the camera view is oblique, the real position of the vanishing point can be calculated. This way, the camera orientation is corrected and a frontal view is obtained after the reconstruction. When the perspective cannot be calculated (in non Manhattan Worlds), the central point is taken by defect. For the depth of the real vanishing point V P the maximum depth value (Dmax ) of the whole depth map is used. The coordinates x and y of V P are calculated using the method proposed in [13]. It uses a Bayesian model which combines knowledge of the 3D geometry of world with statistical knowledge of edges in images. The method returns an angle (called as Ψ) which defines de orientation of the camera in direction cos Ψi − sin Ψj. Cartesian coordinates (x, y, z) of V P can be obtained from the following camera coordinates u = (u, v):

u=

f · (−xV P sin Ψ − yV P cos Ψ) , xV P cos Ψ − yV P sin Ψ

v=

f · zV P xV P cos Ψ − yV P sin Ψ

(7.2)

172

(a)

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

(b)

Figure 7.2: (a) Camera lens proportions. (b) Comparison of the error made in the equations for the depth calculation.

7.2.1 Calculating the Error in the Rectification

Coordinate zQ′ is obtained using a modified version of the equation z = f Td [14]. Where d is the disparity (D(x, y)) for this pixel, T is the length of the base line, f is the focal distance. The main problem is that disparity d is expressed in pixels, while the other parameters are expressed in metres. So, a conversion factor is used λ = CCD width in meters / Image width in pixels to convert pixels into metres. To calculate the CCD width, its dimensions (1/3”) and its proportions ( xy = 34 ) are needed (figure 7.2 (a)). Therefore, the value of x (total width in metres) can be isolated from the equation x2 + y2 = ( 31 ”)2 . There is also an error that appears when the obtained distance is compared with the real one (figure 7.2(b)). This error is a small linear deviation due to the lens concavity and it is corrected adding a correction factor ρ to the equation (obtained empirically). Figure 7.3(b) shows the error in the objects size made when they are represented after de geometrical rectification. To obtain the error, a sequence of images of the same object (the sign in image 7.3(a)) were taken at different distances. A comparison between the representation size and the real size were done. The representation size can be easily calculated due to the fact that the coordinates of each point are known. In figure 7.3(b) the error made by the previous approach to the geometrical rectification is also shown [15].

Applications of the Geometrical Rectification

173

(a)

(b)

Figure 7.3: (a) Sequence of images taken to calculate the error in the representation size. (b) Comparison of the error made in the representation as the depth increases.

7.3 Applications of the Geometrical Rectification The proposed method can be useful in a wide range of applications, because some crucial information from the scene is retrieved, such as object geometry, volume and depth. For example, it could be applied in Augmented Reality (AR) systems to solve some problems related to this discipline, as well as to set out new applications and improvements. Next, two possible applications are presented. The first one is the 3D reconstruction of scenes using sub-pixel precision and stereo images. The second one is the map building from a sequence of stereo images. They both demonstrate the utility of the geometrical rectification and the advantages of its application to this kind of problems. For this reason simple methods are used. In the conclusions section more applications of these methods will be proposed.

7.4 Reconstruction using Sub-Pixel Precision In the first step to do the 3D reconstruction of a scene, the depth map D is calculated from a pair of stereo images (LI and RI). The depth map D is obtained using the methods proposed in [10]. Based on D, the geometrical rectification process is applied in order to remove the effect of the conical perspective and recover the real structure of the scene (section 7.2). The result of this stage

174

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

is a rectified matrix of voxels R, which is used in the reconstruction to represent the space occupation. R is initialized to zero and, then, it is filled as follows: R(x′ , y′ , D(x, y)) = 1 where (x′ , y′ ) are the rectified coordinates of (x, y), ∀x, y ∈ R/{0 ≤ x ≤ m − 1, 0 ≤ y ≤ n − 1}. The final step is obtaining the real units. Equation 7.1 shows how to obtain the equivalence in metres from a disparity value and the rectified coordinates. The most important drawback is the fact that when the geometrical rectification corrects the pixels’ coordinates, the voxels are separated in the 3D representation (see figure 7.4). This is due to the discreteness of depth maps. In fact, pixels corresponding to a distant object are split, leaving a hole whose dimensions increase as the distance to the object increases. To minimize these problems a sub-pixel precision technique is proposed to calculate the position of n fictitious pixels between two consecutive pixels. The precision used for the reconstruction is calculated using the equation 1 − (z/Dmax ), which returns the minimum value when the pixel is in the foreground and the maximum one when it is in the background. All the steps of the sub-pixel reconstruction method can be summarized as follows: 1. D := CalculateDepthMap(LI, RI) 2. while ( x ≤ m − 1 ) (a) while ( y ≤ n − 1 ) i. (x′ , y′ ) := π (x, y) ii. R(x′ , y′ , D(⌊x⌋, ⌊y⌋)) = 1 iii. y = y + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) (b) x = x + 1 − (D(⌊x⌋, ⌊y⌋)/Dmax) 3. Display(R)

7.4.1 Reconstruction Experimentation In figure 7.4 two examples of reconstruction using sub-pixel precision are shown. The images on the left show the mesh used during the reconstruction, these images are obtained without and with sub-pixel precision respectively. On the right side, there is another example of reconstruction using voxels. The first image shows the reconstruction without using sub-pixel precision, in which the voxels

Reconstruction using Sub-Pixel Precision

175

Figure 7.4: Examples of reconstruction using sub-pixel precision.

(a)

(b)

(c)

(d)

(e)

Figure 7.5: Geometrical rectification comparison using a corridor depth map.

are separated due to the geometrical rectification. In the second image the subpixel precision has been used. The result has a more realistic appearance because holes have been filled. Figure 7.5 shows a 3D reconstruction comparison using a synthetic depth map (a) which simulates a corridor. This example clearly shows the effect of the geometrical rectification. Figure (b) shows the segmentation used to calculate the vanishing point, which is estimated to be −4◦ . The camera deviation is very small as it can be observed, so the real orientation could have been used avoiding so the V P calculation. In figures (c), (d) and (e) the rectification effect is compared: (c) shows a non-rectified reconstruction (seen from above), and (d) and (e) show a top and an oblique view of the correct result after the rectification. As it can be seen, the walls are perfectly rectified, becoming parallel as expected.

176

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

7.5 Mapping Algorithm In order to do the 3D mapping of the scene, N stereo pairs (LI0 , RI0 ), (LI1 , RI1 ), ..., (LIN−1 , RIN−1 ) of the environment are taken. Each of these images is captured at a fixed distance. Once a stereo pair (LIk , RIk ) is obtained, its corresponding depth map Dk is calculated and added to the Σ list which stores all the depth maps. Next, the algorithm of geometrical rectification is used in order to compute the rectified matrix Rk of each depth map. For each matrix Rk its intersection with the previous matrix is calculated (Rk−1 ∩ Rk ), and its result is added to the main matrix Mmap which represents the mapping of the scene. In this approach the position of the frames is obtained from robot odometry. The system only needs the relative position of the next frame to do the reconstruction from the sequence of images. In order to reduce the effect of possible odometry errors the algorithm uses a cubic filter. This filter F (explained below) is applied to the whole matrix Mmap , which discretizes the three-dimensional matrix and transforms it into a grid of rectangular cubes. Lastly, the result (Mmap ) is represented according to the space occupation of this matrix and calculating its equivalence in real units (metres). 1. for each Dk ∈ Σ do (a) Dk := CalculateDepthMap(LIk, RIk ) (b) Rk := ApplyRecti f ication(Dk ) (c) Mmap := Mmap ∩ Rk 2. Mmap := ApplyCubicFilter(Mmap) 3. Display(Mmap )

Cubic filter F applies the equation g(x, y, z) := Σ(i, j,k)∈S f (i, j, k) to each cube of the matrix, where S represents the set of point coordinates which are located in the neighbourhood of g(x, y, z), including the point in question. In this way the space occupation of each cube is in the centre, and each cell contains the set of readings of that portion of the space. The use of these cells instead of a unique sample let the system reduce the effect of possible odometry errors. The number of readings is referred to as “votes”, and represents the probability of space occupation.

Mapping Algorithm

177

(a)

(b)

(c)

(d)

Figure 7.6: (a) Sequence of images for the mapping. (b) Corridor sketch. (c, d) Mapping results of the corridor.

7.5.1 Mapping Experimentation

To do the mapping experimentation two sequences of 30 images obtained from two different corridors have been used (Figures 7.6 and 7.7). Figures 7.6(a) and 7.7(a) show the first three images of both sequences as well as their depth maps. The main objective is that the walls, floor and roof appear without slope in the reconstruction, and that there should not be any obstacle (noise) in the corridor. It is also important that the columns (represented by circles in the plan (Fig. 7.6(b))) and the coffee machine (represented by a rectangle in the plan (Fig. 7.7(b))) are detected correctly. In figures 7.6(c, d) and 7.7(c, d) the results are shown. In 7.6(c) and 7.7(c) there is no perspective rectification, consequently a wrong result is obtained: the in-between space of the corridors is not clear. In 7.6(d) and 7.7(d) the rectification has been applied. These results show a good definition of the corridors because the walls are limited and the in-between area can be seen. Moreover, the columns and the coffee machine can be distinguished on the right hand side of each one of the results. For these examples a cubic filter size of 3 × 3 × 3 and a number of votes of 5 have been used.

178

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

(a)

(b)

(c)

(d)

Figure 7.7: (a) Sequence of images for the mapping. (b) Corridor sketch. (c, d) Mapping results of the corridor.

7.6 Performance Results To conduct the experiments, a Pentium IV 3,20GHz with 2GB of RAM and a 512MB graphic card have been used. The reconstruction of the maps have been made using a 320 × 240 × 256 voxels matrix and depth maps with a size of 320 × 240 pixels. Moreover, it is important to note that only non-null pixels (finite depth) in the depth map are processed. The computational cost linearly depends on the size of the input images and on the precision of the reconstruction. So the algorithm obtains a good performance: To process just one sequence of 30 images (each image has a level of 70% of processed data) the algorithm takes approximately 9 seconds. The process time of an individual reconstruction is less than 0.3 seconds.

7.7 Conclusions A new method to reconstruct 3D scenes from stereo images has been presented, as well as an algorithm for environment mapping. This is an improvement of a previous reconstruction method for which a new perspective rectification method, and news algorithms for reconstruction and mapping with sub-pixel precision have been incorporated. These methods use the geometrical rectification

Bibliography

179

to eliminate the effect of conical perspective, with the intention of getting a real aspect in the final result. It also allows the retrieval of some crucial information from the scene, such as object geometry, volume and depth. Nevertheless, the final quality of the reconstructed image depends on the quality of the disparity map. In future experiments, better disparity images will improve the final result. The results show how this process corrects the perspective effect and how it helps to improve the matching in the mapping algorithm. An advantage of this method is that it is not correspondence dependent. In addition, it could probably be used for real-time applications due to the low computational burden and to the good performance. Current work is focused on applying the obtained results to an Augmented Reality system. So that it can take advantage from the geometry information in order to develop new applications (as new interfaces or games) and solve problems related to this discipline (visual tracking, hidden objects and alignment). This work will also be related with an autonomous robot system which uses the environment information to be able to identify specifical areas. Acknowledgments This work has been done with the support of the Spanish Generalitat Valenciana, Project GV06/158.

Bibliography [1] Jose M. Sanchiz, Robert Burns Fisher: Viewpoint Estimation in ThreeDimensional Images Taken with Perspective Range Sensors. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 11 (2000) 1324–1329 [2] Hans P. Moravec: Robot spatial perception by stereoscopic vision and 3D evidence grids. The Robotics Institute Carnegie Mellon University. Pittsburgh, PA (1996) [3] Stephen Se, D. Lowe, J. Little: Vision-based mobile robot localization and mapping using scale-invariant features. ICRA (2001) [4] C. Martin and S. Thrun: Real-time acquisition of compact volumetric maps with mobile robots. ICRA (2002)

180

3D Reconstruction and Mapping from Stereo Pairs with Geometrical . . .

[5] Gonzalo Pajares Martinsanz, Jess M. de la Cruz Garca: Visi´on por computador: im´agenes digitales y aplicaciones. Ed. Ra-Ma, D.L. Madrid (2001) [6] G. Vogiatzis, P.H.S. Torr and R. Cipolla: Multi-view stereo via Volumetric Graph-cuts. CVPR (2005) 391–398. [7] L. Zhang, Steven M. Seitz: Parameter estimation for MRF stereo. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, June (2005). [8] S. Sinha, M. Pollefeys: Multi-view Reconstruction using Photo-consistency and Exact Silhouette Constraints: A Maximum-Flow Formulation. ICCV (2005). [9] Alberto Broggi: Robust Real-Time Lane and Road Detection in Critical Shadow Conditions. In Proceedings IEEE International Symposium on Computer Vision, Coral Gables, Florida. IEEE Computer Society (1995) [10] Compa, P.; Satorre, R.; Rizo, R.: Disparity estimation in stereoscopic vision by simulated annealing. Artificial Intelligence research and development. IOS Press. (2003) 160–167 [11] E. Trucco and A. Verri: Introductory techniques for 3-D Computer Vision. Prentice Hall (1998) [12] I. Cox, S. Ignoran, and S. Rao: A maximum lilelihood stereo algorithm. Computer Vision and Image Understanding, 63 (1996) [13] J. Coughlan and A.L. Yuille: Manhattan World: Orientation and Outlier Detection by Bayesian Inference. Neural Computation. Vol. 15, No. 5 (2003) 1063–88 [14] Oliver Faugeras: Three-dimensional computer vision: a geometric viewpoint. The MIT Press. Cambridge, Massachusetts (1993) [15] A.J. Gallego S´anchez, R. Molina Carmona, C. Villagr´a Arnedo: ThreeDimensional Mapping from Stereo Images with Geometrical Rectification. AMDO. LNCS 4069, Mallorca, Spain (2006) 213–222

Publicaci´on 8

Hacia un modelo integral para la generaci´on de Mundos Virtuales Gabriel L´opez Garc´ıa, Rafael Molina Carmona y Antonio Javier Gallego S´anchez Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {glopez, rmolina, ajgallego}@dccia.ua.es CEIG’08, Barcelona, Spain. Sept. 3–5 (2008). ISBN: 978–3–905673–69–2

182

Hacia un modelo integral para la generaci´on de Mundos Virtuales

Hacia un modelo integral para la generaci´on de Mundos Virtuales Gabriel L´opez Garc´ıa, Rafael Molina Carmona y Antonio Javier Gallego S´anchez Grupo de Inform´atica Industrial e Inteligencia Artificial Universidad de Alicante, Ap.99, E-03080, Alicante, Spain {glopez, rmolina, ajgallego}@dccia.ua.es Resumen Uno de los problemas m´as importantes en los sistemas de Realidad Virtual es la diversidad de los dispositivos visuales y de interacci´on que existen en la actualidad. Junto a esto, la heterogeneidad de los motores gr´aficos, los motores f´ısicos y los m´odulos de Inteligencia Artificial, propicia que no exista un modelo que a´une todos estos aspectos de una forma integral y coherente. Con el objetivo de unificar toda esta diversidad, presentamos un modelo formal que afronta de forma integral el problema de la diversidad en los sistemas de RV, as´ı como la definici´on de los m´odulos principales que los constituyen. El modelo propuesto se basa en la definici´on de una gram´atica, que integra la actividad necesaria en un sistema de RV, su visualizaci´on y su interacci´on con el usuario. La descripci´on de un mundo se presenta como una secuencia ordenada de primitivas, transformaciones que modifican el comportamiento de las primitivas y actores que definen la actividad del sistema. Los conceptos de primitiva, transformaci´on y actor son mucho m´as amplios de lo que es habitual en estos sistemas: Las primitivas no son simples primitivas de dibujo sino acciones que se deben ejecutar en un determinado sistema de presentaci´on, gr´afico o no; las transformaciones modifican las primitivas, dependiendo de su naturaleza; los actores desarrollan una o varias actividades en el mundo virtual, se visualizan mediante primitivas y transformaciones, y usan eventos que tambi´en se definen en sentido amplio. El modelo presentado tiene como virtud la separaci´on de la actividad del sistema de los dispositivos visuales y de interacci´on concretos que lo componen. Esto supone varias ventajas: los dispositivos pueden ser sustituidos por otros dispositivos o por simulaciones de estos, los elementos del

Introducci´on

183

sistema pueden ser reutilizados, y la representaci´on gr´afica puede ser diferente dependiendo del dispositivo visual. En definitiva, se ha pretendido dise˜nar un sistema integral, adaptativo, reutilizable y gen´erico. Por u´ ltimo se presenta un caso pr´actico que permite concretar c´omo se utiliza el modelo propuesto.

8.1 Introducci´on El desarrollo en las u´ ltimas d´ecadas de los sistemas de Realidad Virtual (RV) y de los sistemas gr´aficos en general ha sido espectacular. Este progreso ha contribuido a que la informaci´on de nuestro alrededor se presente mediante gr´aficas, animaciones o simulaciones, dando a conocer nuevas formas de an´alisis. Los videojuegos constituyen hoy en d´ıa una de las industrias m´as pujantes y cada d´ıa nuevos desarrollos de Realidad Virtual aparecen a nuestro alrededor. Sin embargo, esto no significa que todo est´e hecho ni mucho menos, sino que la situaci´on actual hace que los retos que se presentan sean a´un m´as estimulantes. Uno de los problemas m´as acuciantes es la diversidad de los dispositivos visuales. Se tiene toda una variedad de dispositivos hardware que generan im´agenes (monitores, tel´efonos m´oviles, PDAs, gafas de realidad virtual) y la visualizaci´on debe adaptarse a cada uno de ellos seg´un sus caracter´ısticas particulares (resoluci´on, tama˜no, etc.). Mientras que todo lo referente a la visualizaci´on ha alcanzado una cierta madurez en las pasadas d´ecadas, en el campo de la interacci´on no se ha producido la evoluci´on deseada [10, 2]. Sigue dominando el teclado y el rat´on en los interfaces de usuario, los mandos con libertad de movimiento son complejos de manejar, y otras posibilidades de interacci´on se quedan en el mundo de la investigaci´on y el arte gr´afico [10]. Si que es cierto, que en los u´ ltimos a˜nos ha habido t´ımidos avances. Entre ellos se puede destacar el mando de la Wii. Es necesario el desarrollo de alg´un tipo de modelo que unifique de alguna forma toda la diversidad de dispositivos para la interacci´on y la visualizaci´on. Por ejemplo, si se desea mover un objeto, ser´ıa interesante que la acci´on no se corresponda con una pulsaci´on de rat´on o un determinado bot´on de un mando, sino que toda esta diversidad de eventos se unifique en una sola acci´on, mover el objeto, y filtre todos los detalles concretos de los dispositivos de entrada. En el desarrollo de un sistema de RV existen tres m´odulos importantes que han tenido desigual evoluci´on. Estos tres m´odulos son: Motor Gr´afico, Motor

184

Hacia un modelo integral para la generaci´on de Mundos Virtuales

F´ısico e Inteligencia Artificial. El primero se hace cargo de todo lo referente a la visualizaci´on de los datos en dispositivos visuales, el segundo tiene como objetivo simular todos los aspectos f´ısicos que hacen que la acci´on que se desarrolla en la escena sea coherente y el tercero busca que los actores de la escena se comporten de una forma independiente mostrando en el mundo virtual capacidades inteligentes. Las diferentes herramientas aportadas en la actualidad para el desarrollo de los tres m´odulos anteriores son muy variadas. Existen m´ultiples soluciones a diferentes problemas. Sin embargo, generalmente no se observa ninguna unificaci´on de criterios a la hora de abordar los diferentes retos que tiene su desarrollo. Si que es cierto, por otra parte, que se vislumbran ciertos puntos en com´un a la hora de definir determinados dise˜nos estructurales, aunque no se aprecia un estudio de c´omo los tres m´odulos se relacionan entre s´ı. En los pr´oximos cap´ıtulos se presentar´a un modelo integral que unifica de forma sencilla y flexible la diversidad que existe en los sistemas de RV y en los tres m´odulos anteriormente descritos. Para ello se utilizar´a la definici´on de un lenguaje que integra la actividad necesaria, su visualizaci´on y su interacci´on con el usuario. En el apartado 8.2 se presentan algunos antecedentes de sistemas de RV. Los objetivos que pretendemos alcanzar centran el contenido del apartado 8.3. En el apartado 8.4 se define el modelo propuesto, mientras que el 8.5 presenta un caso pr´actico. Por u´ ltimo, las conclusiones y los trabajos futuros se exponen en el apartado 8.6.

8.2 Antecedentes Un sistema de RV est´a formado por tres grandes m´odulos: un motor gr´afico, un motor f´ısico y un m´odulo de inteligencia artificial. A continuaci´on se hace un breve repaso de los antecedentes referidos a estos m´odulos. En el desarrollo de los componentes que se utilizan para los motores gr´aficos existen dos librer´ıas: Direct3D [12] y OpenGL [13]. Ambas librer´ıas se definen como una capa entre la aplicaci´on y la tarjeta gr´afica. Han aparecido sistemas que unifican las dos API (Aplication Program Interfaces) en un u´ nico interfaz. Este es el caso de OGRE [15], o de VTK [16]. Existen librer´ıas que se utilizan para gestionar el hardware interactivo. Dos ejemplos son SDL [14] y DirectX [12]. En general, tienen las mismas caracter´ısticas salvo que SDL es software libre y est´a implementada tanto para Win-

Antecedentes

185

dows, como para Linux, mientras que la segunda no. Hay una gran variedad de herramientas que implementan motores f´ısicos Como ejemplos se tiene Working Model [3], que realizan simulaciones que se utilizan principalmente en el a´ rea educativa. Despu´es existe Newton Game Dynamics [5] Adem´as existe Physics Abstraction Layer (PAL) [11] que es una capa abstracta para el desarrollo de MTR siendo Open Dynamics Engine (ODE) [6] una implementaci´on de parte de las especificaciones de PAL. Dentro del software propietario existen otras tantas API, destancando por un lado PhysX [1], cuyo propietario es NVidia y es utilizado en la PlayStation 3, y Havok [8], perteneciente a la compa˜n´ıa Havok y que est´a implementado para Windows, Xbox 360, Wii, PlayStation3 y PlayStation Portable, Mac OS X y Linux. Los u´ ltimos tipos de herramientas son los que desarrollan el m´odulo de IA. No existen librer´ıas que puedan ser utilizadas como soluciones gen´ericas, salvo en alg´un caso. Su n´umero es escaso y cada sistema de IA est´a dise˜nado espec´ıficamente para una aplicaci´on concreta. Uno de los motivos por los que los sistemas de IA se han desarrollado con mayor lentitud que el resto de sistemas podr´ıa ser el esfuerzo que se realiza por mejorar el aspecto gr´afico de los juegos, y no tanto por la inteligencia de sus personajes [20]. A´un as´ı, podemos especificar varios tipos de sistemas: Sistemas evolutivos y Sistemas basados en agentes. Dentro de los sistemas evolutivos hay alguna herramienta que facilita el uso de dichos algoritmos. Podemos destacar EO Evolutionary Computation Framework [17] desarrollado en C++ y que implementa lo necesario para el desarrollo de algoritmos evolutivos. Tambi´en existe CILib [18], entorno de desarrollo implementado en Java. Por el contrario, s´ı que se puede encontrar una gran variedad de art´ıculos que describen el desarrollo de algoritmos gen´eticos y art´ıculos que definen sistemas evolutivos para casos concretos [21, 22, 23]. En cuanto a los sistemas basados en agentes, se puede obtener una extensa literatura que detalla los aspectos de este tipo de elementos, como por ejemplo en [24, 25]. En algunos casos, estos agentes se denominan bots, sobre todo en el desarrollo de juegos en primera persona. Actualmente, este tipo de sistemas est´an muy extendidos en grupos de investigaci´on para el desarrollo de IA, tanto para juegos como para simulaciones sociales y desarrollo de robots m´oviles [9, 26]. Existen varios entornos que nos simplifican la tarea para desarrollar bots, aunque estos son sistemas para juegos concretos: por ejemplo se tiene QuakeBot para el juego Quake y FlexBot para el juego Half-Life [20, 27]. Existen librer´ıas m´as gen´ericas para el desarrollo de Agentes, por ejemplo Jade [19], que modela

186

Hacia un modelo integral para la generaci´on de Mundos Virtuales

sistemas multiagentes basados en Java.

8.3 Objetivos Los objetivos se orientan principalmente a conseguir un modelo que integre los diferentes m´odulos que forman parte de un sistema de RV y que tenga una total independencia de los dispositivos hardware, tanto visuales como de interacci´on, pudiendo, si fuera necesario, sustituir un dispositivo por otro, o por una simulaci´on, sin afectar a los mecanismos internos del sistema. Para lograr esto se pretende: 1. Definir un motor gr´afico que elimine la diversidad de los diferentes dispositivos visuales. Es decir, se desea que con una u´ nica descripci´on de la escena se procese la misma, de tal manera que se muestre en cualquier dispositivo gr´afico y con un nivel de detalle acorde con las caracter´ısticas gr´aficas del dispositivo. 2. Definir un motor f´ısico que modele toda la actividad del sistema, adapt´andose a los diferentes componentes hardware donde se va a ejecutar. Si se dispone de componentes hardware que implementan algoritmos f´ısicos, el sistema debe aprovecharlos, pero si por el contrario no existen, los debe implementar mediante software. 3. El motor de IA se debe integrar con el motor f´ısico considerando las limitaciones impuestas por este. Esto supone que se debe realizar un trabajo importante en la integraci´on de un motor sobre el otro. 4. Se pretende que la interacci´on con el sistema no dependa del hardware de entrada, si no que se abstraiga del origen de la interacci´on, y procese directamente las o´ rdenes del usuario. 5. La reutilizaci´on de los diferentes elementos de forma casi inmediata. Si, por ejemplo, se dise˜na un elemento para un determinado mundo virtual, utilizando los mecanismos proporcionados por el sistema, se podr´a reutilizar dicho componente en cualquier otro mundo virtual o aplicaci´on que gestione un sistema de RV.

Modelo para la generaci´on de Mundos Virtuales

187

Para la realizaci´on de todos estos objetivos se utilizar´an modelos matem´aticos que formalizar´an los diferentes componentes del sistema, abstrayendo las caracter´ısticas que definen los tres m´odulos importantes de un sistema de RV.

8.4 Modelo para la generaci´on de Mundos Virtuales Un mundo virtual se caracteriza por un conjunto de actores o elementos, con una descripci´on geom´etrica y que realizan una actividad en un escenario. La actividad puede o no modificar objetos que componen el escenario, as´ı como el aspecto del actor o de otros actores. La descripci´on de un mundo se puede considerar como una secuencia ordenada de primitivas, transformaciones que modifican el comportamiento de las primitivas y actores que definen la actividad dentro del sistema. El concepto de primitiva se debe considerar, no como una primitiva de dibujo tal como una esfera, un cubo, etc. sino m´as bien como una acci´on que se debe ejecutar en un determinado sistema de visualizaci´on. Por ejemplo, dentro del concepto de primitiva cabe considerar la ejecuci´on de un sonido. Los actores, por su parte, ser´an los componentes que desarrollen una o varias actividades en el mundo virtual y que se visualizar´an mediante primitivas y transformaciones. Para modelar las diferentes actividades de los actores se va a usar el concepto de evento, eso s´ı, considerando un evento, no como una acci´on generada por un dispositivo de entrada, sino m´as bien como una acci´on que representa la activaci´on de una determinada actividad que puede ser ejecutada por uno o varios actores. A cada elemento que compone una escena se le puede asignar un s´ımbolo, formando un conjunto de s´ımbolos. Con este conjunto se puede construir diferentes cadenas que describen una escena. Estas cadenas deben construirse con una sintaxis definiendo un lenguaje. Habitualmente una sintaxis se presenta como una gram´atica [4], en adelante denotada por M, que queda definida por la tupla M = < Σ, N, P, S >. Con la gram´atica M se determinar´a el lenguaje L(M). La definici´on de la tupla gramatical se expresa como: Sea P el conjunto de s´ımbolos que define un conjunto de primitivas. Sea T el conjunto de s´ımbolos que define las transformaciones. Sea O = { · ( ) } el conjunto de s´ımbolos de separadores y operaciones. Sea D el conjunto de tipos de eventos generados para el sistema. Sea AD el conjunto de s´ımbolos que representan actores que van a activarse

188

Hacia un modelo integral para la generaci´on de Mundos Virtuales

para los eventos enumerados en el super´ındice. Por ejemplo, el actor ad ser´a ejecutado cuando se produzca un evento ed . Sea Σ = P ∪ T ∪ O ∪ AD el conjunto de s´ımbolos terminales. Sea N = {mundo, variosObjetos, objeto, actor, transformaci´on, figura} el conjunto de s´ımbolos no terminales. Sea S = {mundo} el s´ımbolo inicial de la gram´atica. Definimos las reglas gramaticales P como: mundo :- variosObjetos variosObjetos :- objeto | objeto · variosObjetos objeto :- figura | transformaci´on | actor actor :- ad (variosObjetos), ad ∈ M D , d ∈ D transformacion :- t(variosObjetos), t ∈ T figura :- p, p ∈ P La gram´atica M es una gram´atica independiente del contexto, o de tipo 2, y por tanto se asegura que existe un procedimiento que verifica si una escena est´a bien descrita o no, o dicho de otro modo, que la cadena pertenece o no al lenguaje L(M). Es decir, se podr´a determinar que, por ejemplo, la cadena ad1 (p1 · p2 )· p3 ·t1 (p1 · p2 ) ∈ L(M) donde pi ∈ P, ti ∈ T , adi ∈ AD , d ∈ D, pero que la cadena ad1 · p1 ∈ / L(M). Sin embargo, se necesita saber cu´al va a ser la funcionalidad de las diferentes cadenas. Se puede considerar que la sem´antica de una lenguaje explica esta funcionalidad. La sem´antica tiene varias formas de definici´on: operacional, denotacional y axiom´atica. En el caso presente se va a utilizar el m´etodo denotacional que describe funciones matem´aticas para cada una de las cadenas. La sem´antica del actor se describe como la ejecuci´on del mismo cuando recibe o no un evento que debe manejar. Esta ejecuci´on se representar´a como una funci´on que define la evoluci´on del actor a trav´es del tiempo. Esto significa que va a cambiar la cadena que describe su actual estado. La funci´on que define el comportamiento de un actor para un evento producido se denomina funci´on evolutiva del actor y se denotar´a con λ . Su expresi´on viene dada por:   u ∈ L(M) Si f = d d f λ (a (v), e ) = (8.1) ad (v) Si f 6= d El resultado de la funci´on λ puede contener o no al propio actor o puede generar otro evento para la siguiente etapa. Si se desea acumular un evento para la

Modelo para la generaci´on de Mundos Virtuales

189

siguiente etapa se utilizar´a la notaci´on ∆e f . Esto permitir´a que los actores puedan generar eventos, y pasen a la siguiente etapa acciones que puedan recoger otros actores implementando un proceso de retroalimentaci´on del sistema. En el caso de que el evento no coincida con el evento activador entonces la funci´on devuelve el mismo actor. M´as adelante se ver´a que las funciones λ pueden clasificarse seg´un las cadenas que se definan en su evoluci´on. Sobre todo, van a ser esenciales para la visualizaci´on del sistemas determinadas funciones λ , que solo devuelven cadenas con primitivas y transformaciones. Con la funci´on λ se puede definir un algoritmo que, dado un conjunto de eventos y una cadena, describe como el sistema evoluciona. A esta funci´on se la llamar´a funci´on de evoluci´on α del sistema. Para su definici´on se necesita un conjunto de eventos ei , e j , ek , ..., en que abreviando se denotar´a como ev siendo v ∈ D+ . La funci´on se define como:   w Si w ∈ P        t(α (v, ev )) Si w = t(v)  v d v f d α (w, e ) = (8.2) ∏ (λ (a (α (y, e )), e )) Si w = a (y)     ∀ f ∈v     α (s, ev ) · α (t, ev ) Si w = s · t El operador ∏ (λ (ad (x), ev )) realiza la concatenaci´on de la cadenas genera∀ f ∈v

das por λ . Se debe observar que para las cadenas que solo son transformaciones y primitivas, el sistema se queda como est´a y no forman parte de su evoluci´on. Este tipo de cadenas van a ser importantes a la hora de optimizar el sistema, ya que solo ejecutaremos α para aquellas cadenas que sean actores. Por otro lado, est´an las primitivas cuya sem´antica ser´a definida mediante la funci´on γ . Dado un s´ımbolo del alfabeto P ejecuta una primitiva sobre lo que se denominar´a una geometr´ıa aplicada G. Por tanto, la funci´on ser´a una aplicaci´on definida como:

γ :P→G

(8.3)

Esto significa que dependiendo de la funci´on γ , el resultado variar´a seg´un la definici´on que se haga de G. Esta G se puede definir como las acciones que se ejecutan en una librer´ıa gr´afica concreta, como OpenGL o Direct3D. Se relacionar´an los s´ımbolos de P con la ejecuci´on de funciones de la librer´ıa y si, por ejemplo, es f era ∈ P se podr´a ejecutar la funci´on que dibuja una esfera en OpenGL o Direct3D:

190

Hacia un modelo integral para la generaci´on de Mundos Virtuales

γopengl (es f era) = glutSolidSphere γdirec3d (es f era) = drawSphereDirect3D Sin embargo, esta definici´on no solo se puede utilizar para librer´ıas gr´aficas, sino que se puede ampliar a otras definiciones. Por ejemplo, se puede definir para el mismo alfabeto P otra funci´on γbounds que calcule los l´ımites de la figura que define una primitiva. Es decir, si 'boundSphere' es una funci´on que implementa el c´alculo de los l´ımites de una esfera, entonces:

γbounds (es f era) = boundSphere Los ejemplos anteriores demuestran que la funci´on γ aporta toda la abstracci´on necesaria para homogeneizar las diferentes implementaciones que existen para realizar la definici´on de un mundo concreto. Sin embargo, solo se han tratado elementos geom´etricos o de dibujo. No hay ninguna restricci´on al respecto siempre y cuando exista la definici´on para esta primitiva en la funci´on γ . As´ı, tambi´en se pueden considerar como primitivas la ejecuci´on de un sonido, el reflejo de un material, el color de un personaje, el movimiento de un robot, la manipulaci´on de una m´aquina, etc. Adem´as, la definici´on de la funci´on γ tambi´en describe sistemas que escriban diferentes formatos de ficheros (VRML, DWG, DXF, XML, etc.), transporten cadenas por la red, ejecuten instrucciones de una m´aquina que realiza esculturas 3D, etc. Por u´ ltimo, la gram´atica define lo que son las transformaciones que modifican el comportamiento de las primitivas. Estas transformaciones tienen un a´ mbito de aplicaci´on y deber´an ser aplicadas a determinado conjunto de primitivas. Es decir, se desea que una transformaci´on t ∈ T se aplique sobre una subcadena w que se simboliza en el lenguaje como t(w). Para definir el a´ mbito de aplicaci´on de una trasformaci´on se definen las siguientes funciones sem´anticas: I: T → G (Inicia transformaci´on) F: T → G (Finaliza transformaci´on) Estas dos funciones tienen las mismas caracter´ısticas que la funci´on γ pero aplicadas al conjunto de transformaciones anteriormente descritas. Existe una restricci´on sobre las tres u´ ltimas funciones, y es que no pueden ser aplicadas sobre actores. Es decir, no se puede ejecutar γ (ad1 (w)), ni I(ad1 (w)), ni F(ad1 (w)). Se debe primero transformar el actor en una cadena de primitivas

Modelo para la generaci´on de Mundos Virtuales

191

y transformaciones, que ser´a su representaci´on gr´afica. Por ejemplo, si se define un actor que describe la actividad de una nave espacial, se debe transformar el actor en una secuencia de primitivas y transformaciones que van a representar la imagen de la nave espacial. Como se ha dicho con anterioridad, las funciones λ se pueden clasificar seg´un la cadena de resultados que devuelvan. Uno de los tipos de funciones λ son aquellas que devuelven solo cadenas que sean primitivas y transformaciones. A estas funciones se les va a denominar funci´on de aspecto τ y su expresi´on es:   z ∈ L(E) Si f = d τ (a (v), e ) = ε Si f 6= d d

f

(8.4)

Se puede observar que existen peque˜nas diferencias entre λ y τ . La primera es que τ devuelve cadenas que pertenecen a L(E), siendo este el lenguaje de la gram´atica E que es igual que M pero eliminado los actores. Adem´as si no coincide con el evento devuelve una cadena vac´ıa. Esto quiere decir que para ese evento el actor no tiene representaci´on en la vista. El tipo de evento es importante y no se corresponde con ning´un dispositivo de entrada en concreto, si no m´as bien es un evento que se encargar´a de establecer los diferentes tipos de vista que tiene el sistema. As´ı, si se desea un sistema de dibujo que filtre determinados elementos para que queden invisibles, solo tienen que no reaccionar al evento. Estos eventos tambi´en sirven para decidir qu´e tipo de visualizaci´on se desea, dependiendo de la ventana o dispositivo de salida. Al igual que con λ , se define un algoritmo para τ que dado una cadena w ∈ L(M) y un conjunto de eventos ev con v ∈ V + y V ⊂ D, siendo V los tipos de eventos para visualizar el sistema, se devuelva una cadena v ∈ L(E). A esta funci´on le denominamos funci´on de visualizaci´on Ω y se define como:     

 w Si w ∈ P    t(Ω(y, ev )) Si w = t(y)  d v f d Ω(w, ev ) = ∏ τ (a (Ω(y, e )), e ) Si w = a (y)      ∀ f ∈v  Ω(s, ev ) · Ω(t, ev ) Si w = s·t

(8.5)

Se puede comprobar que es igual que la funci´on α salvo que sustituimos λ por τ y que los eventos que pueden ser pasados a la funci´on solo pueden pertenecer a V . En el caso de que a la funci´on Ω se le pase un evento que no pertenece a V lo u´ nico que producir´a ser´a una cadena vac´ıa.

192

Hacia un modelo integral para la generaci´on de Mundos Virtuales

8.4.1 Actividad y Eventos La actividad en un sistema de RV la representan los actores. Esta actividad suele realizarse entre actores del propio sistema y entre dispositivos de entrada y cadenas de la escena. Toda actividad consiste en un proceso que se produce en un sistema como reacci´on a un determinado evento. Este evento puede ser producido por otra actividad o por un dispositivo de entrada. Como resultado de una actividad se puede producir una modificaci´on de los estados de los actores que forman el sistema. As´ı, se puede ver que lo que define a una actividad es, por un lado, el proceso de ejecuci´on de la actividad que realiza el actor, y por otro, el evento o el conjunto de eventos que van a activar dicha actividad. El concepto de evento dentro de un actor es importante, ya que define cu´ando se va a ejecutar la actividad independientemente del origen del evento. Esta independencia es necesaria para la generalizaci´on de los dispositivos de entrada, ya que independiza el dispositivo de la actividad que se debe procesar. La generalizaci´on de los eventos facilita la realizaci´on de simulaciones. Por ejemplo, si se quiere hacer una simulaci´on en la que un usuario mueve un determinado elemento, solo se deben generar tantos eventos de 'movimiento' como se desee, simulando la presencia del usuario. Tambi´en, se puede simular la existencia de dispositivos. Por ejemplo, simular la existencia de un guante de realidad virtual con un rat´on. Para ello, se debe generar aquellos eventos producidos por el guante de realidad virtual. Ya se ha visto que la identificaci´on del evento es uno de los atributos dentro de la actividad de un sistema de RV. Pero adem´as, en un evento se pueden definir unos datos que caracterizan a una instancia del evento. Por ejemplo, un evento de movimiento puede contener los datos del movimiento. Por supuesto, pueden existir eventos que no tengan datos asociados. No toda actividad tiene porqu´e ejecutarse cuando se env´ıa un evento. Pueden existir determinados eventos que ejecutan la actividad si se cumplen ciertas condiciones, dependiendo del estado del actor. Esta comprobaci´on va a estar definida en el evento y no en el objeto que tiene definida la actividad. Por tanto, se va a establecer una definici´on de evento: Se define edc como el evento de tipo 'd', que tiene como datos 'e' y que se ejecuta de forma opcional bajo la condici´on 'c'. Se puede observar que el origen de la creaci´on de dichos eventos puede ser cualquiera, y que no es importante el origen, sino m´as bien el tipo de evento que

Modelo para la generaci´on de Mundos Virtuales

193

se quiere enviar y su definici´on.

8.4.2 Dispositivos de entrada Se desea establecer una independencia entre el sistema y los dispositivos de entrada. Por tanto, se necesita definir, para un conjunto de dispositivos de entrada, los eventos necesarios para hacer reaccionar al sistema. Por ejemplo, si tenemos un rat´on y se quiere mover un personaje de un juego, no se tiene que definir para el personaje el evento de rat´on, sino que el rat´on va a definir un evento que genera el movimiento del personaje. Para ello, se va a especificar una funci´on que, dependiendo del dispositivo, va a generar los eventos que se necesitan para hacer reaccionar al sistema. A este elemento se va denominar generador de eventos y su definici´on es: Se define como GD (t) al generador que crea los eventos del tipo d en el instante t, siendo d ∈ D donde D es el conjunto de tipos de eventos que pueden ser generados. En la definici´on anterior se debe destacar que los eventos se generan en un instante t. Esto se debe a motivos de sincronizaci´on. Existe adem´as la posibilidad de que G no cree ning´un evento. Con esta definici´on se independiza los dispositivos de entrada del sistema de RV. As´ı, se puede crear un generador para un rat´on, para un guante, para un teclado o para cualquier dispositivo de entrada y que puedan generar los mismos tipos de eventos. Lo interesante de la implementaci´on del generador es que solo se tendr´a en un sitio la parte dependiente del dispositivo de entrada. La actual definici´on de generador de eventos no tiene porqu´e estar asociada a un dispositivo de entrada hardware, sino que tambi´en se pueden asociar a procesos software. Estos procesos software pueden ser de cualquier ´ındole: de colisi´on entre elementos, de contabilizaci´on, de acumulaci´on de informaci´on para que en los instantes siguientes se produzcan otros eventos, etc. En definitiva, cualquier proceso que interact´ue con el sistema. Existe el problema de que varios generadores pueden crear eventos del mismo tipo y con distintos datos. Para que esto no cree conflictos se va a establecer un orden de prioridad entre los distintos generadores, de forma que, dados dos generadores Gi y G j , se creen dos eventos del mismo tipo, por lo que prevalecer´a el evento creado por Gi sobre el de G j . Por ejemplo, si existe un teclado, un rat´on y un joystick, se puede establecer el siguiente orden de prioridad: 1º

194

Hacia un modelo integral para la generaci´on de Mundos Virtuales

Joystick, 2º Rat´on, 3º Teclado. Estos procesos de redundancia se producen porque el sistema debe ser implementado para todos estos dispositivos. Si existen varios, solo prevalecer´a uno de ellos. El orden de prioridad se puede establecer, por ejemplo, por orden de inmersi´on en el sistema o facilidad de uso. En el caso de que no exista uno de los dispositivos, actuar´ıa el de siguiente prioridad. El proceso para la obtenci´on de los eventos producidos por todos los dispositivos de entrada y sus generadores asociados se define como: Se define G∗ como el conjunto de todos los generadores de eventos del sistema asociados a los dispositivos de entrada. Se define e(z, ei ) siendo Gi (t) = ei , como:  i  z · e si ei ∈ /z i e(z, e ) = z si ei ∈ z

La funci´on E(G∗ ,t) que recolecta todos los eventos de todos los generadores se define como:   e(z, Gi (t)) z = E(G∗ − Gi ,t) ∗ E(G ,t) = ε si G∗ = 0/

8.4.3 Algoritmo del sistema Una vez definidos todos los elementos implicados en el modelo que gestionar´a un sistema de RV se puede establecer el algoritmo que ejecutar´a todo el sistema, tanto la evoluci´on como la visualizaci´on del mismo, para cada instante t o frame. El algoritmo es: Sea D = { Conjunto de todos los tipos de eventos posibles en el sistema}. Sea V = { Conjunto de todos los tipos de eventos de dibujo} con V ⊂ D. Sea G∗ = { Todos los generadores de eventos que genera eventos de tipo D} Sea g el dispostivivo de salida. Sea e∗ todos los eventos generados por el sistema. Sea ev todos los eventos de los dispositivos visuales. Estos eventos ser´a una de las entradas de la funci´on de visualizaci´on del sistema Φ. Sea eu todos los dem´as eventos que no son visuales. Estos eventos ser´a la entrada de la funci´on de evoluci´on del sistema α . Se define el algoritmo Generador de Mundos Virtuales como: Paso 1. Sea w = wo donde wo es la cadena inicial del sistema. Paso 2. Sea t = 0.

Modelo para la generaci´on de Mundos Virtuales

195

Paso 3. e∗ = E(G∗ ,t) Paso 4. ev = Evento de e∗ donde v ∈ V + Paso 5. eu = e∗ − ev Paso 6. wsig = α (w, eu ) Paso 7. v = Ω(w, ev ) Paso 8.g = Φ(v) Paso 9. w = wsig ; t = t + 1 Paso 10. Si w = ε entonces ir a Paso 12. Paso 11. Ir a paso 3. Paso 12. Fin.

Figura 8.1: Diagrama del Algoritmo Generador de Mundos Virtuales

Los dos primeros pasos del algoritmo conforman la parte de la inicializaci´on del sistema. Esto es, al sistema se le introduce el estado inicial de la escena wo y el primer frame va a ser el 0. Los pasos 3, 4 y 5 gestionan los eventos del sistema. Primero se llama a los generadores y se asigna a una lista e∗ todos los eventos generados. En los pasos 4 y 5 se dividen los eventos en eventos para la visualizaci´on ev y los dem´as eventos eu . La primera ser´a una de las entradas a la funci´on Ω y la segunda a la funci´on α. En el paso 6, con la cadena actual del sistema w y los eventos que no son de visualizaci´on (eu ), se llama a la funci´on de evoluci´on α para calcular la cadena del siguiente frame o instante t. En el paso 7 y 8 se realiza la visualizaci´on del sistema. En primer lugar se transforman los actores en primitivas y transformaciones llamando a la funci´on Ω y con los eventos de visualizaci´on ev . Una vez se tiene la cadena que representa

196

Hacia un modelo integral para la generaci´on de Mundos Virtuales

la visualizaci´on del sistema en este instante t se llama a la funci´on Φ(v) para visualizar el sistema en el motor gr´afico. En el paso 9 se prepara para la siguiente iteraci´on y se asigna w a wsig y se aumenta en 1 el n´umero de frames o instantes. En el paso 10 se mira si se ha llegado a la condici´on de finalizaci´on, esto es, si la cadena siguiente es vac´ıa y si es cierto se termina el algoritmo, paso 12. En caso contrario, se vuelve al paso 3 para el siguiente frame. Se puede destacar que el paso 6 es intercambiable con los pasos 7 y 8 porque no comparten datos que tengan que modificar. Esta caracter´ıstica es importante para la implementaci´on en paralelo del algoritmo. Efectivamente, si este algoritmo se desea paralelizar se puede poner en tareas diferentes el paso 6 por un lado, y los pasos 7 y 8 por otro. Tambi´en se puede observar que para que termine el algoritmo solo se debe devolver en α una cadena vac´ıa. Esta cadena vac´ıa se puede obtener mediante un evento especial que se genere cuando se desea terminar el sistema.

8.5 Caso pr´actico Para exponer con mayor claridad c´omo funciona y se define un sistema de RV con el modelo anteriormente definido, se va a describir un caso pr´actico consistente en la implementaci´on de un modelo para la simulaci´on de incendios forestales producidos por tormentas [9]. El modelo consiste en la representaci´on de un mundo, donde cada cierto tiempo crece un a´ rbol con una cierta probabilidad g. El crecimiento de un a´ rbol hace que este se sit´ue en un determinado lugar (i, j) de un tablero 2D. Por otro lado, con una probabilidad f puede caer un rayo en una determinada casilla (i, j). Si un rel´ampago cae en una casilla sin a´ rbol, entonces no suceder´a nada. Si por el contrario, hay un a´ rbol, entonces est´e arder´a y quemar´a todos los a´ rboles que est´en a su alrededor, y estos a su vez quemar´an los que est´en al suyo, produciendo una reacci´on en cadena. Se puede ver un ejemplo de la implementaci´on de este modelo en la figura 8.2. Se debe resaltar que no se est´a interesado en el resultado propio del modelo anterior, sino m´as bien en definir un sistema de RV para este modelo con el sistema propuesto en el cap´ıtulo anterior. Son cuatro los elementos principales que se deben definir. En primer lugar se definir´an los eventos necesarios para que el sistema pueda ejecutar las actividades. En segundo lugar, se dise˜nar´an los generadores de eventos. En tercer lugar,

Caso pr´actico

197

Figura 8.2: Ejemplos de diferentes estados del tablero de juego

se definir´an los actores que forman parte de la escena. Por u´ ltimo, se introducir´an las primitivas que podr´an hacer visible las diferentes partes que se deseen mostrar. Los eventos que se pueden producir en el sistema se muestran en la tabla 8.1. Tipo de evento t c r v q d

Significado

Datos asociados

Evento que se genera cada cierto tiempo t Crear un a´ rbol en una determinada posici´on Creaci´on de un rel´ampago en una posici´on Elimina el a´ rbol creado en una posici´on Quemar un a´ rbol en una posici´on Dibuja en OpenGL

Incremento del tiempo con respecto al anterior evento Posici´on (i,j) donde se crea el a´ rbol Posici´on (i,j) donde se crea el rel´ampago Posici´on (i,j) donde se elimina el a´ rbol Posici´on (i,j) donde se quema el a´ rbol Nada

Tabla 8.1: Definici´on de eventos

Los siguientes elementos que se deben definir son los generadores de eventos. Estos son tres: Gtiempo ={et cada cierto tiempo t} ec con probabilidad g Gbosque = r e con probabilidad f Gopengl = {ed cada redibujado}

198

Hacia un modelo integral para la generaci´on de Mundos Virtuales

Por supuesto, podr´ıamos definir m´as generadores. Por ejemplo, cuando pulsamos un bot´on se podr´ıa generar un evento er y lanzar un rel´ampago en la posicion (i,j). Sin embargo, para este caso pr´actico no es necesario. En la tabla 8.2 se definen cada cada una de las primitivas y las transformaciones. Primitiva A Aq R BNxN Transformaciones Ti, j Ss

Dibujo ´ Arbol. ´ Arbol quemado Rel´ampago. Tablero de NxN que representa el bosque Transformaci´on Traslaci´on (i, j) Escalado (s)

Tabla 8.2: Definici´on de primitivas y transformaciones

Las funciones γ , I, F son implementadas para Opengl y dibujadas en una ventana. Por u´ ltimo, se especifican los actores que componen nuestro sistema. Para la definici´on de un actor se debe definir la funci´on de evoluci´on λ . La tabla 8.3 muestra los diferentes actores y su funci´on de evoluci´on. Aclarar que en el caso del actor Bcrv y el del evento ev , solo cambiar´a el estado interno del actor al asignar la posici´on (i, j) del evento como vac´ıa. Ahora todos los actores deben tener una representaci´on que se ver´a en el dispositivo visual. Para ello, se define la funci´on τ que se muestra en la tabla 8.4. Se debe aclarar que en el dibujado de AC, el escalado S va a corresponder a un escalado creciente dependiendo del estado actual del actor, que ser´a modificado dependiendo del evento et . El efecto es el de un a´ rbol que crece de menos a m´as. La escala para cada uno de los t vendr´a definida por la expresi´on s = Nt , donde N es el n´umero de frames totales de la animaci´on. En el caso de AQ, el escalado se va a aplicar en sentido inverso, representado por s−1 . Esto significa que el efecto es el de un a´ rbol quem´andose y menguando. Por u´ ltimo decir, que el dibujado de un rel´ampago depender´a del instante t en que se encuentre R, y que poco a poco se dibujar´a un rel´ampago con un algoritmo dependiente de t.

Caso pr´actico

199 Funci´on λ

Actor

Descripci´on

Bcrv

Representa el bosque

ACt

Representa un a´ rbol en crecimiento.

ARq Rt

AQt

´ Arbol Representa la animaci´on de un rel´ampago ´ Arbol quem´andose

 t crv  AC · B f =c      t crv  R ·B f =r crv f λ (B , e ) = crv B f =v       crv B f = 6 c, r, v  t+1  f =t AC  λ (ACt , e f ) = Aq f = t ∧ t + 1 > N f rames   t f 6= t  AC  AQt f = q λ (Aq , e f ) = Aq f 6= q  t+1  f =t R  λ (Rt , e f ) = ∆eq f = t ∧ t + 1 > N f rames  t  f 6= t R t+1  f =t AQ  λ (AQt , e f ) = ∆ev f = t ∧ t + 1 > N f rames   AQt f 6= t

Tabla 8.3: Descripci´on de los actores

Actor

Funci´on τ

Bd

τ (Bd (v), e f ) =

ACd Ad Rd AQd



 BNxN f = d f 6= d ε  D(i, j) (Ss (A)) f = d τ (ACd (v), e f ) = ε f 6= d  T(i, j) (A) f = d d f τ (AR (v), e ) = ε f 6=  d  T (R) f = d (i, j) τ (Rd (v), e f ) = f 6= d  ε  T (S f =d −1 (i, j) s (Aq )) d f τ (AQ (v), e ) = ε f 6= d

Tabla 8.4: Definici´on de las funciones de dibujo

Como se puede comprobar, en las animaciones el dibujo de los actores siempre va a depender de t, que modificar´a el estado del actor para cambiar su representaci´on seg´un vaya desarroll´andose la animaci´on. Para terminar se debe definir la cadena inicial: w0 = Bcrv

200

Hacia un modelo integral para la generaci´on de Mundos Virtuales

Con esta u´ ltima expresi´on queda terminada la definici´on de todos los elementos que componen el sistema de RV para modelar una simulaci´on de incendios forestales producido por rel´ampagos. Para ver como funciona el algoritmo propuesto en el cap´ıtulo anterior, se va a suponer que los generadores definidos anteriormente construyen varios eventos. Dada la cadena inicial, el sistema evolucionar´ıa de la siguiente manera: Paso 3. e∗ = E(G∗ ,t) = {et , ec , cd } = {etcd } Paso 4. ev = ed Paso 5. eu = e∗ − ev = ect Paso 6. wsig = α (w, ect ) = λ (Bcrv , ect ) = AC0 · Bcrv Paso 7. v = Ω(w, ev ) = Ω(Bcrv , ed ) = τ (Bcr , ed ) = BNxN Paso 8. Φ(v) = Φ(BNxN ) = γ (BNxN ) Paso 9. w = wsig y t = t + 1 Paso 11. Ir a paso 3 Paso 3. e∗ = E(G∗ ,t) = {et , er , cd } = {etrd } Paso 4. ev = ed Paso 5. eu = e∗ − ev = ert Paso 6. wsig = α (AC0 · Bcrv , ert ) = λ (AC0 , et )· λ (Bcrv , er ) = AC1 · R0 · Bcrv Paso 7. v = Ω(AC0 · Bcrv , ev ) = τ (AC0 , ed )· τ (Bcr , ed ) = T(i, j) (S0 (A))· BNxN Paso 8. Φ(D(i, j) (S0 (A))· T ) = I(T(i, j) )· I(S0 )· γ (A)· F(S0 )· F(T(i, j) )· γ (BNxN ) Paso 9. w = wsig y t = t + 1 Paso 11. Ir a paso 3 .....

8.6 Conclusiones y trabajos futuros Se ha presentado un modelo con un objetivo prioritario, la separaci´on de la actividad de un sistema gr´afico de la de los dispositivos visuales y de interacci´on que componen dicho sistema. Por uno lado, se tiene un lenguaje definido mediante gram´aticas independientes del contexto que detalla los elementos que componen el sistema. Se establecen determinadas funciones que representan la evoluci´on de cada uno de los elementos a trav´es del tiempo. Se definen funciones que extraen la representaci´on gr´afica de los elementos. Esta representaci´on se env´ıa a los dispositivos visuales mediante funciones que separan la implementaci´on concreta sobre un dispositivo visual y la descripci´on gr´afica del elemento, eliminando la dependencia del

Conclusiones y trabajos futuros

201

sistema de los dispositivos gr´aficos. La separaci´on de los dispositivos de entrada de la definici´on del sistema se ha articulado a trav´es de los generadores de eventos, que levantan una capa entre el hardware de entrada y la representaci´on del sistema. Para enlazar las acciones generadas por los dispositivos de entrada se utiliza el modelo de eventos. En general, se puede comprobar que todo el modelo intenta separar las partes dependientes del tipo de dispositivo de las de la definici´on formal de un sistema de RV. La t´ecnica empleada para dicha separaci´on es utilizar modelos matem´aticos que transformen las acciones de los dispositivos, tanto visuales como de entrada, en acciones m´as generales que puedan ser identificados por el sistema independientemente del origen de la acci´on, mediante abstracciones. Esto supone varias ventajas: en primer lugar los dispositivos de entrada pueden ser sustituidos por otros dispositivos o por simulaciones de estos. Por otro lado existe la posibilidad de que los elementos del sistema sean reutilizados. Adem´as, la representaci´on de los elementos puede ser visual o no visual, e incluso ser diferente dependiendo del dispositivo de visualizaci´on o de las necesidades del usuario. As´ı, si el dispositivo tiene unas caracter´ısticas concretas, la representaci´on siempre se podr´a adaptar al dispositivo. Por u´ ltimo, varios actores pueden relacionarse entre s´ı envi´andose mutuamente eventos que ambos reconozcan. Con el sistema planteado se puede dise˜nar f´acilmente un motor f´ısico utilizando los elementos de la escena. Esto se realiza dise˜nando generadores de eventos de diferentes tipos, dependiendo de la caracter´ıstica f´ısica y activando la actividad del actor necesaria para que este reaccione ante el proceso f´ısico. Por ejemplo, si se quiere que un actor reaccione ante una colisi´on, el generador de eventos de este tipo calcular´a las colisiones de los elementos extrayendo la geometr´ıa de la escena gracias al motor gr´afico (utilizando la implementaci´on de las funciones γ , I, F para calcular los cubos envolventes de los elementos) y generando los eventos necesarios para las colisiones. Si el sistema lo permite, se podr´ıa implementar mediante hardware este generador de eventos. El motor de IA puede ser dise˜nado en las funciones de evoluci´on de los actores. En estas funciones es donde cada actor va a tomar sus decisiones dependiendo de su estado actual. Mediante eventos se pueden ejecutar actividades que cambien el estado del actor y que modifiquen su comportamiento. Adem´as, como el propio actor puede generar eventos es posible dise˜nar procesos de retroalimentaci´on utilizados en IA. Adem´as la integraci´on entre motor f´ısico y motor de IA est´a garantizada ya estos dos motores se relacionan entre s´ı mediante los

202

Hacia un modelo integral para la generaci´on de Mundos Virtuales

eventos. El uso de un lenguaje para la descripci´on de los elementos de la escena y la independencia del sistema gr´afico hace que estas cadenas descriptivas puedan ser utilizadas en cualquier otro sistema, siempre y cuando est´an implementados los elementos b´asicos (todas las funciones sem´anticas explicadas). El modelo presentado en este trabajo est´a actualmente en desarrollo y se desea seguir desarrollando los diferentes aspectos tratados aqu´ı. Uno de los puntos a investigar y que se apuntan en el art´ıculo es la optimizaci´on del algoritmo y su paralelizaci´on. La definici´on del sistema mediante cadenas facilita la posibilidad de algoritmos paralelos. Por otro lado, las cadenas representan estados del sistema y su evoluci´on. Esta evoluci´on puede variar mediante mutaciones y se puede investigar posibles soluciones evolutivas para el dise˜no del sistema. Por otro lado, se puede estudiar la posibilidad de activar eventos con una cierta probabilidad. Es decir, un actor activar´ıa una actividad, ya no solo cuando suceda un determinado evento, sino que este se activase con una cierta probabilidad. 1 2 As´ı un actor podr´ıa definirse como a p(e ),p(e ) (w), siendo p(ei ) la probabilidad de reaccionar al evento ei . En definitiva, se ha pretendido dise˜nar un sistema reutilizable, gen´erico y que se pueda incrementar y adaptar f´acilmente, en el que la parte fundamental, que es la evoluci´on en el tiempo, sea independiente de c´omo se represente y con qui´en interact´ue.

Bibliograf´ıa [1] P HYS X

BY

AGEIA: http://physx.ageia.com/

[2] DAVID J. K ASIK W ILLIAM B UXTON D. R. F.: Ten cad challenges. IEEE Computer Graphics and Applications 25 (2005), 81–90. ´ [3] W ORKING M ODEL : S IMULACI ON design-simulation.com

DE

S ISTEMAS: http://www.

[4] DAVIS M ARTIN D.; S IGAL R., W EYUKER E. J.: Computability, Complexity, and Languages, Fundamentals of Theoretical Computer Science, 2nd ed. San Diego: Elsevier Science, 1994. [5] N EWTON G AME DYNAMICS: http://www.newtondynamics.com/

Bibliograf´ıa

203

[6] O PEN DYNAMICS E NGINE: http:www.ode.org [7] W IKIPEDIA - P HYSICS ENGINE: http://en.wikipedia.org/wiki/physics_engine [8] H AVOK: http://www.havok.com/ [9] J OHN H. M ILLER S. E. P.: Complex Adaptative Systems. Princeton University Press, 2007. [10] J OSHUA S TRICKON J. A. P.: Emerging technologies. Siggraph (2004). [11] PAL: P HYSICS A BSTRACTION L AYER: http://www.adrianboeing.com/pal/ ´ [12] P AGINA OFICIAL DE D IRECT X: http://www.microsoft.com/windows/directx/default. mspx ´ [13] P AGINA

OFICIAL DE

O PEN GL: http://www.opengl.org/

[14] S IMPLE D IRECT M EDIA L AYER (SDL): http://www.libsdl.org/ [15] OGRE 3D : O PEN SOURCE GRAPHICS http://www.ogre3d.org/

ENGINE:

[16] T HE V ISUALIZATION T OOL K IT (VTK): http://public.kitware.com/vtk/ [17] EO E VOLUTIONARY C OMPUTATION F RAMEWORK: http://eodev.sourceforge.net/ [18] CIL IB (C OMPUTATIONAL I NTELLIGENCE L IBRARY ): http://cilib.sourceforge.net/ [19] JADE - JAVA AGENT DE VELOPMENT F RAMEWORK: http://jade.tilab.com/ [20] L AIRD J. E.: Using a computer game to develop advanced ai. Computer 34 (7) (2001), 70–75.

204

Hacia un modelo integral para la generaci´on de Mundos Virtuales

[21] G EORGIOS N. YANNAKAKIS J OHN L EVINE J. H.: An evolutionary approach for interactive computer games. In Proceedings of the Congress on Evolutionary Computation (2004), 986–993. [22] C HRIS M ILES J UAN Q UIROZ R. L. S. J. L.: Co-evolving influence map tree based strategy game players. IEEE Symposium on Computational Intelligence and Games (2007), 88–95. [23] ROBERT G. R EYNOLDS Z IAD KOBTI T. A. K. L. Y. L. Y.: Unraveling ancient mysteries: Reimagining the past using evolutionary computation in a complex gaming environment. IEEE transactions on evolutionary computation 9 (2005), 707–720. [24] W OOLDRIDGE M.: Agent-based software engineering. IEEE Proceedings Software Engineering 144 (1997), 26–37. [25] W OOD M. F., D E L OACH S.: An overview of the multiagent systems engineering methodology. AOSE (2000), 207–222. [26] K ENYON S. H.: Behavioral software agents for real-time games. IEEE Potentials 25 (2006), 19–25. [27] A ARON K HOO R. Z.: Applying inexpensive ai techniques to computer games. IEEE Intelligent Systems 17(4) (2002), 48–53.

Publicaci´on 9

Formal model to integrate Multi-Agent Systems and Interactive Graphic Systems Gabriel L´opez-Garc´ıa, Rafael Molina-Carmona and Antonio-Javier Gallego-S´anchez Grupo de Inform´atica Industrial e Inteligencia Artificial, University of Alicante, Spain {glopez, rmolina, ajgallego}@dccia.ua.es International Conference on Agents and Artificial Intelligence, Valencia, Spain (2010). pp. 264-267. ISBN: 978-989-674-022-1. Calificado como CORE C

206 Formal model to integrate Multi-Agent Systems and Interactive Graphic . . .

Formal model to integrate Multi-Agent Systems and Interactive Graphic Systems Gabriel L´opez-Garc´ıa, Rafael Molina-Carmona and Antonio-Javier Gallego-S´anchez Grupo de Inform´atica Industrial e Inteligencia Artificial, University of Alicante, Spain, {glopez, rmolina, ajgallego}@dccia.ua.es Abstract A formal grammar-based model is presented to integrate the essential characteristics of a Multi-Agent System with the visualization given by an Interactive Graphic Systems. This model adds several advantages, such as the separation between the implementation of the system activity and the hardware devices, or the easy reusability of components. To illustrate the model, a practical case is presented. Keywords: Virtual Reality, Virtual Worlds generation, Formal model, Interaction.

9.1 Introduction The growing influence of Multi-Agent Systems (MAS) in several fields of research has led to a significant evolution in its development. On the other hand, the spectacular progress of the Interactive Graphic Systems (IGS) has contributed to present the information in a more friendly way using new forms of analysis. The entertainment industry have had a decisive influence on this progress [10]. Agents are usually considered to have some generic characteristics that make them difficult to model [3]. Although there are some common strategies, there is a lack of a unified design pattern. Hence, some problems arise, such as the difficult reproduction of results [1], the lack of a suitable visual representation or the limited capabilities of interaction. There are many work environments to develop MASs, but they seldom include advanced visual features. For instance, in Sociology [1, 3], very specific

Proposed Model

207

solutions are used [11, 9]. Netlogo [12] is a useful tool with some basic graphics to study complex systems. Some applications of the MASs to Virtual Reality (VR) can also be found. [7] proposes an implementation of a virtual world where objects react to gestures of the user. The work of [13] uses the concept of MASs perception applied to VR. In entertainment industry, agents are usually called bots [5] and they are programmed as characters of the game. These systems are so successful that they are being used in research [10]. An growing variety of generic development environments are emerging: they implement the most important features of agents [3]. Repast [8] and MASON [6] are examples. As a conclusion, there are a variety of environments, but a model that unifies the definition of MASs and IGSs has not been proposed. This paper describes our proposal for an integral model based on grammars to develop complex environments that take advantage of the MASs and the IGSs features. This system uses a descriptive language and discrete events to specify agents. It will the interaction with the user and it is independent from the display and the interaction devices. It could also incorporate a physics engine and the agents could be easily reused.

9.2 Proposed Model In our model, a scene is a set of dynamic and static elements. They are all represented by a sequence of primitives an transformations of a geometric system G. A primitive is not just a draw primitive but an action on the geometric system that can be visual or not. A transformation is a modification on the primitives inside its scope of application. Agents are the dynamic part and they are made of activities and a set of internal states. Each activity is executed as a reaction to an event. The agents can have a geometrical representation, defined using primitives and transformations. They also provide different ways of communication. Formally, each element in the scene is represented by a symbol, which are used to build strings to describe the scene. The strings follow a language syntax, which is presented as a grammar [14] defined by the tuple M = < Σ, N, R, s >, where Σ = P ∪ T ∪ O ∪ AD ST is the set of terminal symbols (P: set of symbols for primitives, T : set of symbols for transformations, O = {· ()}: set of symbols of separation and operation, AD ST : set of symbols for agents with D the set of

208 Formal model to integrate Multi-Agent Systems and Interactive Graphic . . . all possible types of events and ST the set of possible states), N = {WORLD, OBJECTS, OBJECT, AGENT, TRANSFORMATION, FIGURE } is the set of non-terminal symbols, s = WORLD is the initial symbol and R is the set of grammar rules defined in the following table. 1.WORLD → OBJECTS 2.OBJECTS → OBJECT | OBJECT · OBJECTS 3.OBJECT → FIGURE | TRANSF. | AGENT 4.AGENT → adst (OBJECTS), adst ∈ AD ST , d ∈ D, st ∈ ST 5.TRANSFORMATION → t (OBJECTS), t ∈ T 6.FIGURE → p+ , p ∈ P

A string w ∈ Σ∗ is generated by M, if it can be obtained from the initial symbol using the given rules. The language L(M) is the set of all the strings ∗ which can be generated L(M) = {w ∈ Σ∗ | WORLD → w}. M is a context-free grammar, so there is a procedure to verify if a scene is correctly described. Apart from the language syntax, it is necessary to define the semantics. It will be defined with a denotational method, through mathematical functions. Rule 6 defines the syntax of a figure as a sequence of primitives. Primitive semantics is defined by function α : P → G. Each symbol in P runs a primitive on a geometric system G. So, depending on α and on the geometric system G, the result may be different. G represents actions on a specific geometric system (e.g. a graphical library such as OpenGL). The scope of a transformation is limited by the symbols “()”. Two functions are used to describe the semantics of a transformation: β : T → G (run when the symbol “(” is processed), and δ : T → G (run when the symbol “)” is found). These two functions have the same features as α , but they are applied to transformations T , on the same geometric system G. Given a string w ∈ L(M), a new function ϕ is defined to run a sequence of primitives P and transformations T in a geometric system G:   α (w) if w ∈ P     β (t); ϕ (v); δ (t) if w = t(v) ∧ v ∈ L(M)∧ ϕ (w) = (9.1) ∧t∈T     ϕ (s); ϕ (v)

if w = s· v ∧ s, v ∈ L(M)

One of the most important features of this system is the independence from a specific graphics system. The definition of α , β and δ provides the differences

Proposed Model

209

in behaviour, encapsulating the implementation details. Therefore, the strings to define a scene may be reused in other systems. The semantics of agents is a function which defines its evolution in time. It is called evolution function λ and is defined as: λ : L(M) × E D → L(M), where E D is the set of events for the device D. By applying λ (w, e f ), w ∈ L(M) is transformed into another string u, which allows the system to evolve. It has a different expression depending on its evolution, but the general expression is: λ (adst (v), e f ) =



u ∈ L(M) adst (v)

if f = d if f = 6 d



(9.2)

The result u may contain or not the own agent, it can generate other event for the next frame or change the agent state ‘st’. The function λ defines the function of the system evolution η . Given a set of events ei , e j , ek , . . . , en (denoted as ev , where v ∈ D+ ) and a string w, it describes the evolution at a frame. This algorithm uses the operator ∏∀ f ∈v to concatenate strings.  w     t(η (v, ev )) η (w, ev ) = ∏ (λ (adst (η (y, ev )), e f ))   ∀ f ∈v   η (s, ev ) · η (t, ev )

if w ∈ P if w = t(v) if w = adst (y) if w = s · t

        

(9.3)

For the visualization of an agent, it must be first converted into a string of primitives and transformations. This conversion is done by the visualization function θ : L(M) × E V → L(E), where V ⊆ D are events used to create different views, E V are events created in the visualization process, and L(E) is the language L(M) without agents. It is defined as: θ (adst (v), e f ) =



w ∈ L(E) ε

if f = d ∧ d ∈ V if f = 6 d



(9.4)

As with the function λ , an algorithm is defined for θ . It returns a string z ∈ L(E), given a string w ∈ L(M) and a set of events ev , where v ∈ V + and V ⊆ D. This function is called function of system visualization π and it is defined as: π : L(M) × E V → L(E)

210 Formal model to integrate Multi-Agent Systems and Interactive Graphic . . .

 w     t(π (y, ev )) π (w, ev ) = ∏ (θ (avst (π (y, ev )), e f ))     ∀ f ∈v v π (s, e ) · π (t, ev )

if w ∈ P+ if w = t(y) if w = avst (y) if w = s · t

        

(9.5)

The activities are run by agents and activated by events under certain conditions. An event is defined as: edc is an event of type d ∈ D with data e, which is carried out when the condition c is fulfilled. The condition is omitted if c = true. Events may include information identifying who sent the message. So, it provides a generic communication system that can implement FIPA or KMQL [2]. It is necessary to establish the independence between the system and the input devices that generate events (hardware or software). So, the events needed to make the system respond to the input devices must be defined. A new function called event generator is defined: Let Cd (t) be a function which creates events of type d at the time instant t, where d ∈ D and D is the set of event types which can be generated. It is important to note that event generators encapsulate the device-dependent code. They also can model the communication processes that exist in a MAS (agent-agent and agent-environment). The process which obtains the events produced by the generators is defined as: Let C∗ be the set of all the event generators which are associated with input devices and E(C∗ ,t) the function that collects all the events from all the generators, then:   e(z,Ci (t)) if z = E(C∗ − Ci ,t) E(C∗ ,t) = if  C∗ = 0/  ε i i z · e if e ∈ /z e(z, ei ) = z if ei ∈ z

(9.6)

Once all the elements involved in the model have been defined, the algorithm which carries out the entire system can be established:

Case of Study

211 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

w = wo ; t = 0 e∗ = E(G∗ ,t) ev = events of e∗ where v ∈ V + eu = e∗ − ev wnext = η (w, eu ) v = π (w, ev ) g = ϕ (v) w = wnext ; t = t + 1 If w = ε then go to 11 Go to 2 End

where wo is the initial string, e∗ are the events generated at a frame t, G∗ = {All the event generators}, D = {All the possible events}, V = {All the visual events}; V ⊆ D, ev all the visual events, eu all the non-visual events and g the output device. Steps 2, 3 and 4 manage the system events. In step 5, the evolution algorithm is called to obtain the string for the next frame. In steps 6 and 7, the visualization of the system is performed. In step 8, the next iteration is prepared. The algorithm finishes if the following string is empty.

9.3 Case of Study This example is an application to simulate fires in forests caused by lightning [4]. The system consists of an agent to define the forest that can create other agents: trees (with a given probability g) and lightning (with a probability f ). If lightning are created in the same position as a tree, it will burn as well as the trees around it (Figure 9.1).

Figure 9.1: Examples of different simulation states

212 Formal model to integrate Multi-Agent Systems and Interactive Graphic . . . To model this example, four elements are defined: events, event generators, agents and primitives. Events are used to produce the necessary activity of system. The events defined for this example are shown in table 9.1. The next step is to define the event generators (table 9.2). Table 9.3 shows the primitives and the transformations that make up the scene. The functions α , β and δ define them. t c f e b v

Event generated to increase the time. Creates a tree at the position (i, j) of the forest. Creates a bolt of lightning at position (i, j). Eliminates the tree of the position (i, j). Burns the tree at position (i, j). Draws using a graphics library (e.g. OpenGL). Table 9.1: Table of Events.

(Ctime ) (C f orest ) (Cdraw )

Generate an event et at instant t Create tree (ec ) or lightning (e f ) Generate draw event

Table 9.2: Table of Event Generators.

Primitive TR T Rb FA BO Transformations D(i, j) S(s)

Description Draw a tree Draw a burning tree Draw a bolt of lightning Draw a grid of NxN Description Translate (i,j) Scale (n) units

Table 9.3: Primitives and Transformations.

The evolution function λ and the graphical representation π are presented in table 9.4. The agent defined for trees (T R) has three internal states st = {s1, s2, s3}: s1 growth, s2 adult tree and s3 burning tree. This is an example of

Conclusions

213

different representation for an agent depending on its internal state. The function Nbo sends burn events eb to all the neighbour trees, creating a chain reaction (agent-agent communication). An example of agent-environment communication is made between the forest and the generator C f orest . Agent

BO Forest

Function λ and π cfv T Rt=1  s1 · BO   t=1 c FA · BO f v λ (BOc f e , ei ) = BOc f e    BOc f e

FA Lightning



      

 BO i=v  ε t+1 i 6= v T Rs1 i = t ∧ t + 1 6 N ∧ s = s1    b  T R i = t ∧ t + 1 > N ∧ s = s1  s2    ∧  T Rt=1 s3 λ (T Rxst , ei ) = ∧∆Nbob i = b > N ∧ s = s2    T Rt+1 i = t ∧ s = s3  s3  e   ∆e i = t ∧ t + 1 > N ∧ s = s3   T Rtst i 6= t ∧ i 6= b

π (BOv , ei ) =

TR Tree

i=c i= f i=e i 6= c, f , e

 D(i, j) (S(n) (T R)) i = v ∧ st = s1    D (T R) i = v ∧ st = s2 (i, j) π (T Rvst , ei ) = D (S (T R)) i = v ∧ st = s3    (i, j) (−n) ε i 6= v   t+1 i = t ∧t +1 6 N   FA λ (FAt , ei ) = ∆eb i = t ∧t +1 > N   FAt i 6= t

π (FAv , ei ) =



D(i, j) (FA) ε

i=v i 6= v

                  

      



Table 9.4: Evolution function λ and the graphical representation π .

9.4 Conclusions In this paper a proposal to unify the most relevant features of MASs and IGSs has been presented. The proposed model uses a context-free language to define

214 Formal model to integrate Multi-Agent Systems and Interactive Graphic . . . the elements. Although further work needs to be done, the use of a descriptive language seems to have several advantages. Firstly, the definition of the scene is reusable and independent from the platform. The use of event generators also makes the interaction with the user independent from the hardware. Event generators are also used to implement the communication, both agent-agent and agent-environment. As future work the model will be applied to other problems to validate its features. New possibilities such as probabilistic learning strategies or genetic algorithms will be considered.

Bibliography [1] R. Axelrod (1997). Advancing the Art of Simulation in the Social Sciences. Simulating Social Phenomena, Springer. [2] Michael R. Genesereth, Steven P. Ketchpel (1995). Software Agents. Communications of the ACM. [3] N. Gilbert (2008). Agent-Based Models. SAGE Publications. [4] John H. Miller (2007). Complex Adaptative Systems. Princeton University Press. [5] Aaron Khoo, Robert Zubek (2002). Applying Inexpensive AI Techniques to Computer Games. IEEE Intelligent Systems July-August. [6] Sean Luke, Claudio Cioffi-Revilla, Liviu Panait, and Keith Sullivan (2005). MASON: A New Multi-Agent Simulation Toolkit. Vol. 81, SAGE Journals. [7] P. Maes, T. Darrell, B. Blumberg, A. Pentland (1997). The ALIVE System:Wireless, Full-body Interaction with Autonomous Agents. ACM Multimedia Systems, Vol.5, No.2, pp.105-112. [8] M.J. North, T.R. Howe, N.T. Collier, J.R. Vos (2005). The Repast Simphony Runtime System. Generative Social Processes, Models, and Mechanisms. [9] Craig Reynolds (2000). Interaction with Groups of Autonomous Characters. Game Developers Conference.

Bibliography

215

[10] Theresa-Marie Rhyne (2000). Computer Games’Influence on Scientific and Information Visualization. Entertainment Computing. [11] B. Ulicny, D. Thalmann (2001). Crowd simulation for interactive virtual environments and VR training systems. Computer Animation and Simulation, Springer. [12] Wilensky, U. (1999). NetLogo. User Manual. [13] Ipke Wachsmuth, Yong Cao (1995). Interactive Graphics Design with Situated Agents. Graphics and Robotics. [14] D.Martin, R.Sigal, E.J.Weyuker (1994). Computability, Complexity, and Languages, Fundamentals of Theoretical Computer Science, 2nd ed, Elsevier Science.

Publicaci´on 10

Modeling a Mobile Robot using a Grammatical Model Gabriel L´opez-Garc´ıa, Javier Gallego-S´anchez, J. Luis Dalmau-Espert, Rafael Molina-Carmona and Patricia Compa˜n-Rosique Grupo de Inform´atica Industrial e Inteligencia Artificial, Universidad de Alicante, Alicante, Spain {glopez, ajgallego, jldalmau, rmolina, patricia}@dccia.ua.es Int. Symp. on Distributed Computing and Artificial Intelligence (DCAI 2012), Salamanca, Spain (2012). pp. 445-452. ISBN: 9783-642-28764-0. ISSN: 1867-5662

218

Modeling a Mobile Robot using a Grammatical Model

Modeling a Mobile Robot using a Grammatical Model Gabriel L´opez-Garc´ıa, Javier Gallego-S´anchez, J. Luis Dalmau-Espert, Rafael Molina-Carmona and Patricia Compa˜n-Rosique Grupo de Inform´atica Industrial e Inteligencia Artificial, Universidad de Alicante, Alicante, Spain {glopez, ajgallego, jldalmau, rmolina, patricia}@dccia.ua.es Abstract Virtual Worlds Generator is a grammatical model that is proposed to define virtual worlds. It integrates the diversity of sensors and interaction devices, multimodality and a virtual simulation system. Its grammar allows the definition and abstraction in symbols strings of the scenes of the virtual world, independently of the hardware that is used to represent the world or to interact with it. A case study is presented to explain how to use the proposed model to formalize a robot navigation system with multimodal perception and a hybrid control scheme of the robot.

10.1 Introduction Autonomous robots are physical agents that perform tasks by navigating in an environment and by manipulating objects in it. To perform these tasks, they are equipped with effectors to act on the environment (wheels, joints...) and with sensors that can perceive it (cameras, sonars...) [6]. The growing disparity of available sensors adds complexity to systems, but it also allows the control of robots to be more accurate. For example, humans and other animals integrate multiple senses [7]. There are other reasons of mathematical nature: combining multiple observations from the same source provides statistical advantages because some redundant observations are obtained for the same estimation.

Model for Virtual Worlds Generation

219

In this paper we deal with the integration of multimodal inputs in the sense stated by Signhal and Brown [8], that is, the use of data of different nature for decision-making in high-level tasks performed by a robot. However, the proposed system can also deal with the concept of fusion. The Virtual Worlds Generator (VWG), our proposal, is a grammatical model, which integrates the diversity of interaction and sensing devices and the modules that make up a Graphics System (Graphics, Physics and AI engines). The scene definition is separated from the hardware-dependent characteristics of the system devices. It uses a grammar definition which integrates activities, visualization and interaction with users. The hypothesis is that it can be used as a formal framework to model a robot navigation system, including several multimodal inputs, sensor fusion and integration, and behaviour strategies.

10.2 Model for Virtual Worlds Generation In the VWG model, a virtual world is described as an ordered sequence of primitives, transformations and actors. A primitive is the description of an object in a given representation system (typically, they are graphical primitives but they could also be sounds or any other primitive in a representation space). Transformations modify the behaviour of primitives, and actors are the components which define the activities of the system in the virtual world. The actors may be finally displayed through primitives and transformations. To model the different actor’s activities, the concept of an event is used. Events cause the activation of a certain activity that can be processed by one or more actors. Each element in the scene is represented by a symbol from the set of symbols of the scene. The symbols make up strings that describe the scenes, in accordance with a language syntax, which is presented as a grammar [1]. A grammar M is a tuple M = < Σ, N, R, s >, where Σ is the finite set of terminal symbols, N is the finite set of non-terminal symbols, R is the finite set of syntactic rules (a syntactic rule is an application r: N → W ∗ , where W = Σ∪N) and s ∈ N is the initial symbol of the grammar. In our case, M is defined as: 1. Σ = P ∪ T ∪ O ∪ AD ATT R , where: • P: set of symbols for primitives. • T : set of symbols for transformations.

220

Modeling a Mobile Robot using a Grammatical Model • O = {· ()}: symbols for indicating the scope () and the concatenation ·. • AD AT T R : set of symbols for actors, where D is the set of all the types of events generated by the system and AT T R is the set of all the attributes of actors which define all the possible states. For example, h the actor aH attr will carry out its activity when it receives an event e , where h ∈ H, H ⊆ D and attr ∈ AT T R is its current state.

2. N = {WORLD, OBJECTS, OBJECT, ACTOR, TRANSFORM., FIGURE}. 3. Grammar rules R are defined as: • Rule 1. WORLD → OBJECTS • Rule 2. OBJECTS → OBJECT | OBJECT · OBJECTS • Rule 3. OBJECT → FIGURE | TRANSFORM. | ACTOR D H • Rule 4. ACTOR → aH attr , aattr ∈ AAT T R , H ⊆ D

• Rule 5. TRANSFORMATION → t(OBJECTS), t ∈ T • Rule 6. FIGURE → p+ , p ∈ P 4. s = WORLD is the initial symbol of the grammar. M is a context-free grammar. L(M) is the language generated by the grammar ∗ M: L(M) = {w ∈ Σ∗ | WORLD → w}. Apart from the language syntax, it is necessary to define the semantics of L(M). It will be defined with a denotational method, that is, through mathematical functions. Rule 6 defines a figure as a sequence of primitives. Primitive’s semantics is defined as a function α : P → G. Each symbol in the set P carries out a primitive on a given geometric system G. So, depending on the definition of the function α and on the geometry of G, the result of the system may be different. G represents the actions to be run on a specific visual or non-visual geometric system (e.g. the actions on OpenGL or on the system of a robot). The function α provides the abstraction needed to homogenize the different implementations of a rendering system. Therefore, only a descriptive string is needed to run the same scene on different systems.

Model for Virtual Worlds Generation

221

In Rule 5, two functions are used to describe the semantics of a transformation, whose scope is limited by the symbols “()”: β : T → G (carried out when the symbol “(” is processed) and δ : T → G (run when the symbol “)” is found). These two functions have the same features that the function α , but they are applied to the set of transformations T , using the same geometric system G. Rule 4 refers to actors, which are the dynamic part of the system. The semantics of the actor is a function which defines its evolution in time. For this reason, the semantic function is called evolution function λ and it is defined as: D D λ : AD AT T R × E → L(M), where E is the set of events for the set of all event types D. The function λ has a different expression depending on its evolution. However, a general expression can be defined. Let H = {h0 , . . . , hn } ⊆ D be the subset of event types which the actor aH AT T R is prepared to respond to. The general expression for λ can be seen at (e1), where u0 , . . . , un are strings of L(M). This equation means that an actor aH AT T R can evolve, that is, it is transformed into another string ui when it responds to an event eh which the actor is prepared to respond to. However, the actor remains unchanged when it is not prepared to respond. As well as dynamic elements, actors can also have a representation in the geometric space G. To be displayed, an actor must be converted to a string of primitives and transformations. This visualization function is defined as: V ′ V D θ : AD AT T R × E → L(M ), where V ⊆ D, E ⊆ E are events created in the ′ visualization process, and L(M ) is a subset of the language L(M), made up of the strings with no actors. Let H ∩ V = {v0 , . . . , vn } ⊆ D be the subset of visual event types which the actor aH AT T R is prepared to respond to. The expression of θ can be seen at (e2).   u ∈ L(M) if h = h   0 0     . . . h) = λ (aH , e (e1) AT T R un ∈ L(M) if h = hn      H  /H  aAT T R ′ if h ∈  z0 ∈ L(M ) if v = v0       . . . H v θ (aAT T R , e ) = (e2) ′    zn ∈ L(M ) if v = vn    ε if v ∈ / H ∩V The semantic function of these Rules 1, 2, and 3 breaks down the strings and converts them into substrings, executing the so called algorithm o f the system, which performs the complete evolution of the system and displays it in the cur-

222

Modeling a Mobile Robot using a Grammatical Model

rent geometric system. It performs several actions, which are described in the following paragraphs. To display the scene on the geometric system G, the function ϕ is defined, for the set of symbols that can directly be displayed: primitives and transformations. Given a string w ∈ L(M) and using only symbols of P and T , ϕ is defined as:   if w ∈ P  α (w)  β (t); ϕ (v); δ (t) if w = t(v) ∧ v ∈ L(M) ∧ t ∈ T ϕ (w) =   ϕ (u); ϕ (v) if w = u· v ∧ u, v ∈ L(M)

In the case of strings including both displayable elements, and actors, two functions must be defined. The first one is the so called function of the system evolution η , which requires a sequence of sorted events S = e1 · e2 . . . en , where every ei ∈ E D and a string of L(M) including actors, and implements a set of recursive calls to the function λ to perform the evolution of all the actors in the system at a given frame:   w if w ∈ P       if w = t(v) t(η (v, S)) η (w, S) = i H  ∏ i λ (aH attr , e ) if w = aattr     e ∈S  η (u, S) · η (v, S) if w = u · v

i The operator ∏ei ∈S λ (aH attr , e ) concatenates the strings of the function λ . For the actors to be displayed in the system, they must be converted to displayable elements, that is, primitives and transformations. The second function, returns a string of the language L(M ′ ) given a string w ∈ L(M) and a sequence of ordered visualization events S′ = e1 · e2 . . . en , where every ei ∈ E V and S′ ⊆ S. This function is called function of system visualization π and it is defined as:   w if w ∈ P       ′ )) t( π (v, S if w = t(v) ′ π (w, S ) =  ∏ i θ (aH , ei ) if w = aH AT T R     e ∈S ′ AT T R ′  π (u, S ) · π (v, S ) if w = u · v

The events are the mechanism to model the activity in the system. The actors activity is carried out when a certain type of event is produced. The following event definition is established: edc is defined as an event of type d ∈ D with data c.

Case study

223

A new function called event generator is defined as: Let Cd (t) be a function which creates a sequence of ordered events of type d at the time instant t, where d ∈ D and D is the set of event types which can be generated by the system. This function is: Cd : Time → (E D )∗ Different event generators can create the same type of events. So, a priority order among event generators must be established to avoid ambiguities. Once all the elements involved in the model have been defined, the System Algorithm can be established. It defines the system evolution and its visualization at every time instant ‘t’ or frame: 1. w = w0 ; t = 0 2. while w 6= ε do - S = collect events from generators C∗ in order of priority. - Z = extract visual events from S. - wnext = η (w, S) - v = π (w, Z) ; g = ϕ (v) - w = wnext ; t = t + 1 3. end while Where w0 is the initial string, C∗ = { All the event generators which generate events of type D }, D = { Set of all the types of possible events in the system }, g is the output device, S is a sequence of all the events generated by the system at instant t, Z is a subsequence of S, and it includes all the events from visual devices. These events are the input of the visual algorithm π .

10.3 Case study Let us consider a robot with several sensors that provide information about the environment. It is programmed to autonomously navigate in a known environment, and to transport objects from one place to another. The input data are the data from a range sensor, the image from a camera to identify objects and places using markers and a humen supervisor that he is controlling the robot. The information is combined using a multimoldal algorith based on priorities. A system like this can be modeled using a classical hybrid scheme (figure 10.1). This hybrid scheme can be adapted using the VWG introduced in the previous section.

224

Modeling a Mobile Robot using a Grammatical Model

Figure 10.1: Hybrid scheme for a robotic system.

In this picture the world is the real environment. The world model is a map containing the static elements of the environment. The reactive system is made of several generators, for the sensors and for the user’s orders. The proactive system is the AI of the robot. The robot is the only actor in the system. The current state is the set of robot attributes. The multisensorial integration process is the evolution function of the robot. The final action is the result of the process of sensor integration and the final action carried out by the robot. Only one primitive is needed, the robot, and it is modified by two possible transformations: move and rotate (table 10.1). When the system is executed in a real environment, the transformations correspond to the actual operations performed by the robot. If it is executed in a simulator, the primitive and the transformations will represent the operations carried out in the graphics system (GS).

PRobot T Move T Rotate

Real environment No action Move a distance dist Rotate an angle angle

Simulator Draw the robot in the GS Move a distance dist in the GS Rotate an angle angle in the GS

Table 10.1: Primitives and transformations of the robotic system.

Events are used to define the activity in the system. Each event is defined by its identifier and some attributes. They produce changes on the actors through their evolution functions. These events are produced by generators. There is a generator for each event type. In the robotic system, five generators are needed: • gLaser: It generates an eLaser event when the laser detects an obstacle, by obtaining the laser data and processing them to find the possible obstacles.

Case study

225

It is defined as: gLaser = eLaser if obstacle, where dist is the distance to the obstacle and angle is the angle to the obstacle. • gCamera: It generates an eCamera event when a marker is detected in the camera image. Markers are used to identify the rooms in the environment. It is defined as: gCamera = eCamera if a marker is detected. • gDecide: It generates an eDecide event each frame to indicate to the robot to make a decision. Is is defined as: gDecide = eDecide each frame. • gExecute: It generates an eExecute event to indicate the system to execute the robot actions in the current representation space. If the representation space is the real environment, the real operations will take place (move the robot, rotate the robot...). If the current space is the simulator, the operations will take place in the graphics system. It is defined as: gExecute = eExecute each frame. • gObjective: It generates an eObjective event to set a new objective marker. This generator is connected to the user orders. Users can specify a new target room simply by selecting its associated marker. It is defined as: gOb jective = eOb jective if user order. An order relation must be defined to establish an execution priority among generators. In the robotic system, the order relation is: gLaser, gCamera, gObjective, gDecide, gExecute. Therefore, events related with the acquisition of data have the highest priority, compared with the events of decision and execution. The only actor in our robotic system is the robot which is defined as: eLaser,eCamera,eDecide,eExecute,eOb jective ARobot

where the superscript are the events which it is prepared to respond to, and the subscript are the attributes, whose meanings are: the grid represents the environment where the robot moves in. Each cell stores the registered data obtained from the sensors (the detected obstacles and markers). Row and column are position occupied by the robot in the grid. Angle is the robot orientation. Objective is the objective room, represented by its marker. And action is the string of primitives and transformations which indicates the next command to be executed. To simplify, in the following equations this actor will be referred as E ARobot .

226

Modeling a Mobile Robot using a Grammatical Model

The evolution function defines the way the robot behaves in the environment. Let e be an event that is received by the actor, the evolution function is defined as:

E λ (ARobot , e) =

 E ARobot   E  ARobot  ′ ,r,c,an,o,ac>
E ARobot E α (ARobot ) E ARobot E ARobot

if e = eLaser if e = eCamera if e = eDecide if e = eExecute if e = eOb jective otherwise

(10.1) where the symbol apostrophe (’) indicates that it has changed as follows: • If e = eLaser , the grid (g) must be updated to indicate that an obstacle has been detected. The cell to mark is the one in position (r + dist cos(ang + angle), c + dist sin(ang + angle)). • If e = eCamera , the grid must be updated to indicate that a marker has been detected. The cell to mark is (r +dist cos(ang), c+dist sin(ang)). • If e = eDecide, the current position and orientation of the robot (r, c, ang), must be updated, as well as the actions to be executed. • If e = eExecute, the actions of the robot must be executed in the representation space, through the use of the α function. • If e = eOb jective , a new objective has been set by the user, so the objective (o) must be changed to the new one (marker). • In any other case, the actor must remain unchanged. The initial string in our system is defined as: eLaser,eCam.,eDecide,eExec.,eOb jct. ARobot

where the attribute grid is initialized to a set of empty cells, the attributes row, column and angle are the initial position, and the objective and the actions are empty.

Conclusions

227

10.3.1 Analysis A set of tests has been designed to prove the features of our model: The aim of the first test is to prove the suitability of the evolution function to introduce new AI algorithms. This test is not to obtain the best AI algorithm to achieve the goal. Two simple decision algorithms have been used to decide how the robot should move. The first algorithm makes decisions randomly to find the target position. The second algorithm is A* [4]. These two AI algorithms were introduced without making any changes in other parts of the system, just by changing the evolution function. The aim of the second test is to prove that the input devices can be replaced without changing the system. We can change the laser to a Kinect to detect obstacles. To change this device, we have just designed a new event generator (gKinect) that creates events of the same type that the ones generated by the laser generator. In the third test we want to test the extensibility of the system. New instances of the actor symbols (representing robots) have been added to the definition string to extend the system and create a multi-robot system in an almost immediate way. The updating of the definition string supposes the extension of the model and the addition of new features. Moreover, most elements can be reused in new definition strings to obtain new behaviours with little effort. In the last experiment we tested the flexibility to work under different conditions. To prove this feature, the system has been tested with different maps, in the case of the simulated robot, and in different real environments, in the case of the real robot.

10.4 Conclusions A new model to formally define virtual worlds, independently from the underlying physical layer, has been presented. Is has been used to model the control of a mobile robot, navigating in a given environment, and using a set of multimodal inputs from different types of sensors. Taking into account the diversity of virtual worlds available nowadays and the wide variety of devices, this model seems to be able to provide interesting features. Firstly, it is a formal model that allows to abstract and represent the states of the system in a general way by avoiding specific features. It is a deviceindependent model, therefore, is not linked to the implementation. It allows the

228

Modeling a Mobile Robot using a Grammatical Model

replacement of physical devices by simulated ones, and the easy addition of new ones. In conclusion, it has been achieved the main objective of defining a new formal and generic model that is able to model general virtual worlds systems by avoiding the specific peculiarities of other models existing today.

Bibliography [1] Davis, Martin; Sigal, Ron and Weyuker, Elaine J.: Computability, Complexity, and Languages, Fundamentals of Theoretical Computer Science, 2nd ed. San Diego: Elsevier Science (1994) [2] Ernst, Marc O. and B¨ulthoff, Heinrich H.: Merging the senses into a robust percept. TRENDS in Cognitive Sciences, vol.8, no.4, ( 2004) [3] Ingrand, F.; Chatila, R. and Alami, R.: An Architecture for Dependable Autonomous Robots. IARP-IEEE RAS Workshop on Dependable Robotics (2001) [4] Luo, Ren; Lin, Yu-Chih; Kao, Ching-Chung: Automous mobile robot navigation and localization based on floor paln map information and sensory fusion approach. IEEE MFI (2010) [5] Posadas, J.L.; Poza, J.L., Sim´o, J.E.; Benet, G.; Blanes, F.: Agent-based distributed architecture for mobile robot control. Engineering Applications of Artificial Intelligence, 805-823 (2008) [6] Russell, Stuart Jonathan and Norvig, Peter: Artificial intelligence: a modern approach. Prentice Hall. ISBN: 0136042597. (2010) [7] Sharma, R.; Pavlovic, V. I.; Huang, T. S.: Toward Multimodal HumarComputer Interface. Proceedings of the IEEE, vol. 86(5), pp. 853-869 (1998) [8] Singhal, A.; Brown, C.: Dynamic bayes net approach to multimodal sensor fusion. SPIE 1997

Publicaci´on 11

A Grammatical Approach to the Modeling of an Autonomous Robot Gabriel L´opez-Garc´ıa, A. Javier Gallego-S´anchez, J. Luis DalmauEspert, Rafael Molina-Carmona and Patricia Compa˜n-Rosique Group of Industrial Computing and Artificial Intelligence University of Alicante, Alicante, Spain {glopez, ajgallego, jldalmau, rmolina, patricia}@dccia.ua.es International Journal of Interactive Multimedia and Artificial Intelligence, ISSN: 1989-1660, pp. 30-37, Vol. 1, 2012.

230

A Grammatical Approach to the Modeling of an Autonomous Robot

A Grammatical Approach to the Modeling of an Autonomous Robot Gabriel L´opez-Garc´ıa, A. Javier Gallego-S´anchez, J. Luis Dalmau-Espert, Rafael Molina-Carmona and Patricia Compa˜n-Rosique Group of Industrial Computing and Artificial Intelligence University of Alicante, Alicante, Spain {glopez, ajgallego, jldalmau, rmolina, patricia}@dccia.ua.es Abstract Virtual Worlds Generator is a grammatical model that is proposed to define virtual worlds. It integrates the diversity of sensors and interaction devices, multimodality and a virtual simulation system. Its grammar allows the definition and abstraction in symbols strings of the scenes of the virtual world, independently of the hardware that is used to represent the world or to interact with it. A case study is presented to explain how to use the proposed model to formalize a robot navigation system with multimodal perception and a hybrid control scheme of the robot. The result is an instance of the model grammar that implements the robotic system and is independent of the sensing devices used for perception and interaction. As a conclusion the Virtual Worlds Generator adds value in the simulation of virtual worlds since the definition can be done formally and independently of the peculiarities of the supporting devices. Keywords: Autonomous robots, virtual worlds, grammatical models, multimodal perception.

11.1 Introduction Autonomous robots are physical agents that perform tasks by navigating in an environment and by manipulating objects in it. To perform these tasks, they are equipped with effectors to act on the environment (wheels, joints, grippers...) and with sensors that can perceive it (cameras, sonars, lasers, gyroscopes...). It should be notice that, in general, the environment in which a robot operates may be inaccessible (it is not always possible to obtain all the information necessary

Introduction

231

for decision-making in every moment) non-deterministic (the effect of the action taken by the robot in the environment cannot be guaranteed), non-episodic (the action to be performed by the robot depends on the current perceptions and on the previous decisions), dynamic (the robot and the other elements in the environment may be constantly changing) and continuous (the location of the robot and the moving obstacles change in a continuous range of time and space) [8]. The growing disparity of available sensors adds complexity to systems, but it also allows the control of robots to be more accurate. There are several reasons that support the use of a combination of different sensors to make a decision. For example, humans and other animals integrate multiple senses. Various biological studies have shown that when the signals reach the superior colliculus converge to the same target area [9], which also receives signals from the cerebral cortex and causes the resulting behavior. A large majority of superior colliculus neurons are multisensory. There are other reasons of mathematical nature: combining multiple observations from the same source provides statistical advantages because some redundant observations are obtained for the same estimation. The concepts from biology can be extrapolated to the field of robotics. In fact, one of the current research fields that arouses most interest is the management of several inputs from different types, the so called multimodal data. Combining data from different sensors is an open field of research. In this sense, there are several concepts related to this subject that deals with the concept of multimodality from different points of view. Signhal and Brown [10] consider that two main processes may be performed from several multimodal inputs: multisensor fusion and multisensor integration. Multisensor integration refers to the synergistic use of the information provided by multiple sensory devices to assist in the accomplishment of a task by a system. Multisensor fusion refers to any stage in the integration process where there is actual combination (fusion) of different sources of sensory information into one representation format. Other authors describe the evidence that humans combine information following two general strategies: The first one is to maximize information delivered from the different sensory modalities (sensory combination). The second strategy is to reduce the variance in the sensory estimate to increase its reliability (sensory integration) [3]. Another example is set in [11]. They consider that, in general, multimodal integration is done for two reasons: sensory combination and sensory integration. Sensory combination describes interactions between sensory signals that are not redundant. That means crossmodal integration leads to

232

A Grammatical Approach to the Modeling of an Autonomous Robot

increased information compared to single modalities. By contrast, sensory integration describes interactions between redundant signals. This leads to enhanced robustness and reliability of the derived information. In this paper we deal with the integration of multimodal inputs in the sense stated by Signhal and Brown [10], that is, the use of data of different nature for decision-making in high-level tasks performed by a robot. However, the proposed system can also deal with the concept of fusion, defined as the combination of low-level redundant inputs for the cooperative construction of the complete information of the environment, reducing, as a consequence, the levels of uncertainty. Different architectures have been described for defining the behavior of a robot and the combination of sensory information. A robotic control architecture should have the following properties: programmability, autonomy and adaptability, reactivity, consistent behavior, robustness and extensibility [4]. To achieve those requirements, most robot architectures try to combine reactive control and deliberative control. The reactive control is guided by sensors and it is suitable for low-level decisions in real time. The deliberative control belongs to a higher level, so that global solutions can be obtained from the data collected by the sensors but also from information from an a priori model. They are, therefore, hybrid architectures. Hybrid architectures arise due to the problems and inconveniences of pure reactive approaches, such as the lack of planning, and of pure deliberative approaches, such as the slow reactions. An example of hybrid architecture is the PRS (Procedural Reasoning System). When the hybrid architectures face a problem, the deliberative mechanisms are used to design a plan to achieve an objective, while the reactive mechanisms are used to carry out the plan. The communications framework is the base that enables the necessary interaction between reactive and deliberative levels, by sending distributed sensory information to tasks at both levels and sending actions to actuators. Deliberative and reactive tasks can be structured in a natural way by means of independent software components [6]. An example of implementation is the model SWE (Sensor Web Enablement), which is applied to systems that are based on the use of sensors to obtain the information that is processed later [1]. In [7] an architecture based on models SWE and DDS (Data Distribution Service) is proposed. DDS is a general-purpose middleware standard designed specifically to satisfy the performance and Qual-

Model for Virtual Worlds Generation

233

ity of Service (QoS) requirements of real-time systems. The Virtual Worlds Generator (VWG), our proposal, is a grammatical model, which integrates the diversity of interaction and sensing devices and the modules that make up a Graphics System (Graphics, Physics and AI engines). The scene definition is separated from the hardware-dependent characteristics of the system devices. It uses a grammar definition, which integrates activities, visualization and interaction with users. The hypothesis is that it can be used as a formal framework to model a robot navigation system, including several multimodal inputs, sensor fusion and integration, and behavior strategies. In section 11.2, the formal model for the VWG is presented. In section 11.3, the formal model is applied to construct a robotic system. Finally, some conclusions are presented in the last section.

11.2 Model for Virtual Worlds Generation In the VWG model, a virtual world is described as an ordered sequence of primitives, transformations and actors. A primitive is the description of an object in a given representation system (typically, they are graphical primitives but they could also be sounds or any other primitive in a representation space). Transformations modify the behavior of primitives, and actors are the components that define the activities of the system in the virtual world. The actors may be finally displayed through primitives and transformations. To model the different actor’s activities, the concept of an event is used. Events cause the activation of a certain activity that can be processed by one or more actors. Each element in the scene is represented by a symbol from the set of symbols of the scene. The symbols make up strings that describe the scenes, in accordance with a language syntax, which is presented as a grammar [2].

11.2.1 Syntax A grammar M is a tuple M = < Σ, N, R, s >, where Σ is the finite set of terminal symbols, N is the finite set of non-terminal symbols, R is the finite set of syntactic rules (a syntactic rule is an application r: N → W ∗ , where W = Σ ∪ N) and s ∈ N is the initial symbol of the grammar. In our case, M is defined as: 1. Σ = P ∪ T ∪ O ∪ AD ATT R , where:

234

A Grammatical Approach to the Modeling of an Autonomous Robot • P: set of symbols for primitives. • T : set of symbols for transformations. • O = {· ()}: symbols for indicating the scope () and the concatenation ·. • AD AT T R : set of symbols for actors, where D is the set of all the types of events generated by the system and AT T R is the set of all the attributes of actors which define all the possible states. For example, h the actor aH attr will carry out its activity when it receives an event e , where h ∈ H, H ⊆ D and attr ∈ AT T R is its current state.

2. N = {WORLD, OBJECTS, OBJECT, ACTOR, TRANSFORM., FIGURE}. 3. Grammar rules R are defined as: • Rule 1. WORLD → OBJECTS • Rule 2. OBJECTS → OBJECT | OBJECT · OBJECTS • Rule 3. OBJECT → FIGURE | TRANSFORM. | ACTOR D H • Rule 4. ACTOR → aH attr , aattr ∈ AAT T R , H ⊆ D

• Rule 5. TRANSFORMATION → t(OBJECTS), t ∈ T • Rule 6. FIGURE → p+ , p ∈ P 4. s = WORLD is the initial symbol of the grammar. M is a context-free grammar. L(M) is the language generated by the grammar ∗ M: L(M) = {w ∈ Σ∗ | WORLD → w}.

11.2.2 Semantics Apart from the language syntax, it is necessary to define the semantics of L(M). It will be defined with a denotational method, that is, through mathematical functions.

Model for Virtual Worlds Generation

235

Semantic Function of Primitives (Rule 6) Rule 6 defines a figure as a sequence of primitives. Primitive’s semantics is defined as a function α , as follows:

α :P→G

(11.1)

Each symbol in the set P carries out a primitive on a given geometric system G. So, depending on the definition of the function α and on the geometry of G, the result of the system may be different. G represents the actions to be run on a specific visual or non-visual geometric system (e.g. the actions on OpenGL or on the system of a robot). The function α provides the abstraction needed to homogenize the different implementations of a rendering system. Therefore, only a descriptive string is needed to run the same scene on different systems. Semantic Functions of Transformations (Rule 5) In Rule 5, two functions are used to describe the semantics of a transformation, whose scope is limited by the symbols “()”:

β :T →G δ :T →G

(11.2)

β represents the beginning of the transformation. It is carried out when the symbol “(” is processed. Function δ defines the end of the transformation which has previously been activated by the function β . It is run when the symbol “)” is found. These two functions have the same features that the function α , but they are applied to the set of transformations T , using the same geometric system G. Semantic Functions of Actors (Rule 4) Rule 4 refers to actors, which are the dynamic part of the system. The semantics of the actor is a function that defines its evolution in time. For this reason, the semantic function is called evolution function λ and it is defined as: D λ : AD AT T R × E → L(M)

(11.3)

where E D is the set of events for the set of all event types D. Some deeper aspects about events will be discussed later.

236

A Grammatical Approach to the Modeling of an Autonomous Robot

The function λ has a different expression depending on its evolution. However, a general expression can be defined. Let H = {h0 , . . . , hn } ⊆ D be the subset of event types which the actor aH AT T R is prepared to respond to. The general expression for λ is:  u0 ∈ L(M) if h = h0    ... h λ (aH AT T R , e ) = u ∈ L(M) if h = hn    nH aAT T R if h ∈ /H

      

(11.4)

where u0 , . . . , un are strings of L(M). This equation means that an actor aH AT T R can evolve, that is, it is transformed into another string ui when it responds to an event eh which the actor is prepared to respond to. However, the actor remains unchanged when it is not prepared to respond. As well as dynamic elements, actors can also have a representation in the geometric space G. To be displayed, an actor must be converted to a string of primitives and transformations. This visualization function is defined as: V ′ θ : AD AT T R × E → L(M )

(11.5)

where V ⊆ D, E V ⊆ E D are events created in the visualization process, and L(M ′ ) is a subset of the language L(M), made up of the strings with no actors. Let H ∩V = {v0 , . . . , vn } ⊆ D be the subset of visual event types which the actor aH AT T R is prepared to respond to. The expression of θ is defined as:  z0 ∈ L(M ′ ) if v = v0    ... v θ (aH AT T R , e ) =  zn ∈ L(M ′ ) if v = vn   ε if v ∈ / H ∩V

      

(11.6)

Semantic Functions of OBJECT, OBJECTS and WORLD (Rules 1, 2 and 3) The semantic function of Rules 1, 2, and 3 breaks down the strings and converts them into substrings, executing the so called algorithm of the system, which performs the complete evolution of the system and displays it in the current geometric system. It performs several actions, which are described in the following paragraphs.

Model for Virtual Worlds Generation

237

To display the scene on the geometric system G, the function ϕ is defined, for the set of symbols that can directly be displayed: primitives and transformations. Given a string w ∈ L(M) and using only symbols of P and T , ϕ is defined as:   if w ∈ P  α (w)  ϕ (w) = β (t); ϕ (v); δ (t) if w = t(v) ∧ v ∈ L(M) ∧ t ∈ T   ϕ (u); ϕ (v) if w = u· v ∧ u, v ∈ L(M)

(11.7)

In the case of strings including both displayable elements, and actors, two functions must be defined. The first one is the so called function of the system evolution η , which requires a sequence of sorted events S = e1 · e2 . . . en , where every ei ∈ E D and a string of L(M) including actors, and implements a set of recursive calls to the function λ to perform the evolution of all the actors in the system at a given frame:   w if w ∈ P       t(η (v, S)) if w = t(v) η (w, S) = (11.8) i H  ∏ i λ (aH attr , e ) if w = aattr     e ∈S  η (u, S) · η (v, S) if w = u · v i The operator ∏ei ∈S λ (aH attr , e ) concatenates the strings of the function λ . The actors to be displayed in the system must be converted to displayable elements, that is, primitives and transformations. The second function, returns a string of the language L(M ′ ) given a string w ∈ L(M) and a sequence of ordered visualization events S′ = e1 · e2 . . . en , where every ei ∈ E V and S′ ⊆ S. This function is called function of system visualization π and it is defined as:   w if w ∈ P       ′ )) t( π (v, S if w = t(v) ′ π (w, S ) = (11.9)  ∏ i θ (aH , ei ) if w = aH AT T R     e ∈S ′ AT T R ′  π (u, S ) · π (v, S ) if w = u · v

11.2.3 Events and Generators

The events are the mechanism to model the activity in the system. The actors activity is carried out when a certain type of event is produced. The following event definition is established: edc is defined as an event of type d ∈ D with data c.

238

A Grammatical Approach to the Modeling of an Autonomous Robot

A new function called event generator is defined as: Let Cd (t) be a function which creates a sequence of ordered events of type d at the time instant t, where d ∈ D and D is the set of event types which can be generated by the system. This function is: Cd : Time → (E D )∗

(11.10)

In the previous definition, it should be noticed that events are generated in the time instant t. It is due to synchronization purpose. The event generator can generate several or no events at a given moment. Different event generators can create the same type of events. So, a priority order among event generators must be established to avoid ambiguities. Given two generators Ci and C j which create the same event, if i < j, then the events generated by Ci will have a higher priority.

11.2.4 System Algorithm Once all the elements involved in the model have been defined, the System Algorithm can be established. It defines the system evolution and its visualization at every time instant ‘t’ or frame: 1. w = w0 ; t = 0 2. while w 6= ε do - S = collect events from generators C∗ in order of priority. - Z = extract visual events from S. - wnext = η (w, S) - v = π (w, Z) ; g = ϕ (v) - w = wnext ; t = t + 1 3. end while where w0 is the initial string, C∗ = { All the event generators which generate events of type D }, D = { Set of all the types of possible events in the system }, g is the output device, S is a sequence of all the events generated by the system at instant t, Z is a subsequence of S, and it includes all the events from visual devices. These events are the input of the visual algorithm π . A diagram of the virtual world generation algorithm is shown in Fig. 11.1.

Case Study

239

Figure 11.1: Virtual world generator algorithm.

This formalization of the system has two main consequences. First, the scene definition is separated from the hardware- dependent characteristics of components. The functions α , β and δ provide the independence from the visualization system, and the event generators provide the independence from the hardware input devices. Secondly, due to the fact that there is a specific scheme to define the features of a system, the different system elements can be reused easily in other areas of application.

11.3 Case Study 11.3.1 Description Let us consider a robot with several sensors that provide information about the environment. It is programmed to autonomously navigate in a known environment, and to transport objects from one place to another. The input data are: the data from a range sensor (e.g. a laser to detect obstacles and distances), the image from a camera to identify objects and places using markers, an internal representation of the environment (a map) and a human supervisor who is controlling the robot (he can give some high level instructions, such as interrupt the current task or begin a new task). The information is combined using a multimodal algorithm based on priorities, so that the robot can attend to the users’ request, select the best way to follow to the destination and use the sensors to detect and avoid obstacles, as well as to identify the objects and the places.

240

A Grammatical Approach to the Modeling of an Autonomous Robot

Figure 11.2: Hybrid scheme for a robotic system.

A system like this can be modeled using a classical hybrid scheme (Fig. 11.2), based on the combination of a reactive system and a proactive system. This hybrid scheme can be adapted using the VWG introduced in the previous section. In this picture the world is the real environment. The world model is a map containing the static elements of the environment. The reactive system is made of several generators, for the sensors and for the user’s orders. The proactive system is the AI of the robot. The robot is the only actor in the system. The current state is the set of robot attributes. The multisensorial integration process is the evolution function of the robot. The final action is the result of the process of sensor integration and the final action carried out by the robot.

11.3.2 Primitives and Transformations As it was stated in section 11.2, primitives are the description of objects in the space of representation, and transformations are used to modify primitives. In our robotic system, only one primitive is needed, the robot, and it is modified by two possible transformations: move and rotate (table 11.1). When the system is executed in a real environment, the robot primitive represents the real robot and the transformations correspond to the actual operations performed by the robot. If it is executed in a simulator, the primitive and the transformations will represent the operations carried out in the simulated robot, that is, the operations in the

Case Study

241

graphics system (GS). The operations are performed by the semantic functions α for the primitives and β and δ for the transformations.

PRobot

Real Environment No action

T Move

Move a distance dist

T Rotate

Rotate an angle angle

Simulator Draw the robot in the GS Move a distance dist in the GS Rotate an angle angle in the GS

Table 11.1: Primitives and transformations of the robotic system.

11.3.3 Events and Generators Events are used to define the activity in the system. Each event is defined by its identifier and some attributes. They produce changes on the actors through their evolution functions. These events are produced by generators. There is a generator for each event type. In the robotic system, five generators are needed: • gLaser: It generates an eLaser event when the laser detects an obstacle, by obtaining the laser data and processing them to find the possible obstacles. • gCamera: It generates an eCamera event when a marker is detected in the camera image. Markers are used to identify the rooms in the environment. • gDecide: It generates an eDecide event each frame to indicate to the robot to make a decision. • gExecute: It generates an eExecute event to indicate the system to execute the robot actions in the current representation space. If the representation space is the real environment, the real operations will take place (move the robot, rotate the robot...). If the current space is the simulator, the operations will take place in the graphics system. • gObjective: It generates an eObjective event to set a new objective marker. This generator is connected to the user orders. Users can specify a new target room simply by selecting its associated marker.

242

A Grammatical Approach to the Modeling of an Autonomous Robot

The generators in our system and their associated events are shown in table 11.2. Generator and Events gLaser = eLaser if obstacle gCamera = eCamera if marker gDecide = eDecide each frame gExecute = eExecute each frame gOb jective = eOb jective if user order

Description

Associated data

Event produced when the laser detects an obstacle

dist: distance to the obstacle angle: angle to the obstacle marker: detected marker

Event produced when the camera detects a marker Event generated each frame to indicate to the robot to make a decision It runs the robot action in the real environment or in the simulator Event produced by the user to set the objective marker

No data

No data

marker: objective marker

Table 11.2: Generators and events of the robotic system.

An order relation must be defined to establish an execution priority among generators. In the robotic system, the order relation is: gLaser, gCamera, gObjective, gDecide, gExecute. Therefore, events related with the acquisition of data have the highest priority, compared with the events of decision and execution.

11.3.4 Actors The only actor in our robotic system is the robot, which is defined as: eLaser,eCamera,eDecide,eExecute,eOb jective ARobot

(11.11)

where the superscript are the events which it is prepared to respond to, and the subscript are the attributes, whose meanings are: the grid represents the environment where the robot moves in. Each cell stores the registered data obtained

Case Study

243

from the sensors (the detected obstacles and markers). Row and column are the position occupied by the robot in the grid. Angle is the robot orientation. Objective is the objective room, represented by its marker. And action is the string of primitives and transformations that indicates the next command to be executed by the robot. To simplify, in the following equations this actor will be referred E as ARobot . The evolution function is, probably, the most important element in the system, as it defines the way the robot behaves in the environment, that is, it defines the artificial intelligence of the robotic system. Let e be an event that is received by the actor, the evolution function is defined as: E λ (ARobot , e) =

 E ARobot    E  ARobot    E ARobot E  α (ARobot )    E  ARobot    E ARobot

if e = eLaser if e = eCamera if e = eDecide if e = eExecute if e = eOb jective otherwise

(11.12)

where the symbol apostrophe (’) on an attribute indicates that it has changed as a consequence of the received event. The way the attributes change is the following: • If e = eLaser , the grid (g) must be updated to indicate that an obstacle has been detected. The cell to mark is the one in position (r + dist cos(ang + angle), c + dist sin(ang + angle)). • If e = eCamera , the grid (g) must be updated to indicate that a marker has been detected. The cell to mark is (r + dist cos(ang), c + dist sin(ang)). • If e = eDecide, the current position and orientation of the robot (row r, column c and angle ang), must be updated, as well as the actions to be executed. This function is very important, as it provides the behavior of the robot. In the following section, the way to introduce intelligent behaviors will be shown.

244

A Grammatical Approach to the Modeling of an Autonomous Robot • If e = eExecute, the actions of the robot must be executed in the representation space, through the use of the α function. • If e = eOb jective , a new objective has been set by the user, so the objective (o) must be changed to the new one (marker). • In any other case, the actor must remain unchanged.

11.3.5 Initial string The initial string in our systems defined as: eLaser,eCam.,eDecide,eExec.,eOb jct. ARobot

(11.13)

where the attribute grid is initialized to a set of empty cells, the attributes row, column and angle are the initial position and orientation, and the objective and the action are empty.

11.3.6 Analysis A set of tests has been designed to prove the features of our model. Specifically, five tests have been carried out. Test of the evolution function As it was stated before, the evolution function is the way of introducing intelligent behaviors in an actor. Therefore, the aim of this test is to prove the suitability of the evolution function to introduce new AI algorithms. This test is not to obtain the best AI algorithm to achieve the goal, but to prove that a new intelligent behavior can be introduced by just changing the evolution function. An important question is guaranteeing the same conditions for all the experiments, so the AI algorithms are introduced with no other modification in other parts of the system. Two simple decision algorithms have been used to decide how the robot should move in the world. The first algorithm makes decisions randomly to find the target position. The second one is the A* algorithm [5], considering the Euclidean distance to the goal as the weights. If there is an obstacle the distance is defined as infinite.

Case Study

245

Test of device independence One of the main features of our model is that the system definition is independent from the input devices. The aim of this test is to prove that the input devices can be replaced without changing the definition of the string representing the system. In our original system, a laser range sensor was used to detect obstacles. In this test, a Kinect device is introduced. To add this new device, we have just designed a new event generator (gKinect) that creates events of the same type that the ones generated by the laser generator. That is, it provides the same information: the angle and the distance to the obstacle. The new device is then introduced with no other modification in the system. The Kinect is then used to replace the laser device or to obtain redundant information for the detection of obstacles. Test to validate the simulation The most important achievement in the proposed model is the fact that the description for the simulation and for the real robot is exactly the same. That is, the command execution for the simulated robot can be directly used for the real robot with no change in the string that represents the system. To achieve this goal, two generators for the execution of the robot commands have been implemented: one for the real robot and one for the robot simulation. This way, the commands are transparently executed no matter whether the robot is real or simulated, just using the appropriate generator. As a result, the navigation would be exactly the same for the simulated robot and for the real one, if there were not odometry errors. A good way to improve the simulation is introducing some odometry errors in the motors and in the sensor signals, accordingly with the features of the real robot. Test of the system extensibility The proposed model is, by definition, easily extensible. The updating of the definition string supposes the extension of the model and the addition of new features. Moreover, most elements can be reused in new definition strings to obtain new behaviors with little effort. In our case, new instances of the actor symbols (representing robots) have been added to the definition string to extend the system in an almost immediate way and to create a multi-robot system.

246

A Grammatical Approach to the Modeling of an Autonomous Robot

Figure 11.3: Example map in 2D.

Figure 11.4: Example map in 3D.

Test of changes in the environment A desired capability in a robot navigation system is, obviously, to be flexible enough to work under very different conditions. To prove this feature, the system has been tested with different maps (Fig. 11.3 and 11.4), in the case of the simulated robot, and in different real environments, in the case of the real robot.

11.4 Conclusions A new model to formally define virtual worlds, independently from the underlying physical layer, has been presented. Is has been used to model the control of a mobile robot, navigating in a given environment, and using a set of multimodal

Conclusions

247

inputs from different types of sensors. The model is based on a grammar which consists, on the one hand, of symbols to abstract and represent the elements of the system (primitives, actors, and so on) and, on the other hand, of a set of evolution functions so that all these elements can be combined in different ways leading to an infinite set of possible strings belonging to the grammar. By definition, each string has the ability to represent the interaction between the elements (symbols) of the system and their state at any given instant. By extension, these strings can also synthesize and formally define the system state. As in other systems for modeling virtual worlds, the event and, in particular, the occurrence thereof, can bring about a change in the state of a particular element and, in general, a change in the state of the system. Within the model, the event generators are responsible for managing all the possible events associated with the elements of the system. The result of the events, namely the transition between states, involves an evolution of the original string of the system to another evolved string, which is obtained from the application of certain rules on the first string. These rules are defined within the actors, which contain the logic of how to act and deal with an event if it is activated. The main restriction to design the rules is that they should be able to translate the consequence of the events into grammar rules. The grammar rules must be applicable to the symbols of the state string and the outcome of the rules application must return a consistent string, syntactically and semantically possible. The evolution function of the actors can be as complex as needed. In fact, this function is the vehicle to introduce intelligent behaviors in the system. This way, artificial intelligence algorithms can be introduced into the evolution function of the actor to provide it with the needed behavior. Taking into account the diversity of virtual worlds systems available nowadays and the wide variety of devices, this model seems to be able to provide interesting features. Firstly, it is a formal model based on a grammar that allows abstracting and representing the states of the system in a general way by avoiding the specific features of other existing systems. The use of strings facilitates the parallelization and optimization of the system processes. It is also a device-independent model, therefore, is not linked to the implementation of the system with a given set of devices. It also allows the replacement of physical devices by simulated ones, and the easy addition of new ones. For instance, in

248

A Grammatical Approach to the Modeling of an Autonomous Robot

the case of our robotic system, the definition string of the system is exactly the same for the simulator and for the real robot. Finally, it is a flexible model since it contemplates the possibility of reinterpreting the outputs of the actions. In conclusion, it has been achieved the main objective of defining a new formal and generic model that is able to model general virtual worlds systems by avoiding the specific peculiarities of other models existing today.

Bibliography [1] Botts, M.; Percivall, G.; Reed, C. and Davidson, J.: OGC Sensor Web Enablement: Overview And High Level Architecture. OGC White Paper. Open Geospatial Consortium Inc., 2006. [2] Davis, Martin; Sigal, Ron and Weyuker, Elaine J.: Computability, Complexity, and Languages, Fundamentals of Theoretical Computer Science, 2nd ed. San Diego: Elsevier Science, 1994. [3] Ernst, Marc O. and B¨ulthoff, Heinrich H.: Merging the senses into a robust percept. TRENDS in Cognitive Sciences, vol.8, no.4, 2004. [4] Ingrand, F.; Chatila, R. and Alami, R.: An Architecture for Dependable Autonomous Robots. IARP-IEEE RAS Workshop on Dependable Robotics, 2001. [5] Luo, Ren; Lin, Yu-Chih; Kao, Ching-Chung: Autonomous mobile robot navigation and localization based on floor paln map information and sensory fusion approach. IEEE MFI, 2010. [6] Posadas, J.L.; Poza, J.L., Sim´o, J.E.; Benet, G.; Blanes, F.: Agent-based distributed architecture for mobile robot control. Engineering Applications of Artificial Intelligence, pp. 805-823, 2008. [7] Poza, L.; Posadas, J.; Sim´o, J.; Benet, G.: Arquitecturas de control jera´arquico inteligente con soporte a la calidad de servicio. XXIX Jornadas de Autom´atica, 2008. [8] Russell, Stuart Jonathan and Norvig, Peter: Artificial intelligence: a modern approach. Prentice Hall. ISBN: 0136042597, 2010.

Bibliography

249

[9] Sharma, R.; Pavlovic, V. I.; Huang, T. S.: Toward Multimodal HumarComputer Interface. Proceedings of the IEEE, vol. 86(5), pp. 853-869, 1998. [10] Singhal, A.; Brown, C.: Dynamic bayes net approach to multimodal sensor fusion. SPIE, 1997. [11] Weser, Martin; Jockel, Sascha and Zhang, Jianwei: Fuzzy Multisensor Fusion for Autonomous Proactive Robot Perception IEEE International Conference on Fuzzy Systems (FUZZ), 2263-2267, 2008.

Publicaci´on 12

Inference of k-testable directed acyclic graph languages Dami´an L´opez*, J. Calera-Rubio** and A. Javier Gallego-S´anchez** * Departamento de Sistemas Inform´aticos y Computaci´on, Technical University of Valencia, Spain, [email protected] ** Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain, {calera, jgallego}@dlsi.ua.es Journal of Machine Learning Research: Workshop and Conference Proceedings, Vol. 21: ICGI 2012, pp 149-163, Washington, D.C., USA (2012). ISSN: 1938-7228. Proceedings de la revista JMLR. JCR Impact Factor 2.561

252

Inference of k-testable directed acyclic graph languages

Inference of k-testable directed acyclic graph languages Dami´an L´opez*, J. Calera-Rubio** and A. Javier Gallego-S´anchez** * Departamento de Sistemas Inform´aticos y Computaci´on, Technical University of Valencia, Spain, [email protected] ** Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain, {calera, jgallego}@dlsi.ua.es Abstract In this paper, we tackle the task of graph language learning. We first extend the well-known classes of k-testability and k-testability in the strict sense languages to directed graph languages. Second, we propose a graph automata model for directed acyclic graph languages. This graph automata model is used to propose a grammatical inference algorithm to learn the class of directed acyclic k-testable in the strict sense graph languages. The algorithm runs in polynomial time and identifies this class of languages from positive data. Keywords: Graph languages; graph automata; k-testable languages.

12.1 Introduction Regular string language inference has been widely applied to many tasks, from bioinformatics [23, 16] to script recognition [19]. See [5] for a bibliographic study. It is important here to note that in many contexts structural information is of great importance. This kind of information is not easy to model with subclasses of the regular language class. Nevertheless, structural information can be naturally modeled by context-free grammars of various types. In this line of work, Sakakibara [21, 22] presented the first algorithms for learning context-free languages with polynomial time complexity. Some other recent results for nonregular language inference study the inference of context-free languages [15, 4].

Notation and Definitions

253

Trees are a simple class of graphs with very interesting properties. Thus, several works study the task of tree language inference [7, 13], as well as its application to real tasks [18, 11]. In the grammatical inference framework, when more general graphs are considered, the main problem that arises is computational complexity, and, usually, graphs are reduced to less complex representations (usually some kind of graph traversal). Our paper considers graphs as elements of some formal language. In this framework, the handbook edited by [20] summarizes, among other results, the two main formalisms used to generate graph languages (node and hyperedge replacement grammars) as well as many theoretical results that relate graph grammars with logic. But, despite many works study the generating paradigm, there does not exist a recognizing device that properly fits all the different characterized classes of graph languages. Despite this, there have been proposed some graph automata models, for instance [17, 3, 1]. Some works have studied the inference of graph grammars, but all of them based on the search of general subgraph isomorphism, and therefore, with high time complexity [9, 10, 12]. Recently, some works take profit from results on mining in graphs in order to propose graph grammar inference methods [2, 6]. In this paper, we first extend the well-known families of k-testable and ktestable in the strict sense (k-TSS) languages [14] to directed-graph languages. We also prove some lemmas that show that the main features of the k-TSS class of languages are still applicable to graph languages. Second, we take into account the paper by [17] to propose a graph automata model for directed acyclic graph languages, and finally, we propose a polynomial grammatical inference algorithm to learn the same class of directed acyclic k-TSS graph languages from positive data. Let us note that the k-testable structures our approach takes into account help to bound the above mentioned high complexity of graph comparison. Besides, the consideration of directed acyclic graphs also help to further ease the general complexity. We study the time complexity of this algorithm and prove its polynomial behavior.

12.2 Notation and Definitions A node-labeled directed graph (from now on referred to as graph if not stated otherwise) can be defined by a tuple g = (V, E, µ ), where V is a finite set of nodes (also called vertexes), E ⊆ (V ×V ) − idV is the set of edges (where idV denotes

254

Inference of k-testable directed acyclic graph languages

the smallest reflexive relation), and µ : V → Σ is the node labeling function. We will refer to the components of a graph g as Vg , Eg and µg only when necessary. An acyclic graph is such that the reflexive-transitive closure of E is a partial order. Two graphs g = (V, E, µ ) and g′ = (V ′ , E ′ , µ ′ ) are isomorphic if there is a bijection f : V → V ′ such that, for any nodes u, v ∈ V , µ (v) = µ ′ ( f (v)) and (u, v) ∈ E if and only if ( f (u), f (v)) ∈ E ′ . For any given node v, an edge (u, v) is called incoming (resp. outgoing for edges of the form (v, u)). The incoming degree of a node v (resp. outgoing degree) will be denoted by idg(v) and is defined as idg(v) = |{(u, v) ∈ E}| (resp. the outgoing degree is defined as odg(v) = |{(v, w) ∈ E}|). For any graph g = (V, E, µ ), let Vmn (g) be defined as Vmn (g) = {v ∈ V : idg(v) = n ∧ odg(v) = m}, and let εg denote the empty graph (the graph with no nodes). In the following, two sets of nodes will be of special interest: the set of nodes with zero incoming degree and the set of nodes with zero outgoing degree of a graph g, which we will denote respectively with V 0 (g) and V0 (g). Let a typed alphabet Στσ be the association of an alphabet Σ with a relation r ⊆ (Σ × N × N). This alphabet plays the same role as the plain alphabet in string languages or the ranked alphabet in tree languages. Since the nodes of the graph may have different incoming and outgoing degrees, it is necessary to establish which symbols can label those nodes. We will denote with Σnm the set: {s ∈ Σ : (s, n, m) ∈ r}, that is, the set of symbols that are able to label the nodes with a given incoming degree n and outgoing degree m. Once the typed alphabet is defined, the set of all possible consistently labeled graphs can be defined. Formally, let G (Στσ ) denote the set of graphs over Στσ . A graph language is any set LG ⊆ G (Στσ ). b be the alphabet deGiven a typed alphabet Στσ , let the extended alphabet Σ fined as the set: b = {anm : a ∈ Σ, (a, n, m) ∈ r} Σ

Taking into account the extended alphabet, given a graph g = (V, E, µ ), we b and such that for define its extended graph as gˆ = (V, E, µˆ ), where µˆ : V → Σ, n n each node v in Vm (g), if µ (v) = a, then µˆ (v) = am . Intuitively, the labels of the nodes of the extended subgraph gˆ explicitly include the incoming and outgoing degrees. Figure 12.1 shows an example. From now on we will consider skeletal graphs and skeletal graph languages (graphs where the nodes v such that odg(v) 6= 0 (internal nodes) are labeled with

Notation and Definitions

σ g:

σ

255

σ

σ21 g: ˆ

σ σ

a

σ

b

σ20

σ11

σ11 σ11

a20

σ22

b10

Figure 12.1: Example of a directed acyclic graph g and its corresponding extended graph g. ˆ In order to give an explicit representation, we label non-frontier nodes (those with outgoing degree greater than 0) with Greek letters.

the same symbol). Nevertheless, our results either support, or can be easily extended, to consider general graphs. In order to give the clearer the better (twodimensional) graph representations, in the following, we will use Greek symbols to label internal nodes and Latin symbols to label frontier nodes (those with outgoing degree zero). For any given sequence of nodes w1 , w2 , . . . , wk such that (wi , wi+1 ) ∈ E for 1 ≤ i < k, we say that there exists a path from w1 to wk . We define the length of the path as the number of nodes in the sequence. A graph is possible to have more than one path between a pair of nodes u and v. Thus, let us denote the set of shortest paths from u to v by ((u, v)). Also, let |((u, v))| denote the length of the (possibly multiple) shortest path. Thus, the length of a non-existent path is infinite and |((u, u))| = 1. We define the diameter of a graph g = (V, E, µ ) as the maximum distance among two connected nodes of the graph. More formally: diameter(g) = max {|((u, v))| : |((u, v))| < ∞} u,v∈V

Given a graph g = (V, E, µ ), the subgraph of g rooted in the node v with radius k is defined as Rg (v, k) = (W, E ′ , µ ′ ) such that W = {u ∈ V : |((v, u))| ≤ k} and where E ′ = E ∩ (W × W ), that is, the set of edges restricted to the nodes in W . In the same way, µ ′ is the restriction of µ to the nodes in W . We extend this definition to consider, for any graph g = (V, E, µ ), the subgraph of g rooted in the node v, denoted by Rg (v) = (W, E ′ , µ ′ ) where W = {u ∈ V : |((v, u))| < ∞} with the set E ′ and the labeling function µ ′ defined as above. We now recall some definitions from multiset theory which will be used in the transition function of a new graph automata model. In the following, we will denote the set of naturals with N.

256

Inference of k-testable directed acyclic graph languages

For any given set D, a multiset over D is a pair hD, f i where f : D → N is an enumeration function. That is, for any a ∈ D, the function f (a) denotes the number of elements a in the multiset, and we say that a is in A, and write it a ∈ A, if and only if f (a) 6= 0. The size of a multiset is defined as the number of elements that a multiset contains. This number can be finite, in which case the multiset is finite. The size of a multiset M will be denoted by |M|. We are interested in the class of multisets whose size is equal to a constant n. That is, the class of all multisets hD, f i such that ∑a∈D f (a) = n. In the sequel, we will denote this class by Mn (D). We say that a multiset AhD, f i is empty if and only if, for all a ∈ D, f (a) = 0. In this way, for any pair of multisets A = hD, f i and B = hD, gi, we say that A = B if and only if, for all a ∈ D, f (a) = g(a), and in the same way, A is a subset of B (A ⊆ B) if and only if, for all a ∈ D, f (a) ≤ g(a). Furthermore, let the sum of two multisets A = hD, f i and B = hD, gi (denoted by A ⊕ B) be defined as the multiset C = hD, hi where for all a ∈ D, h(a) = f (a) + g(a). Finally, we extend in a natural way the definition of power set to multisets, thus, for any multiset C, its power set is the set of all possible subsets of C and will be denoted by 2C . A very useful concept for dealing with multisets is the Parikh mapping. Formally, a Parikh mapping can be viewed as the application Ψ : D∗ → Nn where D = {d1 , d2 , . . . , dn } and D∗ is the set of strings over D. For any x ∈ D∗ , this mapping is defined as Ψ(x) = (#d1 , #d2 , . . . , #dn ) where #di denotes the number of occurrences of d j in x. Note that this allows to represent a multiset using whichever string with the correct Parikh mapping. We will do so in the following.

12.3 k-testable graph languages Testable and testable in the strict sense languages [14] are defined by a vector (I, S, F) which represents those structures that are allowed to appear in the members of the language. These families have been defined over string and tree languages [8, 7]. In this section, we extend the definition to consider graph languages. Given a typed alphabet Στσ and the corresponding set of graphs over it G (Στσ ), for any g = (V, E, µ ) ∈ G (Στσ ), let us define the k-testability vector Tk (g) =

k-testable graph languages

257

(Ik−1 (g), Pk (g), Fk−1 (g)) where:  Ik−1 (g) = Rgˆ (v, k − 1) : v ∈ V 0 (g)

Pk (g) = {Rgˆ (v, k) : v ∈ V, diameter(Rg (v)) ≥ k}

Fk−1 (g) = {Rgˆ (v, k − 1) : v ∈ V, diameter(Rg (v)) ≤ k − 1} Note that Pk (g) = 0/ if diameter(g) < k. Some examples are given below. Example 1. Given the graph in Figure 12.1, Figure 12.2 shows the components of the 3-testability vector. It is worth noting that the nodes of the graphs in each component of the k-testability vector are labeled with the extended function µˆ . For each node, this extended labeling function depicts what the neighborhood was in the mother graph. For instance, note that the nodes labeled a20 in Figure 12.2 do not always have two incoming edges. The extended labeling allows relevant structural information to be dealt with in a straightforward way. This labeling will play an important role in our grammatical inference algorithm.

I2 (g) =

   

   σ21

P3 (g) =

   

σ20

  

σ11        

;

F2 (g) =

σ20

σ21        σ1 σ1 1

1

    σ11    a20

σ22 ; a20

b10

σ21

σ11 ; σ11 σ22

σ11 σ11 ;

a20

; a20 ; b10

σ22

σ22 a20

       

      

;

      1 b0 

Figure 12.2: The components of the 3-testability vector for the graph in Figure 12.1 are shown.

It is not necessary for the graph to be acyclic in order to obtain the ktestability vector. An example is shown in Figure 12.3. The 2-testability vector is also shown in the same figure. Note that, in this case, the set I1 (g) is empty because the set V 0 (g) is empty.

258

Inference of k-testable directed acyclic graph languages

σ

g:

σ

σ

P2 (g) =

   σ12

σ12 ;

F1 (g) =

σ22

σ 

b10

;

σ21

;

σ21

σ 

σ21

;

σ22

σ

σ

I1 (g) = 0; /

σ

σ

b

σ

    σ11

σ

σ21

σ11

; b10

σ21

;

σ12

σ11

   

  σ11 

Figure 12.3: Directed graph and its corresponding 2-testability vector.

The functions Ik , Fk and Pk can be extended in a natural way to a set G of graphs: Ik (G) = {Ik (g) : g ∈ G} ;

Pk (G) = {Pk (g) : g ∈ G} ;

Fk (G) = {Fk (g) : g ∈ G}

For any pair of graphs g and g′ , it is possible to define an equivalence relation ≡k over G (Στσ ) taking into account the k-testability vector, where g ≡k g′ if and only if Tk (g) = Tk (g′ ). This equivalence relation is key in defining the classes of k-testable and k-testable in the strict sense graph languages. Definition 1. A graph language G is k-testable (k ≥ 2) if it results from the union of a finite number of equivalence classes of the relation ≡k . Intuitively, and in the same way it happens with string or tree languages, if g is a graph in a k-testable graph language, then, every graph g′ such that it has the same k-testability vector than g is also in G. Definition 2. For any k ≥ 2, a graph language G is k-testable in the strict sense (k-TSS) if there exist three finite sets of graphs (B, S, E) such that, g ∈ G if and only if Ik−1 (g) ⊆ B, Pk (g) ⊆ S and Fk−1 (g) ⊆ E. According the definition, and a shared feature of string and tree k-TSS languages, the membership to a k-TSS graph language of graphs with diameter

k-testable graph languages

259

smaller than k depends on Fk−1 (g). This is because for those graphs Pk (g) = 0/ and Ik−1 (g) ⊆ Fk−1 (g). Note that, for a given set of graphs G, the k-testability vector defines a kTSS language when the sets of graphs B, S and E are set to Ik−1 (G), Pk (G) and Fk−1 (G), respectively. Let this language be denoted by Lk (G). We now prove some results related to this class of languages. Lemma 1. Let G be a finite set of graphs and k ≥ 2, then G ⊂ Lk (G). Proof. Let g ∈ G, trivially Ik−1 (g) ⊆ Ik−1 (G), Pk (g) ⊆ Pk (G) and Fk−1 (g) ⊆ Fk−1 (G). The language Lk (G) is defined by the vector Tk (G) = (Ik−1 (G), Pk (G), Fk−1 (G)); therefore, g ∈ Lk (G). To prove that the inclusion is strict, note that any disconnected graph obtained by joining graphs in the set G will belong to the k-TSS language Lk (G). This implies that every k-TSS graph language, except the empty one, are infinite. In string [8] and tree languages [7], it is proved that, when the value of k is greater than the maximum length (depth in trees) of the elements in a set S, then the k-TSS language obtained from that set (of strings or trees) equals S. This is not generally true when graph languages are taken into account. To enlighten this, please note first that, in this context, it is always possible to obtain new graphs belonging to the k-TSS language by disconnected joint of different graphs in the set S. Furthermore, it is possible in some cases to build new graphs taking into account the graphs rooted in the set of nodes with zero incoming arity. As an example, let consider a set of graphs containing only the graph g shown in Figure 12.4 (with diameter(g) = 3) and its corresponding 4-testable vector. Note that the graph g′ shown in the same figure belongs to the language L4 ({g}). Lemma 2. For any set of graphs G and a given k ≥ 2, the language Lk (G) is the smallest k-TSS language that contains G. Proof. We will prove that, for any given k-TSS language T , if G ⊂ T , then T 6⊂ Lk (G). Let (BT , ST , ET ) be the sets that define the language T . Let us suppose that T ⊂ Lk (G); then there is a graph g ∈ Lk (G) − T . On the one hand, g ∈ Lk (G), then Ik−1 (g) ⊆ Ik−1 (G), Pk (g) ⊆ Pk (G) and Fk−1 (g) ⊆ Fk−1 (G). On the other hand, g 6∈ T , therefore, Ik−1 (g) 6⊆ BT or Pk (g) 6⊆ ST or Fk−1 (g) 6⊆ ET .

260

Inference of k-testable directed acyclic graph languages

g:

σ

σ

σ

σ

a

a

I3 ({g}) =

              

σ20 σ11

      

a10

a20

a

a

a

σ

σ

σ

       

   a10    

a20

σ20 σ11 a20

σ22

; a10

a20

a20

a10

; a20

;... a10

σ22 ;

P4 ({g}) = 0/

;

σ10

σ22

σ11 ...

σ

σ22

;

a20

F3 ({g}) =

σ

σ10 σ22

       

σ g′ :

; σ01

      

Figure 12.4: Given the graphs g and g′ note that the graph g′ belongs to the language L4 ({g}). The components of the 4-testability vector are also shown.

In other words, there are some structures in the k-testability vector of Lk (G) that are not present in the one of T . From this, it follows that there exists a graph g′ such that g′ ∈ G and g′ 6∈ T ; therefore, G 6⊆ T , which contradicts the previous assumption. Lemma 3. Let G and G′ be two sets of graphs and k ≥ 2. If G ⊆ G′ , then Lk (G) ⊆ Lk (G′ ). Proof. It is easy to see that, if G ⊆ G′ , then Ik−1 (G) ⊆ Ik−1 (G′ ), Pk (G) ⊆ Pk (G′ )

Graph automata

261

and Fk−1 (G) ⊆ Fk−1 (G′ ). Therefore, Lk (G) ⊆ Lk (G′ ). Lemma 4. For any set of graphs G and k ≥ 2, Lk+1 (G) ⊆ Lk (G). Proof. We need to prove that, for every g ∈ Lk+1 (G), g is also in Lk (G), in other words, we need to prove that for any g ∈ Lk+1 (G), Ik−1 (g) ⊆ Ik−1 (G), Fk−1 (g) ⊆ Fk−1 (G) and Pk (g) ⊆ Pk (G) hold. Note that the sets Ik−1 (G) and Fk−1 (G) can be obtained from the sets Ik (G) and Fk (G) as follows: Ik−1 (G) = Ik−1 (Ik (G)) Fk−1 (G) = Fk−1 (Fk (G)) Concerning Pk (G) and Pk+1 (G), for every graph g ∈ Lk+1 (G), we distinguish two cases: • if diameter(g) ≤ k, then Pk+1 (g) = 0, / which is a subset of Pk (G) • if diameter(g) > k, then Pk (g) = Pk (Pk+1 (g)) ⊆ Pk (Pk+1 (G)) = Pk (G) Thus, as mentioned above, any graph fulfilling the conditions fixed by the (k+1)-testability vector also fulfills those fixed by the k-testability vector. Therefore, we conclude that Lk+1 (G) ⊆ Lk (G) In the next section, we propose a new model of graph automata for directed acyclic graphs and use this model to propose a grammatical inference algorithm.

12.4 Graph automata The automata model we propose takes into account the work by [17]. We note here that our proposal is not able to process whole class of directed graphs but those without cycles. The transition function of the automata we propose takes into account a multiset which permits, in a natural way, the graphs to be processed without taking into account any order among the nodes except for the partial one induced by the directed edges. Let us first note that the analysis of any graph is, in essence, similar to the analysis carried out in the context of tree languages, but taking into account that there does not exist any order among the siblings. Second, we also note that

262

Inference of k-testable directed acyclic graph languages

this process can be carried out with polynomial complexity using a dynamic programming scheme similar to the proposed in the paper by [24]. In his paper, [24] proposes a polynomial algorithm to obtain an edit measure among two unordered trees. Due to the few graph automata models proposed in the literature, we think it is interesting to provide the more general definition the better, thus, we define our model as non-deterministic. Definition 3. Let Σστ be a typed alphabet where m denotes the maximum outgob A (non-deterministic) graph automaton for a language over Στσ ing degree in Σ. b δ , F), where Q is a finite set of states, Σ b is the is defined as the tuple GA = (Q, Σ, σ extended alphabet of Στ , the set F ⊆ Q contains the final states and δ is a set of transition functions defined as follows:

δ=

[

δj

0≤ j≤m j : ∃n > 0, Σnj 6= 0/

where each δ j is defined as: bnj × M j (Q) → 2M1 (Q) , δj : Σ

0≤ j≤m

and where M j represents the class of multisets of size j as defined in Section 12.2. We note that the definition of the domain of the transition function considers the extended alphabet instead of the original one. This allows the graph to be processed taking into account both the outgoing degree (the size of the multiset) and the incoming degree of the node (captured in the symbol of the extended alphabet). In order to extend the transition function to operate on graphs, the intuitive idea consist of a recursive analysis over each zero-incoming degree node. The multisets returned by these analysis are then summed. Formally, for any given graph g the function δ is extended as follows: b → 2M (Q) δ : G (Σ)

δ (g) = δ (g) ˆ =

M

vi ∈V 0 (g) ˆ

δ (Rgˆ (vi ))

Inference algorithm

263

where:

δ (Rg (vi )) = δm (µgˆ (vi ), Mi1 ⊕ . . . ⊕ Mim ) : Mi j ∈ δ (Rg (w j )), (vi , w j ) ∈ E For any graph g the extended version gˆ is isomorphic, thus, there is no problem in reducing the parsing of a graph to its extended version. Let us now define the language accepted by the automaton as follows: ˆ q ∈ F} L(GA) = {g ∈ G (Στσ ) : ∀q ∈ δ (g), Thus, any graph g is accepted by the automaton GA if and only if the extended transition function returns a multiset such that for every state q with non zero enumeration function, the state q is final. When necessary, we will refer to these multisets as final multisets. Example 2. Taking into account the graph shown in Figure 12.1 and the following automaton, a representation of the analysis is depicted in Figure 12.5. We recall that the strings in the transition function denote multisets according the Parikh function. Thus, the string q1 q2 represents the multiset with one element q1 and one element q2 .

δ (a20 , λ )= q1 δ (b10 , λ )= q2 δ (σ22 , q1 q2 )= q1 δ (σ11 , q1 )= q2 δ (σ21 , q2 q2 )= q1 δ (σ20 , q1 q2 )= q1 , where q1 ∈ F

12.5 Inference algorithm We now propose Algorithm 12.1 to infer the class of k-TSS graph languages from positive presentation. The algorithm follows the same scheme used previously to infer k-TSS string or tree languages [8, 7]. The algorithm first establishes the set of states taking into account the graph structures of diameter k − 1 in the k-testability vector of the input sample. The set of final states is also established. Then, the algorithm creates the transitions using the graphs in Fk−1 (G) and Pk (G). Please note that the automaton output by the algorithm is deterministic. An example of run is given below.

264

Inference of k-testable directed acyclic graph languages

δ (σ20 , q1 q2 ) = q1

δ (σ21 , q2 q2 ) = q1

δ (σ11 , q1 ) = q2

δ (σ11 , q1 ) = q2 δ (σ11 , q1 ) = q2

δ (a20 , λ ) = q1

δ (σ22 , q1 q2 ) = q1 δ (b10 , λ ) = q2

Figure 12.5: Example of the parsing of the graph in Figure 12.1. The graph is recursively traversed to reach those nodes with zero outgoing degree. The arrows show the order of the parsing process once those nodes are reached.

Example 3. Let us consider k = 2, and the set G of graphs shown in Figure 12.6. The elements of the 2-testability vector are shown in Figure 12.7.

G=

       σ   σ    

σ σ

      

σ σ

σ ;

σ

a

b

σ

σ σ

b

σ

a

Figure 12.6: Set of graphs example.

σ σ

b

     

First, the algorithm constructs the set of states taking into account I1 (G), F1 (G) and I1 (P2 (G)): Q [ a20 ] = q1 ; Q [ b10 ] = q2 ; Q [ σ22 ] = q3 ; Q [ σ11 ] = q4 ; Q [ σ21 ] = q5 ; Q [ σ20 ] = q6 The algorithm obtains the set of final states, which is F = {q6 }. Then, the algorithm considers the graphs in Fk−1 (G). Note that the diameter of the graphs is 1. Therefore, the transitions δ (a20 , λ ) = q1 and δ (b10 , λ ) = q2 are added to the automaton. Note that λ denotes the empty string. The algorithm now processes the graphs in Pk (G). As an example, let us consider the following graph in P2 (G):

σ21

σ20

σ11

Inference algorithm

265

Algorithm 12.1 Grammatical inference algorithm from positive sample for the class of k-TSS graph languages. Require: A set G of graphs. A value k ≥ 2 Ensure: A graph automaton that recognizes the language Lk (G) Method: Compute (Ik−1 (G), Pk (G), Fk−1 (G)) bτσ be the extended one Let Στσ be the typed alphabet from G and Σ for g ∈ {Ik−1 (G) ∪ Fk−1 (G) ∪ Ik−1 (Pk (G))} do Let Q[g] be a new state related to g end for F = {Q[g] : g ∈ Ik−1 (G)} for all g ∈ Fk−1 (G) with (v, wi ) ∈ Eg , v ∈ V 0 (g), 1 ≤ i ≤ m do δm (µ (v), Q[Rg (w1 )] . . . Q[Rg (wm )]) = Q[g] end for for all g ∈ Pk (G) with v ∈ V 0 (g), (v, wi ) ∈ Eg , 1 ≤ i ≤ m do δm (µ (v), Q[Rg (w1 , k − 1)] . . . Q[Rg (wm , k − 1)]) = Q[Rg (v, k − 1)] end for bτσ , F, δ ) return (Q, Σ EndMethod:

I1 (G) =

(

P2 (G) =

σ11 σ21

;

σ11 σ22

;

σ11 a20

σ20

)

    

;

F1 (G) =

σ20

    σ21

; a20

b10

σ11

;

σ21 σ11

σ11

σ20

;

)

a20 ; b10

;

σ11

σ22

(

σ22

;

σ11

σ11

    

   σ11 

Figure 12.7: Elements of the 2-testability vector for the graphs example.

266

Inference of k-testable directed acyclic graph languages

The algorithm takes into account the subgraphs of diameter k − 1 rooted at the nodes below the node σ20 and the graph of diameter k − 1 rooted at the node σ20 . Thus, the algorithm adds the transition δ (σ20 , q5 q4 ) = q6 . Once all the structures in the k-testability vector have been processed, the following automaton is obtained:

δ (a20 , λ )= q1 δ (b10 , λ )= q2 δ (σ20 , q5 q4 )= q6 , where q6 ∈ F δ (σ21 , q4 q4 )= q5 δ (σ11 , q3 )= q4

δ (σ11 , q5 )= q4 δ (σ11 , q1 )= q4 δ (σ22 , q1 q2 )= q3 δ (σ20 , q4 q4 )= q6 , where q6 ∈ F δ (σ22 , q4 q4 )= q3

As an example, Figure 12.8 shows two graphs that were not in the input set and that belong to the 2-TSS graph language.

σ σ

σ σ a

σ σ

σ σ

σ a

Figure 12.8: Two graphs not provided in the input set that belong to the example 2-TSS language.

We now prove that the algorithm identifies in the limit the class of k-TSS directed acyclic graph languages from positive presentation. Theorem 1. Algorithm 12.1 identifies the class of k-TSS graph languages from positive sample. Proof. We first prove that, given a set of graphs G, the algorithm returns a graph automaton GA that accepts the language Lk (G). Note that, on the one hand, for any graph g, its membership to the language of the automaton output by Algorithm 12.1 implies the analysis of each of the p nodes with zero incoming arity. In order to accept the graph g, all these analysis should return a final multiset. On the other hand, the membership of any graph g to Lk (G) implies that, among other criteria, for every node v in V 0 (g), Rgˆ (v, k − 1) ∈ Ik−1 (G). Thus, for the sake of clarity, and without loss of generality, we will consider graphs with just one node with zero incoming degree.

Inference algorithm

267

• Lk (G) ⊆ L(GA): We will prove by induction on the diameter of the graphs, that, if g ∈ Lk (G), then δ (g) returns a final state. First, if diameter(g) < k and v ∈ V 0 (g), then g is isomorphic to gˆ = Rgˆ (v) ∈ Ik−1 ∩ Fk−1 , and the algorithm sets δ (Rgˆ (v)) = Q[Rgˆ (v, k − 1)] = Q[Rgˆ (v)], which is a final state. Let us suppose that, for any graph g such that diameter(g) = n, it is fulfilled that δ (g) = Q[Rgˆ (v, k − 1)] where v is in V 0 (g). Now let g be a graph with v ∈ V 0 (g), such that, for 1 ≤ i ≤ m, there exists (v, wi ) ∈ E and diameter(Rg (wi )) ≤ n, and where at least one of the graphs Rg (wi ) has diameter n. Then, δ (Rgˆ (wi )) = Q[Rgˆ (wi , k − 1)] for each i, and therefore:

δ (g) = δ (g) ˆ =δm (µgˆ (v), δ (Rgˆ (w1 )) ⊕ δ (Rgˆ (w2 )) ⊕ . . . ⊕ δ (Rgˆ (wm ))) =δm (µgˆ (v), Q[Rgˆ (w1 , k − 1)]Q[Rgˆ (w2 , k − 1)] . . . . . .Q[Rgˆ (wm , k − 1)] Note that there is an edge in g from v to each wi . Thus, the resulting joint graph with all the Rgˆ (wi , k − 1), where v is in Pk (g), is such that δ (g) = Q[Rgˆ (v, k − 1)]. Note also that the state is final, because Rgˆ (v, k − 1) is in Ik−1 (g). • L(GA) ⊆ Lk (G): We will prove that, for any graph g ∈ L(GA), it is fulfilled that Fk−1 (g) ⊆ Fk−1 (G), Pk (g) ⊆ Pk (G) and there is a final state q (q ∈ Ik−1 (g)) such that: δ (g) = Q[q]. We will prove the result by induction on the diameter of the graph. First, if diameter(g) < k with v ∈ V 0 (g), then gˆ ∈ Fk−1 (g) ⊆ Fk−1 (G), Pk (g) = 0/ and Rgˆ (v, k − 1) is in Ik−1 (G). Let us suppose by induction hypothesis that, for any graph g ∈ L(GA) such that diameter(Rg (wi )) = n ≥ k, it is fulfilled that Fk−1 (g) ⊆ Fk−1 (G), Pk (g) ⊆ Pk (G) and δ (g) = Q[Rgˆ (v, k − 1)]. Now let g be a graph such that v ∈ V 0 (g), with (v, wi ) ∈ E where diameter(Rg (wi )) ≤ n) for all 1 ≤ i ≤ m, with at least one of the graphs

268

Inference of k-testable directed acyclic graph languages Rg (wi ) of diameter n. Therefore:

δ (g) = δ (g) ˆ =δm (µgˆ (v), δ (Rgˆ (w1 )) ⊕ δ (Rgˆ (w2 )) ⊕ . . . ⊕ δ (Rgˆ (wm ))) = =δm (µgˆ (v), Q[Rgˆ (w1 , k − 1)]Q[Rgˆ (w2 , k − 1)] . . . . . .Q[Rgˆ (wm , k − 1)] = Q[Rgˆ (v, k − 1)] where Rgˆ (v, k) ∈ Pk (g) because (v, wi ) ∈ E for all 1 ≤ i ≤ m. Besides, Q[Rgˆ (v, k − 1)] = q. Moreover: Fk−1 (g) =

[

Fk−1 (Rgˆ (wi )) ⊆ Fk−1 (G)

1≤i≤m

Pk (g) =

{Rgˆ (v, k)} ∪

[

!

Pk (Rgˆ (wi ))

1≤i≤m

⊆ Pk (G)

Also, if g ∈ L(GA), then Q[Rgˆ (v, k − 1)] is a final state. Therefore Rgˆ (v, k − 1) is in Ik−1 (G) and g ∈ Lk (G). Given the fact that, for any k given, the elements in the components of the k-testable vector are finite, we conclude that the proposed algorithm identifies the class of k-TSS directed acyclic graph languages. Finally, we note that our algorithm runs in polynomial time. Let us consider any input set of graphs G over Σστ such that m denotes the greatest outgoing degree of the graphs nodes in G. Let also be k ≥ 2. The time complexity to obtain cτσ | · mk−1 ), that is, the biggest outgoing each transition is bounded by O(m · |Σ degree times the size of the alphabet times the size of the greatest subgraph that can be reduced to a state. The whole inference step implies, at most, the creation of as many transitions as the number of nodes of the graphs in G. Let n denote cστ | · mk ). that number. Thus, the inference process is bounded by O(n · |Σ

12.6 Conclusions and Future work

In this paper, we extend the well-known families of k-testable and k-TSS languages to directed-graph languages. To our knowledge, this is the first result that characterizes a class of graph languages taking into account the features of the

Bibliography

269

graphs instead of the structure of graph grammar rules. We also propose a model of graph automata that allows us to propose a polynomial time algorithm which identifies the subclass of directed acyclic k-TSS graph languages. The definition of k-testable and k-TSS languages support general directed graph languages (those that may contain cycles), nevertheless, the automata model proposed, as well as the inference algorithm do not so, and are focused to directed acyclic graphs. The main problems to extend the results to general directed graphs are the need to establish a processing order and the accepting criterion (because both the zero-incoming and zero-outgoing sets of nodes may be empty). Of course, both the definition of k-TSS graph grammars, and the algorithm to obtain, from any given (k-TSS or not) graph automaton, an equivalent graph grammar, are very interesting problems and should be addressed as future work. Acknowledgments Dami´an L´opez is partially supported by the Spanish Ministerio de Econom´ıa y Competitividad under research project TIN2011-28260-C03-01. Jorge CaleraRubio and Antonio-Javier Gallego-S´anchez thank the Spanish CICyT for partial support of this work through project TIN2009-14205-C04-01, the IST Programme of the European Community, under the PASCAL Network of Excellence, IST-2002-506778, and the program CONSOLIDER INGENIO 2010 (CSD2007-00018).

Bibliography [1] D. Berwanger and D. Janin. Automata on directed graphs: edge versus vertex marking. LNCS, 4178:46–60, 2006. Proceedings of 3rd International Workshop on Software Evolution Through Transformations. [2] H. Blockeel and S. Nijssen. Induction of node label controlled graph grammar rules. In Proceedings of 6th International Workshop on Mining and Learning with Graphs, 2008. [3] F. J. Branderburg and K. Skodinis. Finite graph automata for linear and boundary graph languages. Theoretical Computer Science, 332:199–232, 2005.

270

Inference of k-testable directed acyclic graph languages

[4] A. Clark, R. Eyraud, and A. Habrard. A polynomial algorithm for the inference of context free languages. LNAI, 5278:29–42, 2008. Proceedings of ICGI-08. [5] C. de la Higuera. Grammatical inference. Learning automata and grammars. Cambridge University Press, 2010. [6] C. Costa Florˆencio. Identification of hyperedge-replacement graph grammars. In Proceedings of 7th International Workshop on Mining and Learning with Graphs, 2009. [7] P. Garc´ıa. Learning k-testable tree sets from positive data. Technical Report DSIC/II/46/1993, Departamento de Sistemas Inform´aticos y Computaci´on. Universidad Polit´ecnica de Valencia, 1993. Available on: http://www.dsic.upv.es/users/tlcc/tlcc.html. [8] P. Garc´ıa and E. Vidal. Inference of k-testable languages in the strict sense and application to syntactic pattern recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12:920–925, 1990. [9] E. Jeltsch and H. J. Kreowski. Grammatical inference based on hyperedge replacement. LNCS, 532:461–474, 1991. 4th International workshop on graph grammars and their application to computer science. [10] I. Jonyer, L. B. Holder, and D. J. Cook. Concept formation using graph grammars. In Proceedings of the KDD Workshop on Multi-Relational Data Mining, pages 71–792, 2002. [11] R. Kosala, H. Blockeel, M. Bruynooghe, and J. Van den Bussche. Information extraction from documents using k-testable tree automaton inference. Data & Knowledge Engineering, 58:129–158, 2006. [12] J. P. Kukluk, L. B. Holder, and D. J. Cook. Inference of node replacement recursive graph grammars. In Proceedings of the Sixth SIAM International Conference on Data Mining, 2006. [13] D. L´opez, J. M. Sempere, and P. Garc´ıa. Inference of reversible tree languages. IEEE Transactions on System Man. and Cybernetics, Part B: Cybernetics, 34(4):1658–1665, 2004.

Bibliography

271

[14] R. McNaughton. Algebraic decision procedures for local testability. Math. Sysr. Theory, 8(1):60–76, 1974. [15] K. Nakamura. Incremental learning of context free grammars by bridging rule generation and search for semi-optimum rule sets. LNAI, 4201:72–83, 2006. Proceedings of ICGI-06. [16] P. Peris, D. L´opez, and M. Campos. IgTM: An algorithm to predict transmembrane domains and topology in proteins. BMC - Bioinformatics, 9: 367, 2008. [17] A. Potthoff, S. Seibert, and W. Thomas. Nondeterminism versus determinism on finite automata over directed acyclic graphs. Bull. Belg. Math. Soc., 1:285–298, 1994. [18] J. R. Rico-Juan, J. Calera-Rubio, and R. C. Carrasco. Smoothing and compression with stochastic k-testable tree languages. Pattern Recognition, 38: 1420–1430, 2005. [19] D. Ron, Y. Singer, and N. Tishby. On the learnability and usage of acyclic probabilistic finite automata. Journal of Computer and System Sciences, 56:133–152, 1998. [20] G. Rozemberg, editor. Handbook of graph grammars and computing by graph transformation, volume 1. Word Scientific, 1997. [21] Y. Sakakibara. Learning Context-Free Grammars from Structural Data in Polynomial Time. Theoretical Computer Science, 76:223–242, 1990. [22] Y. Sakakibara. Efficient Learning of Context-Free Grammars from Positive Structural Examples. Information and Computation, 97:23–60, 1992. [23] Y. Sakakibara. Grammatical inference in bioinformatics. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(7):1051–1062, 2005. [24] K. Zhang. A constrained edit distance between unordered labelled trees. Algorithmica, 15:205–222, 1996.

Publicaci´on 13

Structural Graph Extraction from Images Antonio-Javier Gallego-S´anchez*, Jorge Calera-Rubio* and Dami´an L´opez** * Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain, {jgallego, calera}@dlsi.ua.es ** Departamento de Sistemas Inform´aticos y Computaci´on, Technical University of Valencia, Spain, [email protected] Proceedings of the 9th International Conference on Distributed Computing and Artificial Intelligence (DCAI 2012), Series of Advances in Intelligent and Soft Computing, Springer-Verlag, vol. 151, pp 717-724, Salamanca, Spain (2012), ISSN: 1867-5662, ISBN: 9783-642-28764-0

274

Structural Graph Extraction from Images

Structural Graph Extraction from Images Antonio-Javier Gallego-S´anchez*, Jorge Calera-Rubio* and Dami´an L´opez** * Departamento de Lenguajes y Sistemas Inform´aticos, University of Alicante, Spain, {jgallego, calera}@dlsi.ua.es ** Departamento de Sistemas Inform´aticos y Computaci´on, Technical University of Valencia, Spain, [email protected] Abstract We present three new algorithms to model images with graph primitives. Our main goal is to propose algorithms that could lead to a broader use of graphs, especially in pattern recognition tasks. The first method considers the q-tree representation and the neighbourhood of regions. We also propose a method which, given any region of a q-tree, finds its neighbour regions. The second algorithm reduces the image to a structural grid. This grid is postprocessed in order to obtain a directed acyclic graph. The last method takes into account the skeleton of an image to build the graph. It is a natural generalization of similar works on trees [8, 12]. Experiments show encouraging results and prove the usefulness of the proposed models in more advanced tasks, such as syntactic pattern recognition tasks.

13.1 Introduction Many fields take advantage of graph representations, these fields include but are not limited to: biology, sociology, design of computer chips, and travel related problems. This is due to the fact that graph are suitable to represent any kind of relationships among data or their components. The expressive power of graph primitives has been specially considered in pattern recognition tasks, in order to represent objects [7] or bioinformatics [13]. Therefore, the development of algorithms to handle graphs is of major interest in computer science.

Neighbourhood Graphs

275

In this paper we present three new methods to model images using graph primitives. The main goal we aim to achieve is to propose algorithms that could lead to a broader use of graphs. In that way, the work of [4] shows that this kind of contribution is suitable and interesting. The first method we propose (Section 2) takes into account the neighbour paths within a q-tree [2]. We present algorithms that extend other works for neighbourhood calculations in spatial partition trees [5, 11]. These works generally calculate only the 4-neighbours of each region, or use two steps to calculate the corner neighbours. The proposed method completes these works with an estimation of equal complexity for the 8-neighbours at any level of resolution (equal, higher or lower level). Moreover, neighbour calculation can help to improve other applications, speeding up the process to locate the next element, such as in: image representation, spatial indexing, or efficient collision detection. The second method (Section 3) considers a structural grid of the image which is then postprocessed to obtain the graph model. This method maintains those desiderable features of q-tree representation, that is: the resolution is parametrizable and allows to reconstruct the image. The third method (Section 4) extends a similar method used on trees [12, 8]. The initial image is preprocessed to obtain the skeleton. This skeleton is then traversed to build a graph that summarizes the core structure of the image.

13.2 Neighbourhood Graphs Using the tree defined by a q-tree (see Fig. 13.1) and the proposed algorithm for neighbourhood calculation (see section 13.2.1), a directed acyclic graph (dag) can be extracted to represent the sample and to provide information such as: neighbourhood, structural traversal, resolution or thickness, in addition to allow its reconstruction. The graph is created walking top-down the tree, and from left to right. For each nonempty node, its 8-neighbours are calculated. It is important that: 1) Do not add arcs to processed nodes. 2) If it has to create an arc from a non-pointed node to one that is already pointed: then the direction of the arc is changed. These criteria ensures that the graph is acyclic.

276

Structural Graph Extraction from Images

Figure 13.1: Tree obtained from the q-tree of the Fig. 13.2(c), and its corresponding neighbour graph.

13.2.1 Calculating Neighbours Binary encoding is used to encode the position of partitions whithin the image and their corresponding traversal path down the q-tree [5]. Each dimension is encoded with 1 bit coordinate, describing the direction as positive (1) or negative (0). A location array is defined using this encoding (Fig. 13.2(a)). In q-trees, this array has two rows: horizontal and vertical coordinates. Positive directions (up and right) are represented by a 1, and the negative directions (down and left) by 0 (Fig. 13.2(b)). In general, the location array associated with a given node is defined as the location array of his father, but adding on the right a new column with its own encoding. For each new partition, the origin of the reference system is placed in the center of the area where the subdivision is done. In Fig. 13.2(c), 1 the second level node K is represented by the of his father, and then adding 1  1 the 0 for its own level.

Algorithm

To calculate the neighbours of a given node, the location array described above is used. The proposed algorithm distinguishes two cases: face neighbours (two regions share more than one point, such as A with B in Fig. 13.2(c)), and corner neighbours (they share one point, A with I in Fig. 13.2(c) ). Face Neighbours To calculate the face neighbour of a given node, the algorithm needs to know its location array (M), and the dimension dim and the direction dir in which the

Neighbourhood Graphs

277

(b)

(c)

(d)

Figure 13.2: (a) Reference system and location array, (b,c) Q-trees with the corresponding location arrays, (d) Graphs extracted using different truncate levels.

neighbour has to be calculated. The algorithm (see Sec. 13.2.1) visits each bit of the location array (M) in the given dimension from right to left, and negates the bits until the result is equal to the explored direction (1: positive, 0: negative). As an example, the horizontal neighbour of I (Fig. 13.2(c)) in the positive direction (1) is calculated. The algorithm begins with the location array and negates each bit in the top row (dim 1) from right to left (indicated with a bar) until reaching the halt condition: the result is equal to the explored direction. 

0 1¯ I= 1 0





0¯ 0 ⇒ 1 0





 1 0 ⇒ =J 1 0

Corner Neighbours In the case of corner neighbours, the algorithm has to modify the two dimensions of the location array. As for the face neighbours, it begins with the location array M, but in this case it receives as input an array dir with both horizontal and vertical directions. Below is the complete algorithm to compute face and corner neighbours:

278

Structural Graph Extraction from Images

function GetNeighbour( M, dim, dir ) level := |M[0]| // Level is equal to the number of columns if( |dir| == 1 ) { // Face neighbours do { M[dim][level] := ! M[dim][level] level := level − 1 } while( level ≥ 0 ∧ M[dim][level] != dir ) } else { // |dir| == 2 → Corner neighbours f lag1 := f alse ; f lag2 := f alse do { if( ! f lag1 ) M[0][level] := ! M[0][level] if( M[0][level] == dir[0] ) f lag1 := true if( ! f lag2 ) M[1][level] := ! M[1][level] if( M[1][level] == dir[1] ) f lag2 := true level := level − 1 } while( level ≥ 0 ∧ ( ! f lag1 ∨ ! f lag2)) } return M

As example, the corner neighbours of N (Fig. 13.2(c)) are calculated: N=



1 0

  1 1¯ ⇒ 0¯ 1¯

  0 1 ⇒ 1 0

 0 =J 0

N=



1 0

  1¯ 1 ⇒ 0 1¯

 0 =O 0

Type of Nodes It is important to differentiate the type of a node within the structure (Fig. 13.1). The function TypeOfNode(M) returns this type, it can be: leaf-node (the node exists and has no children), inner-node (the node exists and has children) or nonode (the node does not exist). If the location array is a leaf-node the algorithm ends. If it is an inner-node, then the algorithm has to calculate the higher-level neighbours (Sec. 13.2.1). If the node does not exist, the algorithm has to calculate the lower-level neighbours (Sec. 13.2.1). Lower Resolution Neighbours In this case, the algorithm first calculates the same resolution neighbour using M := GetNeighbour( M, dim, dir ); and then eliminates the final column/s (on the right side) until it finds a leaf-node:

Neighbourhood Graphs

279

function GetLowerLevel( M ) do { M2×n ← M2×n−1 } while( TypeOfNode( M ) == no-node ) return M

Example: region D in Fig. 13.2(c). D= C

 1 1

  1 0¯ 1 1¯ ⇒ 1 1 1 1

  1 1 ⇒ 1 1

  0 1 1 ⇒ no-node ⇒ 1 1 1

  0 61 1 ⇒ 1 61 1

 0 = 1

Higher Resolution Neighbours The algorithm first calculates the neighbour at the same level of resolution using M := GetNeighbour(M, dim, dir). If M corresponds to an inner-node, then the higher-level neighbour/s is/are calculated. It is worth to note that, face neighbours may have two or more neighbours (e.g. L with H and I in Fig. 13.2(c)), whereas corner neighbours only have one neighbour. In this process, columns are added on the right side of the matrix M until reaching a leaf-node. These columns are created in the opposite direction of the dimension/s of interest. See the pseudocode below: function GetHigherLevel( M, dim, dir ) L := h∅i // Result set of higher-level neighbours if( |dir| == 1 ) { // Face neighbours for( i = 1; i ≤ 2, + + i) { Ni [dim][0] :=!dir ; Ni [ ! dim][0] := i − 1 Mi := M ⊕ Ni if( TypeOfNode( Mi ) == leaf-node ) L ← Mi else L ← GetHigherLevel( Mi , dim, dir ) } } else { // |dir| == 2 → Corner neighbours do { N[0][0] :=!dir[0] ; N[1][0] :=!dir[1] M := M ⊕ N } while( TypeOfNode( M ) != leaf-node ) L ←M } return L

The symbol ⊕ denotes the concatenation of a matrix M with a vector N:

280

Structural Graph Extraction from Images



x1 M ⊕ N = 20 x0

  1  1 x11 y x ⊕ 2 = 02 x21 y x0

x11 x21

y1 y2



Below is an example of higher-level neighbours calculation (see Fig. 13.2(c)): 

  1 0¯ 1 C= ⇒ 1 1 1

  1 1 ⇒ inner-node ⇒ 1 1

1 1

 0 = D; 1



1 1

  1 0 =F 1 0

Neighbourhood of Border Regions When a region is on the border of the structure, do not present neighbours on that border side. In this case, the algorithm ends without reaching the halt condition. E.g. node A (horizontal-left): 

  0 0¯ 0¯ A= ⇒ 1 1 1

  1 1 ⇒ 1 1

 1 ⇒ border 1

13.3 Structural Grid Graph We here propose an algorithm to model images using graph primitives. The main goal of this new proposal is to maintain the better properties of q-trees but introducing higher variability in the incoming and outgoing degrees. Thus, the properties to fulfill are: 1) The model should consider the resolution as a parameter, allowing higher and lower resolution representations. 2) The representation should contain enough information to reconstruct the original image. Without loss of generality, we will consider directed acyclic graphs and two colour images: background and foreground colours. Starting from the top-left corner, the algorithm divides the image into squared regions of a given size k. Those regions with foreground colour will be considered the nodes of the graph. The edges are defined from a foreground region (node) to those adjacentforeground regions to the east, south and southeast. Figure 13.3 shows an example.

Skeleton Graphs

281

Figure 13.3: Some examples of the grid graph modeling are shown. Those regions with at least 20% black pixels are considered foreground. Root nodes are marked in gray.

13.4 Skeleton Graphs The last method models the graph using the skeleton that defines the shape of the figure. It is a natural extension of the algorithms proposed for trees in [8, 12]. First, a thinning process is applied to the image [1], and then the graph is generated as: 1. The top left pixel of the skeleton is chosen as the root of the graph. 2. Every node in the graph will have as many children as unmarked neighbour pixels has the current pixel. For each child, an arc is created following that direction until one of the following criteria is true: (a) The arc has the maximum fixed parameter size (window parameter). (b) The pixel has no unmarked neighbours (terminal node). (c) The pixel has more than one unmarked neighbour (intersection). (d) The pixel is marked (existing node). 3. A new node is assigned to every end of arc pixel obtained by the previous step (a,b,c), or it is joined with the corresponding node (d). If the node has unmarked neighbours, then go to step 2, otherwise it terminates.

282

Structural Graph Extraction from Images

Figure 13.4: Skeleton and graph results.

13.5 Experimentation This section aims to demonstrate the usefulness of the proposed models. For this reason, it uses simple classification methods, without stochastic layer and using only the structure of graphs (without labels). Results prove the correct separation of classes, in addition to be a baseline for future research. To perform the experiments, 5 thousand images of digits (10 classes), with resolution of 64x64 pixels, from the NIST dataset are used. Graphs have been extracted using the three proposed methods, but varying the parameters (truncate level, size of cells, and window size) (see Fig. 13.5). Six methods are used to perform the classification: First, a feature vector is calculated using the graph degree distribution [10], and then classified using Naive Bayes, Random Forest, SVM and k-NN [6]. The 75% of the dataset is used for training and the rest for test. A preliminar error correcting distance is also defined to test the proposed methods. It is a simple algorithm with linear complexity. For this distance, the classification is performed using leaving-one-out. A semi-structural method of Flow Complexity is also used [3]. It analyzes the structure of the graph based on feature selection via spectral analysis and complexity.

Figure 13.5: Results using different classification methods.

Conclusions

283

13.6 Conclusions This paper presents three methods for extracting graphs from images. The obtained graphs introduce a variability that should create new characteristic features in the modelling of the classes of a pattern recognition task, and thus, it should ease a syntactic approach. Experiments show encouraging results which prove the usefulness of the proposed models, the correct separation of classes, in addition to be a baseline for future work. The first method creates neighbourhood paths or segmentations within the q-tree, providing more data and creating new possibilities of operations and applications. The second algorithm maintains the features of q-tree representation, that is: the resolution is parametrizable and allows to reconstruct the original image. The third method takes into account the skeleton of the shape to build the graph, summarizing the core structure of the image. Acknowledgments This work is partially supported by Spanish MICINN (contract TIN2011-28260C03-01, contract TIN2009-14205-C04-C1) and CONSOLIDER-INGENIO 2010 (contract CSD2007-00018).

Bibliography [1] J. M. Cychosz. Thinning algorithm from the article: Efficient binary image thinning using neighbourhood maps. Graphics Gems IV. Academic Press, p. 465–473, 1994. [2] M. de Berg, M. van Kreveld, M. Overmars, and O. Schwarzkopf. Computational geometry, pages 291–306. Springer-Verlag, 2000. [3] F.Escolano, D.Giorgi, E.R.Hancock, M.A.Lozano, and B.Falcidieno. Flow complexity: Fast polytopal graph complexity and 3d object clustering. GbRPR, 2009. [4] M.Flasinski, S.Myslinski. On the use of graph parsing for recognition of isolated hand postures of Polish Sign Language. Pattern Recognition, 43:2249–2264, 2010.

284

Structural Graph Extraction from Images

[5] M. Goodchild. Quadtree algorithms and spatial indexes. Technical Issues in GIS, NCGIA, Core Curriculum, (37):5–6, 1990. [6] M.Hall, E.Frank, G.Holmes, B.Pfahringer, P.Reutemann, I.H.Witten. The WEKA Data Mining Software: An Update. SIGKDD Explorations, 11(1):10–18, 2009. [7] J. Liu, M. Li, Q. Liu, H. Lu, and S. Ma. Image annotation via graph learning. Pattern Recognition, 42:218–228, 2009. [8] D. L´opez and I. Pi˜naga. Syntactic pattern recognition by error correcting analysis on tree automata. Advances in Pattern Recognition, LNCS 1876, p. 133–142, 2000. [9] R. G. Luque, J. ao L.D. Comba, and C. Freitas. Broad-phase collision detection using semi-adjusting bsp-trees. In ACM i3D, pages 179–186, 2005. [10] M.E.J.Newman. The structure and function of complex networks. SIAM, 45. 2003. [11] J. Poveda and M. Gould. Multidimensional binary indexing for neighbourhood calculations in spatial partition trees. Comput. Geosci., 31(1):87–97, 2005. [12] J.R.Rico-Juan, L.Mic´o. Comparison of AESA and LAESA search algorithms using string and tree edit distances. Pattern Recognition Letters, 24:1427–1436, 2003. [13] H. Shin, K. Tsuda, and B. Sch¨olkopf. Protein functional class prediction with a combined graph. Expert Systems with Applications, 36:3284–3292, 2009.

Loading...

Avances en la representación y modelado computacionales de - RUA

AVANCES EN LA REPRESENTACIÓN Y MODELADO COMPUTACIONALES DE LA ESTRUCTURA DEL ESPACIO Antonio Javier Gallego Sánchez UNIVERSIDAD DE ALICANTE ´ D EPAR...

4MB Sizes 1 Downloads 0 Views

Recommend Documents

Proyectos de modelado en
Free Minecraft Accounts - Home | Facebook. Codes How To Hack Premium Account Minecraft 2017 next game, channel for Code

AVANCES y NECESIDADES EN El FORtAlECIMIENtO DE lA
la articulación de una cooperación internacional efectiva, que por prin- cipio, debe ser solidaria y respetuosa de la

Avances en la Química de Coordinación de Tetrilenos Pesados
Se conocen complejos de los tetrilenos pesados con casi todos los Ms de la tabla periódica.3‒4. Es destacable que la

Avances en la caracterización de un proteoliposoma - SciELO Cuba
Introducción. A casi cien años de la aplicación de la primera vacuna contra la tuberculosis (TB) y a pesar de la intr

Proyectos de modelado en porcelana fria pdf
The Adopted · Bryans Favorite Books - Killer Clown: The John Wayne Gacy Murders · Receta medica del imss editable word ·

Proyectos de modelado en porcelana fria pdf
... di psichiatria forense.epub · The-madonie-mountains-self-guided-tour-sicily · R Programming Data Analysis Pdf · Dire

nuevos avances en el estudio científico de la - Revista Javeriana
tan nuevos tipos de relación entre la información propor- cionada, sería imposible pensar. Así, la comprensión se .

La tradición afroamericana en Beloved de Toni Morrison - RUA
ABSTRACT. This article is a critical study oí Beloved, Toni Morrison's latest novel, and winner of the 1987. Pulitzer P

Avances en el diagnóstico, etiopatogenia y pronóstico de la
Avances en el diagnóstico, etiopatogenia y pronóstico de la hipertensión portal no cirrótica. Tesis doctoral. Univer

Avances En Respiratorio | Inhaladores
Este 2016, Boehringer Ingelheim pone a su disposición las últimas novedades en terapia inhalada lo que le permitirá r