• No se han encontrado resultados

T E S I S UNIVERSIDAD LA SALLE A.C.

N/A
N/A
Protected

Academic year: 2021

Share "T E S I S UNIVERSIDAD LA SALLE A.C."

Copied!
78
0
0

Texto completo

(1)

UNIVERSIDAD LA SALLE A.C.

FACULTAD DE INGENIER´

IA

Con Reconocimiento de Validez Oficial de Estudios

Seg´

un Decreto Presidencial del

29 de mayo de 1987, Clave: 2004.

“VISI ´

ON COMPUTACIONAL PARA PROBLEMAS DE

ESTIMACI ´

ON DE POSE”

T E S I S

Que para obtener el grado de:

MAESTRO EN CIENCIAS, ´AREA CIBERN´ETICA

P R E S E N T A:

ALBERTO ISAY ROMAY TOVAR

Asesor de Tesis: M. en C. Luis Fernando Lupi´

an S´

anchez

M´exico, D.F. 2011

(2)
(3)
(4)

ii

Agradecimientos

A mis papás

Por haberme regalado la vida y siempre estar conmigo. A mi hermano

Por alegrarme la vida. A mi familia

Por apoyarme siempre.

Al M. en C. Luis F Lupián Sánchez Por su amistad y asesoría.

Al Ing. Andrés Fernando Espínola Auada Por su amistad y sus consejos.

A mis maestr@s y a mis amig@s Por sus enseñanzas.

A Efraín Hernández Franco, José Antonio Pérez Ortega, A Erick Ramírez Aguilar y aquellas personas que de alguna forma me ayudaron a realizar este trabajo.

(5)

Contenido

1 Introducción 1

1.1 Objetivos y metodología . . . 3

2 Robots Humanoides, Liga de RoboCup 6 2.1 Iniciativa RoboCup . . . 6

2.1.1 Cancha de fútbol de humanoides . . . 7

2.1.2 Postes de medio campo . . . 8

2.2 Robot humanoide . . . 9

2.2.1 Estructura del robot humanoide T1 . . . 9

2.2.2 Percepción sensorial . . . 10

2.2.3 Unidad computacional . . . 11

2.3 Sensor de visión . . . 12

2.3.1 Sistemas de visión en la RoboCup . . . 13

3 Modelo de Proyección en Perspectiva 16 3.1 Cámara pinhole . . . 16

3.2 Coordenadas homogéneas . . . 16

3.3 Geometría proyectiva . . . 18

3.4 Calibración de cámara . . . 20

4 Extracción de Características 22 4.1 Estado del arte en extracción de características . . . 22

4.2 Espacio de color . . . 26

4.2.1 RGB . . . 27

4.2.2 YCrCb . . . 28

4.2.3 HSV . . . 28

(6)

CONTENIDO iv

5 Estimación de Pose 32

5.1 Problema inverso . . . 33

5.1.1 Estado del arte en auto-localización . . . 33

5.1.2 Algoritmo propuesto . . . 33

5.1.3 Rango del regresor . . . 37

5.2 Problema directo . . . 39

5.3 Análisis de sensibilidad . . . 40

5.3.1 Sensibilidad diferencial . . . 41

5.3.2 Análisis de distribución de probabilidad del error de estimación . . . 43

6 Pruebas Experimentales 48 6.1 Descripción del experimento . . . 48

6.2 Procedimiento de calibración . . . 49

6.3 Resultados experimentales . . . 51

6.4 Comparación de resultados. . . 55

Conclusiones y Trabajo Futuro 58

(7)

Índice de Tablas

2.1 Dimensiones de la cancha en centímetros . . . 7

6.1 Parámetros de calibración intrínseca . . . 49

6.2 Parámetros de calibración extrínseca . . . 52

6.3 Comparación de la distribución del error de estimación del algoritmo de estimación de pose contra el del algoritmo de filtro de partículas en intervalos de 10cm. Se muestran los porcentajes acumulados para cada uno de los intervalos del error de estimación. . 57

(8)

Lista de Figuras

1.1 Diagrama del proceso de auto-localización. . . 3

1.2 Marco de referencia del campo. . . 3

2.1 Cancha para humanoides categoría KidSize en vista superior. Fuente [31]. . . 8

2.2 Cancha para humanoides categoría Kid Size en perspectiva. . . 8

2.3 Poste amarillo (izquierda) y poste azul (derecha).. . . 9

2.4 Esquema del robot humanoide en pose estándar. Fuente [31]. . . 10

2.5 Robot humanoide T1 (izquierda) y estructura de los grados de libertad (derecha). . 11

2.6 PlayStation Eye (izquierda) y mecanismo de pan y tilt (derecha).R . . . 11

2.7 Unidad de medición inercial. . . 12

2.8 Brújula electrónica. . . 12

2.9 Sistema de visión omnidireccional (izquierda) e imagen extraída de la cámara (derecha). Fuente [23]. . . 14

2.10 Sistema de visión estéreo (izquierda), imagen de la cámara izquierda (centro) e imagen de la cámara derecha (derecha). . . 14

2.11 Ejemplo de funcionamiento de la cámara pinhole. . . 15

3.1 Geometría de la cámara pinhole. . . 17

4.1 Filtro Bayer en el sensor CCD. . . 27

4.2 Segmentación de color y extracción de características. . . 30

4.3 Situaciones posibles generales en la detección de la portería. . . 31

5.1 Marco de referencia del robot (izquierda) y marco de referencia de la cámara (derecha). 36 5.2 Estimación de pose para dos observaciones. . . 38

5.3 Imagen de pelota (izquierda) e imagen binaria de pelota (derecha). . . 39

(9)

LISTA DE FIGURAS vii

5.5 Error de incertidumbre para ángulos de pan y tilt con desviación estándar de cinco grados (izquierda). Error de incertidumbre para las coordenadas δu y δv con desviación estándar de cinco píxeles (derecha). En ambos casos, la curva en línea contínua

representa el nivel de la desviación estándar. . . 45

5.6 Error de estimación para una y dos observaciones con base en un error en el ángulo θt. En rojo la posición real del robot, en azul la posición de la marca observada. . . 46

5.7 Error de estimación para una y dos observaciones con base en el error de la proyección δv. . . 47

6.1 Montaje del experimento (vistas global y en acercamiento). . . 49

6.2 Imágenes de calibración. . . 50

6.3 Imagen de calibración extrínseca. . . 51

6.4 Vista superior del experimento. En color rojo las observaciones utilizadas para el experimento, en color magenta la imagen a 315◦ excluida por las reglas. Los puntos en color cyan se refieren a todas las posiciones donde se ubicó el robot. . . 52

6.5 Errores de estimación para cada pose calculada. . . 53

6.6 Imágenes tomadas de la ubicación (2,2) para 0o, 45o, 90o, 135o, 180o, 225o, 270o, 315o. . . . . 54

6.7 Comparación de la distribución del error de estimación entre el algoritmo que utiliza filtro de partículas y el algoritmo de estimación de pose inversa. . . 56

(10)

1

Introducción

En el contexto de visión computacional la estimación de pose se refiere al problema de identificar la posición y orientación de un objeto con respecto a un marco de referencia conocido. En la literatura científica, la estimación de pose comúnmente se refiere a la identificación de la posición y orientación de un objeto conocido con respecto al marco de referencia de la cámara [11,32]. En este trabajo se considera a esta estimación como la solución al problema directo de estimación de pose y se hará referencia a la estimación de la posición y orientación de la cámara con respecto al marco de referencia de un objeto conocido como el problema inverso de estimación de pose. El problema inverso de estimación de pose cobra sentido solamente cuando se considera que la cámara es móvil y que el objeto conocido es fijo. La auto-localización es una característica esencial en muchas de las aplicaciones de robots móviles autónomos y si se considera que la cámara está montada sobre un robot móvil y que el objeto conocido es el ambiente por el cual se moverá éste. Cuando el robot móvil trae a bordo una cámara que se desplaza junto con él es donde cobra sentido el utilizar técnicas de estimación de pose de la cámara para estimar la localización del robot con respecto al marco de referencia del ambiente donde éste se moverá. La literatura científica relacionada al problema de localización de robots móviles es amplia y diversa; y está sujeta a intensa investigación [3,10].

