3 NAVEGACIÓN REACTIVA DE UN ROBOT MÓVIL EN UN AMBIENTE NATURAL
3.1 ANÁLISIS DE LA ESCENA DEL AMBIENTE NATURAL
3.1.6 INFORMACIÓN CONTEXTUAL
En la etapa de clasificación quizás ocurran errores de asignación de clases a ciertas regiones debido a sombras y/o reflejos existentes sobre toda la escena. En
esta investigación se incluyó el uso de información contextual con relaciones espaciales entre las regiones y la imagen, la cual permitió resolver esos errores de clasificación mencionados que no se hubieran corregido sin esta etapa [Alencastre 04a, Alencastre 05a, Alencastre 04b, Alencastre 05b, Alencastre 06a].
La información contextual se define en forma de reglas considerando que en el contexto se tiene un robot móvil de poca altura observando principalmente hacia el terreno al frente de él y que se tienen clases a partir de elementos de la naturaleza con ciertas relaciones lógicas entre ellas. Al terminar la etapa de clasificación se tienen regiones individuales que son las celdas segmentadas y posteriormente clasificadas. En esta etapa de información contextual se construye un Grafo de Adyacencia de Regiones (RAG, Region Adjacency Graph), donde cada una de sus nuevas regiones se componen de varias regiones individuales previamente clasificadas que son colindantes o adyacentes entre sí y tienen todas ellas el mismo tipo de clase.
El RAG con sus nuevas regiones es creado mediante el algoritmo clásico de crecimiento de regiones. Con el crecimiento de regiones, todas las celdas clasificadas o regiones individuales adyacentes pertenecientes a la misma clase son unidas en una misma nueva región. A continuación se describe el algoritmo de crecimiento de regiones [Parker 93] para pasar del grafo del MRF de forma rectangular que se tiene a un RAG el cuál incluye cuatro nuevos nodos llamados “nodos especiales de localización” que son los límites de la imagen: 'arriba', 'abajo', 'izquierda' y 'derecha', las cuales permiten saber en qué parte de la imagen original se encuentran ciertas celdas o regiones clasificadas:
1. Se inicia en el nodo del MRF de la esquina superior izquierda.
2. Se crean cuatro nodos en el RAG que son los nodos especiales de localización.
3. Se hace un barrido renglón por renglón del grafo del MRF de izquierda a derecha.
4. Se marca en turno una región individual del MRF si esta tiene una clase diferente a la anterior región individual en turno.
asignándole la clase de la región individual en turno.
6. Recursivamente se van añadiendo a esa nueva región del RAG todas las regiones individuales clasificadas en el MRF con la misma clase que son adyacentes entre sí iniciando en la región en turno, esto hasta que no se encuentren más regiones con la misma clase que sean adyacentes.
7. Si alguna de las regiones individuales incluidas en el nodo de la nueva región del RAG son adyacentes a las regiones individuales pertenecientes a algún otro nodo del RAG previamente creado para nuevas regiones, entonces se crean las nuevas aristas en el RAG correspondientes a esas relaciones de adyacencia.
8. Si alguna de las regiones individuales que son parte del nodo de la nueva región del RAG se encuentran en las orillas de la imagen original, entonces se crea una nueva arista en el RAG hacia los nodos especiales de localización correspondientes.
9. Se repite desde el paso 3 hasta que todas las regiones individuales en los nodos del MRF hayan sido marcadas en turno o hayan sido añadidas a una nueva región del RAG.
Fig. 3.8 Ejemplo de construcción de un RAG a partir del grafo de un MRF.
En la Figura 3.8 se muestra un ejemplo de cómo quedaría un RAG construido con crecimiento de regiones a partir de un grafo de MRF dado; donde los números dentro de los nodos de ambos grafos son las etiquetas que representan cada una de las clases, en este caso: '0' significa 'arbusto o árbol', '1'
0
0
1
1
0
2
2
0
0
2
0
0
1
1
1
2
1
2
2
0
1
1
1
2
1
1
1
1
1
1
MRF
RAG
2
0
^
_
<
>
1
2
2
1
significa 'pasto' y '2' significa 'cielo', y los caracteres especiales dentro de cuatro nodos del RAG representan los cuatro nodos especiales de localización: '^' significa 'arriba', '_' significa 'abajo', '<' significa 'izquierda' y '>' significa 'derecha'. En el capítulo 5 de resultados los grafos de cada etapa son representados como imágenes y las etiquetas numéricas son cambiadas por colores predefinidos.
Utilizando las reglas de información contextual en el RAG se puede determinar por ejemplo si una nueva región del RAG con clase 'cielo' fue mal clasificada por estar localizada en lugares ilógicos como puede ser en la parte de abajo de la imagen original o por estar rodeada por una nueva región con clase 'pasto'. Existen dos tipos de reglas de información contextual:
a) El primer tipo de reglas consideran solamente nodos en el RAG con un sólo nodo vecino. Esto quiere decir que si un nodo “A” tiene un sólo nodo vecino “B”, entonces en la imagen la región con la clase correspondiente al nodo “A” está rodeada completamente de regiones con la clase correspondiente al nodo “B”. A continuación se ejemplifican todas las posibles reglas de este tipo que se aplican a dichos nodos con ciertas clases:
1. 'cielo' con solamente un vecino 'pasto' es cambiado por 'pasto'. 2. 'cielo' con solamente un vecino 'arbusto o árbol' es cambiado por
'arbusto o árbol'.
3. 'arbusto o árbol' con solamente un vecino 'cielo' es cambiado por 'cielo'.
4. 'pasto' con solamente un vecino 'cielo' es cambiado por 'cielo'. 5. 'pasto' con solamente un vecino 'arbusto o árbol' es cambiado por
'arbusto o árbol'.
b) El segundo tipo de reglas consideran solamente nodos en el RAG con dos nodos vecinos siempre y cuando uno de esos dos nodos vecinos sea alguno de los nodos especiales de localización previamente definidos. Esto es similar a las primeras reglas en cuanto a que un nodo está rodeado de otro, pero no completamente, es decir que la región con la clase correspondiente al nodo “A” está en alguna orilla de la imagen y
está rodeada dentro de la imagen por regiones con la clase correspondiente al nodo “B”. A continuación se ejemplifican todas las posibles reglas de este tipo que se aplican a dichos nodos con ciertas clases:
1. 'cielo' con un vecino 'pasto' y un segundo vecino 'abajo', 'izquierda' o 'derecha' es cambiado por 'pasto'.
2. 'cielo' con un vecino 'arbusto o árbol' y un segundo vecino 'abajo', 'izquierda' o 'derecha' es cambiado por 'arbusto o árbol'.
3. 'arbusto o árbol' con un vecino 'pasto' y un segundo vecino 'abajo' es cambiado por 'pasto'.
4. 'pasto' con un vecino 'cielo' y un segundo vecino 'arriba', 'abajo', 'izquierda' o 'derecha' es cambiado por 'cielo'.
5. 'pasto' con un vecino 'arbusto o árbol' y un segundo vecino 'arriba', 'izquierda' o 'derecha' es cambiado por 'arbusto o árbol'.
Fig. 3.9 Ejemplo de aplicación de las reglas de información contextual a un RAG.
En la Figura 3.9 se muestra un ejemplo de cómo se aplicaron las reglas de información contextual descritas al RAG de la Figura 3.8. En este ejemplo, para el nodo con etiqueta '2', de la esquina inferior izquierda del RAG de la figura 3.8, se aplicó la primera regla descrita del primer tipo de reglas de información contextual (es decir, 'cielo' con solamente un vecino 'pasto' es cambiado por 'pasto'), integrándose dicho nodo como parte de la región definida por su nodo vecino con etiqueta '1' (que en este caso es 'pasto'); y para el nodo con etiqueta
2
0
^
_
<
>
1
2
'1', de la esquina superior derecha del RAG de la figura 3.8, se aplicó la cuarta regla descrita del segundo tipo de reglas de información contextual (es decir, 'pasto' con un vecino 'cielo' y un segundo vecino 'arriba', 'abajo', 'izquierda' o 'derecha' es cambiado por 'cielo'), integrándose dicho nodo como parte de la región definida por su nodo vecino con etiqueta '2' (que en este caso es 'cielo').
En el capítulo 5 se dan los detalles de implementación de este método de análisis de las escenas que captura el robot, y se muestran las imágenes con resultados de las etapas más importantes del método y los tiempos de procesamiento obtenidos.