INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY Desarrollo de un Sistema de Visión para la Localización y Navegación de Robots Humanoides TESIS PARA OPTAR POR EL GRADO DE MAESTRO EN CIENCIAS DE LA INGENIERÍA PRESENTA ERICK ROGELIO CRUZ HERNÁNDEZ Asesor: Comité de Tesis: Jurado: DR. ALEJANDRO ACEVES LÓPEZ Presidente Secretario Vocal Atizapán de Zaragoza, Edo. De Méx., México, abril de 2011
151
Embed
Desarrollo de un Sistema de Visión para la Localización y Navegación de …homepage.cem.itesm.mx/aaceves/Bogobots/seminario/Tesis... · 2011-10-10 · Figura 1.1 Cancha de juego
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
Desarrollo de un Sistema de Visión para la Localización y Navegación de Robots Humanoides
TESIS PARA OPTAR POR EL GRADO DE MAESTRO EN CIENCIAS DE LA INGENIERÍA
PRESENTA
ERICK ROGELIO CRUZ HERNÁNDEZ
Asesor:
Comité de Tesis:
Jurado:
DR. ALEJANDRO ACEVES LÓPEZ Presidente Secretario Vocal
Atizapán de Zaragoza, Edo. De Méx., México, abril de 2011
2
RESUMEN
El presente trabajo muestra el desarrollo y los resultados obtenidos de un sistema de visión
artificial que proporciona los elementos necesarios para que los robots humanoides del
Tecnológico de Monterrey, Campus Estado de México sean capaces de localizarse y
desplazarse a diferentes lugares dentro de un ambiente estructurado.
Desde 2008 el Tecnológico ha participado en la competencia internacional de RoboCup
categoría Humanoid League – Kid Size. En esta categoría los robots son diseñados para jugar
partidos de futbol soccer de forma autónoma bajo el reglamento del organismo de RoboCup.
El principal sensor que utilizan los robots para adquirir información del entorno es un
sistema de visión basado en una cámara que captura imágenes del ambiente.
En la investigación presentada se desarrolla un sistema de visión capaz de adquirir y
procesar varias imágenes por segundo, de manera que se asegura que el sistema robótico
cuente con información oportuna en un ambiente dinámico como lo es un partido de futbol.
A fin de poder reconocer los diferentes elementos del terreno de juego, se realiza una
segmentación (clasificación) de los pixeles encontrados en cada imagen. Debido a que los
objetos de interés (porterías, marcas de referencia, pelota) tienen por reglamento colores
previamente especificados, la segmentación de pixeles se hace en base al color. Se propone
una técnica de segmentación por color basada en la agrupación de regiones elipsoidales
rotadas en el espacio. El objetivo es encontrar el elipsoide que envuelva la distribución de las
diferentes tonalidades para un color dado de un ambiente real. Los resultados de las pruebas
realizadas bajo esta técnica también se presentan. Adicionalmente se diseñó una herramienta
que consiste en una interfaz gráfica con la que el usuario puede encontrar de manera
semiautomática los parámetros que definen al elipsoide característico utilizando para esto
imágenes en línea obtenidas de la cámara del propio robot.
Enseguida se muestra el algoritmo propuesto para la identificación y diferenciación entre los
objetos de la cancha (porterías y marcas de referencia). El correcto reconocimiento de estos
elementos resulta de interés ya que con esto, los robots pueden tomar decisiones de alto nivel
útiles para la estrategia de juego.
Utilizando la información sobre los objetos encontrados en la cancha, se plantea un algoritmo
de localización basado en un método no-probabilístico. Este método utiliza un par de objetos
de posición fija y conocida para realizar una triangulación entre estos objetos y el robot. Con
esto se define la posición del robot en la cancha. Adicionalmente con la información sobre el
ángulo que guarda cada uno de los objetos con respecto al robot, es posible también
3
determinar la orientación del mismo, con lo que se consigue una solución completa de
localización sobre el plano de juego.
Finalmente, se presenta una aplicación que utiliza la información sobre la localización del
robot, se trata de una rutina de auto-posicionamiento implementada en el robot que lo
conduce desde una localización inicial hasta una posición y orientación deseadas. La
metodología de navegación propuesta es iterativa a fin de reducir el error de posicionamiento
final. Los resultados de las pruebas llevadas a cabo tanto para los algoritmos de localización
como para las rutinas de navegación se muestran también en este documento.
Los robots humanoides del campus son ahora capaces de auto-localizarse y navegar hasta
una determinada ubicación en un tiempo menor a los dos minutos, realizando en la mayoría
de las ocasiones de tres a cuatro iteraciones de la rutina de navegación propuesta.
1.7 Estructura del manuscrito ................................................................................................................. 24
2 Marco Teórico ................................................................................................................................................... 26
2.2 Adquisición de la imagen ................................................................................................................... 29
2.3 Espacios de Color ................................................................................................................................... 31
Figura 1.1 Cancha de juego para robots humanoides ................................................................................ 12
Figura 1.2 Segmentación para color amarillo en RoboCup 2008 ......................................................... 14
Figura 1.3 Segmentación de color naranja en RoboCup 2008 ............................................................... 14
Figura 1.4 Robots Participantes en RoboCup 2008 .................................................................................... 15
Figura 1.5 Referencia Azul ......................................................................................................................... 18
Figura 1.6 Referencia Amarilla ......................................................................................................................... 18
Figura 1.7 Bogobot 1 con cmucam3 .................................................................................................................. 20
Figura 1.8 Roboard RB-100 .................................................................................................................................. 20
Figura 2.1 Imagen de Alta Resolución .............................................................................................................. 27
Figura 2.2 Imagen de Baja Resolución ............................................................................................................. 27
Figura 2.3 Muestra entre diferentes niveles de cuantización 8, 4, 2 y 1 bit ..................................... 28
Figura 2.4 Espacio de Color RGB ........................................................................................................................ 31
Figura 2.5 Identificación de Colores en Imagen ........................................................................................... 32
Figura 2.6 Espacio de Color YUV ........................................................................................................................ 33
Figura 2.7 Espacio de Color HSI .......................................................................................................................... 34
Figura 2.8 Segmentación de Imágenes ............................................................................................................. 37
Figura 2.9 Localización por triangulación ...................................................................................................... 40
Figura 3.1 Análisis de la distribución del color en el espacio RGB (para color amarillo, verde y
Figura 3.2 Segmentación por umbrales simples .......................................................................................... 44
Figura 3.3 Comparación entre distribución del color en HSI y en RGB .............................................. 45
Figura 3.4 (Superior) Elipsoide sin Rotación para segmentación del color amarillo, (Inferior)
Elipsoide con rotación para segmentación del color amarillo ......................................... 47
Figura 3.5 Izquierda: elipsoide sin Rotación, Central: rotacion en eje Z, Derecha: Rotación en
eje X ........................................................................................................................................................... 49
Figura 3.6 Elipsoide Rotado en el espacio y elipsoide sin rotación ..................................................... 50
Figura 3.7 Línea de tendencia para componentes rojo (r) y verde (G) . ........................................... 52
Figura 3.8 Segmentación por Elipsoides ......................................................................................................... 56
Figura 3.9 Resultados de Segmentación Elipsoides vs. Umbrales Simples ....................................... 56
Figura 3.10 Izq. – Imagen con colores amarillo y azul, central – región de color amarillo, der. –
región de color azul. ........................................................................................................................... 57
Figura 3.11 Filtro con umbrales simples y Posterior segmentación con elipsoides ..................... 59
8
Figura 3.12 Ejemplo de imágnes segmentadas durante la comparación de la tabla 3.1 ............. 60
Figura 3.13 Vista general de la interfaz de segmentación semiautomática ..................................... 61
Figura 3.14 Detalle de Imágen en línea y representación tridimensional ........................................ 63
Figura 3.15 Segmentación de varios colores Y herramientas de configuración ............................. 64
Figura 3.16 Segmentación de imágenes mediante regiones elipsoidales (colores verde y
Figura 4.1 a) Portería azul 2009, b) Porteria amarilla 2009, C) Marca de referencia lateral
amarilla 2009, d) Marca de referencia lateral azul 2009 ......................................................................... 70
Figura 4.2 Ubicaciones seleccionadas para el análisis de objetos ........................................................ 71
Figura 4.3 A) Portería amarilla 2010, B) Portería azul 2010, C) Marca de referencia lateral
amarilla 2010, D) Marca de referencia lateral azul 2010 ................................................ 74
Figura 4.4 Distancia entre centros de masa para los colores observados ........................................ 78
Figura 4.5 Separación entre centros de masa para identificación de marcas laterales ............... 81
Figura 4.6 Rango de giro en eje Z para la cabeza del robot (vista superior) .................................... 83
Figura 4.7 Comportamiento en los movimientos de un servomotor estándar ............................... 84
Figura 4.8 Ángulo de un objeto con respecto al centro de una imagen .............................................. 85
Figura 4.9 Estimación de ángulo de objeto con respecto a frente de robot ..................................... 85
Figura 4.10 Estimación de distancia a objeto en suelo ............................................................................. 86
Figura 4.11 Convención utilizada para el ángulo alfa ................................................................................ 87
Figura 4.12 Estimación de ángulo beta ............................................................................................................ 88
Figura 4.13 Percepción de tamaño de un objeto a diferentes distancias .......................................... 88
Figura 4.14 Centro de masa Para porteria completa e incompleta en una imagen ....................... 90
Figura 4.15 Imágenes muestra de porterías incompletas ....................................................................... 91
Figura 4.16 Interfaz de Identificación .............................................................................................................. 94
Figura 5.1 Sistema coordenado utilizado en el trabajo de tesis ............................................................ 99
Figura 5.2 Ajuste de ángulo terrestre a sistema coordenado del campo ........................................ 100
Figura 5.3 Triangulación por dos ángulos - una orientación ............................................................... 101
Figura 5.4 Nomenclatura en ecuación de Teorema del coseno .......................................................... 103
Figura 5.5 Triangulación por teorema de cosenos................................................................................... 104
Figura 5.6 Posicionamiento final de robot .................................................................................................. 106
Figura 5.7 Sistema de orientación .................................................................................................................. 107
Figura 5.8 Barrido en rotación de la cabeza alrededor del eje Z ........................................................ 109
Figura 5.9 Diagrama de sistema de caminado ........................................................................................... 111
Figura 5.10 Rotación de Robot hacia destino final .................................................................................. 114
Figura 5.11 Llegada de robot a destino en tres iteraciones ................................................................. 115
9
Figura 5.12 Comunicación remota Robot - Computadora .................................................................... 117
Figura 5.13 Interfaz de visualización para localización - navegación .............................................. 117
Figura 5.14 Localización Real Vs. Localización estimada ...................................................................... 120
Figura 6.1 Visualización 3d sobre la localización del robot en una estación remota ................ 123
Figura C.1 Tarjeta principal Roboard y periféricos utilizados en Bogobot .................................... 129
Figura C.2 Puertos para periféricos instalados en el robot .................................................................. 130
Figura C.3 Interruptor Principal de encendido ......................................................................................... 131
Figura C.4 Acceso al escritorio remoto ......................................................................................................... 132
Figura C.5 Acceso al sistema desde el escritorio remoto ...................................................................... 133
Figura C.6 Programa principal de juego ....................................................................................................... 134
Figura D.1 Vista general de interfaz gráfica de segmentación ............................................................ 136
Figura D.2 Detalle de herramienta de segmentacion 1 .......................................................................... 137
Figura D.3 Detalle de herramienta de segmentación 2 .......................................................................... 138
Figura D.4 Detalle de herramienta de segmentación 3 .......................................................................... 139
Figura D.5 Detalle de herramienta de segmentación 4 .......................................................................... 140
Figura D.6 Detalle de herramienta de segmentacion 5 .......................................................................... 141
Figura D.7 Detalle de herramienta de segmentación 6 .......................................................................... 142
Figura D.8 Segmentación elipsoidal y pre-filtro con prisma vistos en gráfico tridimensional de
Tabla 1.1 Especificaciones de Bogobot 1 .................................................................................................. 19
Tabla 1.2 Especificaciones de Bogobot 2 .................................................................................................. 21
Tabla 2.1 conversión entre espacio RGB y YUV [39] ........................................................................... 32
Tabla 3.1 Comparación entre métodos de segmentación simultánea de los colores azul,
amarillo, verde y Blanco............................................................................................................. 59
Tabla 4.1 Relación de pixeles para porterías en 2009 ........................................................................ 72
Tabla 4.2 Relación de pixeles para Referencias LateraLes en 2009 .............................................. 73
Tabla 4.3 Características sobre Marca de Referencia Lateral Amarilla ....................................... 75
Tabla 4.4 Características sobre Marca de Referencia Lateral Azul ................................................ 76
Tabla 4.5 Características sobre Portería Amarilla ................................................................................ 80
Tabla 4.6 Características sobre Portería Azul ......................................................................................... 82
Tabla 4.7 Relación entre distancia real y área observada en pixeles ............................................ 90
Tabla 4.8 Análisis para búsqueda de área en porterías incompletas ............................................ 92
Tabla 4.9 Resultados en estimación de distancia a objetos .............................................................. 95
Tabla 4.10 Resultados en la estimación de distancias para porterías incompletas ................ 96
Tabla 5.1 Error de posición en pruebas de localización .................................................................. 118
Tabla 5.2 Error de orientación en pruebas de localización ............................................................ 119
Tabla B.1 Datos de acceso a robots .......................................................................................................... 135
11
1 INTRODUCCIÓN
RoboCup, organización internacional que promueve la investigación en robótica, se ha puesto
como principal objetivo para el año 2050 que la humanidad sea capaz de desarrollar un
equipo de robots humanoides con habilidades suficientes para derrotar a la mejor selección
del mundo en futbol soccer [21]. Esta idea aunque parece un poco simple, conlleva un
sinnúmero de retos científicos tecnológicos e ingenieriles que se deben tomar para poder
llevar a cabo esta ambiciosa propuesta.
Es por ello que la organización de RoboCup organiza año con año una competencia mundial
dividida en varias categorías en donde los mejores proyectos de investigación tienen la
oportunidad de participar a fin de demostrar sus avances conseguidos. Cabe mencionar que
las reglas de cada categoría cambian conforme pasan los años, imponiendo nuevos retos y
tratando de que el ambiente y circunstancias de juego se parezcan cada vez más a las reales.
Debido a esto es necesaria una constante investigación en varias áreas del conocimiento tales
como materiales, componentes electrónicos, unidades de procesamiento, algoritmos de
inteligencia artificial y toma de decisiones, estrategias de trabajo colaborativo, investigación
en movimientos y equilibrio dinámico de robots bípedos, algoritmos de visión artificial,
reconocimiento de imágenes, localización, navegación, entre otros temas.
Por otro lado, actualmente, el proyecto de robots humanoides del Campus Estado de México
está enfocado al diseño de robots que cumplan con las características y lineamientos de la
categoría Humanoid Kid-Size de RoboCup, la cual consiste en que equipos de tres jugadores
robóticos bípedos de estructura humanoide totalmente autónomos se enfrenten en partidos
de fútbol soccer bajo ciertas condiciones estipuladas en el reglamento de la categoría.
El sensor principal con el que cuentan los robots humanoides para percibir el entorno es una
cámara de video que captura imágenes, mismas que deben ser procesadas o analizadas para
deducir las circunstancias del ambiente como identificación de porterías, jugadores
contrarios, pelota, entre otros objetos; con ello tener la capacidad de deducir la ubicación del
jugador, y así poder tomar decisiones en el juego. Es importante señalar que los elementos
del campo de juego, como las porterías, el césped, las líneas y las marcas de referencia, están
identificados por colores diferentes, como se puede observar en la Figura 1.1.
Debido a la dinámica del juego, es importante que los robots tengan información actualizada
con respecto a su entorno, y es por ello que se busca además de poder hacer una buena
segmentación de colores, lograr que los algoritmos se procesen lo suficientemente rápido
12
para poder reaccionar oportunamente a cambios repentinos en las condiciones del entorno,
como movimientos de la pelota o de otros jugadores.
Con estos antecedentes expuestos, resulta bastante útil poder contar con una herramienta de
visión artificial que sea robusta para su implementación en la plataforma de robots
humanoides ya que el sistema con el que se contaba al inicio de la presente investigación
ofrecía resultados inexactos en el desempeño de los robots como se detallará más adelante.
1.1 MOTIVACIÓN
El principal medio por el cual los robots jugadores de futbol perciben su entorno, es a través
de una cámara de video con la cual se obtienen imágenes que deben ser procesadas y
analizadas. Gracias a estas imágenes, el sistema robótico puede identificar los diferentes
elementos existentes en el terreno de juego, como son la pelota, las porterías, compañeros de
equipo y contrarios, líneas, etc. y esto precisamente es la base para la ejecución de tareas de
más alto nivel como son la identificación del marco rival, el conocimiento de la ubicación del
robot en la cancha, la navegación del robot para llegar a un punto deseado, estrategias de
juego de acuerdo a las circunstancias encontradas, estrategias de juego, etc.
Es por esto que el sistema de visión en un robot jugador de futbol es fundamental para el
buen desempeño del mismo, y, es la base para la correcta realización de comportamientos de
más alto nivel. Un mal funcionamiento de este sistema repercute en diversos módulos del
robot que, aunque sean robustos en su programación, ante la falta de datos confiables en la
entrada, dan como respuesta un desempeño pobre en las acciones generales ejecutadas.
FIGURA 1.1 CANCHA DE JUEGO PARA ROBOTS HUMANOIDES
13
El sistema de visión del robot humanoide resulta entonces de gran interés para el desarrollo
e implementación de algoritmos que se encarguen de recibir, procesar y analizar imágenes
para darle un significado útil a los datos encontrados. La visión artificial es además un campo
que actualmente está creciendo de manera continua, en el que se busca la aplicación práctica
de metodologías para el análisis de datos en imágenes. Es ahora cada vez más común
encontrar aplicaciones en donde se utilicen los recursos de visión. Desde la robótica
académica e industrial hasta aplicaciones domésticas y de seguridad. Sin duda en años
siguientes encontraremos más aplicaciones en diversos sectores ya que al igual que en el ser
humano, la visión es un recurso que facilita de manera sustancial la obtención de información
en el entorno.
1.2 ANTECEDENTES DE SISTEMAS DE VISIÓN EN ROBOTS BOGOBOTS
Para la primera participación del campus en la liga de robots humanoides Kid-Size de
RoboCup en 2008, se utilizaron procesadores independientes para controlar el módulo de
decisión y el módulo de visión. Para este último se optó por usar el sistema embebido
CMUCam3, el cual es una plataforma que integra un pequeño procesador NXP LPC2106 con
una interfaz de programación en código abierto utilizando lenguaje C. Este sistema incorpora
una cámara RGB con una resolución máxima interpolada de 352 X 288. El sistema es capaz
también de controlar hasta cuatro servomotores por ancho de pulso.
En 2008 se utilizó un algoritmo de segmentación basado en umbrales simples sobre el
espacio RGB. Se usó también como herramienta para obtener los parámetros de
segmentación al programa de Adobe PhotoShop®. El proceso para segmentar era el
siguiente: primeramente se capturaban imágenes del entorno de interés y éstas se
almacenaban en la memoria interna de la CMUCam. Posteriormente estas imágenes se
pasaban a una computadora en la cual se visualizaban y se añadían a un proyecto en Adobe
PhotoShop® en donde se agregaban algunas capas de procesamiento a fin de poder
identificar de mejor manera los parámetros de segmentación en la imagen. En la Figura 1.2 se
muestra este trabajo con imágenes tomadas durante la competición de RoboCup 2008. Las
regiones blancas nos indican que dicha región de la imagen se encuentra dentro de los
parámetros especificados del color, en este caso del color amarillo de la portería y marcas de
referencia. De esta forma se debían obtener los parámetros de cada uno de los colores de
interés (azul, amarillo, naranja, verde, etc).
Una vez que se encontraban estos valores, se almacenaban como constantes en el programa
de la CMUCam3 y se pasaba la información al sistema de visión. Finalmente se corroboraba
14
que el robot identificara correctamente los objetos, si se detectaba alguna falla entonces se
volvía a realizar el proceso mencionado para cada color que tuviera parámetros erróneos.
Como se puede adivinar, realizar toda la tarea de segmentación tomaba bastante tiempo (de
20 a 40 minutos) y también cabe considerar que el mismo proceso se debía realizar de
manera independiente para cada uno de los robots ya que los valores entregados para cada
cámara son diferentes.
FIGURA 1.2 SEGMENTACIÓN PARA COLOR AMARILLO EN ROBOCUP 2008
FIGURA 1.3 SEGMENTACIÓN DE COLOR NARANJA EN ROBOCUP 2008
Durante los procesos de configuración de la segmentación frecuentemente se encontraban
situaciones en que las regiones de color segmentadas se empalmaban unas con otras al
segmentar dos o más colores. Este problema era ocasionado por varios factores, entre ellos el
hecho que el sistema de visión de la CMUCam trunca los valores de color en la imagen de 8
bits a un rango de color entre 16 y 240, es decir, que a todo valor que superara estos límites
simplemente se le asignaba el valor de frontera, esto hace que se pierda información y que
colores que en principio son diferenciables se agrupen. Cabe mencionar también que a la
15
imagen obtenida por la cámara sólo es posible ajustarla mediante el cambio de los valores de
brillo y contraste, lo cual limita al pre-procesamiento. Sin embargo, la deficiencia más
significativa en el proceso de visión es el algoritmo de segmentación basado en umbrales
simples, ya que como se verá más adelante, esta metodología agrupa en una misma región a
un espectro amplio de colores que no necesariamente son de nuestro interés, provocando
falsos positivos en la imagen segmentada.
La Figura 1.3 muestra la segmentación de la pelota color naranja durante la competición de
RoboCup 2008, es decir, el mismo ambiente que las imágenes de la Figura 1.2, nuevamente el
color blanco señala los pixeles que se encuentran dentro de la región de segmentación. En
estas imágenes se evidencian los aspectos antes mencionados, las regiones de amarillo y
naranja se traslapan lo que ocasiona que el color naranja se confunda con el amarillo. Resulta
imposible separar las regiones de amarillo y naranja en estas imágenes utilizando una
segmentación basada en el acotamiento por umbrales simples.
1.3 OBJETIVOS
Al momento de empezar con el presente trabajo de investigación, el proyecto de Robots
Humanoides en el Tecnológico de Monterrey, Campus Estado de México había tenido ya su
primera participación en el concurso internacional de RoboCup 2008 (Figura 1.4). Así que se
revisaron los resultados y desempeño mostrado en el evento a fin de encontrar las áreas de
oportunidad en el equipo.
FIGURA 1.4 ROBOTS PARTICIPANTES EN ROBOCUP 2008
16
Se determinó que el sistema de visión en los robots humanoides era un área fundamental
para abordar y realizar investigación. Si bien con los algoritmos creados hasta el momento,
los robots eran capaces de llevar a cabo tareas más complejas, lográndose ubicar dentro de
los 16 mejores equipos de RoboCup en la categoría, se detectaron puntos de mejora, como la
segmentación de color utilizada, la cual era de tipo lineal y presentaba varias deficiencias en
la identificación de colores frente a entornos con ruido o con zonas de color externas muy
semejantes a los colores de interés; también se notó que valía la pena aumentar la resolución
de las imágenes utilizadas, la calidad de la lente, así como mejorar la capacidad de
procesamiento.
Se llegó entonces a formular la siguiente pregunta de investigación:
¿Cómo desarrollar un efectivo sistema de visión artificial para la localización y navegación de
robots humanoides dentro de una cancha oficial de RoboCup Humanoid Kid - Size?
Este cuestionamiento está enfocado al proyecto de robots humanoides del Campus Estado de
México, a sus necesidades y disponibilidad de recursos financieros, tecnológicos y humanos.
Asimismo se seleccionó la pregunta antes expuesta para servir de punto de partida en la
presente investigación y tema principal del proyecto de tesis.
Con ello se desprende el siguiente objetivo principal de investigación:
DESARROLLAR UN SISTEMA DE VISIÓN QUE AYUDE A LA LOCALIZACIÓN Y
NAVEGACIÓN DE UN ROBOT HUMANOIDE DENTRO DE UN AMBIENTE
ESTRUCTURADO UTILIZANDO PARA ELLO MÉTODOS DE SEGMENTACIÓN BASADOS
EN COLOR Y RECONOCIMIENTO DE FORMAS PARA SU APLICACIÓN EN SISTEMAS
ROBÓTICOS. ESTO SE LLEVARÁ A CABO MEDIANTE LA PROPUESTA DE
ALGORITMOS PARA EL PROCESAMIENTO DE IMAGEN, DE TAL FORMA QUE SE
PUEDA TENER UN MÉTODO ROBUSTO DE ANÁLISIS EN AMBIENTES DINÁMICOS.
Con el fin de alcanzar este objetivo principal, se busca como actividades previas cumplir con
los siguientes objetivos específicos:
1. Investigar y crear nuevas propuestas de algoritmos de segmentación.
2. Implementar los algoritmos creados, en un procesador y cámara igual o equivalente al
que poseen los robots humanoides del campus.
3. Diseñar y crear una interfaz gráfica para el usuario que permita de forma
semiautomática obtener una segmentación útil de una forma rápida y sencilla, lo cual
es crucial dentro del proyecto de robots humanoides.
17
4. Implementar la solución generada dentro del módulo de visión en una plataforma
robótica.
5. Con los datos obtenidos acerca de la posición de elementos de la cancha, construir un
algoritmo conveniente para la localización del robot humanoide.
6. Programar una tarea de navegación que conduzca al robot desde un punto inicial
desconocido, hacia un lugar determinado dentro del campo de juego.
Se esperan como beneficios de esta investigación, un mejor desempeño de los robots, que
éstos tengan una mejor capacidad de reacción ante ciertas circunstancias, tener la posibilidad
de transportar los algoritmos y aplicaciones generadas a otras plataformas robóticas con el
fin de realizar investigación en otras áreas y al mismo tiempo proveer al proyecto de robots
humanoides de una herramienta de segmentación que permita al usuario un ahorro de
tiempo y mayor robustez en las soluciones generadas, lo cual es importante tener en
competencias ya que generalmente se dispone de tiempos limitados para calibrar o ajustarse
a cambios repentinos del entorno.
Es importante señalar que los resultados que se obtengan de esta investigación pueden ser de
gran aportación para otros problemas ingenieriles en donde se requiere el conocimiento de
características del ambiente, tales como actividades de rescate, reconocimiento de patrones
en la industria, inspecciones de calidad automatizadas, clasificación de partes o productos,
etc.
1.4 CARACTERÍSTICAS DE LOS ROBOTS Y DEL MEDIO.
Existen ciertos lineamientos, criterios y restricciones que los robots participantes en la
categoría Humanoid Kid - Size deben cumplir para tener condiciones equitativas de juego [4].
Como se mencionó anteriormente, estos lineamientos sufren algunas modificaciones año con
año a fin de tener circunstancias más parecidas a las reales pero que a la vez sean
compatibles con las tecnologías y avances en robótica actuales.
Algunas consideraciones relevantes para este trabajo sobre las reglas vigentes de la categoría
de robots Humanoides Kid - Size se presentan a continuación:
Acerca de las características del entorno
• La dimensión del terreno de juego es de 6m de largo por 4m de ancho.
• Las porterías están identificadas cada una por los colores amarillo y azul
respectivamente.
• El campo de juego es de color verde.
18
• Las líneas y marcas de la cancha tales como círculo central, línea de meta, etc. están
identificadas de color blanco.
• La pelota con que deben jugar los robots es una pelota estándar de tenis, color
naranja.
• A la altura de la línea central, en cada extremo de la cancha se encuentran dos
marcas de referencia codificadas en una combinación de colores amarillo y azul tal
como se muestra en la Figura 1.5 y Figura 1.56.
FIGURA 1.5 REFERENCIA AZUL FIGURA 1.6 REFERENCIA AMARILLA
Acerca de las características y restricciones de los robots
• Los robots deben medir entre 30 y 60cm de altura.
• Los robots deben contar con dos piernas, dos brazos y una cabeza, de dimensiones
proporcionales a la altura total, detalles sobre este punto se abordan en [4].
• El número máximo de cámaras por robot son dos, colocadas exclusivamente en la
cabeza de éstos de forma antropomorfa.
• El ángulo máximo de visión permitido en los robots es de 180° es decir, que bajo
ninguna circunstancia, los robots deben ser capaces de ver en una sola imagen los
360° de su entorno.
• Los Robots deben ser autónomos tanto en su procesamiento, como en su consumo
energético.
Acerca de las competencias
• Previo a los días de competencia, se disponen de uno o dos días de calibración para
ajustar los robots a las condiciones propias del lugar como la iluminación,
tonalidades, características de la superficie, etc.
19
• Durante las competencias, el tiempo para realizar ajustes entre partido y partido es
indefinido, dependiendo de la calendarización de los encuentros, por lo que es
posible que haya ocasiones en que se tengan que jugar dos partidos consecutivos.
• Antes de cada partido se conceden 10 minutos para que los equipos realicen ajustes
previos a sus robots en caso de ser necesario. Durante este tiempo ambos equipos
podrán hacer uso de la cancha.
• Después de alguna interrupción durante un partido, los equipos o robots disponen
de alrededor de 10 segundos para reacomodarse y continuar con el encuentro.
1.4.1 CARACTERÍSTICAS DEL ROBOT BOGOBOT 1 (2009)
Durante el inicio del presente trabajo de tesis, se realizó la investigación tomando como base
al robot Bogobot 1, el cual es un robot de 43 centímetros de altura, autónomo, cuenta con
sensor de visión, sensor inercial. Así mismo cuenta con tres procesadores encargados de
visión (Phillips), locomoción – decisión (DsPic) y control de servomotores (AVR). El robot
puede desplazarse omnidireccionalmente a una velocidad de 12 cm/segundo. El robot utiliza
la teoría de Zero Moment Point (ZMP) en su locomoción.
Las especificaciones mecánicas, electrónicas y de software se detallan a continuación:
TABLA 1.1 ESPECIFICACIONES DE BOGOBOT 1
Altura, Grosor, Profundidad y
Peso:
45cm, 17cm, 10cm, 2.5Kg.
Velocidad de Caminado: 12cm/seg
Grados de Libertad GdL: 20 Grados de Libertad en Total: 6 por cada
pierna, 3 por cada brazo y 2 en la cabeza.
Tipo de motores: 14 servomotores HiTEC HSR-5990TG, 4
servomotores HSR-8498HB y 2
servomotores HS-5645MG.
Unidad de Procesamiento: DSPic 30F4013 embebido en tarjeta
personalizada
Cámara(s): CMUcam3
Sensores: Giroscopio de dos ejes IDG300,
Acelerómetro ADXL330
Estructura basada en: Soportes de Lynxmotion y partes
diseñadas para el robot en aluminio.
Fuente de alimentación: Dos Baterías: Litio – Polímero de 1.3Ah
12v y Litio – Polímero de 2.6 Ah 7.4v
20
En 2009, Bogobot 1 utilizaba un sistema de visión basado en la unidad CMUCam3 [41] en la
cual se programaban todos los algoritmos relativos al análisis de imágenes además de
controlar los dos grados de libertad en la cabeza.
El procesador encargado de computar las ecuaciones de trayectorias, cinemáticas inversa,
además de la estrategia general de juego consistía en un DSPic.
FIGURA 1.7 BOGOBOT 1 CON CMUCAM3
1.4.2 CARACTERÍSTICAS DEL ROBOT BOGOBOT 2 (2010)
Para 2010 se conservó la misma estructura mecánica con algunas modificaciones menores,
sin embargo, para la parte de procesamiento, la arquitectura del robot cambió radicalmente.
Se optó por utilizar una microcomputadora embebida en una mini-tarjeta principal. Se trata
de la tarjeta Roboard RB-100 de la compañía DMP Electronics [42]. Algunas especificaciones
de esta tarjeta se presentan en la Tabla 1-2.
El cambio de esta arquitectura tuvo por objeto el mejorar el desempeño y procesamiento del
robot, añadir la funcionalidad de conectividad inalámbrica, mejorar capacidad de memoria y
almacenamiento, así como optimizar los tiempos de desarrollo y depuración. La Figura 1.8
muestra la nueva microcomputadora.
FIGURA 1.8 ROBOARD RB-100
21
TABLA 1.2 ESPECIFICACIONES DE BOGOBOT 2
Procesador DM&P Vortex86DX
Memoria 256MB DDR 2
ADCs Analog Devices AD-7918 10-bit
Interface de I/O Slot de Micro SD x1
USB x3 (USB 2.0)
Conectores 2.54 mm 3-pin box header for PWM x 24
2.54 mm 10-pin box header for RS-232 x1
2.54 mm 10 -pin box header for USB x1
2.0 mm 4-pin header for RS-485 x1
2.0 mm 4-pin header for TTL serial x1
2.54 mm 10 -pin box header for SPI & I 2C x1
2.54 mm 16-pin header for A/D x1
1.25 mm 3 -pin wafer for TTL serial x 1
1.25 mm 4 -pin wafer for LAN x 1
1. 2 5 mm 4-pin wafer for MIC-in x 1
1. 2 5 mm 4-pin wafer for Line-out x1
1. 2 5mm 6-pin wafer for JTAG x1
0.8mm 124-Pin Mini PCI Card connector
3.96 mm 2 pin for Power x 1
Consumo de Energía +5V @ 400mA
Alimentación DC-in 6V to 24V
Dimensiones 96 x 56 mm
Peso 40g
A la microcomputadora se le instaló el sistema operativo Microsoft Windows XP, se dejó de
utilizar la CMUCam3 para usar ahora una cámara web conectada mediante USB al procesador
principal. Todo esto obligó a trasladar el código generado para el microcontrolador de la
CMUCam a la nueva plataforma en Windows, en la cual, las tareas de visión, locomoción y
decisión las lleva a cabo el mismo procesador.
1.5 PLANTEAMIENTO DE SOLUCIÓN
A fin de contar con un sistema de visión adecuado que permita realizar operaciones de
localización y navegación en un robot humanoide, el trabajo se dividió en tres tareas
principales:
1) Segmentación de colores.
2) Clasificación de colores y reconocimiento de patrones.
22
3) Localización y Navegación.
Las primeras dos tareas tienen que ver con la extracción de información relevante a partir de
las imágenes adquiridas, mientras que la tercer tarea utiliza estos datos para la toma de
decisiones y ejecución de tareas. Los detalles sobre las actividades concernientes a cada una
de las tareas mencionadas se describen a continuación.
Para la tarea 1) se propone
Usar una interfaz gráfica basada en LabView® conectada a la cámara del robot para
la toma de fotos en tiempo real.
Usar pixeles definidos por un usuario / programador para la generación automática
de sub-espacios elipsoidales de color.
Probar la identificación de colores en tiempo real mediante la interfaz de LabView®.
Para la tarea 2) se propone
Desarrollar algoritmos embarcados en el robot que permitan un eficiente uso de los
recursos para clasificar lo más rápido posible los pixeles de colores.
En base a los pixeles de colores primarios detectar áreas y en base a estas áreas
identificar objetos en la cancha.
Se verificará la correcta identificación de objetos en la cancha en situaciones críticas.
Se estimarán distancias en base a triángulos definidos en la cancha entre robot -
cámara - objeto.
Para la tarea 3) se propone
Localizar la posición del robot en base al método clásico de triangulación.
Se considerará que no hay obstáculos que impidan la visibilidad o que ocluyan
parcialmente los objetos.
El robot ubicará varios puntos de referencia moviendo su cabeza y con ello poder
triangular su posición.
Se harán pruebas de navegación comenzando con una posición inicial del robot en
un punto al azar dentro del campo de juego y como punto final el centro de la
cancha.
Se probarán estos algoritmos en situaciones críticas o extremas para evaluar su
sensibilidad a ruidos externos y la robustez de la solución generada.
El hecho de que un humanoide pueda conducirse hasta un punto deseado, es decir,
desplazarse de un lugar inicial a otro lugar determinado dentro del campo de juego, es una
tarea útil para un robot jugador de futbol, y de llevarse a cabo representaría un gran avance
en nuestro equipo de robots humanoides. Una primera ventaja sería el hecho de poder
23
posicionarse de manera autónoma en cierto lugar estratégico para el inicio de un partido. En
competencias oficiales de RoboCup se dan consideraciones especiales a los robots que tienen
la habilidad para realizar esta tarea, sobre otros a los que es necesario colocar de forma
manual.
1.6 METODOLOGÍA
A fin de concluir con éxito la presente investigación, se llevarán a cabo diversas actividades,
de las cuales, cada una tendrá un objetivo particular que nos permitirá obtener diferentes
conclusiones y detectar áreas de mejora para que, en conjunto nos ayuden a alcanzar los
resultados esperados.
A continuación se presentan las actividades que se planearon realizar durante el desarrollo
de la investigación:
1. Revisión de los algoritmos usados en la plataforma de robots humanoides (Bogobot
2008), a fin de detectar las posibles áreas de mejora, y localizar los puntos que de ser
modificados pueden tener un impacto positivo en el desempeño de los robots.
2. Proponer un algoritmo de segmentación con el objetivo de aumentar la fiabilidad y
robustez de las soluciones generadas, se validará la funcionalidad de este algoritmo
sólo para el reconocimiento de un color a la vez.
3. Adecuar los algoritmos propuestos para que identifiquen varios colores
simultáneamente optimizando el código para que se puedan analizar el mayor
número de cuadros por segundo.
4. Analizar de qué forma se pueden implementar métodos de reconocimiento de formas
y patrones a partir de las estructuras de color dadas y con ello identificar con
seguridad los elementos de la cancha, como referencias y porterías.
5. Diseñar y crear una interfaz gráfica para el usuario que permita de forma
semiautomática obtener una segmentación útil de una forma rápida, sencilla e
intuitiva (sin necesidad de que el usuario tenga conocimientos profundos en el tema
de segmentación de imágenes).
6. Con los datos obtenidos acerca de la posición de elementos de la cancha, construir un
algoritmo conveniente para la localización del robot humanoide.
7. Programar una tarea de navegación que conduzca al robot desde un punto inicial
desconocido, hacia un lugar determinado dentro del campo de juego.
8. Implementar los algoritmos creados, en un procesador y cámara igual o equivalente al
que poseen los robots humanoides del campus.
24
9. Implementar la solución generada dentro del módulo de visión de los robots
humanoides con los que se cuente en ese momento.
10. Realizar las pruebas de validación pertinentes a fin de comprobar las soluciones
propuestas.
1.7 ESTRUCTURA DEL MANUSCRITO
La tesis presentada consta de 7 capítulos, los cuales están organizados de la siguiente
manera:
En el Capítulo 1 se brinda una introducción al tema desarrollado de la tesis así como a las
entidades con que está ligada como es la Federación Internacional de RoboCup. Además se
abordan las características y restricciones que se tuvieron que tomar en cuenta para el
desarrollo del trabajo. Se plantean también los objetivos, propuesta de solución y
metodologías propuestas.
Para el Capítulo 2 se detallan aspectos sobre el marco teórico de la visión artificial así como
el estado del arte en robots similares al presentado. Se abordan soluciones propuestas por
diversos investigadores y se analiza la factibilidad de tomar diferentes caminos hacia la
solución. Se discuten conceptos de adquisición y procesamiento de imagen, segmentación,
extracción de características y finalmente se comenta acerca de algunos algoritmos de
localización y navegación útiles para el desarrollo de la tesis.
En el Capítulo 3 se discute acerca de la adquisición y segmentación de imágenes en los
robots humanoides, se justifica la metodología propuesta y se ejemplifican los resultados
obtenidos ante diversas situaciones. También se muestra el desarrollo y conceptos utilizados
para la generación del segmentador semi-automático de colores utilizado para la calibración
de la visión en el equipo de robots humanoides. Finalmente se muestran los resultados al
trasportar los algoritmos del sistema Bogobot 1 basado en microcontroladores al Bogobot 2
basado en una microcomputadora.
Para el Capítulo 4 se expone el análisis y los algoritmos generados a fin de identificar y
diferenciar los elementos que se encuentran en la cancha, específicamente las porterías y las
marcas de referencia ubicadas a los extremos del campo. Se muestran los procedimientos
llevados a cabo así como los resultados obtenidos y su validación ante diversas situaciones.
El Capítulo 5 se refiere a los algoritmos propuestos para la localización y navegación del
robot en el terreno de juego, se ejemplifican varias situaciones y se realiza una evaluación de
las rutinas tanto de localización como de navegación a fin de verificar su validez y hallar el
error final en las estimaciones.
25
En el Capítulo 6 se muestran los resultados obtenidos, así como las conclusiones a las que
nos lleva la presente investigación. También se aportan algunas ideas para el trabajo futuro a
realizar en el módulo de Visión en los robots humanoides.
Finalmente se anexan los manuales sobre la utilización y manejo del robot. La comunicación
con los diferentes sistemas, así como el manual de uso para el segmentador semiautomático
de color actualmente usado para calibrar el sistema de visión de los robots en el campus.
También se presenta el algoritmo general usado para la localización de los robots.
26
2 MARCO TEÓRICO
El procesamiento de imágenes digitales tiene sus orígenes a mediados del siglo pasado, con el
desarrollo de la televisión y la generación de las primeras imágenes por computador, ya para
1969 Azriel Rosenfeld [16] realizaba una compilación de trabajos sobre la materia,
abordando temas como la compresión, mejoramiento y restauración de imágenes así como el
reconocimiento de patrones y segmentación. Hoy en día existen diversas aplicaciones para
los sistemas de visión artificial y su uso se lleva a diferentes áreas como la radiología,
meteorología, microscopía, oceanografía, mapeo aéreo, robótica, inspección industrial, entre
muchas otras. Es posible generar imágenes no solamente del espectro visible por el ser
humano, sino que a partir de ondas de diferentes frecuencias, utilizando los sistemas de
sensado correspondientes, se pueden extraer imágenes útiles a muchos campos, ejemplos de
ello son las imágenes de resonancia magnética (MRI), las tomografías por emisión de
positrones (PET), las imágenes de rayos X, o las imágenes de radiotelescopios utilizadas en la
astronomía. Para propósito de la presente investigación se trabajará con el espectro de luz
visible por el ser humano, ya que todos los elementos de interés en la cancha están
codificados dentro de este rango de longitud de onda.
2.1 IMÁGENES DIGITALES
Una imagen digital se refiere a la interpretación binaria (codificada en 1 y 0), de una
representación gráfica [20]. Es posible clasificar diferentes tipos de imágenes digitales
tomando como base algunas características como pueden ser el tamaño, la profundidad de
bits y la modalidad de compresión.
Comencemos por la digitalización de imágenes, esto se refiere a la forma en que una señal
física es convertida a un lenguaje entendible por una computadora u otro sistema de
procesamiento. Las imágenes y señales en el ambiente son por naturaleza análogos, esto nos
dice dos cosas, la primera de ellas es que la señal existe en un dominio continuo de espacio-
tiempo y la segunda es que esta señal toma valores de una gama continua de posibilidades.
Estas señales son convertidas a una digital, la cual también tiene dos características, que la
señal está definida en el dominio discreto del espacio-tiempo y que entonces toma valores a
partir de una lista discreta de posibilidades. Para que esto ocurra se requiere pues de un
proceso de conversión análogo – digital, lo que conlleva dos subprocesos adicionales: el
muestreo y la cuantización.
27
El muestreo es el proceso de convertir una señal de tiempo continuo a una señal de tiempo
discreto. En el campo de las imágenes digitales y del presente trabajo de tesis, podemos ver al
muestreo desde dos perspectivas, la primera de ellas tiene que ver con la frecuencia de
tiempo a la que capturamos las diferentes imágenes. Recordemos que el teorema de Nyquist
[22] nos indica que la frecuencia de muestreo debe ser de al menos el doble de la máxima
frecuencia de interés en el análisis, por ejemplo, en el caso del seguimiento de la pelota en el
robot humanoide, la frecuencia de muestreo deberá ser mayor a las oscilaciones que tiene
pelota cuando ésta se mueve o las percibidas cuando el robot camina.
La otra perspectiva del muestreo en imágenes digitales tiene que ver con qué tanta
información extraemos de la captura realizada, es decir, qué tantos pixeles muestreamos en
una imagen y esto se relaciona directamente con la resolución de la misma. Es importante y
resulta una decisión no trivial el optar por determinada resolución de muestreo ya que por
un lado se debe asegurar que con la resolución empleada no se perderán detalles útiles para
los procesos de análisis y por otro lado se debe considerar que a mayor resolución
incrementa de manera significativa el tamaño de la imagen y por ello el número de pixeles a
procesar, pudiendo alcanzar los millones.
FIGURA 2.1 IMÁGEN DE ALTA RESOLUCION FIGURA 2.2 IMÁGEN DE BAJA RESOLUCIÓN
Un ejemplo de esto es al procesar la imagen de una huella digital, si decidimos emplear muy
pocas muestras se corre el riesgo de que las formas que definían la huella no se muestreen
completamente resultando en una imagen que reproduce la huella con muy poca información
en donde incluso se puede formar un patrón de diferente forma al original. A este fenómeno
28
se le conoce como “aliasing” [23]. La Figura 2.1 y Figura 2.12 nos muestran otro ejemplo al
comparar una imagen de alta resolución con otra de baja resolución, la Figura 2.1 muestra
una imagen con una resolución en X de 1200 pixeles y en Y de 1600 pixeles mientras que en
la Figura 2.12 la resolución disminuye a 50 pixeles en X y 67 en Y. Se puede ver cómo varios
detalles pierden definición en la Figura 2.12 como el ave y las nubes. Esto provoca que se
pierda información sobre el medio.
El otro proceso definido como Cuantización se refiere a la conversión de una imagen con un
rango continuo de valores a una imagen que tome valores a partir de un rango discreto. Esto
se hace por lo general mediante un proceso de redondeo, al truncar o realizar algún otro
método destructivo de información. La cuantización es un paso previo necesario al
procesamiento digital ya que las diferentes intensidades en una imagen deben ser
representadas con una precisión finita para cualquier procesador digital.
FIGURA 2.3 MUESTRA ENTRE DIFERENTES NIVELES DE CUANTIZACIÓN 8, 4, 2 Y 1 BIT
La determinación del nivel de cuantización sin embargo, resulta no ser sencilla, contrario a lo
que ocurre con la determinación de la frecuencia de muestreo, no existe alguna expresión
29
matemática que nos indique cuántos valores discretos es conveniente utilizar para visualizar
una imagen sin perder información relevante. Comúnmente en la práctica se estandariza
utilizar un nivel de cuantización de ocho bits (256 valores) para representar imágenes de una
sola componente por pixel (escala de grises) y un nivel de 24 bits por pixel (16,777,216
posibles valores) para imágenes a color.
En la Figura 2.3 podemos observar un ejemplo de una imagen en escala de grises con
diferentes niveles de cuantización, la primera de ellas está a 8 bits, la segunda a 4, la tercera a
2 y finalmente con un bit.
Ahora bien, durante la presente investigación se trabaja con imágenes a color debido a las
características del ambiente. El ojo humano puede sensar los colores en el entorno mediante
combinaciones de longitud de ondas cortas, medianas y largas, lo cual prácticamente
corresponde a los colores: rojo, verde y azul. La mayoría de las cámaras e instrumentos de
adquisición de imágenes funcionan mediante el reconocimiento de estas tres señales. Es por
ello que una imagen a color consta de varias componentes, es decir, que los datos
encontrados al evaluar un pixel en realidad contienen información acerca de cada uno de los
componentes de la imagen (componente rojo, verde y azul por ejemplo). La mayoría de los
trabajos de investigación en procesamiento y análisis de imágenes se basan en imágenes de
una sola componente (escala de grises) y algunos métodos son aplicables a imágenes a color.
Sin embargo en ocasiones, especialmente en procesos de segmentación, es preciso utilizar o
diseñar algoritmos específicos para las imágenes en color.
2.2 ADQUISICIÓN DE LA IMAGEN
Existen diversos dispositivos útiles para la adquisición de la imagen. El más utilizado en la
década de los 90 eran las cámaras de video. Ésta funciona al escanear determinado haz de
electrones a través de una capa de fósforo dentro de un tubo de gas conocido como Vidicon
[24], la luz entra a la cámara por medio de una superficie de cristal que crea electrones libres
en el fósforo. Esto varía la conductividad en la capa así que la corriente que fluye al ánodo
varía conforme el haz es escaneado de acuerdo a la intensidad de luz local. Es así como se
genera una señal de voltaje análogo que después de ser amplificada se digitaliza
generalmente a un nivel de 8 bits.
En la práctica es relativamente simple adquirir imágenes mediante este procedimiento, sin
embrago presenta algunas deficiencias. Debido a los campos electromagnéticos producidos,
se puede generar una distorsión en las imágenes adquiridas. Entonces es posible que la
30
imagen se deforme, en particular en las orillas, además éstas también tienden a oscurecerse
sumado a que es común que la imagen no quede bien enfocada.
Las cámaras de CCD son otra tecnología para la captura de imágenes. El CCD (Charged-
Coupled Device) es un chip que contiene un arreglo de diodos que funcionan como receptores
de luz. La luz que entra por estos diodos induce electrones cuyo número es proporcional a la
cantidad de luz recibida. Después la carga de toda una fila del arreglo es comunicada una por
una hacia el dispositivo de digitalización a través de una línea de transmisión. Generar este
tipo de tecnología es más barato que las cámaras de video convencionales y es por ello que
hoy en día prácticamente las han reemplazado. Sin embargo también se tienen algunos
puntos débiles en esta tecnología, ya que los diodos receptores resultan ser bastante sensible
a la luz roja e infrarroja algo que no tiene equivalencia en el ser humano afectando en el
enfoque y claridad de la imagen; esto hace necesario el uso de filtros que reduzcan esta
sensibilidad. Otra característica es que la respuesta al espectro de onda es lineal, contraria
también al ser humano y las cámaras de Vidicon cuya respuesta es logarítmica. Esto hace que
sea necesaria una conversión de la señal en la mayoría de las cámaras a fin de tener una
imagen más fiel. A pesar de estas limitantes, el CCD es reconocido en la actualidad por ser el
sensor con las mejores prestaciones y calidad en la imagen, sin embargo, el sensor más
utilizado en la actualidad es el CMOS ya que su costo de producción es más barato y si bien la
calidad de imagen obtenida no es tan fiel como el CCD se logran tener muy buenas
aproximaciones.
El CMOS (Complementary Metal Oxide Semiconductor) [25] es un sensor que se compone de
un arreglo de transistores, su proceso de fabricación es similar al de los circuitos impresos
convencionales por lo que se reduce mucho el costo con respecto al CCD. Similar a este último
el CMOS dispone de sensores detectores de fotones. Sin embargo, en el CMOS la información
de cada pixel es amplificada de manera individual y su arreglo es parecido al de un chip de
memoria por lo que es perfectamente posible realizar un direccionamiento a cualquier región
de interés, es decir, que no necesariamente debemos leer siempre la imagen en su totalidad.
Para imágenes a color se realiza el mismo procedimiento para cada canal. Por otro lado, la
tecnología CMOS sufre de mayores problemas de ruido, esto es en parte debido a que se
requiere de mayor circuitería en su diseño, además contrario a lo que ocurría con el CCD, en
el CMOS al tener un amplificador diferente para cada pixel surge una mayor variación de
respuesta ante el mismo impulso de entrada. A pesar de estas deficiencias, a medida que pasa
el tiempo se van perfeccionando las técnicas de elaboración por lo que hoy en día las cámaras
de CMOS son las más vendidas para dispositivos de consumo personal como son
videograbadoras, cámaras fotográficas, teléfonos celulares, cámaras Web, etc.
31
2.3 ESPACIOS DE COLOR
Hasta ahora hemos diferenciado las imágenes por su número de componentes en imágenes
en escala de grises e imágenes a color. Estas últimas se caracterizan por tener varias
componentes y son las que representan el mundo tal como lo percibe el ser humano. Para
esto, existen diferentes teorías que tratan de modelar al color de acuerdo a diferentes
características, a esto se le conoce como espacios de color. A continuación veremos algunos
de los más representativos para los sistemas digitales.
2.3.1 ESPACIO RGB
El espacio RGB es ampliamente utilizado para realizar la adquisición de imágenes,
prácticamente todos los sensores otorgan una respuesta basada en este espacio de color. Es
posible entender al formato RGB como un cubo en un espacio tridimensional, en el que cada
eje representa una componente del color: X – Rojo, Y – Verde, Z – Azul. La Figura 2.4 es una
imagen obtenida del software ColorSpace [36] en donde vemos representado el cubo de
colores RGB.
FIGURA 2.4 ESPACIO DE COLOR RGB
Los colores se forman al combinar estas componentes y dan lugar a todo el espacio de color.
Por ejemplo, si tenemos un pixel de valor (138,136,17) en una imagen con formato de 8 bits
por componente, significa que en una escala de 0 a 255 donde 0 es ausencia de color y 255 es
el color puro, tenemos un nivel de 138 en rojo, 136 en verde y 17 en azul. En la Figura 2.5 se
ilustra este ejemplo.
32
FIGURA 2.5 IDENTIFICACIÓN DE COLORES EN IMAGEN
2.3.2 ESPACIO YUV
El espacio YUV es una variación del espacio YIQ el cual es usado como estándar para la
difusión de televisión. La “Y” corresponde a la luminancia que es el brillo monocromático de
una imagen desplegada en un televisor blanco y negro. La componente Y es una combinación
de los colores rojo verde y azul, cada uno ponderado en relación a la proporción de
sensibilidad del ser humano ante cada una de estas componentes. La “U” es básicamente la
componente de rojo menos el color cian y la “V” es el magenta menos la componente verde.
En la Tabla 2-1 se muestra la conversión entre el espacio de color RGB y YUV, donde los
valores RGB así como la componente “Y” varían de 0 a 1, mientras que “U” se encuentra en el
rango de -0.436 a 0.436 y “V” de -0.615 a 0.615.
TABLA 2.1 CONVERSIÓN ENTRE ESPACIO RGB Y YUV [39]
RGB YUV YUV RGB
Y = 0.299R + 0.587G + 0.114B R = Y + 0.0U + 1.140V
U = -0.147R – 0.289G + 0.436B G = Y – 0.395U – 0.581V
V = 0.615R – 0.515G – 0.100B B = Y + 2.032U + 0.0V
Podemos observar que para formar la componente Y se requiere de una mayor cantidad de
verde y una menor de azul, esto es debido a que el ojo humano es mucho más sensible a la
longitud de onda de verde y es mucho menos sensible a la longitud de onda del azul.
33
La Figura 2.6 (imagen generada por software ColorSpace [36]) muestra la transformación
entre el espacio RGB y el espacio YUV, en esta imagen se observa cómo se ajusta la gama de
colores del cubo RGB en el espacio YUV. Se puede ver cómo el eje de la luminancia (Y)
corresponde a la diagonal del cubo RGB que une al punto de ausencia de color (negro) con el
de luz total (blanco).
FIGURA 2.6 ESPACIO DE COLOR YUV
2.3.3 ESPACIO HSI
El espacio HSI y sus variantes, tratan de modelar al color de una forma más parecida a como
la interpreta un ser humano. Este espacio también consta de tres componentes, la primera de
ellas conocida como tono (Hue en inglés) modela al color descrito por la longitud de onda, la
segunda llamada saturación nos indica la cantidad de color presente y el tercero conocido
como intensidad se refiere a la cantidad de luz presente, por ejemplo la diferencia entre azul
claro y azul oscuro.
Existen diferentes maneras de graficar este espacio de color, desde un cono hexagonal o
circular hasta una esfera o la unión de dos conos en donde el eje principal de estas figuras
corresponde a la intensidad de color que va del negro en un extremo al blanco en otro. La
ventaja de este modelo radica en que el color se descompone en elementos menos abstractos,
más entendibles y más trabajables para el ser humano y varias características físicas en el
medio ambiente influyen directamente en alguna de las componentes. Debido a esto se han
realizado diversos trabajos de procesamiento de imágenes basados en este espacio de color
[26] [37].
34
La Figura 2.7 (imagen generada por software ColorSpace [36]) muestra la transformación
entre el espacio RGB y el espacio HSI, en esta imagen se observa cómo se ajusta la gama de
colores del cubo RGB en el espacio de coordenadas cartesianas HSI.
FIGURA 2.7 ESPACIO DE COLOR HSI
Sin embargo, una desventaja importante consiste en que no es sencilla la conversión entre el
espacio RGB y el espacio HSI, esto ha dado lugar a que se encuentren diversas propuestas de
simplificación o aproximación en la transformación RGB HSI [26] [37]. Estas propuestas
utilizan diferentes criterios de conversión que los hace más o menos robustos ante varias
condiciones de análisis.
Cabe mencionar que la conversión entre los espacios RGB y HSI es inevitable ya que las
cámaras digitales actuales entregan en su mayoría valores en los formatos RGB y algunas en
el espacio YUV pero no en el espacio HSI, por lo que si se desea realizar algún análisis en este
espacio, la conversión deberá realizarse.
Una forma de convertir de forma exacta colores de RGB a HSI es mediante un paso intermedio
a un tercer espacio conocido como CIE XYZ [50]. No obstante, al final del procedimiento es
necesario validar condiciones particulares lo que complica la solución.
Una aproximación más sencilla al espacio de color HSI consiste en modelarlo de forma cónica
y tomando a la componente de intensidad como simplemente un promedio de los valores
RGB [39]. Esto sin embargo provoca una mayor distorsión entre estos dos espacios de color,
en particular, en los valores de saturación. A continuación se presentan las ecuaciones
correspondientes de conversión tomando en cuenta valores a la entrada RGB normalizados
35
de 0 a 1 (posteriormente se debe normalizar a valores entre 0 y 255 para una imagen de 8
bits por componente) [48].
( )
{ ( )
( ) }
( ) ⁄
√( ) ( ) ( )⁄
Como podemos ver, las ecuaciones siguen requiriendo de un poder de cómputo considerable,
sobre todo teniendo en cuenta que sería necesario efectuar cada una de estas operaciones
para cada pixel en la imagen, no hay que olvidar además, que se requiere analizar imágenes a
varios cuadros por segundo, considerando también el poder de procesamiento del sistema
encargado de esta tarea.
2.4 SEGMENTACIÓN DE LA IMAGEN
El proceso de segmentación se refiere a la tarea de subdividir una imagen en las diferentes
partes que la constituyen y con esto extraer aquellas que sean de interés [27]. El proceso de
segmentación es el primer paso y la tarea más crítica dentro del análisis de imágenes, ya que
los resultados que se obtengan en este paso afectarán de manera directa todas las tareas
subsecuentes en el análisis como la representación y descripción de objetos, la medición de
características, y con ello también se afectarán las tareas de más alto nivel como la
clasificación de objetos y la interpretación de un escenario.
En la actualidad existe un gran número de propuestas de algoritmos para realizar la
segmentación de una imagen, estos algoritmos varían en su función de acuerdo a la aplicación
para lo que se van a utilizar. Pal [28] agrupa estos métodos en seis diferentes clases:
1. Clasificación por umbrales
2. Clasificación de Pixeles
3. Segmentación por rangos de imagen
4. Segmentación por color
5. Detección de bordes
6. Métodos difusos
36
Existen métodos que se pueden clasificar en varias categorías, ya que con el fin de lograr un
mejor resultado, se conjugan diversas técnicas de análisis. Sin embargo, aún no es posible
definir como enteramente válido algún algoritmo general para segmentar imágenes, por lo
que actualmente se realiza en el mundo un gran número de investigaciones sobre el tema, y
algunos expertos consideran que el campo del análisis de imágenes se encuentra aún en
pleno desarrollo [29].
En la presente investigación se lleva a cabo un algoritmo de segmentación que se ubica
dentro del cuarto apartado de la lista mostrada, es decir, se realiza una segmentación en base
al color de los elementos [8], se toma esta elección dadas las características del entorno de
juego reglamentario (donde todos los elementos de la cancha tienen un color característico
que los diferencia).
Dentro del tema de segmentación de colores encontramos diversos trabajos que son de
interés. Fermüller et. Al. [1][2] realiza un trabajo donde se convierte una imagen a un modelo
tridimensional por medio de la identificación de cambios de color en la fotografía. De esta
manera es posible identificar los diferentes planos en una imagen. Por ejemplo, una mesa en
primer plano y una pared en el fondo. A pesar de tener éxito en la identificación de estos
elementos, los algoritmos propuestos demandan un alto poder de cómputo, esta
problemática la aborda G. Cheng [7] mediante la alternativa de utilizar una estación de
trabajo remota con buenas prestaciones conectada al robot.
Es importante señalar que las técnicas de segmentación por color consisten en subdividir el
espacio de color en clases. Se crearán tantas clases como colores distintos se quieran
identificar. La segmentación parte del hecho que pixeles con colores iguales o semejantes
estarán juntos dentro del espacio de color formando un cúmulo generalmente irregular.
Para identificar un cúmulo de pixeles como miembros del mismo color se suele definir o
imponer una geometría volumétrica. Todo pixel dentro de este volumen es identificado como
miembro del color o clase. Los retos de estos algoritmos son:
Incluir dentro del volumen a todos los pixeles que efectivamente son del mismo color
y dejar fuera a todos aquellos que no son del mismo color.
Garantizar que cada clase tiene intersección nula con las otras clases, es decir,
garantizar que no existan pixeles que se puedan clasificar simultáneamente en más de
una clase de color.
Que la fórmula matemática que define el sub-espacio volumétrico de cada clase sea
suficientemente sencilla para que el algoritmo de clasificación sea ejecutado lo más
rápido posible.
37
Particularmente, en el campo de la robótica, este último punto resulta de suma importancia.
En este momento cabe hacer una distinción entre los algoritmos de uso general y la
segmentación pensada para robots móviles. Normalmente se diseña un algoritmo de
segmentación considerando que la determinación de clases ya sea por entrenamiento o ajuste
del usuario se lleva a cabo de manera off-line y la clasificación de pixeles de hace on-line. Sin
embargo, en el ámbito de la robótica se desea que tanto la determinación de clases como la
clasificación se lleven a cabo todo on-line. Por ejemplo, en una competición de RoboCup se
tiene un ambiente con características dinámicas donde el robot debe reaccionar al instante
interactuando con objetos en constante movimiento. Por ello se busca un algoritmo de
segmentación que permita al sistema robótico el procesamiento de varios cuadros por
segundo [3]. La Figura 2.8 muestra la segmentación para una pelota en la competencia de
RoboCup, la imagen de la derecha muestra el resultado de la segmentación donde el color
blanco representa la identificación de la pelota.
FIGURA 2.8 SEGMENTACIÓN DE IMÁGENES
Dentro del ámbito de RoboCup también se han llevado a cabo investigaciones sobre los
procesos de segmentación [14][18][19] e incluso existen propuestas para la calibración
automática off-line de colores como lo menciona Rossi [17] en su trabajo con robots
cuadrúpedos. Es posible encontrar métodos que tratan de agrupar los colores de acuerdo a
diversos criterios, por ejemplo, de manera lineal o umbrales simples como lo describe J.
Bruce [9] en su artículo “Fast and inexpensive color image segmentation for interactive
robots”, esta propuesta posee interesantes ventajas relacionadas a la facilidad de
implementación y su simplicidad, lo cual conlleva ahorros importantes de cómputo, sin
38
embargo, tiene una baja efectividad en ambientes ruidosos como los que se encuentran
comúnmente en las competencias.
R. Alvarez [10] propone el uso de superficies implícitas, lo cual nos da la ventaja de manejarse
con buenos resultados en diversos ambientes, aunque las formas encontradas son difíciles de
procesar si es que no se hace una tabla de colores que describa cada objeto. Es por esto que
debemos conseguir un algoritmo de selección que se adecue a las necesidades tanto de
procesamiento como de exactitud en los resultados obtenidos, para ello es posible que se
usen algoritmos como los descritos por D. Stronger y P. Stone [11] en su artículo “Selective
Visual Attention for Object Detection on a Legged Robot” en donde se proponen técnicas para
optimizar el flujo de información y disminuir los tiempos de procesamiento consiguiendo con
esto una mayor tasa de cuadros por segundo.
2.5 IDENTIFICACIÓN DE PATRONES Y OBJETOS EN EL ENTORNO
Como se ha estado explicando, el ambiente de juego en RoboCup está caracterizado por
elementos que tienen diferentes colores y formas, debido a esto es necesario el poder
diferenciar entre cada uno de los elementos presentes. Las marcas más representativas que
contribuyen a la toma de decisiones sobre el terreno de juego son la pelota, marcas de
referencia y las porterías. Se han realizado estudios al respecto en el ámbito de RoboCup
entre las que destacan los trabajos de J. Wendler [12] y S. Enderle [13] en los que se definen
algunas propuestas sobre el análisis de patrones así como el reconocimiento de algunas
formas, incluso el reconocimiento de las mismas líneas del campo pueden ser de mucha
utilidad para la posterior localización de los robots. En artículos de M. Jamzad [14] y H.
Strasdat [15] se tratan algunas ideas de cómo es factible la posibilidad de reconocer la
distribución de estos elementos y las ventajas que esto ofrece para la localización y decisión
de los robots.
En el ambiente de RoboCup, a través de la identificación de patrones en una imagen es
posible encontrar algún objeto conocido o desconocido en la cancha así como descartar
posibles situaciones donde se encuentre ruido.
También se ha explorado la posibilidad de utilizar la teoría de redes neuronales para crear un
proceso de aprendizaje para la correcta identificación y diferenciación de objetos. Bishop [31]
y Chua [32] muestran algunos trabajos al respecto con resultados satisfactorios. Para el
proyecto de robots humanoides será preciso evaluar qué metodología resulta más
conveniente a fin de tener un algoritmo simple pero eficaz capaz de distinguir los diferentes
patrones y objetos dentro del campo de juego.
39
2.6 LOCALIZACIÓN Y NAVEGACIÓN
Una tarea importante para el buen desempeño de los jugadores robóticos es lograr deducir su
posición y orientación dentro de la cancha. Con esta información un robot puede incluso
trasladarse desde una localización inicial a una localización deseada. Más adelante, en el
presente trabajo de tesis se proponen algoritmos de localización y navegación. El correcto
desempeño de estos algoritmos dependerá de los resultados previos obtenidos durante los
procesos de segmentación e identificación de objetos.
De acuerdo al tipo de ambiente en que se desenvuelven los robots, se puede ver al tema de
localización desde dos perspectivas. La primera de ellas se refiere a la situación en que el
robot se encuentra en una posición desconocida en un ambiente desconocido [43], en este
caso se suelen usar algoritmos que construyen un mapa del lugar y estiman la localización del
robot conforme éste recorre el entorno. A estos algoritmos se les conoce como SLAM. El
segundo tipo de ambiente corresponde a un robot que debe encontrar su posición en un
ambiente estructurado previamente conocido, ésta es la situación que encontramos en un
partido de RoboCup ya que la posición de los puntos de referencia es fijo y se conoce
previamente, por lo que el robot debe encontrar su posición sobre un ambiente previamente
definido.
Para el caso de localización en ambientes previamente definidos, es posible diferenciar en la
literatura dos tendencias principales de análisis, los métodos probabilísticos y no-
probabilísticos. Entre los métodos probabilísticos más usados podemos encontrar
adecuaciones del filtro de Kalman, método de Markov o Montecarlo [44]. Mientras que en los
no-probabilísticos se encuentran los métodos geométricos como triangulación y métodos
específicos que hacen uso de equipo como radares, sonares o sensores de orientación [40].
Ambos métodos poseen ventajas y desventajas dependiendo de la aplicación en que se
utilicen. Los métodos probabilísticos suelen tener menor error en la estimación de
localización aunque requieren de un mayor uso de procesador ya que se debe tener un
constante registro de la actividad del robot como los datos de odometría y la visualización de
objetos. Los métodos no-probabilísticos aunque por lo general están más sujetos a errores no
necesitan de una constante actualización de datos y la respuesta de localización es inmediata
ante cambios bruscos en la posición del robot (cuando un agente externo mueve al robot
cambiándolo repentinamente de posición). En este último punto la respuesta de los métodos
probabilísticos no es inmediata debido a que la memoria sobre ubicaciones pasadas tiene
determinado peso y los algoritmos tardan algunas iteraciones en converger a la posición
nueva.
40
Las aplicaciones y alternativas de implementación difieren debido al sistema de hardware y
de procesamiento que se utilicen. Por ejemplo, A. R. Price[5] y S. Suzuki [6] proponen
soluciones de visión y localización para situaciones de juego dinámicas y en tiempo real
basados en métodos probabilísticos. Sin embargo, los robots presentados en esos trabajos
utilizan sistemas de visión omnidireccionales lo que significa que su ángulo de visión cubre
los 360° y debido a esto, en una sola toma se puede tener información acerca de todo el
entorno. Lamentablemente este tipo de componentes no están permitidos para la categoría
de robots humanoides de RoboCup, ya que los sistemas de percepción de los robots deben ser
semejantes a los de un ser humano.
FIGURA 2.9 LOCALIZACIÓN POR TRIANGULACIÓN
En sistemas de localización para robots humanoides Strasdat et. Al [33] proponen una
solución basada en una cámara con visión dirigida (menos de 180° de visión). Este algoritmo
utiliza la teoría de Monte Carlo la cual es una discretización del método de Markov [34]; ésta
es una técnica del tipo probabilística. Además del uso de visión, también se recurre a la
información obtenida por una brújula digital, con la cual se sabe en todo momento la
orientación que guarda el robot en el campo de juego.
Por otro lado, para un método no-probabilístico, Betke [35] propone también un algoritmo
basado en triangulación, utilizando como referencia objetos fijos en el ambiente con los
cuales el sistema móvil calcula su orientación y distancia con respecto a ellos. Esto es útil en
41
el proyecto de robots humanoides ya que existen referencias fijas (porterías y marcas) con
las que el robot puede estimar su distancia y a partir ello realizar una triangulación para
calcular su posición y orientación dentro del terreno de juego. La Figura 2.9 ejemplifica este
razonamiento al realizar una triangulación formada por dos referencia fijas en el campo y la
ubicación actual del robot.
42
3 SEGMENTACIÓN DE IMÁGENES EN ROBOT
En el presente capítulo se discute la generación de los algoritmos de segmentación de
imágenes a color utilizados para el sistema de visión de los robots humanoides del campus.
Para realizar el análisis de imágenes se eligió utilizar el espacio de color RGB debido a que es
el espacio de color nativo que utilizan los sensores de adquisición en los robots. Se presenta
entonces, un análisis de la distribución de los colores en este espacio, posteriormente se
presenta la alternativa del uso de elipsoides ajustados a la región de interés para realizar el
proceso de segmentación. Se describe su funcionamiento e implementación en los sistemas
robóticos. Finalmente se detalla el desarrollo del segmentador semiautomático de colores en
base a elipsoides en el espacio RGB y se explica su utilidad dentro del proyecto de robots
humanoides.
3.1 ANÁLISIS DE DISTRIBUCIÓN DE COLORES EN EL ESPACIO RGB
Una vez detectadas las áreas de mejora en el módulo de visión de los robots se procedió a
evaluar el comportamiento o distribución de los colores en imágenes tomadas de un
ambiente real. Para realizar este análisis se utilizó ColorSpace [51], un software de licencia
libre que permite visualizar la distribución de los colores de una imagen en diferentes
espacios de color. Se capturaron varias imágenes del campo de juego en el laboratorio de
trabajo y también se utilizaron para el análisis, imágenes guardadas de competencias previas.
En la Figura 3.1 es posible observar la distribución de los colores representativos de la
cancha vistos en el espacio RGB, en particular los colores amarillo, verde y azul
(correspondientes a la portería amarilla, el césped y la portería azul respectivamente). Se
puede apreciar cómo las diferentes tonalidades del color van desde las regiones oscuras hacia
los colores claros, las muestras de color se distribuyen alrededor de un eje principal que tiene
esta tendencia. Esto indica que un cúmulo de pixeles del mismo color tenderá a estar alineado
con respecto a la diagonal principal del espacio cúbico de color RGB.
Es importante señalar que este comportamiento también se debe a que el acabado del color
en los objetos utilizados en la categoría de robots humanoides kid-size es mate u opaco, con
lo cual el ambiente es altamente libre de especularidades provocadas por la incidencia de luz
sobre objetos brillosos. Las variaciones de tonalidad que se presentan son producto de la
diferencia de lecturas relativas a cada sensor de color. También se encuentran variaciones de
tonalidad provocadas por los diferentes ángulos de incidencia y el efecto de las sombras.
43
Si tratamos de cubrir el espacio formado por cada color mediante prismas rectangulares
(como es el caso de los umbrales simples) observamos que necesariamente se agrupan áreas
que no coinciden con la dispersión de las muestras y no son del color de interés. En la Figura
3.2 se aprecia este comportamiento al segmentar el pasto artificial de color verde, las
imágenes izquierdas corresponden a las tomas originales, las centrales muestran el prisma
rectangular propuesto para la segmentación y las imágenes de la derecha muestran los
pixeles que se encuentran dentro del prisma de segmentación. Se puede ver cómo existen
colores que inevitablemente se quedarán dentro de los umbrales a pesar de que se reduzca la
región de segmentación. Una desventaja importante es que al tratar de disminuir esta región
también se desprecian regiones que sí eran de interés provocando falsos negativos.
FIGURA 3.1 ANÁLISIS DE LA DISTRIBUCIÓN DEL COLOR EN EL ESPACIO RGB (PARA COLOR AMARILLO, VERDE Y AZUL)
Es de suponer que, si en lugar de proponer un prisma rectangular, se considerara un
elipsoide (elipse tridimensional) inscrito en el prisma inicial, se tendría un mejor resultado
puesto que se eliminarían las regiones cercanas a los vértices del prisma, los cuales son los
puntos más lejanos con respecto a la línea de tendencia. Aunque esta solución se ajusta de
mejor forma a dispersión de un color dado, esto no es suficiente, ya que se siguen tolerando
espacios no deseados.
Ahora bien, si se logra rotar al elipsoide propuesto de tal manera que el eje principal sea
colineal con la línea de tendencia de un color dado y además la longitud del eje principal sea
44
equivalente a la distancia neta cubierta por la dispersión de ese color, se puede encontrar una
solución satisfactoria al modelo de distribución de un color sólido en un ambiente real que
presenta iluminación no uniforme.
FIGURA 3.2 SEGMENTACIÓN POR UMBRALES SIMPLES
3.2 ELIPSOIDES DE SEGMENTACIÓN
Vemos pues que un elipsoide rotado en el espacio de color RGB se ajusta de forma razonable
a la distribución de los colores. Este modelo brinda mejores resultados comparado con el de
umbrales simples y de acuerdo a R. Álvarez [10] también presenta una mejor respuesta que la
segmentación tipo cónica y de paraboloides. La segmentación tipo cónica modela al color a
través de un volumen cónico cuyo vértice se encuentra en la esquina inferior (color negro)
del espacio RGB y de ahí se proyecta con un ángulo y dimensión de acuerdo a la dispersión
del color de interés. La segmentación por paraboloides suaviza el vértice del cono, lo que
ofrece menor posibilidad de empalmes entre diferentes colores.
La segmentación por elipsoides se ajusta a las diferentes tonalidades oscuras y claras, y su
geometría no deja regiones abiertas como sucede en la segmentación cónica o la de
paraboloides. Una mayor región de segmentación en elipsoides no involucra necesariamente
mayor susceptibilidad a ruido externo. Cabe señalar que la segmentación por elipsoides no
requiere de un gasto computacional elevado lo cual se aborda más adelante en este
documento.
45
Es válido realizar una analogía entre la región que intenta modelar la segmentación por
elipsoides en el espacio RGB y la distribución de colores del espacio HSI. Esta comparación se
hace en el sentido de que el elipsoide rotado rodea a un cúmulo de pixeles cuya distribución
sigue la tendencia de la diagonal principal en el espacio RGB. Esta diagonal en el espacio HSI
equivale al eje correspondiente a la luminosidad o intensidad (componente I). Esto se
muestra en la Figura 3.3 donde en la parte superior de presenta una imagen y en la parte
inferior se muestra la distribución de todos los colores en los espacios RGB (Izquierda) y HSI
(derecha), vemos cómo la diagonal principal en RGB corresponde con el eje de intensidad en
HSI.
FIGURA 3.3 COMPARACIÓN ENTRE DISTRIBUCIÓN DEL COLOR EN HSI Y EN RGB
Los elipsoides rotados en el espacio, sin embargo, requieren de menor procesamiento que la
conversión al espacio HSI ya que como se explica en los siguientes párrafos, en la
segmentación por elipsoides se requiere solamente un juego de multiplicaciones y sumas
para la clasificación de un pixel, mientras que la transformación entre espacios HSI y RGB
requiere el cómputo de funciones trigonométricas y raíces.
A fin de obtener un algoritmo eficiente para la correcta clasificación de colores dentro de un
elipsoide se siguió el planteamiento que se describe a continuación.
Se parte de la idea de encerrar dentro de un elipsoide a toda la región de interés. La
representación matricial de la ecuación general para la superficie de un elipsoide con centro
en el origen y con los semiejes alineados con los ejes cartesianos se presenta a continuación.
46
[
]
[
]
[
]
( )
Donde a, b, y c se refieren a la distancia de los semiejes de la elipsoide con respecto a los ejes
cartesianos X, Y y Z respectivamente. Ahora bien, si deseamos trasladar el origen de este
elipsoide a otro punto en el espacio cartesiano, la ecuación general toma la forma de la
ecuación 3.2 donde , y se refieren a las coordenadas del centro del elipsoide.
[
]
[
]
[
]
( )
Recordemos que esta ecuación modela la superficie de un elipsoide y que la igualdad a uno
nos es muy conveniente para los fines de este análisis ya que se cumplen las siguientes
relaciones de las ecuaciones 3.2, 3.3 y 3.4 las cuales se explican a continuación.
[
]
[
]
[
]
( )
La relación 3.3 se refiere a una región que está dentro de los límites del elipsoide. Mientras
que la ecuación 3.2 se refiere a los límites de este volumen, finalmente la desigualdad
mostrada en 3.4 nos indica toda la región fuera de la superficie del elipsoide que en nuestro
caso es la región que no cumple con los requerimientos de segmentación.
[
]
[
]
[
]
( )
47
La ecuación 3.3 nos da entonces el parámetro de decisión sobre el cual descartaremos o
aceptaremos pixeles en nuestra región de segmentación, bajo el argumento de que todo punto
(x, y, z) que cumpla con la ecuación 3.3 está dentro de la superficie del elipsoide y por tanto
dentro de la región de segmentación. Sin embargo, aún falta rotar esta figura geométrica para
que describa de forma adecuada la distribución del color, es decir, que su eje principal
coincida con la línea de tendencia de nuestro color de interés. La Figura 3.4 en su parte
superior muestra una segmentación para el color amarillo, en este caso el elipsoide ya está
trasladado al punto central de las muestras pero aún no ha sido rotado.
FIGURA 3.4 (SUPERIOR) ELIPSOIDE SIN ROTACIÓN PARA SEGMENTACIÓN DEL COLOR AMARILLO, (INFERIOR) ELIPSOIDE CON ROTACIÓN PARA SEGMENTACIÓN DEL COLOR AMARILLO
Dentro de los algoritmos de ejecución de los robots Bogobots, realmente no se rota el
elipsoide sino que se forma a partir del punto central de éste un nuevo sistema coordenado
de tal forma que el elipsoide cumpla con la forma general de la ecuación 3.1. Los pixeles en el
espacio de color son trasladados a este nuevo sistema coordenado y entonces se evalúa su
pertenencia a la región elipsoidal mediante la ecuación 3.3.
La rotación y traslación de los pixeles al nuevo sistema coordenado se logra utilizando
matrices homogéneas y siguiendo la convención de Euler Z – X – Z se tiene lo siguiente.
Matrices homogéneas para la rotación de una partícula en un espacio tridimensional:
( ) [
] ( ) [
]
48
( ) [
]
La traslación de las partículas está dada por:
[
] [
]
Y finalmente, la matriz de transformación MT se obtiene al evaluar el producto de estas
matrices en el siguiente orden:
[
] ( ) ( ) ( )
A continuación se muestran las tres componentes del vector de posición en la matriz de
transformación MT:
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )] [ ( ) ( )]
[ ( ) ( )] ( )
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )] ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
49
Recordemos que para describir la rotación se utilizaron tres componentes, sin embargo, es
posible simplificar las ecuaciones 3.5, 3.6 y 37 si consideramos que para hallar un elipsoide
que envuelva a una línea de tendencia tridimensional solamente se necesita especificar un
par de rotaciones, (Figura 3.5 y Figura 3.6). La primera consiste en girar al elipsoide
alrededor del eje X (ángulo ) y la segunda corresponde al giro alrededor del eje Z (ángulo ).
FIGURA 3.5 IZQUIERDA: ELIPSOIDE SIN ROTACIÓN, CENTRAL: ROTACION EN EJE Z, DERECHA: ROTACIÓN EN EJE X
Para lograr esto en la rotación de matrices homogéneas con la convención de Euler Z – X – Z
( ) se debe fijar el ángulo con un valor de -
radianes, de modo que el eje X (sobre el
que se realiza la rotación ) sea colineal con el semieje secundario horizontal del elipsoide y
enseguida se realiza la rotación (sobre el eje z). Las ecuaciones resultantes se muestran a
continuación.
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
50
En las ecuaciones 3.8, 3.9 y 3.10 se han remplazado las incógnitas , y por las literales
, , y respectivamente y las variables , , , , y por , , , , y
respectivamente, esto se hace para evidenciar la analogía que existe entre los ejes X, Y y Z del
espacio tridimensional con las componentes RGB que se analizarán en las imágenes (X – Rojo,
Y – Verde, Z – Azul). De la misma forma, se cambia la notación de la ecuación 3.1 y se
convierte en la ecuación 3.11. Esta última ecuación será la que defina la pertenencia de cierto
pixel al elipsoide de segmentación.
[
]
[
]
[
]
( )
Es importante mencionar que el proceso de segmentación de imágenes en los robots
humanoides Bogobots, consiste en dos fases.
1. Análisis de imágenes para determinación de parámetros de segmentación.
2. Análisis de imágenes on-line para clasificación autónoma de colores.
FIGURA 3.6 ELIPSOIDE ROTADO EN EL ESPACIO Y ELIPSOIDE SIN ROTACIÓN
La primera fase consiste en un proceso de calibración donde el usuario haciendo uso de
imágenes representativas del ambiente de juego, encuentra los parámetros de segmentación
tales como la dimensión, traslación y rotación del elipsoide. Una vez que se hallan estos
parámetros, se almacenan en la memoria del robot para ser usados durante la segunda fase.
La segunda fase corresponde a un ambiente de juego en una situación real, donde el robot
adquiere imágenes y las segmenta de forma autónoma utilizando como parámetros de
segmentación los que se guardaron durante la fase 1.
51
3.2.1 DETERMINACIÓN DE PARÁMETROS DE SEGMENTACIÓN POR ELIPSOIDES
Antes de poder ejecutar los algoritmos de segmentación por elipsoides para buscar pixeles
clasificables en algún criterio de color, es necesario identificar y obtener los parámetros que
definen a la geometría de agrupación. Los parámetros necesarios para el funcionamiento de
la segmentación por elipsoides son: las dimensiones de los semiejes del elipsoide (a, b y c), la
coordenada central del elipsoide ( , y ) y los ángulos de rotación del elipsoide ( y
). En total suman nueve los parámetros que es preciso especificar para cada elipsoide de
clasificación de colores. A continuación se propone una metodología para la obtención
manual de estos valores.
1. Se elige una imagen de prueba que contenga al color que se desea segmentar. En la
imagen escogida se toma una serie de muestras sobre pixeles representativos del
color a segmentar. Se obtiene el valor RGB de cada uno de estos pixeles, con lo que se
obtiene un arreglo o lista con tres componentes: rojo , verde y azul
(ecuación 3.12), esta lista representa a la nube de puntos que describe la distribución
del color de interés.
{ } {
[ ]
[ ]
[ ] ( )
2. Se busca identificar la línea de tendencia que están siguiendo las muestras
almacenadas, el semieje principal del elipsoide será un fragmento de la recta
encontrada, es de particular interés encontrar los puntos extremos (máximo y
mínimo) sobre esta recta que acotarán la dimensión del eje principal del elipsoide.
Una manera en la que se propone encontrar esta línea de tendencia es utilizando un
algoritmo de regresión lineal basado en la teoría de mínimos cuadrados. Se elige este
método debido a que entrega resultados consistentes y resulta sencilla su aplicación.
Cabe apuntar que el método de mínimos cuadrados no es tan eficiente cuando en las
muestras existen valores fuera de rango, sin embargo, se parte del supuesto que el
usuario ha tomado solamente valores del color de interés por lo que no se tiene este
problema. La implementación se lleva a cabo de la siguiente manera.
1) Se toma un par de componentes del arreglo (por ejemplo rojo y verde
) a fin de realizar un análisis en dos dimensiones. La Figura 3.7 muestra una
gráfica ejemplo la cual incluye una serie de puntos muestra y la línea de
52
tendencia correspondiente obtenida mediante el método de mínimos
cuadrados.
FIGURA 3.7 LINEA DE TENDENCIA PARA COMPONENTES ROJO (R) Y VERDE (G) .
Es importante señalar que las fórmulas presentadas a continuación toman en
consideración la minimización del error cuadrático en los valores de Y,
asumiendo que los valores en X son correctos, se escoge esta metodología por
su simplicidad en la implementación. Se trata entonces de hallar los
parámetros de pendiente m e intersección k en la función de la forma de la
ecuación 3.13.
( )
Estos parámetros se encuentran al aplicar las ecuaciones de regresión lineal
simple [49] mostradas en las ecuaciones 3.14 y 3.15.
∑
∑ ∑
∑
(∑ )
( )
∑ (∑ )
( )
53
2) Ya que se tienen los parámetros m y k, entonces encontramos las coordenadas
que representen los extremos de la nube de puntos, para ello, evaluamos el
valor mínimo del arreglo en X (en este ejemplo, el valor mínimo del arreglo
) en la ecuación 3.13, se hace lo mismo con el valor mínimo del arreglo en Y
(en este ejemplo, el valor mínimo del arreglo ) mediante el despeje de X en
la ecuación 3.13. La coordenada mínima sobre la recta corresponderá al par
de puntos de menor magnitud.
( ) (( ) ( )) ( )
3) Para encontrar los puntos máximos se realiza lo mismo que en 2) pero ahora
evaluando y comparando los valores máximos de los arreglos.
( ) (( ) ( )) ( )
4) Para conocer la tercer componente de las coordenadas máximas y mínimas
( y ), se elige un segundo par de sub-arreglos del arreglo (por
ejemplo verde y azul ), nuevamente se encuentran los parámetros de
una línea de tendencia como se explica en 1) y ahora simplemente se resuelve
la ecuación 3.11 con la variable conocida (en este ejemplo y ,
obtenidos en el paso anterior) y así obtenemos los valores de y .
3. Una vez que se tienen las coordenadas máximas y mínimas representativas de la nube
de puntos ( y ), se computa la longitud entre estas
coordenadas, recordemos que este valor corresponde a la longitud del eje principal
del elipsoide ( ). Para obtener este valor se aplica la ecuación 3.18 basada en una
proyección del teorema de Pitágoras a tres dimensiones.
√( )
( ) ( )
( )
La longitud de los dos semiejes secundarios b y c debe ser tal que el elipsoide
resultante logre envolver la nube de puntos muestra. Para esto se propone utilizar
una transformación geométrica de los planos descritos en el punto 2. De tal forma que
la línea de tendencia coincida con el eje X, la transformación se realiza sobre los
puntos muestra y se calcula entonces la desviación estándar sobre el eje Y,
54
(perpendicular a la línea de tendencia) de las nuevas muestras. El procedimiento
descrito se ilustra en las ecuaciones 3.19 y 3.20.
[
]
[
] [
] [ ]
√∑ (
∑
)
( )
[
]
[
] [
] [ ]
√∑ (
∑
)
( )
Cabe recordar que la desviación estándar se define como la desviación promedio
entre las muestras y la media, por lo que una distancia en los semiejes igual a dos
veces la desviación estándar puede resultar adecuada. En la práctica es sencillo
definir la longitud de los semiejes secundarios al contar con retroalimentación en una
imagen sobre la segmentación resultante o una gráfica tridimensional que dibuje al
elipsoide y los puntos muestra.
4. La coordenada del punto medio del elipsoide resulta simplemente de promediar los
puntos máximos y mínimos del eje principal del elipsoide calculados en el punto 2.
Esto se muestra en las ecuaciones 3.21.
( )
5. Para hallar la rotación se procede de la siguiente manera, recordemos que se utilizó la
convención de Euler Z-X-Z para describir la rotación del elipsoide y que además se
definió la primer rotación en Z ( ) con un valor de
, los dos parámetros de rotación
de Euler restantes los encontramos al auxiliarnos de los dos puntos límite de la línea
55
de tendencia definidos en el punto 2. La rotación sobre el eje X ( ) se resuelve
mediante la ecuación 3.22.
(√( )
( )
) ( )
Mientras que se encuentra simplemente por:
(
) ( )
Con esto se definen los ángulos de rotación para el elipsoide mismos que son
utilizados por las ecuaciones 3.8, 3.9 y 3.10.
Siguiendo los cinco pasos descritos, se pueden encontrar los nueve parámetros necesarios
para caracterizar al elipsoide con rotación. Es importante señalar que la metodología
propuesta no garantiza que todos los puntos muestra se encuentren dentro del elipsoide, sin
embargo, con este método es posible modelar bajo una geometría cerrada a cualquier región
de muestras tridimensional cuya distribución siga una tendencia lineal.
3.2.2 PROCEDIMIENTO PARA LA SEGMENTACIÓN ON-LINE POR MEDIO DE ELIPSOIDES
Cuando el sistema de visión ya tiene información sobre los parámetros que definen al
elipsoide de segmentación, entonces es posible utilizar esta información para que el sistema
pueda por sí mismo encontrar un color dado en un ambiente real, por medio del análisis de
imágenes. El procedimiento para clasificar un pixel dentro de la segmentación por elipsoides
consiste en una serie de pasos descritos a continuación.
1. A partir de una imagen se elige un pixel.
2. Para este pixel se obtienen sus valores de rojo, verde y azul (R, G y B).
3. Se realiza la traslación tridimensional de este punto utilizando las ecuaciones de
trasformación 3.8, 3.9 y 3.10 a fin de encontrar la posición de este pixel en las nuevas
coordenadas cartesianas [ ].
4. Los valores encontrados se evalúan en la ecuación de elipsoide 3.11.
5. Si el resultado es igual o menor a ‘1’, entonces se considera que el pixel está dentro de
la región de segmentación y por lo tanto es un pixel del color de interés. En caso
contrario el pixel se considera no clasificable dentro del color dado.
56
FIGURA 3.8 SEGMENTACIÓN POR ELIPSOIDES
La Figura 3.8 muestra la misma imagen analizada en la Figura 3.2 pero ahora utilizando
elipsoides rotadas en el espacio para generar la segmentación (tiempo de procesamiento:
74ms). La Figura 3.9 muestra otra comparación entre los resultados obtenidos mediante
segmentación por elipsoides (superior derecha) vs umbrales simples (superior central).
Obsérvese que la segmentación por umbrales simples permite una mayor incorporación de
pixeles no deseados en la región de segmentación, en este ejemplo, se tienen algunos pixeles
de césped clasificados como color amarillo, sucede lo mismo con la tabla situada en la pared.
Al realizar una segmentación por elipsoides, la región de acotamiento se vuelve más
restrictiva, con lo que se consigue un modelo más exacto al color que se desea segmentar. En
la Figura 3.9 se realiza el análisis para dos colores con un tiempo de procesamiento de 138ms
para el caso de segmentación por elipsoides.
FIGURA 3.9 RESULTADOS DE SEGMENTACIÓN ELIPSOIDES VS. UMBRALES SIMPLES
57
3.3 OPTIMIZACIÓN DE BÚSQUEDA
Recordemos que el algoritmo expuesto para la segunda fase de segmentación (segmentación
autónoma on-line) se debe aplicar de manera independiente para cada color que se desee
segmentar. Aunque se ha realizado lo posible para simplificar este proceso al hacer que al
pixel de interés sólo se le necesite realizar algunas multiplicaciones y sumas, al intentar
evaluar más de un color requeriremos de mayor poder computacional. Lo cual en el caso de la
CMUCam3 o de un procesador de uso portátil resulta difícil de conseguir. Por esto, para la
segmentación autónoma on-line, es recomendable proponer un algoritmo que ahorre el
mayor tiempo posible en el análisis de cada pixel para poder analizar el mayor número de
cuadros por segundo.
La segmentación por elipsoides rotados en el espacio es una manera precisa de modelar un
color dado, sin embargo, requiere de mayor procesamiento que el método de umbrales
simples, ya que este último utiliza solamente comparaciones para la decisión de clasificación.
Para optimizar entonces los tiempos en la segmentación de imágenes se realiza una
preclasificación de las muestras.
FIGURA 3.10 IZQ. – IMAGEN CON COLORES AMARILLO Y AZUL, CENTRAL – REGIÓN DE COLOR AMARILLO, DER. – REGIÓN DE COLOR AZUL.
Podemos notar que resulta poco eficiente examinar a cada pixel de la imagen bajo el método
riguroso de elipsoides cuando posiblemente el pixel se encuentra bastante lejano de nuestra
región de interés, un ejemplo de ello es al evaluar un pixel azul (que usualmente tiene una
componente B grande y una R pequeña), siendo el color amarillo (que usualmente tiene una
componente en B casi nula y una R grande) el que deseamos segmentar, esto se puede
visualizar en la Figura 3.10.
Ante esto se decidió utilizar un método de preclasificación mucho más sencillo y rápido que el
sistema de elipsoides. Éste se basa en una lógica de decisión de umbrales simples. La idea es
construir un prisma rectangular en cuyo volumen se encuentre la geometría del elipsoide de
segmentación. Se parte de la siguiente hipótesis.
58
Es posible analizar más cuadros por segundo si primero se clasifica cada pixel en un prisma rectangular, y luego se refina la clasificación en un elipsoide que si sólo se clasifican los pixeles en cada elipsoide.
Para llevar esto a la práctica, es necesario encontrar un prisma rectangular que encierre al
elipsoide de interés, este prisma no debe ser demasiado pequeño de manera que algunas
regiones del elipsoide queden fuera del prisma y tampoco debe ser demasiado grande de
manera que existan muchos pixeles que pasen este pre-filtro sin que en realidad sean
clasificables. Para dar solución a esto, al final de la fase de calibración se puede construir un
prisma mediante el siguiente procedimiento.
1. Se encuentran los límites inferiores del prisma ( ) con el ciclo que
se presenta a continuación.
Para (en segundo ciclo se hace para y en el tercero para )
a. Para (2° ciclo para , 3° ciclo para )
i. Para (2° ciclo para , 3° ciclo para )
1. Se evalúa el pixel ( ) en el elipsoide hallado según el
procedimiento descrito en la Sección 3.2.2 a partir del paso 3.
2. Si el resultado es , se toma el valor actual de R como
(en 2° ciclo se encuentra y en el 3° ) y se detiene
la iteración.
2. Se encuentran los límites superiores del prisma ( ) con el ciclo
que se presenta a continuación.
Para (en segundo ciclo se hace para y en el tercero para )
a. Para (2° ciclo para , 3° ciclo para )
i. Para (2° ciclo para , 3° ciclo para )
1. Se evalúa el pixel ( ) en el elipsoide hallado según el
procedimiento descrito en la Sección 3.2.2 a partir del paso 3.
2. Si el resultado es , se toma el valor actual de R como
(en 2° ciclo se encuentra y en el 3° ) y se detiene
la iteración.
Con esto se tiene la definición del prisma que encierra exactamente al elipsoide de interés sin
perder datos de regiones útiles pero tampoco incluir datos innecesarios, es importante
mencionar que el algoritmo de construcción del prisma sólo se debe llevar a cabo una vez
después de haber encontrado los parámetros del elipsoide durante el proceso de calibración
y posteriormente solamente se utilizan los valores de
y para realizar el pre-filtro durante la segmentación autónoma.
59
A continuación se presenta el algoritmo general de segmentación autónoma on-line
considerando que ya se tienen almacenados los parámetros de segmentación.
Para cada pixel de la imagen (RGB)
1. Para i = 1 … N (Se suponen N colores distintos).
2. Evaluar si el pixel (RGB) pertenece al prisma del i-ésimo color (utilizando
y ).
3. Si no pertenece al i-ésimo prisma entonces incrementar i = i+1 y regresar al paso 2.
4. Si pertenece entonces evaluar si también pertenece al i-ésimo elipsoide de color.
5. Si no pertenece al elipsoide entonces incrementar i = i+1 y regresar al paso 2.
6. Si pertenece al elipsoide entonces el pixel es de color i, y Fin.
FIGURA 3.11 FILTRO CON UMBRALES SIMPLES Y POSTERIOR SEGMENTACIÓN CON ELIPSOIDES
De esta manera se obtiene un ahorro de tiempo sustancial ya que, como se mencionaba
anteriormente, el primer filtro de umbrales simples utiliza solamente tres pares de
comparaciones para obtener el resultado.
TABLA 3.1 COMPARACIÓN ENTRE MÉTODOS DE SEGMENTACIÓN SIMULTÁNEA DE LOS COLORES AZUL, AMARILLO, VERDE Y BLANCO
Muestra Tiempo de segmentación SIN pre-filtro de prisma
(ms)
Tiempo de segmentación CON pre-filtro de prisma
(ms)
1 136 51
2 129 50
3 130 50
4 146 56
5 144 52
6 135 51
60
La Tabla 3.1 contiene una comparación sobre el desempeño de un sistema que realiza la
segmentación de 4 colores distintos en la misma imagen (amarillo, azul, verde y blanco)
primero sin utilizar el pre-filtro del prisma y posteriormente haciendo uso de éste. Para
comparación se utilizó al mismo sistema con un procesador de doble núcleo corriendo a 1.8
GHz, las imágenes analizadas tienen una resolución de 320 X 240 pixeles.
En la Figura 3.12 se pueden observar algunas de las muestras utilizadas para la comparación.
El sistema de segmentación que utiliza el pre-filtro de prismas puede procesar mayor
cantidad de cuadros por segundo que si sólo procesan los elipsoides. El tiempo de ciclo para
el algoritmo con pre-filtro consume entre el 37 y 39% del tiempo ocupado sin el pre-filtro de
prisma. Cabe destacar que el resultado de segmentación en ambos métodos es idéntico, sólo
cambia el tiempo de ejecución del algoritmo.
1 2 3
4 5 6 FIGURA 3.12 EJEMPLO DE IMÁGNES SEGMENTADAS DURANTE LA COMPARACIÓN DE LA TABLA 3.1
3.4 HERRAMIENTA DE SEGMENTACIÓN EN LÍNEA SEMI-AUTOMÁTICA
Elaborar un elipsoide que modele de forma correcta una región de color resulta ser no trivial,
como se comentó en la Sección 3.2, se requiere de varios parámetros con los cuales podremos
definir los límites y características del elipsoide. Para encontrar estos parámetros de forma
manual y heurística es necesario contar con una herramienta de visualización gráfica
tridimensional donde sea posible representar en el espacio RGB la distribución del color de
interés, y después acomodar un elipsoide para que visualmente cumpla con las
61
especificaciones requeridas ajustando los valores de longitud en cada uno de los ejes así
como las rotaciones en los ejes X y Z.
Realizar de forma manual este elipsoide para cada color que se desea segmentar sin algún
tipo de información previa es poco práctico y puede provocar como resultado regiones mal
acotadas que conlleva a la pérdida de información y un desempeño pobre del sistema. Para
atacar este problema se diseñó una interfaz gráfica que permite de forma semiautomática
encontrar los elipsoides correspondientes a nuestro análisis. Para realizar esta herramienta
se utilizó la plataforma de LabView® debido a su facilidad y robustez en la comunicación con
los puertos periféricos del sistema así como en el despliegue de interfaces y visualización de
gráficos tridimensionales [38].
La herramienta generada se puede instalar en cualquier computadora con el sistema
operativo Windows® y con éste es posible segmentar imágenes vía Serial, mediante USB o
imágenes almacenadas en formato BMP, JPG, o PNG. El manual de uso para esta aplicación se
encuentra en el Anexo D de este trabajo, en esta Sección se abordarán las características más
sobresalientes del programa.
FIGURA 3.13 VISTA GENERAL DE LA INTERFAZ DE SEGMENTACIÓN SEMIAUTOMÁTICA
La secuencia del proceso de segmentación utilizando esta interfaz es como sigue:
Primeramente se adquiere una imagen, ya sea desde una Cámara Web, la CMUCam3 o algún
archivo de imagen previamente guardado. Una vez que se tiene esta imagen, el usuario toma
62
algunas muestras del color de interés; los parámetros RGB de estas muestras se almacenan
en la memoria del procesador y es entonces cuando el algoritmo de generación
semiautomática de elipsoides comienza su actividad.
El primer paso de este algoritmo consiste en identificar la línea de tendencia que están
siguiendo las muestras almacenadas, esto se realiza a través de una caracterización de los
puntos buscando una regresión lineal siguiendo el procedimiento descrito en la Sección 3.2.1.
Esta recta será el semieje principal del elipsoide, para conocer su longitud se aplica la
ecuación 3.18 y el punto medio se define por la ecuación 3.21.
Para hallar la rotación se usa la convención de Euler Z-X-Z, siguiendo con el procedimiento
descrito en la Sección 3.2.1, el ángulo toma un valor de
, y los ángulos y se obtienen
mediante las ecuaciones 3.22 y 3.23 respectivamente.
Con esto se genera automáticamente un elipsoide que encierra a las muestras seleccionadas.
Cada vez que el usuario hace un clic sobre la imagen, o cambia algún parámetros, la
herramienta entra en la modalidad de calibración y obtención de parámetros a fin de ajustar
el elipsoide formado tomando en cuenta los cambios generados, una vez que se encuentran
los nuevos parámetros, el sistema cambia a la modalidad de segmentación y empieza a
segmentar automáticamente las imágenes entrantes de acuerdo a los criterios actuales.
Durante la modalidad de segmentación el rendimiento no se ve afectado por el número de
muestras que haya ingresado el usuario, ya que solamente se evalúan los pixeles de acuerdo a
los parámetros ya obtenidos. Durante la modalidad de calibración el sistema sí puede verse
afectado por el número de muestras ingresadas para el cálculo de los nuevos parámetros, sin
embargo, en una computadora con procesador a 1.8GHz, el proceso de calibración no supera
los 200ms. Debido a esto, la respuesta a cambios por el usuario en los parámetros parece ser
instantánea.
Aunque generalmente no es necesario, la herramienta de segmentación también permite
configurar hasta cinco parámetros útiles para describir a la región de color. Estos parámetros
son:
Ángulo de rotación Euler en eje R (θ)
Ángulo de rotación Euler en eje B (ψ)
Longitud de semieje R (a)
Longitud de semieje G (b)
Longitud de semieje B (c)
Con esto el usuario avanzado tiene la libertad de hacer ajustes finos sobre la región de
segmentación.
63
3.4.1 RETROALIMENTACIÓN DEL SEGMENTADOR
El usuario tiene dos formas de retroalimentación, mediante una gráfica tridimensional del
espacio de color y por medio de la visualización de los resultados de segmentación en la
misma imagen. La gráfica tridimensional muestra todo el espacio RGB siendo los ejes XYZ las
componentes Rojo, Verde y Azul respectivamente; en este espacio de color se grafican cada
una de las muestras tomadas en la imagen (marcadas en rojo), con lo que el usuario puede
identificar con mayor facilidad la región de color que se está evaluando.
En el mismo espacio también se grafica el elipsoide resultante del proceso de segmentación.
Esto se realiza mediante la evaluación de una red de puntos sobre la superficie del elipsoide
que representa el límite de la región de segmentación, se utiliza para ello las herramientas de
graficación y despliegue para cuerpos tridimensionales incorporadas en LabView®, se utiliza
una red de puntos a fin de poder visualizar las muestras de color rojo que en teoría se
encuentran dentro del elipsoide.
De esta forma, el usuario puede observar en qué regiones se concentran las muestras
obtenidas y asimismo puede identificar posibles mejoras en la segmentación al comparar la
posición y orientación del elipsoide con respecto a la nube de puntos.
FIGURA 3.14 DETALLE DE IMÁGEN EN LÍNEA Y REPRESENTACIÓN TRIDIMENSIONAL
Otra forma de retroalimentación consiste en que al mismo tiempo que el usuario toma nuevas
muestras, los resultados de la segmentación automática se hacen evidentes en la imagen de
trabajo, los pixeles que entran en la región son cambiados por un color característico de
manera que el usuario identifica con facilidad las áreas de la imagen que entran en los
parámetros de segmentación con lo cual resulta sencillo también identificar regiones de
falsos positivo o falsos negativos y hacer los ajustes necesarios.
El segmentador también obtiene de forma automática las dimensiones y posición del prisma
rectangular que se ajusta de forma exacta al elipsoide mediante el procedimiento descrito en
64
la Sección 3.3, este prisma se utiliza para el primer filtro en el proceso de segmentación. Las
medidas se obtienen al evaluar cada plano del espacio desde los extremos hacia adentro a fin
de encontrar el punto donde el prisma haga contacto con el elipsoide. A petición del usuario
en la herramienta, el prisma formado también se puede graficar en el espacio tridimensional
a fin de observar sus características, asimismo se tiene la opción de visualizar el resultado de
la segmentación utilizando sólo los prismas rectangulares de manera que podemos comparar
los resultados de ambos métodos.
La herramienta de segmentación generada también tiene la funcionalidad de poder
segmentar de manera simultánea todos los colores de interés para la categoría Kid-Size
(amarillo, azul, naranja, verde, blanco, magenta y cian) logrando con ello el poder identificar
posibles empalmes entre las regiones clasificadas con lo que se hace más fácil el poder
corregir de manera objetiva el tratamiento previo de la imagen y prevenir errores de visión
durante el partido. Otra característica importante es que el programa obtiene
automáticamente las constantes de las ecuaciones 3.8, 3.9 y 3.10 que corresponden al vector
de posición para la matriz de transformación MT, estas constantes junto con las dimensiones
de los semiejes y los límites del prisma rectangular para el pre-filtro son guardados en un
archivo de configuración, el cual consiste en un archivo de texto que tiene todos estos valores
en un formato preestablecido. Este archivo después es utilizado por los robots humanoides y
su uso se describe en la sección 3.5.
FIGURA 3.15 SEGMENTACIÓN DE VARIOS COLORES Y HERRAMIENTAS DE CONFIGURACIÓN
Un punto crucial de la herramienta de segmentación semiautomática, es la característica de
poder tomar imágenes desde una Cámara Web vía USB o desde una CMUCam3 vía serial. La
rápida ejecución del algoritmo de segmentación junto con esta funcionalidad permite que sea
posible el análisis de imágenes en línea, con esto, el usuario puede estar realizando el proceso
de segmentación mientras ve imágenes reales en vivo. Esto elimina la necesidad de capturar
65
previamente las imágenes y después realizar el proceso de segmentación de modo “offline”,
gracias a ello el tiempo para realizar esta calibración baja de manera significativa siendo
ahora de unos cuantos minutos cuando anteriormente se promediaban tiempos superiores a
la media hora sumado a resultados menos eficientes. Con un procesador de doble núcleo a
1.83GHz se alcanzan tazas de actualización de hasta 30 cuadros por segundo para un solo
color y de hasta 10 cuadros por segundo en el análisis simultáneo de los siete colores
representativos del ambiente de juego, todo esto para imágenes con una resolución de 320 X
240 pixeles.
3.5 IMPLEMENTACIÓN EN ROBOTS HUMANOIDES
El robot Bogobot 2 cuenta con un procesador Vortex que trabaja a 1000MHz, tiene
incorporada una memoria DRAM de 256MB, además cuenta con 24 puertos digitales de I/O, 8
entradas analógicas comunicadas mediante SPI, comunicación I2C, 3 puertos seriales y 3
puertos USB 2.0. El disco duro es una micro SD clase 6 con el sistema operativo Microsoft
Windows XP®. Esta microcomputadora se encarga de todo el procesamiento del sistema,
desde los algoritmos de visión hasta la resolución de las ecuaciones de trayectorias,
cinemática inversa, adquisición de señales en sensores y estrategias de decisión.
Para tal efecto se instaló el entorno de programación de LabView® que sirvió como
plataforma principal para controlar el comportamiento del robot. Labview® utiliza una
estructura de programación basada en el flujo de información por lo que no es secuencial.
Esto hace posible que el sistema pueda ejecutar varias tareas en paralelo lo cual es útil para
separar los diferentes módulos de trabajo en el robot así como para asignar la prioridad que
cada uno de éstos tiene durante la ejecución de rutinas. Para el módulo de visión entonces, se
dejó de utilizar la CMUCam3 reemplazando la adquisición de imagen por una cámara web
conectada a uno de los puertos USB.
El proceso de calibración de segmentación para hallar los parámetros de los elipsoides ahora
se realiza en el entorno de LabView®. En el robot Bogobot 2 se ajustó la interfaz de
segmentación y se cargó directamente en el sistema operativo del robot, con ello, resulta aún
más fácil la tarea de la calibración de segmentación ya que en el mismo robot se realiza esta
operación sin necesidad de realizar conexiones adicionales o recompilar el programa.
Además gracias a la comunicación a través de USB el periodo de actualización de imagen se
reduce y aunque aún toma un tiempo alto el periodo de adquisición y análisis debido a las
características del procesador (750ms), este tiempo representa menos del 25% del que se
66
lograba anteriormente. Nuevamente los parámetros encontrados son guardados en archivos
de configuración que después son cargados por el programa principal del jugador. Debido a
que estos archivos son ajenos al código de la rutina, no es necesario recompilar el programa
cada vez que se genera o modifica alguna segmentación de color. También es implementado
el uso del filtro de preclasificación con lo cual se libera gran carga del procesador para
ocuparse en otras actividades como el cálculo de trayectorias, estrategia de decisión, etc.
Finalmente una ventaja importante al hacer uso de una cámara web además de tener una
mejor calidad de imagen, es la posibilidad de hacer un tratamiento previo al análisis de la
imagen como el ajuste de brillo, contraste, balance de blancos, exposición y ganancia entre
otras características estas tareas las realiza el controlador interno de la cámara por lo que se
libera al procesador principal de estas rutinas previas de acondicionamiento.
3.6 RESULTADOS EN SEGMENTACIÓN DE IMÁGENES
En este capítulo se presentó el diseñó un algoritmo de segmentación basado en regiones
delimitadas por elipsoides en el espacio tridimensional de color. De esta manera se logró
disminuir de forma significativa el ruido en segmentación provocado por falsos positivos que
se producían cuando se usaba la rutina anterior (basada en umbrales simples). Los elipsoides
resultaron ajustarse de mejor manera a la distribución de color, logrando con ello que se
pudieran realizar segmentaciones más precisas.
Resultó fundamental para la efectiva implementación del algoritmo en un entorno real, la
realización de una herramienta de segmentación semiautomática ya que con ello, el sistema
encuentra los diferentes parámetros necesarios para describir cada elipsoide de interés,
permitiendo al usuario seleccionar las regiones de color de una forma intuitiva. Sin esta
aplicación sería necesario que el usuario final tuviera bastante experiencia previa en la teoría
de distribución del color así como en la traslación y rotación de coordenadas
tridimensionales a fin de lograr una segmentación precisa en cierto tiempo límite. Gracias a la
herramienta generada se puede hallar el elipsoide de interés de forma intuitiva lo cual
requiere de un nivel de experiencia mínimo para lograr una segmentación satisfactoria. Por
otro lado, el uso de la herramienta de segmentación permite generar los parámetros de
elipsoides en un tiempo muy corto comparado contra el tiempo que tomaba el calibrar cierta
región bajo el método anterior off-line.
La metodología propuesta fue probada en primera instancia en el laboratorio y después se
tuvo oportunidad de llevarla a la práctica en los campeonatos internacionales de RoboCup
67
2009 y 2010 donde se utilizó la herramienta de segmentación para calibrar las regiones
elipsoidales, particularmente, a partir de 2009 se eliminó por reglamento la iluminación
especial en las canchas y los robots ahora debían adaptarse a las condiciones de luz propias
del lugar donde se efectuara la competencia. Los resultados en estas competencias fueron
satisfactorios logrando incluso la calificación a los cuartos de final, algo nunca antes
conseguido por el equipo del Campus Estado de México, esto representó estar posicionados
entre los mejores ocho equipos del mundo, y en su momento, ser el único equipo del
continente americano en estar en este grupo. Los algoritmos de segmentación también se
probaron en torneos nacionales, particularmente, en el Torneo Mexicano de Robótica,
celebrado en 2009 donde se logró obtener el segundo lugar, solamente detrás del equipo
invitado, el actual campeón del mundo, el conjunto alemán Darmstadt Dribblers.
FIGURA 3.16 SEGMENTACIÓN DE IMÁGENES MEDIANTE REGIONES ELIPSOIDALES (COLORES VERDE Y AZUL)
En estos eventos se confirmó la validez de los algoritmos de segmentación propuestos. Al
tener una segmentación más exacta se disminuyó la cantidad de ruido en las imágenes por lo
que ahora los robots tenían la habilidad de identificar la pelota a una distancia mayor a los
2.5m, situación en la cual, la pelota representa solamente unos cuantos pixeles de la
resolución total de la imagen. Al no existir ruido significativo en las imágenes también se
logró identificar las porterías con mayor rango de seguridad, incluso desde los extremos más
lejanos del campo (las esquinas opuestas a las porterías). También, al utilizar el segmentador
semiautomático se consiguió obtener los parámetros de regiones en un menor tiempo
68
(inferior a los 10 minutos), esto representó una gran ventaja en competiciones ya que los
tiempos entre partidos son cortos, e incluso se llegan a programar juegos continuos (sin
tiempo para re-calibración). Al configurar la segmentación en un menor periodo se logró
tener mayor oportunidad de aprovechar el tiempo ganado para ajustar otras áreas del robot,
lo que se tradujo en tener un mejor desempeño general.
69
4 IDENTIFICACIÓN DE PATRONES
Una vez que es posible identificar regiones de color en una imagen (proceso de
segmentación) es necesario conocer sus características a fin de que el sistema robótico sea
capaz de tomar decisiones de más alto nivel. Para que un robot pueda desempeñarse de
manera fiable durante un partido de futbol, se requiere que al menos el robot pueda
reconocer los colores naranja, amarillo y azul, los cuales corresponden a los colores con los
que se identifican la pelota, las dos porterías y las marcas de referencia laterales. Para efectos
de la localización y navegación del robot dentro del terreno de juego, las porterías y marcas
de referencia resultan de gran interés ya que estos objetos son elementos fijos en la cancha,
es decir, no cambian su posición durante el partido, por lo que los robots pueden utilizar esto
como referencia y así poder deducir su ubicación y orientación en el campo de juego. En las
siguientes líneas se detalla la manera en que se abordó el problema de identificar los
elementos de la cancha antes mencionados.
4.1 ANÁLISIS DE CARACTERÍSTICAS DE OBJETOS
Tenemos pues, que las porterías y marcas de referencia son objetos importantes para la
localización y navegación de los robots, el valor de estos objetos también se debe a que son
elementos con representación única dentro del campo de juego, es decir, que en la cancha
solamente existe una portería amarilla, una portería azul, una marca de referencia lateral azul
y una marca de referencia lateral amarilla. Cada uno de estos objetos posee características y
combinaciones de colores diferentes de modo que son perfectamente identificables y
diferenciables entre sí.
La Figura 4.1 muestra cada uno de los objetos antes mencionados según el reglamento de
2009. Se puede observar que aunque los objetos son completamente diferentes en cuanto a
su forma y tamaño, comparten características en cuanto al color, es decir, los cuatro
elementos están identificados por diferentes combinaciones de los colores amarillo y azul,
esto descarta la posibilidad de utilizar solamente la variable de color para poder distinguir
con fiabilidad los cuatro distintos objetos.
Sin embargo, podemos encontrar que la relación y proporción que guarda la distribución de
los colores en los diferentes objetos es único, por lo que es posible atacar el problema de
identificación mediante estas características.
70
4.1.1 CONFIGURACIÓN DE 2009
A fin de tener una participación satisfactoria en 2009, surge la necesidad de diferenciar los
objetos de referencia en la cancha, ya que en un partido es fundamental al menos reconocer
con seguridad la ubicación de ambas porterías puesto que son éstas donde la pelota debe
ingresar. La preocupación radicaba en poder identificar cada una de las porterías sin tener
falsos positivos o falsos negativos ocasionados por la presencia de las marcas laterales. Para
ello se realizó un análisis general sobre las características y relaciones que guardan cada uno
de estos objetos entre sí tanto en su forma como en su ubicación dentro del terreno de juego.
Al tomar imágenes desde la perspectiva del robot a nivel de cancha, resultó claro que cuando
el robot centraba con su cabeza cualquier portería desde diferentes posiciones en el campo,
era poco probable que en una sola toma lograra captar tanto la portería como alguna marca
de referencia lateral al mismo tiempo, y cuando esto sucedía (en las regiones cercanas a las
esquinas contrarias a la portería observada), la proporción de área ocupada por la portería
era mucho mayor al área ocupada por la marca de referencia.
a) b)
c) d)
FIGURA 4.1 A) PORTERÍA AZUL 2009, B) PORTERIA AMARILLA 2009, C) MARCA DE REFERENCIA LATERAL AMARILLA 2009, D) MARCA DE REFERENCIA LATERAL AZUL 2009
Para comprobar esta tendencia se recopiló información de varias muestras representativas
de imágenes en la cancha desde la perspectiva del robot. Para esto, se tomaron una serie de
71
fotografías desde diversos puntos en la cancha que fueran suficientemente representativos de
todas las situaciones en las que se puede encontrar el robot. La Figura 4.2 muestra un mapa
del terreno de juego con los puntos que se establecieron para recabar las imágenes de
muestra. Para el análisis se tomaron un total de 50 imágenes desde las ubicaciones antes
mencionadas, estas imágenes se encuentran en el Anexo A de este documento.
FIGURA 4.2 UBICACIONES SELECCIONADAS PARA EL ANÁLISIS DE OBJETOS
La Tabla 4.1 muestra los resultados de segmentación para el subgrupo de imágenes que
contenían a las porterías (los números de imagen pueden no ser consecutivos, ya que la tabla
muestra sólo las imágenes que contienen porterías; los números de imagen coinciden con la
imágenes del Anexo A). La tabla muestra para cada imagen el número de pixeles amarillos, el
número de pixeles azules, la relación que guarda el número de pixeles amarillos con los
pixeles azules y finalmente el resultado conocido o real de la imagen (si se trata de portería
amarilla o azul).
Al analizar la Tabla 4.1 se puede afirmar que siempre que se observe una portería, la cantidad
de pixeles del color de la misma deberá ser mucho mayor al número de pixeles del color de la
portería contraria. De hecho, la cantidad de pixeles de la portería contraria suele ser un
número muy bajo e incluso de valor cero, en este caso se debe validar el resultado de la
relación de pixeles para que no se indefina (posible división entre cero). En el caso de la Tabla
4.1 se observa que la relación mínima entre pixeles es de 317.3 para porterías amarillas y
0.007 para porterías azules.
Los otros elementos de interés en la cancha son las marcas de referencia laterales, las cuales
están compuestas por dos colores en la siguiente proporción, dos partes del color principal
72
por una parte del color secundario. De las imágenes muestra se eligió un segundo subgrupo
correspondiente a imágenes que contienen las marcas de referencia laterales. Los resultados
de segmentación se muestran en la Tabla 4.2 donde nuevamente se enlista para cada imagen
el número de pixeles amarillos, el número de pixeles azules, la relación que guarda el número
de pixeles amarillos con los pixeles azules y finalmente el resultado conocido o real de la
imagen (si se trata de referencia lateral amarilla o azul). Los valores máximos de relación en
la Tabla 4.2 son 3.06 para la referencia amarilla y 0.52 para la referencia lateral azul.
TABLA 4.1 RELACIÓN DE PIXELES PARA PORTERÍAS EN 2009
Imagen Número de Pixeles Azules en Imagen
Número de Pixeles Amarillos en Imagen
Relación entre pixeles amarillos y pixeles
azules en la imagen
Resultado conocido
3 1 6717 6717 Portería Amarilla
5 0 13265 Infinito Portería Amarilla
12 2 10229 5114.5 Portería Amarilla
13 8 2864 358 Portería Amarilla
17 7 3091 441.5714286 Portería Amarilla
22 10 3173 317.3 Portería Amarilla
28 4 16682 4170.5 Portería Amarilla
31 2 5651 2825.5 Portería Amarilla
33 1 5236 5236 Portería Amarilla
42 7 1543 220.4285714 Portería Amarilla
43 14 16870 1205 Portería Amarilla
46 2 1829 914.5 Portería Amarilla
1 5811 32 0.005506797 Portería Azul
7 3066 8 0.002609263 Portería Azul
10 3001 5 0.001666111 Portería Azul
15 9217 34 0.003688836 Portería Azul
19 10674 0 0 Portería Azul
24 11695 15 0.001282599 Portería Azul
26 3224 4 0.001240695 Portería Azul
29 4995 10 0.002002002 Portería Azul
35 5287 18 0.003404577 Portería Azul
38 1442 0 0 Portería Azul
39 1563 11 0.007037748 Portería Azul
49 1704 1 0.000586854 Portería Azul
Si tomamos en cuenta la información de relación de pixeles para porterías y marcas de
referencia, (Tabla 4.1 y Tabla 4.2 respectivamente) se puede notar que es posible reconocer y
diferenciar las dos porterías sin producir un falso positivo en caso de ver una referencia
73
lateral. Simplemente se deben elegir dos valores de corte en la relación de colores para
clasificar correctamente la portería amarilla, la portería azul y no confundirlas con las marcas
de referencia. Si observamos la razón de pixeles amarillos sobre pixeles azules nos damos
cuenta por la Tabla 4.1 que se puede concluir portería amarilla si esta razón es superior a 50.
Además si esta razón es inferior a 0.005 se podría concluir que se observa portería azul. Con
esto encontramos los límites máximos y mínimos. Con esta lógica de clasificación se participó
en la competición de RoboCup 2009.
TABLA 4.2 RELACIÓN DE PIXELES PARA REFERENCIAS LATERALES EN 2009
Imagen Número de Pixeles Azules en Imagen
Número de Pixeles Amarillos en Imagen
Relación entre pixeles amarillos y pixeles azules en la imagen
Resultado conocido
2 555 1387 2.499099099 Referencia Amarilla
6 190 583 3.068421053 Referencia Amarilla
9 1760 3966 2.253409091 Referencia Amarilla
16 1843 4145 2.249050461 Referencia Amarilla
18 190 532 2.8 Referencia Amarilla
21 481 1072 2.228690229 Referencia Amarilla
25 480 1239 2.58125 Referencia Amarilla
30 205 548 2.673170732 Referencia Amarilla
36 3786 8763 2.314580032 Referencia Amarilla
44 94 279 2.968085106 Referencia Amarilla
45 227 562 2.475770925 Referencia Amarilla
4 1978 1044 0.527805865 Referencia Azul
8 3302 1732 0.524530588 Referencia Azul
11 547 356 0.650822669 Referencia Azul
20 4824 2594 0.537728027 Referencia Azul
23 1340 715 0.53358209 Referencia Azul
27 1160 655 0.564655172 Referencia Azul
32 10016 5542 0.553314696 Referencia Azul
34 558 333 0.596774194 Referencia Azul
40 195 132 0.676923077 Referencia Azul
47 490 284 0.579591837 Referencia Azul
48 600 344 0.573333333 Referencia Azul
4.1.2 CONFIGURACIÓN DE 2010 Y 2011
Para la competición de 2010 y para fines de localización y navegación del robot era necesario
no sólo reconocer las porterías, sino que ahora el sistema debía ser capaz de identificar y
74
diferenciar las dos marcas de referencia laterales, aunado a esto, las características sobre la
forma y tamaño de elementos de la cancha se modificó en la versión 2010 del reglamento de
competencia.
El diámetro de las marcas de referencia se redujo de 20 a 10cm y la altura total de las marcas
disminuyó de 60 a 45cm, la composición y distribución de los colores en las marcas
permaneció sin cambios, por lo que ahora se tienen tres bloques de color de 15cm de altura
cada uno. Por otro lado, las porterías se modificaron de la siguiente manera: se eliminó el
color de fondo que contenía cada portería, y los postes que anteriormente estaban pintados
de blanco, ahora son de color azul o amarillo según corresponda, la nueva configuración de
estos elementos según el reglamento 2010 [30] se muestra en la Figura 4.3.
Para una imagen en dos dimensiones, el área total ocupada por las marcas de referencia se
redujo en un 62.5% y el área de color ocupada por la portería se redujo en un 41.6%, se
puede ver entonces que en general, los colores representativos de porterías y marcas de
referencia disminuyeron su presencia en el entorno de juego. Ésta fue otra de las razones por
las que se cambió en 2010 el sistema de procesamiento y visión, a fin de poder detectar con
mayor facilidad los detalles de objetos más pequeños.
a) b)
c) d)
FIGURA 4.3 A) PORTERIA AMARILLA 2010, B) PORTERIA AZUL 2010, C) MARCA DE REFERENCIA LATERAL AMARILLA 2010, D) MARCA DE REFERENCIA LATERAL AZUL 2010
75
No obstante los cambios presentes en el nuevo reglamento, se puede observar que la relación
de proporción que guardan los objetos no cambió e incluso la nueva geometría de color en las
porterías ahora ocupa mucho mayor área que la que ocupan las marcas de referencia.
Tomando esto como base partimos de la misma técnica utilizada en 2009 para realizar la
clasificación de objetos.
Adicionalmente a lo realizado en 2009, se desea ahora poder identificar y diferenciar cada
una de las marcas de referencia laterales. Estas marcas como hemos visto, están
representadas por combinaciones de colores amarillo y azul en una proporción 2 a 1. Sin
embargo, estos datos no son suficientes para poder identificar con seguridad cada uno de los
elementos, ya que pueden existir diferentes situaciones en las que encontremos en una
imagen proporciones similares de estos colores sin que represente algún objeto en particular.
Estas situaciones son provocadas principalmente por elementos ruidosos fuera del ambiente
de juego, por ver objetos parcialmente ocluidos o cuando la imagen captada no alcanza a
cubrir todo el objeto de interés y sólo aparece parte de éste haciendo ambigua su posible
identificación.
TABLA 4.3 CARACTERÍSTICAS SOBRE MARCA DE REFERENCIA LATERAL AMARILLA
[1] C. Fermüller y Y. Aloimonos. (2000). Observability of 3D Motion. En Int'l. Journal of Computer Vision 37(1):43-62.
[2] J. Neumann, C. Fermuller y Y. Aloimonos. (2004). A hierarchy of cameras for 3D photography. En Computer Vision and Image Understanding, Volume 96, Issue 3, pp. 274-293.
[3] H. Kitano, M. Asada, Y. Kuniyoshi, I. Noda, E. Osawa y H. Matsubara. (1998). RoboCup: A challenge Problem for AI and Robotics. En H. Kitano (Ed.), RoboCup-97: Robot Soccer World Cup I, Springer-Verlag, pp. 1-19.
[4] P. Kulvanit y O. von Stryk. (2009). RoboCup Soccer Humanoid League Rules and Setup for the 2009 competition in Graz, Austria. En http://www.tzi.de/humanoid/pub/Website/ Downloads/HumanoidLeagueRules2009-01-28.pdf.
[5] A. R. Price y T. Jones. (1998). An Innovative Approach to Vision, Localization and Orientation Using Omnidirectional Radial Signature Analysis. En M. Asada y H. Kitano (Ed.), RoboCup-98: Robot Soccer World Cup II, Springer-Verlag, pp. 299-315.
[6] S. Suzuki, T. Kato, H. Ishizuka, Y. Takahashi, E. Uchibe y M. Asada. (1998). An Application of Vision-Based Learning in RoboCup for a Real Robot with an Omnidirectional Vision System and the Team Description of Osaka University “Trackies”. En M. Asada y H. Kitano (Ed.), RoboCup-98: Robot Soccer World Cup II, Springer-Verlag, pp. 316-325.
[7] G. Cheng y A. Zelinsky. (1998). Real-Time Vision Processing for a Soccer Playing Mobile Robot. En H. Kitano (Ed.), RoboCup-97: Robot Soccer World Cup I, Springer-Verlag, pp. 144-155.
[8] P. Jonker, J. Caarls y W. Bokhove. (2001). Fast and Accurate Robot Vision for Vision Based Motion. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 149-158.
[9] J. Bruce, T. Balch, y M. M. Veloso. (2000). Fast and inexpensive color image segmentation for interactive robots. En IEEE/RSJ International Conference on Intelligent Robots and Systems, vol. 3, pp. 2061–2066.
[10] R. Álvarez, E. Millán, R. Swain Oropeza, and A Aceves. (2004a). Color image classification through fitting of implicit surfaces. En 9th Ibero-American Conference on Artificial Intelligence (IBERAMIA), Lecture Notes in Computer Science. Spinger-Verlag.
[11] D. Stronger y P. Stone. (2007). Selective Visual Attention for Object Detection on a Legged Robot. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2006: Robot Soccer World Cup X, Springer-Verlag, pp. 158-170.
149
[12] J. Wendler, S. Brüggert, H. Burkhard y H. Myritz. (2001). Fault-Tolerant Self Localization by Case-Based Reasoning. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 259-268.
[13] S. Enderle, M.Ritter, D. Fox, S. Sablatnög, G. Kraetzschmar y G. Palm. (2001). Vision-Based Localization in RoboCup Environments. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 291-296.
[14] M. Jamzad, B.S. Sadjad, V.S. Mirrokni, M. Kazemi, H. Chitsaz, A. Heydarnoori, M.T. Hajiaghai y E. Chiniforooshan. (2002). A Fast Vision System for Middle Size Robots in RoboCup. En A. Birk, S. Coradeschi y S. Tadokoro (Ed.), RoboCup 2001: Robot Soccer World Cup V, Springer-Verlag, pp. 71-80.
[15] H. J. Trussel y M. S. Kulkarni. (1996). Sampling and Processing of Color Signals. En IEEE Trans. Image Process., 5(4) pp. 677-681.
[16] A. Rosenfeld. (1969). Picture Processing by Computer. En ACM Computing Surveys (CSUR), Vol. 1, Num. 3.
[17] R. Rossi y J. A. Ramírez Uresti. (2007). Automatic Off-Line Calibration for a Fast Color Classification Program in a Color Coded Environment. 37° Congreso de Investigación y Desarrollo (CIDTEC 37), Enero, 2007, México.
[18] Y. Takahashi, W. Nowak y T. Wisspeintner. (2007). Adaptive Recognition of Color-Coded Objects in Indoor and Outdoor Environments. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2007: Robot Soccer World Cup XI, Springer-Verlag, pp. 158-170.
[19] Z. Tu y S. Chun Zhu. (2002). Image Segmentation by Data-Driven Markov Chain Monte Carlo. En IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 24, No. 5, pp. 657-673.
[20] A. Bovik. (2009). The Essential Guide to Image Processing. 2° Edition. Academic Press. USA.
[21] H. Kitano. (1997). RoboCup: The Robot World Cup Initiative. En Proc. of The First International Conference on Autonomous Agent (Agents-97)), Marina del Ray, The ACM Press.
[22] C. E. Shannon. (1949). Communication in the Presence of Noise. En Proc. Institute of Radio Engineers, vol. 37, no.1, pp. 10 – 21.
[23] F. C. Crow. (1981). A comparison of Antialiasing Techniques. En IEEE Computer Graphics & Applications. 1, 1, pp. 40 – 48.
[24] S. Inoué y K. r. Spring. (1997). Video Microscopy – The Fundamentals. 2nd Edition. Plenum Press. New York, USA.
[25] J. Nakamura. (2006). Image Sensors and Signal Processing for Digital Still Cameras. En CRC Press. Boca Raton. Florida, USA.
150
[26] S. K. Singh, D. S. Chauhan, M. Vatsa, y R. Singh. (2003). A Robust Skin Color Based Face Detection Algorithm. En Tamkang Journal of Science and Engineering, Vol.6, No. 4. pp. 227 – 234.
[27] H. Palus. (2007). Color Image Segmentation: Selected Techniques. En R. Lukac y K. N. Plataniotis (Ed.), Color Image Processing. Canada. pp. 103-128.
[28] N. R. Pal y S.K. Pal. (1993). A Review on Image Segmentation Techniques. En Pattern Recognition, Vol. 26, No. 9, pp. 1277 – 1294.
[29] Y. J. Zhang. (2006). An Overview of Image and Video Segmentation in the Last 40 Years. En Y. J. Zhang (Ed.), Advances in Image and Video Segmentation, USA. pp. 1 – 15.
[30] J. Baltes, P. Kulvanit, et. Al. (2010). RoboCup Soccer Humanoid League Rules and Setup for the 2010 competition in Singapore. En http://www.tzi.de/humanoid/pub/Website/ Downloads/HumanoidLeagueRules2010.pdf
[31] C. M. Bishop. (1998). Neural Networks for Pattern Recognition. Oxford University Press. New York, USA.
[32] L. O Chua y T. Roska. (2002). Cellular Neural Networks and Visual Computing. Cambridge Uiversity Press. Cambridge, UK.
[33] H. Strasdat, M. Bennewitz y S. Behnke. (2007). Multi-cue Localization for Soccer Playing Humanoid Robots. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2006: Robot Soccer World Cup X, Springer-Verlag, pp. 245-257.
[34] H. Utz, A. Neubeck, G. Mayer y G. Kraetzschmar. (2003). Improving Vision-Based Self-Localization. En G. A. Kaminka, P. U. Lima y R. Rojas (Eds.), RoboCup 2002, LNAI 2752, Springer-Verlag, pp. 25-40.
[35] M. Betke y L. Gurvitis. (1995). Mobile Robot Localization using Landmarks. En IEEE International Conference on Robotics and Automation, vol. 2, pp. 135–142.
[36] P. Colantoni and A. Trémeau. (2003). 3D Visualization of color data to analyze color images. En The PICS Conference, Rochester, USA.
[37] H. D. Cheng, X. H. Jiang, y J. Wang. (2002). Color image segmentation based on homogram thresholding and region merging. En Pattern Recognition 35, pp. 373 – 393.
[38] Relf, Christopher G. (2004). Image acquisition and processing with LabView. 1st Ed. CRC Press. United States.
[39] J. C. Russ. (2007). The Image Processing Handbook. 5th Edition. CRC Press. Canada. pp. 42 – 48.
[40] D. C. Yuen y B. A. MacDonald (2005). Vision-Based Localization Algorithm Based on Landmark Matching, Triangulation, Reconstruction, and Comparison. En IEEE Transactions on Robotics. Vol. 21, NO. 2. pp. 217-223.
151
[41] A. Rowe y A. Goode (2007). CMUCam3 Datasheet V1.02. Carnegie Mellon University. Disponible en http://www.cmucam.org/attachment/wiki/Documentation/ CMUcam3_datasheet.pdf?format=raw.
[42] DMP Electronics Inc. [[email protected]] (2009). RoBoard RB – 100. Disponible en http://www.roboard.com/RB-100.htm. Taipei, Taiwan.
[43] S. Se, D. Lowe y J. Little (2001). Vision-based Mobile Robot Localization And Mapping using Scale-Invariant Features. En Proceedings of IEEE International Conference of Robotics and Automation 2001. Vol. 2. pp. 2051 – 2058.
[44] S. Thrun, D. Fox, W. Burgard y F. Dellaert (2001). Robust Monte Carlo Localization for Mobile Robots. En Artifitial Intelligence. Vol. 128. Issues 1 – 2. pp. 99 – 141.
[45] J. Bruce y M. Veloso (2002). Real-Time Randomized Path Planning for Robot Navigation. En IEEE Conference on Intelligent Robots and Systems. Vol. 3. pp. 2383 – 2388.
[46] S. Behnke (2004). Local Multiresolution Path Planning. En B. Browning, D. Polani, A. Bonarini, and K. Yoshida (ed.): RoboCup-2003: Robot Soccer World Cup VII, LNCS 3020, pp. 332-343.
[47] J. Baltes y N. Hildreth. Adaptive Path Planner for Highly Dynamic Environments. En RoboCup 2000: Robot Soccer World Cup IV Lecture Notes in Computer Science, 2001, Volume 2019/2001, 76-85.
[48] G. Pajares y J. de la Cruz (2002). Visión por Computador. Imágenes Digitales y Aplicaciones. Alfa Omega. 1ª Edición. pp 133 – 136 México.
[49] S. Thompson (2002). Sampling. Wiley, Wiley Series in Probability and Statistics. 2° Edición. Estados Unidos. pp. 90 – 94.
[50] A. Ford y A. Roberts (1998). Colour Space Conversions. University of Westminster. pp. 9-11
[51] P. Colantoni [[email protected]] (2008). Download ColorSpace Version 1.1.1 for Windows NT/2000/XP. Disponible en http://www.couleur.org/index.php?page= download. Francia.