El problema de la auto-localización en general está intrínsecamente relacionado con el problema de mapeo [42], y solo se puede aislar en el caso en que el robot se mueve dentro de un ambiente del cual se tiene un modelo previamente identificado. En algunas situaciones, el problema se simplifica si el ambiente puede ser modelado con un número pequeño de características conocidas. Este es el caso en el que se encuentra actualmente el campo de fútbol de la liga RoboCup Humanoid, así como de algunos ambientes caseros e industriales. Se eligió utilizar la cancha de fútbol de la liga RoboCup Humanoid KidSize ya que es una aplicación en la cual la auto-localización es muy importante para dotar de autonomía a los robots. En la tarea de jugar fútbol es importante para los tres robots

(11)

2 humanoides que componen al equipo conocer la zona de la cancha en la que llevan a cabo su rol de juego, es decir, el delantero debe de saber qué tan lejos se encuentra de la portería contraria para determinar si es mejor hacer un tiro o acercarse con el balón a ésta, el jugador de soporte debe de mantenerse a una distancia suficiente y dentro de la cancha para que el delantero pueda apoyarse con él dando un pase, el portero debe de poder localizarse en la portería, y aunque la precisión de su localización no necesariamente tiene que ser exacta, considerando que el ancho de la portería es de 150cm y la altura de los robots esta en el rango de entre 30 y 60cm se estima que un radio de precisión de menos de 30cm es suficiente para dar solución aceptable al problema de auto-localización. Varios enfoques en la localización basada en marcas del campo han sido propuestas en el contexto de la iniciativa RoboCup. En [37], Schulz et al. utilizan un filtro de partículas para estimar la localización del robot. Este enfoque usualmente requiere de un conjunto grande de partículas para dar una solución aceptable, que demanda un poder computacional que no siempre es fácil de adaptar en un pequeño robot humanoide. Como lo proponen Cañas et al. en [8], se puede calcular un toroide alrededor de los postes de la portería así como del travesaño. Resolviendo la intersección entre estos toroides se puede obtener un estimado de la posición absoluta de la cámara. Hsu et al. introducen en [19] un sistema de auto-localización llamado dual-circle self-localization que requiere de tres marcas conocidas en el campo para estimar la posición del robot. Aunque computacionalmente eficiente, este algoritmo requiere del uso de un sistema de visión omnidireccional, que ha sido prohibido por las reglas de la liga RoboCup Humanoid. Un enfoque que utiliza visión estereoscópica fue propuesto por Bais y Sablatnig en [1] donde se calcula la distancia a marcas identificadas para trazar círculos alrededor de éstas. Con solo dos marcas identificadas, la posición del robot puede ser estimada a partir de la intersección de estos círculos.

La solución propuesta para el problema de auto-localización en el contexto de este trabajo se compone de dos partes: la extracción de características y la estimación de pose inversa. El trabajo sobre la extracción de características se desarrolló en el trabajo de tesis de Maestría del Ing. Andrés Fernando Espínola Auada [13] miembro de nuestro grupo de investigación. Se hará una breve descripción de la técnica de extracción de características utilizada más sin embargo en este trabajo se partirá de la información resultante del uso de ésta técnica para dar solución a la auto-localización del robot por medio de la estimación de pose inversa. El flujo de información entre estas dos partes se muestra en la Figura1.1.

Para formular el problema de esta investigación, es necesario determinar el origen del marco de referencia del campo como la esquina suroeste de la cancha con los ejes orientados como se muestra en la Figura 1.2. El problema radica en utilizar un conjunto finito de observaciones para estimar la localización del robot con respecto al marco de referencia del campo de fútbol. Se definirá la

(12)

1.1 Objetivos y metodología 3

Extracción de

características Estimación depose

Imágenes adquiridas por la cámara Información extraida de las imágenes Localización XY del robot

Figura 1.1: Diagrama del proceso de auto-localización. localización del robot como la proyección del punto focal T = (Tx Ty Tz)

T

de su cámara en el suelo (plano XY). Se asumirá que el robot está equipado con un sensor de campo magnético, lo cual hace innecesaria la estimación de la orientación del robot con respecto al campo. Además, se asumirá que todas las observaciones se realizan de la pose estándar del robot como se mostrará en la Sección2.2. Esta última restricción es solamente utilizada para simplificar el análisis de la solución que se presenta al problema, pero puede ser fácilmente removida tomando en cuenta la cinemática directa del robot humanoide.

Figura 1.2: Marco de referencia del campo.

1.1

Objetivos y metodología

El objetivo general de este trabajo es desarrollar el software necesario para estimar la localización del robot dentro del ambiente de pruebas utilizando únicamente la información de las observaciones descritas en los párrafos siguientes.

Un pequeño conjunto de marcas del campo será utilizado como puntos de referencia en el algoritmo de auto-localización que se presenta. Estos puntos son las cuatro esquinas de cada una de las porterías y el centroide de cada uno de los segmentos de color de los postes de medio campo. Existen muchas más características que se pueden utilizar como los cruces de las líneas blancas y las marcas de los

(13)

1.1 Objetivos y metodología 4 puntos penales. Sin embargo, para el propósito de ilustrar este enfoque es suficiente utilizar las catorce marcas previamente mencionadas.

Se define una observación como una cuádrupla de la forma hFeatureID, C, P, θi, donde FeatureID es el identificador de la correspondiente marca (esquina superior de portería azul, esquina inferior de portería amarilla, sección media del poste de medio campo azul, etc), C = (Cx Cy Cz)

T

es la ubicación con respecto al marco de referencia del campo de la marca fija previamente observada, P = (u v 1)T

es la coordenada homogénea de la proyección de la marca observada en el plano de la imagen expresada en unidades de píxeles, y θ es el ángulo de la cámara con respecto al plano XY en el marco de referencia del campo en el instante en el que la imagen fue tomada.

Para alcanzar este objetivo se desarrollará un programa de captura de los datos experimentales, es decir, un código en lenguaje C++ que generará un conjunto de imágenes de las cuales se extraerán las marcas que aporten la información necesaria del ambiente. Así mismo, se desarrollará el código en lenguaje C++ que formulará un conjunto sobredeterminado de ecuaciones lineales basadas en el modelo de proyección en perspectiva para la cámara, tomando como base la información extraída de los datos experimentales. Para dar solución óptima al sistema sobredeterminado de ecuaciones, se desarrollará código en lenguaje C++, utilizando factorización QR. La validación del algoritmo desarrollado se efectuará montando un ambiente de pruebas real tomando como base una cancha de fútbol de RoboCup Humanoid League.

El algoritmo que se propone está basado en el modelo de proyección en perspectiva de una cámara pinhole que utiliza un pequeño conjunto de características para estimar la posición de la cámara con respecto al campo de fútbol. Se construye un modelo de regresión de varias observaciones y, de este modelo las incógnitas de la pose de la cámara son estimadas, así como las incógnitas de profundidad de cada característica observada.

Para probar la efectividad del algoritmo propuesto se ideó un experimento que comprende el uso del campo de fútbol de RoboCup del Laboratorio de Robótica Móvil y Sistemas Automatizados de la Universidad La Salle, el robot humanoide T1 y una cámara PlayStation Eye montada sobre elR

mecanismo de pan y tilt del robot con una resolución de 320 × 240 píxeles.

Se marcó el campo con una cuadrícula hecha de hilos negros a intervalos de 100cm. Cada uno de los recuadros resultantes se cruzó de manera diagonal en ambas direcciones. El robot se colocó manualmente en cada una de las esquinas de la cuadrícula y se tomó una imagen para cada una de las ocho diferentes orientaciones indicadas por los cruces de los hilos. Las ubicaciones registradas para el robot asociadas a cada imagen en el conjunto de datos se pueden entonces utilizar para la validación de las ubicaciones estimadas. Los ángulos en el conjunto de datos se midieron con respecto al eje Y incrementando en contra del sentido de las manecillas del reloj, y se utilizan en lugar del sensor de

(14)

1.1 Objetivos y metodología 5 campo magnético que porta el robot.

Esta tesis está dirigida a ingenieros en cibernética, en electrónica, mecatrónica y en general a las personas que realicen investigación en el área de la robótica móvil y visión artificial.

Esta tesis está distribuida de la siguiente manera: en el Capítulo 2se describe de manera general la RoboCup, que es el evento académico de robótica móvil más reconocido a nivel mundial, y en el cual el Laboratorio de Robótica Móvil y Sistemas Automatizados ha participado desde 2008; se mencionará también cómo está construido el robot humanoide T1 y cuáles han sido algunas soluciones de visión artificial alrededor de este ambiente. En el Capítulo3se describe el modelo de proyección en perspectiva, modelo matemático en el cual se basa el algoritmo de estimación de pose propuesto en este trabajo de tesis. En el Capítulo4 se da a conocer el estado del arte en cuanto a las técnicas de extracción de características, haciendo notar que este trabajo de tesis no se enfoca en una explicación detallada de estas técnicas ya que este tema forma la base de otro trabajo de tesis dentro de nuestro laboratorio. En el Capítulo 5 se muestra el proceso de solución del algoritmo propuesto al problema de auto-localización. En el Capítulo6se muestran los resultados obtenidos en pruebas experimentales realizadas en el laboratorio. Finalmente se presentan las conclusiones del trabajo realizado en esta tesis y se propone trabajo futuro.

(15)

Capítulo 2

Robots Humanoides, Liga de RoboCup

2.1

Iniciativa RoboCup

La Copa Mundial RoboCup es una iniciativa internacional que tiene como finalidad promover el desarrollo de la investigación en el ámbito de la robótica móvil, así como de la inteligencia artificial. Esta es la competencia de robótica móvil más reconocida a nivel mundial y surgió por la necesidad de proponer problemas estándar y tener una medida de desempeño objetiva con la cual se puedan comparar las soluciones propuestas por distintos grupos de investigación. En un ejemplo de este tipo de competencias se propuso el reto del ajedrez, donde una máquina tenía como finalidad vencer al campeón mundial de ajedrez. Fue en 1997 cuando Gary Kaspárov, campeón mundial de ajedrez en ese año, fue derrotado por una computadora llamada Deep Blue. Aunque en esta competencia se trató de ganar un juego de ajedrez, la principal finalidad fue el desarrollo de tecnología capaz de generar cálculos lo suficientemente rápidos y poderosos como para poder encontrar solución a un problema que tiene un número altamente grande de soluciones posibles. Los medios informativos publicaron estos resultados y el público respondió con un gran interés, haciendo de este avance en la investigación algo llamativo y con fines que beneficiarían el desarrollo de tecnología.

Con esta idea, y basándose en el artículo “On Seeing Robots” publicado por el profesor Alan Mackworth (Universidad de British Columbia, Canadá) en un libro de visión computacional [27] en el año 1993 donde se menciona por primera vez la idea de robots autónomos jugadores de fútbol. Por otro lado, en 1997 un grupo de investigadores dio inicio a la RoboCup en donde se propone un nuevo reto para la comunidad científica: derrotar a la selección campeona de fútbol de la FIFA antes del año 2050 con un equipo de robots humanoides completamente autónomos. Aunque suena muy ambicioso, esta propuesta ha desencadenado una serie de grandes avances en la investigación en cuestiones de visión artificial, inteligencia artificial, mecánica, electrónica, robótica y diversas áreas del

(16)

2.1 Iniciativa RoboCup 7 conocimiento, cuyos resultados son publicados cada año en los simposios celebrados al finalizar dichas competencias así como en otros eventos académicos del área. Estas competencias llaman la atención del público y fomentan interés en los grupos de investigación y es de hecho la base del trabajo de esta tesis, en la que se propondrá una solución alternativa y se presentarán los resultados obtenidos al problema de la auto-localización. La auto-localización se refiere a la capacidad autónoma de los robots humanoides de determinar su posición y orientación, con respecto a un marco de referencia dado.

2.1.1

Cancha de fútbol de humanoides

Actualmente la cancha de fútbol de humanoides de la categoría Kid Size, la cual se utilizó para las pruebas experimentales de esta tesis, se encuentra compuesta por un conjunto de distintas marcas coloridas cuyas posiciones 3D son conocidas. Como se puede ver en la Figura 2.1, la cancha se encuentra compuesta por objetos de distintos colores como las porterías (azul y amarilla), los postes de medio campo ubicados a los extremos de la linea de medio campo cuyos códigos de colores se utilizan para facilitar la orientación del robot con respecto al marco de referencia de la cancha y las líneas que determinan los límites de la cancha de fútbol que son blancas sobre una alfombra verde. Como se definen en las reglas de la liga RoboCup Humanoid [30,31], las dimensiones de la cancha se muestra en la Tabla 2.1. Gracias a los colores utilizados en la cancha, es simple aplicar técnicas de segmentación del color para el reconocimiento de los objetos y la extracción de sus características siendo estas la fuente de información para el algoritmo propuesto.

Tabla 2.1: Dimensiones de la cancha en centímetros

A Longitud de la cancha 600

B Ancho de la cancha 400

C Profundidad de la portería 50

D Ancho de la portería 150

E Longitud del área de gol 60

F Ancho del área de gol 300

G Distancia a la marca del punto penal 180

I Diámetro del círculo del centro 120

J Distancia de línea al borde 70

(17)

2.1 Iniciativa RoboCup 8

1 The Field of Play 1

1 The Field of Play

The competitions take place on a rectangular field, which contains two goals, field lines, and two landmark poles, as shown in Fig.1.

Figure 1: Humanoid robot soccer field (not to scale). Table 1: Dimensions of the rectangular field of soccer play (in cm).

KidSize TeenSize AdultSize A Field length 600 900 600 B Field width 400 600 400 C Goal depth 50 60 D Goal width 150 260 E Goal area length 60 100 60 F Goal area width 300 450 300 G Penalty mark distance 180 210 180 I Center circle diameter 120 150 120 J Border strip width (min.) 70

K Distance of pole to field 40

2011 RoboCup Soccer Humanoid League Rules and Setup

Figura 2.1: Cancha para humanoides categoría KidSize en vista superior. Fuente [31].

2.1.2

Postes de medio campo

Se describen en especial estos objetos ya que son de vital importancia para determinar la orientación del robot con respecto al marco de referencia de la cancha. En la Figura 2.2 se ve la perspectiva de la cancha con los dos postes de medio campo. Cada poste mide 45cm de alto con un diámetro de 10cm. Se subdivide cada poste en tres secciones de colores de 15cm. Se nombra cada poste por el color que abarca la mayoría de éste ya que las secciones de los extremos serán del mismo color (azul o amarillo) a diferencia de la sección central. La ubicación de estos postes está determinada en conjunto por el color de la portería de la siguiente manera: viendo el poste de medio campo azul la portería que se encuentra a mano derecha será la de color azul y viceversa.

(18)

2.2 Robot humanoide 9

Figura 2.3: Poste amarillo (izquierda) y poste azul (derecha).

2.2

Robot humanoide

Los robots humanoides de la categoría KidSize, tienen una restricción de altura total de entre 30 y 60 centímetros. Constan de dos brazos, dos piernas, una cabeza unida a un torso, y pueden tener una o dos cámaras como parte del sensor de visión. El robot debe ser capaz de levantarse autónomamente, mantenerse de pie y desplazarse de manera bípeda. En la Figura 2.4 se esquematiza una versión simple de cómo se compone un robot humanoide. Es importante aclarar que existen restricciones en las reglas que determinan las dimensiones de los miembros del robot como son el área máxima del pie, la longitud de las piernas, la longitud de los brazos, la altura de la cabeza y el centro de masa del robot [31].

2.2.1

Estructura del robot humanoide T1

En el Laboratorio de Robótica Móvil y Sistemas Automatizados de la Universidad La Salle se han desarrollado diversas versiones para las competencias de la RoboCup desde el año 2008. Aunque las capacidades computacionales, mecánicas y eléctricas son libres, siempre se ha tenido la tendencia de hacer los robots de la manera más ligera posible, permitiendo así un balance entre movilidad y estabilidad, hecho que en un sistema mecánico de desplazamiento bípedo es un problema fundamental a diferencia de otros sistemas que se desplazan por ejemplo con ruedas.

Para el desarrollo de esta propuesta se utilizó el robot humanoide modelo T1, con el cual el equipo Cyberlords La Salle participó en la competencia RoboCup del año 2010. El modelo T1 se desarrolló tomando como base la estructura mecánica de un robot comercial modelo Robonova-1 de HITEC. A este robot se le modificaron varias cosas, se le agregó un grado de libertad vertical al movimiento de las piernas, se remplazó la computadora controladora, se le añadieron diversos sensores y se sustituyeron la mayoría de los servomotores HS-8498HB de las piernas por los de mayor torque HSR-5498SG también de HITEC. El mecanismo de pan y tilt cabeza que permite voltear la cámara

(19)

2.2 Robot humanoide 10

Figura 2.4: Esquema del robot humanoide en pose estándar. Fuente [31].

de izquierda a derecha y de arriba a abajo está accionado por dos servomotores HS-8498HB, que da a la cámara una mayor rigidez y rapidez de movimientos. Este diseño tiene un total de 20 grados de libertad y se representa en la Figura2.5.

2.2.2

Percepción sensorial

Para permitir que el robot humanoide perciba el medio en el que se desenvuelve se la agregaron tres tipos de sensores.

• Una única cámara de visión monocular PlayStation Eye, que está montada en un sistema deR

pan y tilt de dos grados de libertad encima de los hombros del robot.

• Una unidad de seis grados de libertad de medición inercial (IMU), basado en LPR530AL ST y giroscopios LY530ALH más un acelerómetro ADXL335 de triple eje que permite al robot identificar su orientación con respecto al vector de aceleración de la gravedad.

• Una brújula electrónica CMPS03 que le permite al robot identificar su orientación con respecto al marco de referencia del mundo.

(20)

2.2 Robot humanoide 11 Rotación en X Rotación en Y Rotación en Z Y X

Figura 2.5: Robot humanoide T1 (izquierda) y estructura de los grados de libertad (derecha).

Figura 2.6: PlayStation Eye (izquierda) y mecanismo de pan y tilt (derecha).R

2.2.3

Unidad computacional

El robot porta una computadora RB-100 (Roboard) fabricada por DMP Electronics Inc. [21] que contiene todos los puertos de entrada y salida que requiere para desempeñar las tareas en el partido de fútbol. Es una fusión entre el tradicional microcontrolador y un computador completamente funcional, todo lo que se necesita es una Micro SD Card (1-16Gb) para cargar el sistema operativo y una alimentación de 6-24 volts de corriente directa. Tiene un pequeño tamaño de 96 x 56 mm,

(21)

2.3 Sensor de visión 12

Figura 2.7: Unidad de medición inercial.

Figura 2.8: Brújula electrónica.

provocando un muy bajo consumo de energía. El procesador que trae es un Vortex86DX, una CPU x86 de 32bit corriendo a 1000MHz con 256MB DRAM. El sistema es compatible con Windows 98/ME, Windows XP, Windows Embedded CE, Windows XP Embedded, Windows Embedded Stardand, Linux distribution kernel 2.4.24, 2.4.26. Todos los servomotores y sensores, incluyendo la cámara, están directamente conectados a la RB-100, que es la única unidad de computación programable a bordo del robot. Los servomotores HITEC se conectan con la RB-100 a través de los puertos PWM. La salidas IMU se conectan con la RB-100 con seis de los puertos de entrada del convertidor analógico digital, la cámara PlayStation Eye utiliza uno de los tres puertos USB 2.0 disponibles en la tarjeta.R

2.3

Sensor de visión

Se describirá detalladamente el sensor de visión ya que es una fuente de información importante para el desarrollo de esta tesis. El sensor de visión es el dispositivo por medio del cual el robot humanoide puede adquirir información que tiene que ver con la identificación de objetos en su ambiente. Requiere extraer información de cómo se encuentran los objetos con respecto a su propio marco de referencia

(22)

2.3 Sensor de visión 13 y necesita identificar cómo se encuentra él mismo con respecto al marco de referencia de la cancha. Esta información se obtiene captando la luz en el ambiente que refleja el color de los objetos de interés. Para captar esta luz se utiliza una cámara digital cuya información es procesada para poder obtener datos y así reaccionar a los cambios que se presenten en el medio.

Los sensores de visión son altamente dependientes de la iluminación [12] y siendo uno de los principales obstáculos para la auto-localización, es importante calibrar de manera óptima los parámetros de adquisición de imagen en las cámaras, como son el tiempo de exposición, la ganancia y el balance de blancos. El sistema de visión tiene que ser lo suficientemente robusto para que la auto-localización pueda ser consistente en todo momento y proporcionar la información en tiempo real en un equipo de cómputo muy limitado debido al reducido tamaño disponible en el robot.

2.3.1

Sistemas de visión en la RoboCup

En la RoboCup se han utilizado diversos sistemas de visión para resolver los problemas de auto-localización, mapeo y reconocimiento de objetos. En las categorías de humanoides se ha utilizado comúnmente el sistema de visión monocular, aunque algunos grupos están comenzando a realizar investigaciones y han desarrollado sistemas de visión estereoscópica. En otras categorías se utilizan sistemas de visión omnidireccionales como en MiddleSize y sistemas de visión globales como en SmallSize.

Visión omnidireccional

Se refiere a los sistemas de visión que consideran un rango de visión de 360 grados en el plano horizontal. Estas cámaras permiten extraer información de todas las regiones del ambiente de trabajo en un solo instante sin necesidad de un mecanismo de pan y tilt. Normalmente utilizan espejos para llevar a cabo este tipo de funcionamiento como se muestra en la Figura 2.9 izquierda. El único inconveniente que presentan estas cámaras es que la imagen adquirida se encuentra en un patrón como en la Figura 2.9 derecha en la parte inferior y que requiere un proceso de transformación para obtener cálculos de una imagen como si fuera adquirida en el formato que presenta la la Figura 2.9

derecha en la parte superior. Este tipo de cámaras es utilizado en algunas categorías de la RoboCup, como SmallSize y MiddleSize. Sin embargo, en la categoría de robots humanoides se ha prohibido la utilización de sistemas de visión que permitan una adquisición de imagen de más de 180 grados.

(23)

2.3 Sensor de visión 14

Figura 2.9: Sistema de visión omnidireccional (izquierda) e imagen extraída de la cámara (derecha). Fuente [23].

Visión estéreo

Se refiere a los sistemas de visión que cuentan con dos cámaras. Se pueden construir con ejes oculares paralelos, convergentes o dinámicos. Su principal función es la de extraer información con respecto a la profundidad de los objetos. Considerando las dos imágenes adquiridas así como la geometría de su construcción, se puede reconstruir un ambiente en tres dimensiones a partir de este par de imágenes. Aunque como se mencionó anteriormente puede haber diversos tipos de configuraciones en las cámara, normalmente se utilizan sistemas de visión estereoscópicos con ejes oculares paralelos ya que los cálculos de profundidad se simplifican, aunque resulta más robusto el calculo de profundidad cuando los ejes oculares son convergentes [28]. En un sistema de visión estereoscópica se le conoce como disparidad a la distancia que existe entre las dos cámaras. La disparidad se utiliza para extraer información de la distancia con la que se sitúan los objetos con respecto al sistema de visión.

Figura 2.10: Sistema de visión estéreo (izquierda), imagen de la cámara izquierda (centro) e imagen de la cámara derecha (derecha).

(24)

2.3 Sensor de visión 15 Visión monocular

Es el más común de los sistemas de visión utilizados en la categoría de robots humanoides de la RoboCup. Consiste de una sola cámara y captura la escena tridimensional en una sola imagen de dos dimensiones eliminando la profundidad de los objetos. Realizando un procedimiento conocido como calibración de los parámetros de la cámara se pueden hacer cálculos que relacionen las coordenadas con respecto al marco de referencia de la cámara de un punto en el espacio con las coordenadas con respecto al plano de la imagen en la que este punto se proyecta. Precisamente este es el sistema que utiliza el robot humanoide T1 [25] y el trabajo de esta tesis se basa en las relaciones geométricas de una cámara pinhole ya que se considera una caja en cuya pared trasera se proyecta el espacio tridimensional a través de un orificio cuyo diámetro tiende a cero, es también conocida como cámara infinitesimal u oscura. En la Figura 2.11 se muestra un ejemplo de un sistema de visión monocular usando el tipo de cámara pinhole.

R

R

Pinhole Plano de imagen Eje óptico Objeto

(25)

Capítulo 3

Modelo de Proyección en Perspectiva

El modelo de proyección en perspectiva es un mapeo del espacio tridimensional del mundo percibido por la cámara hacia el espacio bidimensional de la imagen captada por la misma cámara. Este mapeo se puede deducir geométricamente por similitud de triángulos. Cabe mencionar que este modelo implica dos transformaciones importantes: la intrínseca y la extrínseca. Las transformaciones extrínsecas expresan la pose de la cámara con respecto a un marco de referencia global, mientras que las transformaciones intrínsecas permiten convertir la posición relativa de un objeto con respecto a la cámara a una coordenada en una matriz de píxeles que corresponde a la imagen. Este mapeo es generalmente aplicado para el caso de una cámara pinhole.

3.1

Cámara pinhole

Las cámaras actuales están en su mayoría basadas en el funcionamiento de la cámara pinhole, ver la Figura 3.1. La conversión de una escena en 3D a una imagen en 2D se puede realizar con este tipo de cámaras ya que como se muestra en la imagen resultante en el plano trasero de la cámara es una transformación lineal de la escena.

El modelo matemático de la cámara pinhole es ampliamente conocido. En esta tesis no se propondrá un nuevo modelo sino que se explicará como éste se generó y porqué es la base del algoritmo propuesto.

3.2

Coordenadas homogéneas

Si se considera un espacio n-dimensional, su representación en coordenadas homogéneas es (n+1)-dimensional, también llamado espacio proyectivo [40]. De esta forma un punto en un espacio de dos

(26)

3.2 Coordenadas homogéneas 17 x X Plano de imagen f Distancia focal Lente Objeto Z Eje óptico

Figura 3.1: Geometría de la cámara pinhole.

dimensiones (x, y) tiene como representación en coordenadas homogéneas el punto (λx, λy, λ) para cualquier λ diferente de cero.

Es aquí donde, gracias a la representación en coordenadas homogéneas, se puede realizar una multiplicación de matrices para transformar un punto en un espacio 3D a un plano 2D. Considerando el modelo de la cámara pinhole la Figura3.1se puede deducir por semejanza de triángulos la coordenada (x, y) en el plano de la imagen de la coordenada (X, Y, Z) del objeto en el espacio.

x f = X Z (3.1) y f = Y Z (3.2)

(27)

3.3 Geometría proyectiva 18 en coordenadas homogéneas, se obtiene

λ         f X Z f Y Z 1         = λ    x y 1    (3.3)

3.3

Geometría proyectiva

Si se toma como marco de referencia del mundo a los ejes X0, Y0 y Z0, se necesita una transformación que permita expresar estas coordenadas con respecto a las de la imagen u y v. Para poder expresar las coordenadas de un objeto en el marco de referencia del mundo con respecto al marco de referencia de la cámara X, Y y Z, se necesita encontrar una matriz de rotación Rc3×3 y un vector de traslación

Tc3×1. Se aplica la transformación como se muestra en la ecuación (3.4).

      X Y Z 1       = " Rc Tc 0t 1 #       X0 Y0 Z0 1       (3.4)

Una vez encontrada la matriz de transformación de las coordenadas del mundo al marco de referencia de la cámara, se necesita encontrar una segunda transformación. En la ecuación (3.5) se define la transformación que convierte las coordenadas en el marco de referencia de la cámara al marco de referencia del lente (3.3).

λ    x y 1   =    fx 0 0 0 0 fy 0 0 0 0 1 0          X Y Z 1       (3.5)

donde f es la distancia focal (véase la Sección 3.4) y λ = Z que es la profundidad de la marca observada.

(28)

3.3 Geometría proyectiva 19 referencia del lente al marco de referencia de la imagen u, v que se define en la ecuación (3.6)

λ    u v 1   =    ∆−1x 0 Cx 0 ∆−1y Cy 0 0 1       x y 1    (3.6) donde ∆−1

x y ∆−1y representan la longitud focal en los ejes x y y respectivamente, Cx y Cy son las

coordenadas del punto principal en la imagen.

De manera completa se construye la transformación que convierte las coordenadas en el marco de referencia del mundo a las coordenadas en el marco de referencia de la imagen.

λ    u v 1   =    ∆−1x 0 Cx 0 ∆−1y Cy 0 0 1       fx 0 0 0 0 fy 0 0 0 0 1 0    " Rc Tc 0t 1 #       X0 Y0 Z0 1       (3.7)

Si se considera la matriz de calibración K y se reescribe la ecuación (3.7) se obtiene

λ    u v 1   = K h Rc Tc i       X0 Y0 Z0 1       (3.8)

que de forma simplificada se puede reescribir de la siguiente manera

λP = KhRc Tc i " Cw 1 # (3.9)

Si se desarrolla el producto de la matriz hRc Tc

i y el vector " Cw 1 # se obtiene λP = K(RcCw+ Tc) (3.10)

donde los puntos Cw y Tc están expresados con respecto a distintos marcos de referencia, Tc es el

vector de traslación con respecto al marco de referencia de la cámara y Cw es el vector de posición

de la marca con respecto al marco de referencia del ambiente. Si se considera que Cw y que Tc se

(29)

3.4 Calibración de cámara 20 al marco de referencia del ambiente como Tw, la ecuación (3.10) se puede reescribir de la siguiente

manera

λP = K(Rc(Cw− Tw)) (3.11)

de donde el producto de las matrices KRc se pueden considerar una sola matriz M y reescribiendo

la ecuación (3.11) se obtiene

λP = M (Cw− Tw) (3.12)

que es el modelo de proyección en perspectiva que será la base del algoritmo de estimación de pose que se verá en el Capítulo5.

3.4

Calibración de cámara

Para poder utilizar el modelo de proyección en perspectiva visto en la Sección 3.3 es necesaria una calibración de cámara la cual definirá la matriz K de la ecuación (3.8). La calibración de la cámara es un proceso por el cual se identifican varios parámetros de ésta, extrínsecos e intrínsecos [35]. Los parámetros extrínsecos definen como está ubicada la cámara con respecto al marco de referencia del mundo. Para este trabajo, en cuanto a los parámetros extrínsecos, solo se definirá un par de transformaciones geométricas que se refieren a los ángulos de rotación que tiene la cámara con respecto al cuerpo del robot (véase la Sección 6.2), ya que la principal idea del algoritmo propuesto es estimar los parámetros extrínsecos Tx y Ty que son las coordenadas del vector de ubicación del

robot en la cancha.

Los parámetros intrínsecos de la cámara se refieren a las relaciones que existen entre el tamaño de objetos en el mundo 3D y su proyección en píxeles un un plano 2D. Dentro de los parámetros intrínsecos de la cámara se tiene la distancia que separa la imagen del lente, que como se vio en la Sección3.3 se le conoce como la distancia focal f . Además de la distancia focal se necesita también obtener las coordenadas Cx y Cy del punto principal en la imagen de la cámara. Existe un factor de

distorsión provocado por la lente de la cámara y este puede ser radial o tangencial [43]. La distorsión radial en general es la que más afecta a las cámaras comunes a diferencia de la tangencial [28]. Para fines prácticos, estas distorsiones se consideraron despreciables ya que en el modelo de cámara PlayStation Eye no son significativos.R

Dado que la calibración de cámara tiene diversas soluciones conocidas, en esta sección solamente se describirá la solución propuesta por Zhang [44] que es en la que se basa el Camera Calibration Toolbox for Matlab R herramienta utilizada para encontrar los parámetros intrínsecos de la PlayStation Eye.R

(30)

3.4 Calibración de cámara 21 9 hileras.

2. Se toman algunas imágenes de ese patrón en distintas posiciones (se mostrarán en la Sección 6.2).

3. Se seleccionan a través del software las esquinas del patrón de ajedrez sin tomar en cuenta las hileras de los extremos, de tal forma que se selecciona una región de 6 por 8 hileras.

4. Se estiman los cinco parámetros intrínsecos de la cámara: distancias focales en dirección X y Y , punto principal de la imagen, y factor de sesgo(relación angular entre los ejes de los píxeles en X y Y )

5. Se estiman los coeficientes de distorsión radial.

6. Se hace un refinamiento de los parámetros por minimización.

Una vez realizada la calibración de los parámetros intrínsecos de la cámara, se puede entonces construir la matriz K y utilizarla dentro del modelo de proyección en perspectiva.

(31)

Capítulo 4

Extracción de Características

La extracción de características es el proceso en el cual se aplican diferentes procedimientos para obtener información relevante a partir de una imagen de entrada. Es importante que este proceso sea robusto a cambios en la iluminación, en el tamaño de los objetos que contiene y en la rotación o ubicación de estos. Aunque la extracción de características no se desarrolló como parte de este trabajo de tesis, es un prerrequisito para el enfoque de la auto-localización presentado aquí, por lo que en esta sección describiremos brevemente algunas de las técnicas de extracción de características para ponerlas en contexto con la solución utilizada en este trabajo.

4.1

Estado del arte en extracción de características

Las técnicas actuales de extracción de características implementan en general los mismos pasos para obtener información relevante de las escenas que contienen [7,22,33]. En primer lugar se convierten las imágenes a escala de grises, es decir, cada píxel de la imagen tendrá un solo valor, en general en el rango [0 - 255]. Se utilizan imágenes en escala de grises porque se trata de encontrar objetos en general, es decir, son técnicas robustas para reconocimiento de objetos cuando no se sabe a priori el tipo de objetos y las características de éstos. Una vez convertido cada píxel a un único valor de brillo, se procede al segundo paso que es la identificación de puntos de interés. Los puntos de interés en general se pueden considerar como esquinas en los objetos. Las esquinas son buenos puntos de interés porque aportan una gran cantidad de información ya que son cambios súbitos en los brillos de la imagen, los cuales normalmente son representativos de los objetos. Los algoritmos de extracción de esquinas son robustos a cambios de traslación ya que al ser aplicados en todos los píxeles de la imagen permiten identificar las mismas esquinas en diferentes zonas de la imagen. Cabe mencionar que para proveer una robustez a los cambios de escala, estas técnicas de extracción de

(32)

4.1 Estado del arte en extracción de características 23 características realizan transformaciones a las imágenes que permite extraer puntos de interés de los objetos a diferentes escalas. Una vez identificados estos puntos de interés se procede al tercer paso, el cual consiste en generar un vector de información que lo describa entorno a la región observada y permita tanto distinguirlo de los demás como repetir su identificación en otra escena donde aparezca el mismo punto de interés. Estos descriptores de puntos de interés se construyen de manera que sean robustos a cambios de iluminación y rotación. Una vez identificados los descriptores de cada objeto se suelen construir bases de datos donde se asocia un conjunto de descriptores a un objeto, permitiendo identificarlo independientemente del punto de vista.

Como primera técnica de extracción de características se describirá SIFT por sus siglas en inglés Scale Invariant Feature Transform una de las más relevantes en la literatura ya que ha sido base para comparar otras técnicas modernas. Como su nombre lo dice, esta técnica provee un algoritmo que permite extraer características de los objetos de interés independientemente de su escala, pero también es una técnica robusta a rotaciones y cambios de iluminación. En su artículo [24], Lowe describe la serie de pasos para este algoritmo:

1. Detección de extremos en el espacio de escalas: Utilizando una Diferencia de Gaussianas (DoG) entre las imágenes se puede encontrar los extremos máximos y mínimos de cada región de éstas. Al realizar una aplicación sucesiva de filtros de Gaussianas sobre la imagen original, así como sobre las reducciones de la misma, se obtiene un espacio de escalas. Si se obtienen las diferencias entre imágenes adyacentes del mismo tamaño, se puede conseguir una Diferencia de Gaussianas que es una aproximación matemática a lo que se conoce como Laplaciano de Gaussianas (LoG). Este proceso permite descubrir los puntos importantes en las imágenes, por medio de una búsqueda de máximos y mínimos sobre cada píxel con vecindad 26.

2. Localización de los puntos clave: Al evaluar cada píxel y comparar su valor con respecto a sus 26 vecinos, 8 en la misma imagen, sus 9 vecinos en la imagen superior y los 9 de la imagen inferior se puede determinar que este píxel es un máximo o un mínimo.

Una vez obtenidos los puntos extremos de las DoG, se utiliza un proceso de limpieza para descartar los puntos clave que no aporten información relevante al algoritmo. Para esto, se compara la intensidad de los puntos extremos contra un umbral. De esta manera los píxeles con muy baja iluminación son descartados. Un filtro de esquinas es aplicado posteriormente. Se utilizan máscaras de extracción de contornos para identificar aquellos puntos que no sean esquinas y eliminarlos. Los puntos extremos que pertenecen a las esquinas de los objetos son buenos puntos clave.

(33)

4.1 Estado del arte en extracción de características 24 una región alrededor de éste. De cada píxel en la región, se evalúan los cambios con respecto a los píxeles adyacentes en dirección x y y. Al colocar en un histograma de orientaciones y magnitudes los valores encontrados en la región, se asignan una o más orientaciones al punto clave.

Se considera un nuevo punto clave por cada orientación significativa que se encuentre, por cada punto clave en una misma posición de la imagen. Todas las operaciones a realizarse sobre las imágenes se llevan a cabo con referencia a esta orientación para asegurar invariancia a rotación. 4. Cálculo de descriptores: Los descriptores son una identificación de los puntos clave. Estos descriptores representan una “firma” de cada uno de estos puntos, la cual es invariante a escala, rotación, traslación y cambios de iluminación. Para calcular los descriptores se coloca una máscara de dieciséis píxeles sobre cada punto clave. Ésta estará ponderada por una máscara de Gauss. Se divide en 16 regiones de 4x4 píxeles y se calculan los gradientes de cada región. Estos gradientes se representan en un histograma de magnitudes y orientaciones de 8 clases. Para una mejor precisión, Lowe sugiere utilizar una expansión de Taylor para encontrar el valor exacto de los gradientes que muy probablemente se puede ubicar en medio de los píxeles y no en un único píxel necesariamente.

Para asegurar invariancia a rotación, las coordenadas de la mascarilla y los valores de las orientaciones de cada gradiente se toman con referencia a la magnitud principal del punto clave. Una vez obtenidos los 16 histogramas de 8 clases, se construye un vector que contendrá estos 128 datos. Este vector es el descriptor del punto clave y se normaliza para asegurar invariancia a cambios de iluminación.

La siguiente técnica a describir es SURF por sus siglas en inglés Speeded-Up Robust Features. Herbert et al [2] propusieron un método que es relativamente similar al SIFT. En esta técnica se realizan los mismos pasos que en el SIFT pero empleando herramientas matemáticas diferentes. Por ejemplo, para la extracción de puntos de interés a diferencia de la DoG utilizada por Lowe, el algoritmo de SURF utiliza una aproximación de la matriz Hessiana que es computacionalmente más eficiente. Por medio del determinante de esta matriz se localizan los puntos de interés, así como la escala.

El descriptor propuesto en SURF utiliza un vector por defecto de 64 elementos. Para estimar la orientación del descriptor se calcula el "Haar-wavelet" para las direcciones x y y en una región circular alrededor del punto de interés de un radio 6s siendo s la escala a la que se identificó el punto de interés. Al igual que en SIFT, la orientación se determina acumulando la suma de todos los resultados en una región de 60◦. Para construir el vector de 64 elementos se determina una región cuadrada alrededor del punto de interés con un tamaño de 20s. Posteriormente, esta región se subdivide en 4

(34)

4.1 Estado del arte en extracción de características 25 regiones de 4 × 4 píxeles y para cada x y y se suavizan los resultados mediante una Gaussiana para obtener dx y dy así como su valor absoluto |dx| y |dy|. Con estos valores se construye el vector descriptor de la característica extraída.

Las técnicas vistas previamente (SIFT y SURF) proponen los mismos pasos, crear un detector de puntos de interés y construir un descriptor para este punto. Como se pudo notar, la detección de los puntos de interés en ambas técnicas implica un proceso altamente costoso en el ámbito computacional. Ahora se mencionará un par de técnicas que proponen algoritmos que se enfocan únicamente a la detección de puntos de interés, dejando de lado los descriptores. En 1995, Smith et al [39] proponen una técnica llamada SUSAN por sus siglas en inglés Smallest Univalue Segment Assimilating Nucleus. Esta técnica se utiliza tanto como para encontrar contornos como para encontrar esquinas, esto controlado con un simple umbral.

El concepto de SUSAN se basa en obtener un valor que permita saber precísamente si un píxel X en (x, y) corresponde a una esquina, a un contorno o a un área uniforme. Este valor está dado por la función

n(X) =X

r

c(r, X) (4.1)

donde n(X) es el tamaño de un área de un brillo aproximado al píxel X también llamado núcleo. Esta área se calcula a partir de la sumatoria de una función umbral que determina si los píxeles analizados en una región circular alrededor del núcleo tienen un brillo cercano a éste

c(r, X) = (

1 if |I(r) − I(X)| ≤ t

0 if |I(r) − I(X)| > t (4.2)

donde c(r, X) representa un valor booleano que determina si el píxel r tiene un brillo I(r) cercano al brillo del núcleo I(X) en un umbral t. La región que proponen Smith et al, es una región circular de radio 3.4 píxeles, es decir, un círculo de 37 píxeles de área. Posteriormente, el valor n(X) se compara contra otro umbral g que determina si el área de la región es lo suficientemente pequeña como para considerarse una esquina, un contorno o si es mayor que este umbral se considerará que el área total tiene un brillo uniforme. Esta técnica también se utiliza como filtro para limpiar imágenes.

Otra técnica que se describrirá es FAST [34] por sus siglas en inglés Features from Accelerated Segment Test propuesta por Rosten y Drummond, en la cual hacen una simplificación de SUSAN. En FAST, en lugar de realizar una sumatoria de todos los puntos en la región circular alrededor del núcleo que tenga un brillo similar a este, se analiza un número n de píxeles contiguos. Los píxeles a analizar describen una circunferencia alrededor del núcleo, si estos n píxeles son más brillantes o más oscuros que el núcleo entonces éste se considerará una esquina. Para simplificar más el procesamiento, se

(35)

4.2 Espacio de color 26 analizan en un principio sólo cuatro píxeles, los que se encuentran en las direcciones de la rosa de los vientos. Si estos píxeles son al mismo tiempo más brillantes o más oscuros que los del núcleo, se procede a analizar todos los demás. Para cada píxel de esta circunferencia se realiza una evaluación que puede determinar uno de tres estados: que el píxel sea más oscuro, sea similar o sea más brillante. Esto se evalúa de la misma forma que en (4.2) de SUSAN pero tomando en cuenta el umbral t de manera positiva y negativa. Aunque tiene un alto nivel de repetibilidad y es muy eficiente para detectar puntos de interés comparado con los otros métodos de detección de esquinas, es altamente sensible al ruido, a diferencia de las DoG propuestas por Lowe [24].

La última técnica a describir considera que los objetos de interés pertenecen una gama de colores de conocida a priori con lo cual en lugar de transformar las imágenes a escala de grises se aplica una segmentación por color. Esta segmentación por color permite aislar objetos de distintos colores y así poder analizar objetos independientes por su forma o patrón de colores. Para poder extraer la región de estos objetos se generan imágenes binarias, es decir, imágenes cuyos píxeles tienen un valor en el intervalo [0 - 1] en donde se considera al objeto de interés con valores igual a uno y el fondo igual a cero. Una vez que se obtienen los objetos en imágenes binarias de manera independiente se aplican técnicas de reconocimiento de patrones, como en este caso, se consideran los momentos invariantes de Hu [20]. Se genera una base de datos de los momentos invariantes de Hu extraídos para cada objeto y una ves que la tarea de reconocimiento de objetos se encuentra en ejecución se identifica un nuevo objeto del cual se extraen y comparan los momentos invariantes de Hu contra los almacenados previamente en la base de datos.

Por el momento, en las canchas de la liga de humanoides de la RoboCup se cuenta con colores predefinidos (naranja, amarillo, azul, entre otros) lo cual simplifica la tarea de identificar objetos. Al realizar una segmentación por color, se pueden obtener imágenes binarias para cada uno de los colores predefinidos. Dadas estas imágenes binarias, la identificación de objetos, por forma, tamaño, o código de colores resulta en una implementación más simple y económica computacionalmente. Es por ello que para esta metodología se utilizó una combinación de técnicas que integran segmentación por color, identificación de código de colores e identificación de formas en imágenes binarias por medio de momentos. La aplicación de esta técnica se detallará mas a fondo en las secciones siguientes.

4.2

Espacio de color

Los espacios de color son modelos que describen cómo se componen los colores. Para separar los colores en la escena de una imagen de manera precisa es muy importante hacer una buena elección del espacio de colores con el que se procesará dicha imagen, especialmente cuando ésta se realiza en

(36)

4.2 Espacio de color 27 un ambiente de iluminación no controlado [25,26]. El espacio de color con el que normalmente se trabaja a nivel aplicación en los sistemas de cómputo es el RGB (red, green, blue) y en este caso en la arquitectura del robot es el espacio nativo con el cual trabaja la cámara PlayStation Eye [R 29]. Un

segundo espacio de color es el YCrCb (Iluminance, Chrominance red and Chrominance blue), el cual es el espacio en el que comúnmente trabajan las cámaras web. El tercer espacio de color a consideración en este trabajo es el HSV (Hue, Saturation, Value), el cual se representa en coordenadas cilíndricas y es el utilizado en este trabajo. A continuación, se detallarán las implicaciones de usar cada uno de estos espacios para ponerlos en contexto.

4.2.1

RGB

Se basa en la intensidad de los colores rojo, verde y azul. Este modelo consiste en la adición de los colores primarios para generar otros colores. En las cámaras, el sensor más común es el filtro de Bayer en la Figura 4.1, donde cada píxel está conformado por cuatro filtros de colores: rojo, azul y dos verdes. Al ingresar la luz al sensor, éste entrega valores dependiendo de la cantidad de luz que atraviesa cada filtro. Una vez adquiridos los valores, se realiza una interpolación generalmente a nivel de software, para generar una matriz de tamaño w × h donde w es el ancho de la imagen y h la altura y, donde cada punto (x, y) estará constituido por tres valores representando los colores primarios generalmente en el rango [0 − 255]

Figura 4.1: Filtro Bayer en el sensor CCD.

Este espacio de colores ofrece la ventaja de que es muy fácil de comprender ya que por ejemplo un píxel con valores (0,0,0) sería un píxel negro, uno blanco sería (255,255,255) y un píxel puramente verde sería (0,255,0). Este es el espacio nativo de la cámara utilizada en este trabajo y de ser utilizado implicaría una mayor rapidez en el procesamiento general subsecuente de las imágenes.

(37)

4.2 Espacio de color 28

4.2.2

YCrCb

Actualmente la mayoría de los medios digitales utiliza este espacio de color. Por ejemplo, las cámaras web utilizan este espacio de color de forma nativa [36]. Las transmisiones televisivas han incrementado la demanda de algoritmos digitales para el procesamiento de video y utilizan este espacio de colores como base de sus algoritmos. Existen diferentes tipos de conversiones a partir del espacio de color RGB, aquí se analizará el propuesto por la International Telecomunication Union (ITU) en su especificación ITU-R BT.709-5 [38].

Tomando como constantes: Kry = 0.299, Kgy = 0.587 y Kby = 0.114 que tienen la propiedad de sumar 1,

Y = Kry · R + Kgy · G + Kby · B (4.3)

Cb = B − Y (4.4)

Cr = R − Y (4.5)

Kry + Kgy + Kby = 1 (4.6)

En el caso de utilizar cámaras web, este espacio de color nativo permite una robustez a los cambios de iluminación mayor que el espacio RGB.

4.2.3

HSV

En este espacio de color se consideran aspectos diferentes de los colores como son el matiz, la saturación y el valor. El matiz es el atributo que describe el color puro, por ejemplo identifica si un color es rojo, verde, amarillo, morado etc. La saturación describe un grado de dilución del color en luz blanca, es decir, comprende el rango del color puro al blanco. El valor representa el brillo del color, es decir, va del negro al color puro. Mediante una transformación geométrica de espacios se pueden convertir los valores obtenidos por el sensor de las cámaras en RGB al espacio de colores HSV [15].

H =      43 × (G − B) / (M AX − M IN ) si M AX = R 85 + 43 × (B − R) / (M AX − M IN ) si M AX = G 171 + 43 × (R − G) / (M AX − M IN ) otro caso (4.7)

(38)

4.3 Solución utilizada para la extracción de características 29 S = ( 0 si M AX = 0 1 −M AXM IN otro caso (4.8) V = M AX (4.9) donde • M AX : max{R, G, B} • M IN : min{R, G, B}

Este espacio de color ha resultado ser uno de los más robustos a cambios de iluminación [6,14,

41], pero implica un procesamiento computacional que en sistemas embebidos puede resultar en un incremento del tiempo de procesamiento de la tarea de visión computacional.

4.3

Solución utilizada para la extracción de características

La auto-localización del robot en el campo de fútbol se realiza con la extracción de las 14 marcas ya descritas en la Sección 1. Para extraer las características en este trabajo, la imagen es procesada aplicando la última técnica de extracción de características que se vio en la Sección 4.1. La segmentación se realizó por colores azul y amarillo. Por las características de los espacios de color antes mencionadas, se utilizó el espacio HSV. Este espacio se restringió a un mínimo y un máximo valor a lo largo de cada uno de los tres ejes, así la segmentación para cada color solamente requiere de seis parámetros de calibración. El resultado del procedimiento de la segmentación es un par de imágenes binarias, una para cada color. Este resultado se ejemplifica en la Figura4.2.

En el segundo paso, el algoritmo busca por contornos en cada imagen binaria, delimitando los objetos independientes y produciendo como resultado una lista de objetos para cada color, guardando la información de las esquinas del rectángulo que contiene todos los píxeles de cada objeto.

Para el paso tres, la lista de objetos resultantes del paso anterior se analiza en busca de los postes de medio campo o beacons y las porterías. Los beacons se buscan primero. Para el beacon azul-amarillo-azul, se selecciona el primer objeto amarillo y se busca por segmentos azules en los límites inferior y superior en la lista de objetos azules a la misma distancia arriba y abajo. Si la búsqueda resulta positiva, se acepta el objeto como beacon y los objetos amarillo y azules se eliminan de sus respectivas listas. En caso de no resultar positiva la búsqueda, se continua con el siguiente objeto en la lista amarilla y se repite el mismo procedimiento hasta analizar toda la lista. Para el beacon amarillo-azul-amarillo se realiza un procedimiento análogo. Los segmentos cilíndricos de cada beacon

(39)

4.3 Solución utilizada para la extracción de características 30

(40)

4.3 Solución utilizada para la extracción de características 31 se ven prácticamente como rectángulos desde cualquier punto de vista. El centroide de cada uno de estos segmentos se utiliza en esta metodología para representar la proyección en la imagen del centro de masa de ese segmento. Esto provoca un error de medición pequeño pero tolerable para los casos en los que la proyección del segmento del beacon está cerca del límite superior o inferior de la imagen. Después de la búsqueda de beacons, solo existe la posibilidad de tener las porterías y otro tipo de objetos en la lista. Para las porterías, se construyó una base de datos de momentos invariantes de Hu [20] para los tres diferentes casos en los que se puede presentar una portería: un poste de la portería, parte del travesaño y poste de la portería y una portería completa, como se muestra en la Figura 4.3. Se empieza por analizar los objetos restantes de la lista, calculando los momentos invariantes de Hu para cada uno y comparándolo con los de la base de datos. En el momento en el que se identifica una correspondencia, se analiza el objeto para identificar sus esquinas. El tipo de correspondencia en la base de datos determina el número de esquinas a buscar. En la Figura 4.2 se muestra un ejemplo de las características extraídas con esta metodología.

(41)

Capítulo 5

Estimación de Pose

La estimación de pose se refiere a aproximar la posición y orientación de un objeto con respecto a un marco de referencia. Por practicidad se le llama pose a la combinación de posición y orientación de un objeto con respecto a un marco de referencia. Este cálculo es muy común en aplicaciones de visión y robótica para poder obtener información acerca de los objetos y poder realizar interacciones entre lo detectado por los sensores de visión y los actuadores de los robots. En este capítulo se describirá este problema desde dos puntos de vista diferentes: problema directo y problema inverso. Se referirá al problema directo de estimación de pose como la tarea de estimar la posición y orientación de un objeto móvil en una escena con respecto a un marco de referencia determinado a partir de la o las imágenes adquiridas por una o más cámaras cuya posición y orientación es constante y conocida. El problema inverso de estimación de pose se refiere a determinar la posición y orientación de una cámara móvil con respecto a un marco de referencia determinado a partir de la observación de objetos en la escena cuya posición es constante y conocida. El modelo matemático de la cámara pinhole permite diseñar una misma herramienta que da solución a estos dos problemas. Este trabajo se enfocará en el problema inverso de estimación de pose ya que es lo que permite a los robots humanoides determinar su pose dentro de la cancha de fútbol.

Para fines de una mejor explicación y relevancia para este trabajo, se describirá primero la solución al problema inverso de estimación de pose ya que es el resultado de esta estimación lo que determina la localización del robot con respecto al marco de referencia de la cancha.

(42)

5.1 Problema inverso 33

5.1

Problema inverso

5.1.1

Estado del arte en auto-localización

Para poner en contexto la solución propuesta en este trabajo al problema de la auto-localización, se describirá uno de los procedimientos más utilizados en la actualidad por los equipos participantes en la RoboCup que es el filtro de partículas basado en el método conocido como Localización por Monte Carlo, por sus siglas en inglés MCL [9]. Los filtros de partículas son algoritmos probabilísticos que estiman la posición del robot a partir de la intersección de conjuntos de probabilidades de supuestas posibles posiciones. En su artículo, Schulz et al [37] describen como llevan a cabo su auto-localización utilizando un filtro de partículas.

Inicialmente se extraen características de las imágenes adquiridas por el robot. De estas imágenes la única información necesaria es el simple hecho de saber que marca conocida de la cancha se observó. Se distribuye un número n de partículas en la cancha. Partículas se refiere a las posibles posiciones que puede tener el robot en la cancha y depende del número de ellas la resolución que se quiere dar a la estimación de la pose (X, Y, θ) del robot con respecto al marco de referencia de la cancha. Se analizan independientemente las probabilidades de observación de cada tipo de marca. En este ejemplo se utilizan los postes de las porterías, los beacons, las líneas blancas de la cancha, así como sus cruces. Se calcula la probabilidad en cada partícula para las marcas de tipo línea, poste, beacon, o cruce y si la combinación de estas probabilidades no ofrece una solución única, se cambia el punto de vista, ya sea que el robot avance o gire su cabeza. En el momento que el robot cambia de punto de vista, todas las partículas propuestas lo hacen también, es decir, si el robot avanzó 5cm, cada partícula también lo hará. Una vez desplazadas las partículas, se vuelve a realizar una observación y de las partículas se eliminarán las que no tengan la probabilidad de observar las nuevas marcas. En cada interacción se agregan partículas aleatorias para dar una robustez a cambios bruscos de posición (como cuando un humano toma el robot y lo cambia de posición mientras el algoritmo sigue funcionando). El algoritmo nunca termina ya que siempre está calculando la pose más probable, inicilizándose una posición estimada con un error del tamaño total de la cancha y posteriormente mientras se combinan las probabilidades, el error se va reduciendo hasta con un margen de error de 17cm.

5.1.2

Algoritmo propuesto

La solución que se presenta al problema de auto-localización está basado en el modelo de proyección de la cámara pinhole [16]. Una idea general de como funciona esta propuesta sería la siguiente: se

(43)

5.1 Problema inverso 34 trata de saber cuál es la pose de la cámara en la cancha, es decir, desde que punto en el espacio fueron tomadas las fotos que se están analizando. Como se presentó en la Sección 3.3, a partir de las marcas que se ven en la imagen se puede saber en donde están estas marcas en el espacio, si se conoce donde se encuentran las marcas que se observaron con respecto al robot, entonces fácilmente se puede estimar donde se encuentra el robot con respecto a estas marcas. Este problema se puede formular como en la ecuación (5.1), donde i es el índice de la observación, Ci, Pi, θi y T se definen

como en la Sección 1, λi es la incógnita de la profundidad de la marca observada con respecto al

marco de referencia de la cámara, y M (θi) es la matriz de proyección que para este caso se define

como en la ecuación (5.2).

λiPi = M (θi) (Ci− T ) (5.1)

M (θi) = KRyRrRtRpR(θi)O (5.2)

En la definición de M (θi) la matriz O definida en (5.3) convierte los ejes del marco de referencia

del campo de manera que coincidan con los del marco de referencia del robot, así como fueron descritos en la Figura 5.1(izquierda). La matriz R(θi), definida en la ecuación (5.4), es una rotación

producida por el mecanismo de pan de la cámara más la orientación del robot con respecto al campo. Aunque para este análisis se asume la pose del robot como la pose estándar con un ángulo de tilt igual a cero, fue claro desde el momento en que los datos experimentales se produjeron, que los pequeños errores en el mecanismo de movimiento de la cámara tienen que considerarse ya que la solución es sensible no solo al ángulo de tilt, sino también al de pan y roll. Las matrices Rp,

Rt y Rr, definidas en la ecuación (5.7), la ecuación (5.8) y la ecuación (5.9) respectivamente, son

matrices de rotación que toman en cuenta estas pequeñas desviaciones. La matriz Ry, definida en

la ecuación (5.5), es una refleccion a lo largo del eje Y que toma en cuenta el factor de que los píxeles en la imagen se consideran de arriba para abajo, como se muestra en la Figura5.1(derecha). Finalmente, K es la matriz de calibración de la cámara [4,5,18,44] definida en la ecuación (5.6), en la que u0 y v0 son la coordenadas del punto principal de la imagen, y fx y fy son las distancias

focales expresadas en unidades de píxeles horizontales y verticales respectivamente.

O =    −1 0 0 0 0 1 0 1 0    (5.3)

Referencias

Documento similar

grupos de interés ... La información sobre las actuaciones administrativas automatizadas y los algoritmos utilizados por las Ad- ministraciones públicas ... Fortalecer la calidad

Consecuentemente, en el siglo xviii hay un cambio en la cosmovi- sión, con un alcance o efecto reducido en los pueblos (periferia), concretados en vecinos de determinados pueblos

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de