• No se han encontrado resultados

GENERACIÓN DE TRAYECTORIAS Y PROCESAMIENTO DIGITAL DE IMÁGENES PARA LA NAVEGACIÓN DE UN ROBOT MÓVIL

N/A
N/A
Protected

Academic year: 2022

Share "GENERACIÓN DE TRAYECTORIAS Y PROCESAMIENTO DIGITAL DE IMÁGENES PARA LA NAVEGACIÓN DE UN ROBOT MÓVIL"

Copied!
98
0
0

Texto completo

(1)

GENERACIÓN DE TRAYECTORIAS Y PROCESAMIENTO DIGITAL DE IMÁGENES PARA LA NAVEGACIÓN DE UN ROBOT MÓVIL

MAURO ALONSO BAQUERO SUÁREZ JOSÉ CARLOS CUDRIS CANTILLO

UNIVERSIDAD SANTO TOMÁS DIVISIÓN DE INGENIERÍAS

FACULTAD DE INGENIERÍA MECATRÓNICA BUCARAMANGA

2007

(2)

GENERACIÓN DE TRAYECTORIAS Y PROCESAMIENTO DIGITAL DE IMÁGENES PARA LA NAVEGACIÓN DE UN ROBOT MÓVIL

MAURO ALONSO BAQUERO SUÁREZ JOSÉ CARLOS CUDRIS CANTILLO

Proyecto de grado presentado como requisito para optar al título de Ingeniero Mecatrónico

DIRECTOR

HERNANDO GONZÁLEZ ACEVEDO INGENIERO ELECTRÓNICO

UNIVERSIDAD SANTO TOMÁS DIVISIÓN DE INGENIERÍAS

FACULTAD DE INGENIERÍA MECATRÓNICA BUCARAMANGA

2007

(3)

Nota de aceptación:

Firma del director de proyecto

Firma del calificador

Firma del calificador

Bucaramanga, 25 de junio de 2007.

(4)

DEDICATORIA

Este es uno de los momentos más gratos y felices de mi vida, el cumplimiento de un sueño anhelado, que pudo hacerse realidad gracias al apoyo y al gran esfuerzo que hicieron mis padres, por esto y otros motivos me siento orgulloso de dedicarle este trabajo y la más grande de las bendiciones. Esta investigación también va dirigida a aquellas personas inquietas y curiosas que se adentran al grandioso mundo de la robótica e inteligencia artificial, a todos ellos muchos éxitos…

José Carlos

En estos momentos me siento feliz y lleno de expectativas hacia mí mismo, porque alcancé una de las metas más importante para mí crecimiento como persona, pero todos estos sentimientos positivos no serian posibles si no tuviera el gran apoyo incondicional de mis padres hermanos y amigos. Le dedico este proyecto a mis padres Mauro Enrique Baquero y luz Marina Suárez y a mis hermanos Tania Marina y Alibeth Andrés por darme todo su apoyo, cariño, confianza, comprensión y amor.

También a todos los amigos que estuvieron en los momentos alegres y difíciles en el transcurso de mi carrera y a todos los profesores y compañeros que me ayudaron y que hicieron posible el crecimiento de mi conocimiento. Hubo muchas personas que se preocuparon por mí y me brindaron muchas cosas hermosas que me hicieron muy feliz. A todas estas personas les deseo lo mejor…

Mauro Alonso

(5)

AGRADECIMIENTOS

Gracias a Hernando González nuestro director de proyecto por su constante exigencia y perfeccionismo, que nos guió todo el tiempo durante la realización del proyecto hasta lograr las metas propuestas.

A todos los profesores de la facultad de ingeniería mecatrónica, en especial a Juan Carlos Villamizar, William Castro, Javier Peña, Miguel Trigos y Freddy Rincón de los cuales aprendimos muchas cosas interesantes.

A nuestros compañeros de estudio, en especial a Mr. Wilmer (Wilmer Granados), por su colaboración con componentes electrónicos y material bibliográfico de suma importancia y por ser un buen amigo, Julián Mantilla un gran maestro, Sosa (José Sosa Beleño) amigo incondicional, el viejo Morgan, el áyalas (Miguel Ayas), y luchinis (Luís Mancilla), compañeros de risas y todos los que conocieron el desarrollo del proyecto y nos brindaron su apoyo incondicional.

A todos los que conocieron del desarrollo del proyecto y fueron una mano amiga, nos hicieron sugerencias y nos motivaron a seguir en la lucha.

A todos… GRACIAS.

(6)

ADVERTENCIA

La Universidad Santo Tomás no se hace responsable de los conceptos emitidos por el alumno de su trabajo. Sólo velará porque no se publique nada contrario al dogma ni a la moral católica y, porque la tesis no contenga ataques personales y únicamente se vea en ella el anhelo de buscar la verdad y la justicia.

(Artículo 23, Resolución del 13 de Julio de 1956).

(7)

CONTENIDO

INTRODUCCIÓN ... 15

OBJETIVOS ... 16

1. VISIÓN ARTIFICIAL ... 17

1.1 COLOR ... 19

1.1.1 Modelos de color ... 19

1.2 ESCENARIODETRABAJO ... 22

1.3 FILTRADODEIMÁGENES ... 23

1.4 SEGMENTACIÓN ... 26

1.4.1 Red de base radial probabilística (PNN). ... 26

1.5 BINARIZACIÓN ... 32

1.5.1 Extracción de bordes. ... 33

1.6 EFECTOSDELAILUMINACIÓNSOBREELPROCESODESEGMENTACIÓNDELCOLOR ... 34

2. RECONOCIMIENTO DE FIGURAS PLANAS ... 37

2.1 DESCRIPCIÓNDEFORMAS ... 37

2.1.1 Signatura. ... 37

2.1.2 Coeficientes de Fourier ... 41

2.1.3 Parámetros Topológicos. ... 43

2.1.4 Parámetros estadísticos. ... 43

2.2 REDNEURONALBACKPROPAGATION ... 44

2.3 EVALUACIÓNDELALGORITMODERECONOCIMIENTODEFORMAS... 49

3. NAVEGACIÓN DE UN ROBOT MÓVIL ... 55

3.1 ESTRATEGIASDEMOVIMIENTOS ... 55

3.2 DESCRIPCIÓNDELROBOT ... 56

3.2.1 Sistema de transmisión mecánica. ... 56

3.2.2 Sistema electrónico de control. ... 61

3.2.3 Sistema de comunicación inalámbrica. ... 61

3.3 REDNEURONALDEFUNCIÓNDEBASERADIAL(RBF) ... 63

3.4 ENTRENAMIENTODELARBF. ... 64

3.5 GENERACIÓNDETRAYECTORIAS ... 68

3.6 SEGUIMIENTODETRAYECTORIAS ... 71

CONCLUSIONES ... 75

BIBLIOGRAFÍA ... 77

ANEXOS ... 79

(8)

LISTA DE TABLAS

TABLA 1.1:PRUEBAS REALIZADAS PARA ADECUAR UNA IMAGEN ... 24

TABLA 1.2:DIFERENTES EFECTOS CAUSADOS A UNA IMAGEN POR LOS CAMBIOS DE LA ILUMINACIÓN ... 35

TABLA 2.1:DIMENSIONES DE LAS FIGURAS ... 46

TABLA 3.1:RELACIÓN DEL NÚMERO DE PULSOS VS. DISTANCIA ... 60

TABLA 3.2:CODIFICACIÓN DEL ÁNGULO A META ... 65

TABLA 3.3:CODIFICACIÓN DEL VECTOR DE SALIDA DE LA RED RBF ... 67

(9)

LISTA DE FIGURAS

FIGURA 1.1:REPRESENTACIÓN DEL ESPACIO RGB. ... 20

FIGURA 1.2:REPRESENTACIÓN DEL ESPACIO HSV ... 21

FIGURA 1.3:REPRESENTACIÓN DE UNA IMAGEN INDEXADA ... 22

FIGURA 1.4:ESCENARIO DE TRABAJO ... 23

FIGURA 1.5:ARQUITECTURA DE UNA RED PROBABILÍSTICA ... 26

FIGURA 1.6:FUNCIÓN DE TRANSFERENCIA RADBAS DE UNA NEURONA DE BASE RADIAL ... 27

FIGURA 1.7:PALETA DE COLORES UTILIZADA PARA EL ENTRENAMIENTO DE LA RED PNN .. 29

FIGURA 1.8:EQUIVALENCIA ENTRE EL ESPACIO RGB Y EL ESPACIO HSV ... 29

FIGURA 1.9:ENTRENAMIENTO DE LA RED PNN PARA EL RECONOCIMIENTO DE COLORES .... 29

FIGURA 1.10:SEGMENTACIÓN DEL COLOR VERDE CON UN VALOR DE SPREAD IGUAL A 0.7 .. 30

FIGURA 1.11:SEGMENTACIÓN DEL COLOR VERDE CON UN VALOR DE SPREAD IGUAL A 0.4 .. 30

FIGURA 1.12:SEGMENTACIÓN DEL COLOR VERDE CON UN VALOR DE SPREAD IGUAL A 0.1 .. 31

FIGURA 1.13:BINARIZACIÓN DE UNA IMAGEN ... 32

FIGURA 1.14:ELIMINACIÓN DEL RUIDO A PARTIR DE OPERADORES MORFOLÓGICOS EN UNA IMAGEN BINARIZADA ... 33

FIGURA 1.15:EXTRACCIÓN DE BORDES ... 34

FIGURA 2.1:SIGNATURA CARACTERÍSTICA DE UN CUADRADO ... 38

FIGURA 2.2:SIGNATURA CARACTERÍSTICA DE UN CÍRCULO ... 38

FIGURA 2.3:METODOLOGÍA PARA LA OBTENCIÓN DE LA SIGNATURA DE UNA FIGURA ... 39

(10)

FIGURA 2.4:SIGNATURA DE UN CUADRADO ... 39

FIGURA 2.5:SIGNATURA DE UN CÍRCULO ... 40

FIGURA 2.6:SIGNATURA DE UN TRIÁNGULO ... 40

FIGURA 2.7:SIGNATURA DE UN RECTÁNGULO ... 40

FIGURA 2.8: MAGNITUD DE LOS COEFICIENTES DE FOURIER DE LA SIGNATURA DE UN CUADRADO ... 41

FIGURA 2.9: MAGNITUD DE LOS COEFICIENTES DE FOURIER DE LA SIGNATURA DE UN CÍRCULO ... 42

FIGURA 2.10: MAGNITUD DE LOS COEFICIENTES DE FOURIER DE LA SIGNATURA DE UN TRIÁNGULO ... 42

FIGURA 2.11: MAGNITUD DE LOS COEFICIENTES DE FOURIER DE LA SIGNATURA DE UN RECTÁNGULO ... 42

FIGURA 2.12:ARQUITECTURA DE LA RED BACKPROPAGATION ... 45

FIGURA 2.13:IMAGEN UTILIZADA PARA EL ENTRENAMIENTO DE LA RED BACKPROPAGATION ... 47

FIGURA 2.14:DESCRIPTORES DE FORMA DE UN CUADRADO ... 47

FIGURA 2.15:DESCRIPTORES DE FORMA DE UN CÍRCULO ... 48

FIGURA 2.16:DESCRIPTORES DE FORMA DE UN TRIÁNGULO ... 48

FIGURA 2.17:DESCRIPTORES DE FORMA DE UN RECTÁNGULO ... 49

FIGURA 2.18:IMAGEN UTILIZADA PARA EVALUAR LA RED BACKPROPAGATION.CASO I ... 50

FIGURA 2.19:HISTOGRAMA DE LOS RESULTADOS DE LA EVALUACIÓN DEL ALGORITMO DE RECONOCIMIENTO DE CÍRCULOS; A) DE DÍA, B) DE NOCHE ... 50

FIGURA 2.20:HISTOGRAMA DE LOS RESULTADOS DE LA EVALUACIÓN DEL ALGORITMO DE RECONOCIMIENTO DE CUADRADOS; A) DE DÍA, B) DE NOCHE ... 51

(11)

FIGURA 2.21:HISTOGRAMA DE LOS RESULTADOS DE LA EVALUACIÓN DEL ALGORITMO DE

RECONOCIMIENTO DE TRIÁNGULOS; A) DE DÍA, B) DE NOCHE ... 51

FIGURA 2.22:HISTOGRAMA DE LOS RESULTADOS DE LA EVALUACIÓN DEL ALGORITMO DE RECONOCIMIENTO DE RECTÁNGULOS; A) DE DÍA, B) DE NOCHE ... 52

FIGURA 2.23:IMAGEN UTILIZADA PARA EVALUAR LA RED BACKPROPAGATION.CASO II... 53

FIGURA 2.24: VALIDACIÓN DEL ALGORITMO PARA EL RECONOCIMIENTO DE FIGURAS; A) CUADRADO VERDE, B) TRIÁNGULO AMARILLO, C) CÍRCULO AZUL, D) RECTÁNGULO VERDE ... 53

FIGURA 3.1:ESTRUCTURA EN PIEZAS LEGO DEL ROBOT ... 56

FIGURA 3.2.SISTEMA DE TRANSMISIÓN MECÁNICA DEL ROBOT... 57

FIGURA 3.3.TARJETA DE CONTROL DE LOS MOTORES ... 57

FIGURA 3.4.SISTEMA DE ENCODER ... 58

FIGURA 3.5.RELACIÓN DE ÁNGULOS DE GIRO DEL SISTEMA DE TRANSMISIÓN MECÁNICA .... 59

FIGURA 3.6.ANGULO, RADIO Y ARCO DE GIRO EN LA ROTACIÓN DEL ROBOT ... 60

FIGURA 3.7:TARJETA DE CONTROL DEL ROBOT ... 61

FIGURA 3.8.MÓDULOS DE COMUNICACIÓN, A)TRANSMISOR TLP434, B)RECEPTOR RLP434 ... ¡ERROR!MARCADOR NO DEFINIDO. FIGURA 3.9.PROTOCOLO DE COMUNICACIÓN ... 63

FIGURA 3.10:ARQUITECTURA DE UNA RED RBF PARA LA GENERACIÓN DE TRAYECTORIAS. 64 FIGURA 3.11:MATRIZ DE SENSORES UTILIZADA EN LA PERCEPCIÓN DEL ENTORNO ... 64

FIGURA 3.12:SISTEMA DE REFERENCIA PARA LA NAVEGACIÓN DEL ROBOT ... 66

FIGURA 3.13:VECTOR DE ENTRADA PARA LA RED NEURONAL ... 66

FIGURA 3.14:CASOS BÁSICOS PARA EL ENTRENAMIENTO DE LA RED ... 67

(12)

FIGURA 3.15:PROCEDIMIENTO DE CONSULTA PARA LA RED RBF ... 68 FIGURA 3.16:EVALUACIÓN DEL ALGORITMO DE GENERACIÓN DE TRAYECTORIAS ... 69 FIGURA 3.17: EVALUACIÓN DEL ALGORITMO DE GENERACIÓN DE TRAYECTORIAS -

CUADRÍCULA CON CELDAS DE 20X20 PIXELES ... 70 FIGURA 3.18: EVALUACIÓN DEL ALGORITMO DE GENERACIÓN DE TRAYECTORIAS -

CUADRÍCULA CON CELDAS DE 10X10 PIXELES ... 71 FIGURA 3.19:ORIENTACIÓN DEL ROBOT SAV ... 72 FIGURA 3.20:OBTENCIÓN DEL ÁNGULO DE GIRO DEL ROBOT PARA ALINEARSE CON UN PUNTO SUBMETA ... 72 FIGURA 3.21:RECORRIDO REALIZADO POR EL ROBOT PARA ENCONTRAR LA META ... 73

(13)

LISTA DE ANEXOS

ANEXOA.CÁMARA LOGITECH STX ... 80

ANEXOB.TARJETA DE CONTROL DEL ROBOT SAV ... 81

ANEXOC.TARJETA DE CONTROL DE GIRO DE LOS MOTORES ... 82

ANEXOD.MÓDULO PARA LA COMUNICACIÓN ENTRE EL PC Y EL ROBOT A TRAVÉS DEL PUERTO SERIAL ... 83

ANEXOE.MÓDULO DE COMUNICACIÓN INALÁMBRICA ... 84

ANEXOF.COMANDOS PARA LA UTILIZACIÓN DE REDES NEURONALES EN MATLAB ... 85

ANEXOG. MANUAL DE LA INTERFAZ DEL USUARIO... 88

(14)

RESUMEN

En este proyecto se propone una metodología para la planeación de trayectorias en ambientes controlados utilizando procesamiento digital de imágenes, para lo cual previamente se desarrollan los algoritmos que permitan identificar el color y la forma de los objetos que se encuentran en el espacio de trabajo utilizando redes neuronales. El proyecto se divide en tres capítulos, el primero presenta los conceptos básicos relacionados con visión artificial y la representación del color, además de las etapas de procesamiento de una imagen. El segundo capítulo expone una metodología para el reconocimiento de formas de figuras planas basándonos en descriptores de Fourier, descriptores topológicos y descriptores estadísticos. En el último capítulo se explica la técnica implementada para la generación y seguimiento de trayectorias que le permiten al robot ser guiado hasta un punto final sin colisionar con obstáculos.

(15)

15

INTRODUCCIÓN

Cualquier robot diseñado para moverse en un entorno desconocido, necesita de múltiples sensores (mecánicos, ultrasónicos e infrarrojos) e implementar diferentes estrategias de control para evitar colisiones con obstáculos y detectar áreas libres en un entorno para desplazarse de un punto a otro. Una alternativa utilizada actualmente, son los sistemas de procesamiento digital de imágenes para la detección y reconocimiento de objetos en el espacio de trabajo, estos sistemas de percepción le permiten al robot tener un grado de autonomía mayor y le ayudan en la toma de decisiones que dependen del medio físico.

En este proyecto se presenta una de las formas en que se puede localizar un robot móvil y controlar su locomoción para evadir obstáculos. La investigación está basada principalmente en la visión artificial por computador, para manipular las imágenes de un entorno, digitalizadas por medio de una cámara Web. Para extraer la información más elemental subyacente se desarrollaron algoritmos para la segmentación y reconocimiento de formas y colores de figuras planas.

Utilizando métodos de aprendizaje a partir de redes neuronales a las cuales se les asigna como parámetros de entrada un conjunto de valores numéricos que son el resultado de diferentes propiedades de forma y color de las figuras analizadas (círculos, cuadrados, triángulos, rectángulos). Luego de identificar todas las figuras se genera la trayectoria que el robot debe seguir para desplazarse de un punto a otro. La generación de la trayectoria es realizada por una red neuronal previamente entrenada, que toma decisiones dependiendo del estado del entorno a su alrededor y de la ubicación del punto de llegada y la orientación del robot para evadir los obstáculos. Una vez generada la trayectoria se envía la información vía inalámbrica hacia el robot el cual es controlado por un microcontrolador que puede interpretar estas señales y de acuerdo a ellas empieza a desplazarse visualizando en el computador la trayectoria recorrida.

El proyecto está compuesto por tres capítulos donde se explica claramente como fue la metodología y el desarrollo de cada uno de los objetivos propuestos, haciendo una breve introducción de los conceptos de visión artificial, teoría del color y la composición y distribución del escenario de trabajo. En el segundo capítulo se hace una descripción de las redes neuronales y su aplicación en el reconocimiento y segmentación de formas. Por último se habla sobre las partes del robot y los algoritmos para el guiado, control y generación de trayectorias.

(16)

16

OBJETIVOS

OBJETIVO GENERAL

Desarrollar un algoritmo para la generación de trayectorias, con el fin de buscar objetos de forma y color específicos, en un ambiente controlado.

OBJETIVOS ESPECÍFICOS

 Desarrollar un algoritmo para la detección y reconocimiento de figuras planas (Círculos, Cuadrados, Rectángulos y Triángulos), de colores (Rojo, Verde, Azul o Amarillo).

 Desarrollar un algoritmo que permita la generación de una trayectoria óptima para que el robot se movilice en un ambiente controlado.

 Implementar un sistema de comunicación inalámbrica entre el computador y el robot.

(17)

17

VISIÓN ARTIFICIAL

Al igual que sucede en el ser humano, la capacidad de visión dota a un robot con un sofisticado mecanismo de percepción que le permite a esta máquina responder a su entorno de una forma inteligente y flexible. El uso de visión artificial y otros esquemas de percepción están motivados por la constante necesidad de optimizar procesos en aplicaciones robóticas donde se necesita supervisión y control de alta complejidad. La visión artificial puede ser definida como las etapas de obtención, caracterización e interpretación de la información de imágenes tomadas de un mundo tridimensional. El proceso incluye las siguientes etapas:

 Formación de imágenes: A través de dispositivos de captura de la intensidad luminosa, se obtiene una o más imágenes digitales.

 Preprocesamiento: A veces la calidad de la imagen no es lo suficientemente buena, de forma que no se puede extraer la información adecuadamente, lo cual implica el tener que utilizar ciertas técnicas de mejora de la calidad de la imagen original. Son dos los procesos que pueden considerarse dentro de esta etapa: suavizado y realzado. El primero se encamina hacia la supresión del ruido introducido durante la captura de la imagen. Mientras que el segundo está orientado a eliminar falsos reflejos y sombras que dificultan también la extracción de la información para el procesamiento de la imagen.

 Segmentación: Es el proceso que divide a una escena percibida en sus partes constituyentes u objetos. Los algoritmos de segmentación se basan, por lo general, en dos principios básicos: discontinuidad y similitud. Una región es en líneas generales un área de la imagen en la que sus píxeles presentan propiedades similares de intensidad, color, etc., mientras que un borde es una línea que separa dos regiones, de diferentes propiedades (discontinuidad).

Tanto la detección de bordes como la de regiones implican una manipulación de la imagen original, que supone en definitiva una transformación de forma que los valores de los pixeles originales son modificados mediante ciertas funciones u operadores.

(18)

18

Para la detección de bordes basándose en el hecho de la discontinuidad se proponen los siguientes tipos de operadores:

 Operadores primera derivada: Los operadores primera derivada producen un resalte de las zonas en que la intensidad no es uniforme. Este operador es nulo en zonas de intensidad constante.

 Operadores segunda derivada: Los operadores basados en la segunda derivada originan un cambio de signo en la posición de borde.

 Operadores morfológicos: Estos tipos de operadores utilizan operaciones matemáticas que aprovechan las propiedades de los conjuntos de puntos, los resultados de la geometría integral y la topología. Además simplifican las imágenes y preservan las formas principales de los objetos.

Para la descripción de regiones se utilizan algunas técnicas basadas en el hecho de la similitud:

 Binarización basada en el uso de umbrales: Este método utiliza uno o más niveles de umbrales para separar los diferentes tonos de la imagen, correspondiendo cada tono a los objetos y el fondo.

 Crecimiento de regiones mediante la adición de pixeles: Se trata de una técnica que agrupa pixeles o subregiones en regiones más grandes. Este método consiste en hacer crecer las regiones mediante la adición de pixeles, en donde se comienza con un conjunto de puntos “semilla”. Las regiones se van haciendo crecer añadiendo a cada punto semilla aquellos pixeles vecinos que tengan propiedades similares, por ejemplo intensidad, textura o color.

 División de regiones: Consiste en dividir inicialmente la imagen en un conjunto de regiones arbitrarias disjuntas para después fusionarlas o dividirlas, obteniendo como resultado la descripción de la región.

(19)

19

 Similitud de textura, color o nivel de gris: Este tipo de método se basa en la agrupación o selección de los pixeles que contengan similitud de textura, color ó nivel de gris dejándolos intactos y eliminando el resto.

 Extracción de características: Es la obtención de propiedades que identifiquen cada una de las estructuras anteriores (bordes y regiones) de forma unívoca.

 Representación y conocimiento: En esta fase se realiza la percepción propiamente dicha, bien utilizando técnicas de aprendizaje o bien formando una composición tridimensional de la escena.

1.1 COLOR

El uso del color en el procesamiento de imágenes está motivado por dos factores principales. En primer lugar en el análisis de imágenes, el color es un potente descriptor que a menudo simplifica la identificación y extracción de objetos de una escena. En segundo lugar, el ojo humano puede distinguir una amplia gama de colores comparado con los niveles de grises. Las características utilizadas generalmente para distinguir un color de otro son: Intensidad, matiz y saturación.

1.1.1 Modelos de color. El propósito de un modelo de color es facilitar la especificación de los colores de alguna forma estándar. En esencia, un modelo de color es una especificación de un sistema de coordenadas 3-D y un subespacio dentro de dicho sistema donde cada color se representa por un punto.

 Modelo RGB. En el modelo RGB cada color aparece en sus componentes espectrales primarias: rojo, verde, azul. Este modelo esta basado en el sistema de coordenadas cartesianas. El cubo de la figura 1.1 muestra la distribución de los colores, en el, los valores RGB se encuentran en tres vértices, los otros vértices corresponden a los colores cian, magenta y amarillo, el color negro corresponde al origen y el blanco en el vértice más alejado del origen.

(20)

20 Figura 1.1: Representación del espacio RGB.

Fuente: Autores del Proyecto.

En este modelo, la escala de grises se extiende desde el negro al blanco a lo largo de la diagonal que une esos dos puntos. Por conveniencia, se asume que todos los vectores han sido normalizados, de modo que el cubo es un tetraedro unitario, es decir, que todos los valores del cubo RGB están en el rango [0,1]. Las imágenes en este modelo se forman por la combinación en diferentes proporciones de cada uno de los colores primarios RGB.

 Modelo HSV. El modelo HSV está compuesto por tres componentes que son matiz (H), saturación (S) e intensidad (V) como se muestra en la figura 1.2. La intensidad incorpora la noción cromática del brillo midiendo el grado de luminosidad de la imagen, cuando se dice que una imagen es clara u oscura se hace referencia a su intensidad. El matiz es un atributo asociado con la longitud de onda dominante en la mezcla de diferentes longitudes de onda de luz, viene a ser como el color percibido por el observador, cuando se dice de un objeto que es rojo, naranja, o amarillo, realmente se está especificando su matiz. La saturación se refiere a la pureza relativa o a la cantidad de luz blanca mezclada con un matiz, el grado de saturación es inversamente proporcional a la cantidad de luz blanca añadida.

(21)

21

Figura 1.2: Representación del espacio HSV. El matiz marca el ángulo a partir de cero que equivale al color rojo. La saturación aumenta hacia fuera, mientras que la intensidad aumenta hacia arriba, siendo cero el color negro y uno el blanco.

Fuente: (Image Processing Toolbox User’s Guide) MATLAB.

El modelo de color HSV debe su utilidad a dos hechos fundamentales: primero la componente de intensidad (V), se puede separar de la información del color en la imagen, segundo las componentes de matiz y saturación están estrechamente relacionadas con el modo en que los humanos perciben el color. Estas características hacen que el modelo HSV sea una herramienta ideal para desarrollar algoritmos de procesamiento, segmentación y reconocimiento de imágenes.

 Modelo de color indexado. Si nos referimos a la forma de almacenar y representar los datos de color de una imagen, aparecen dos modelos distintos, el denominado color real y el color indexado. En el modelo de color real, por cada pixel de la imagen se almacenan los tres valores de color que lo constituyen. Así por cada imagen en color tenemos que almacenar tres matrices completas del mismo tamaño cada una con los valores de la componente correspondiente, bien sea en el espacio RGB o HSV. En el modelo indexado (figura 1.3) los colores se almacenan en una tabla o paleta en la que cada pixel lleva asociado un índice.

(22)

22 Figura 1.3: Representación de una imagen indexada.

Fuente: Autores del Proyecto.

Para realizar el indexado de una imagen se utiliza el comando rgb2ind de Image Processing Toolbox, MATLAB, este comando funciona ingresando una imagen a color (en formato bmp, jpg, jpeg, gif) y el número de niveles de color que se desea, que en este caso serían 256 porque se está trabajando una profundidad de color de 24 bits (8 para cada componente RGB), este comando proporciona como salida la imagen de entrada en escala de grises ya que se le han extraído sus colores y una matriz de 256x3 que corresponde a la paleta de colores de la imagen y es utilizada en el proceso de reconocimiento y segmentación del color.

1.2 ESCENARIO DE TRABAJO

En la figura 1.4 se muestra una imagen del escenario de trabajo en el que se pueden observar los diferentes elementos que lo conforman. En primer lugar tenemos la cámara WEB por la cual se adquieren las imágenes en formato RGB.

Las imágenes son capturadas a una velocidad de 15 cuadros por segundo, con una resolución de 640x480 pixeles. Estas imágenes son tomadas desde una altura de 1.8m y son enviadas al computador por el puerto USB. El segundo elemento es el robot el cual posee un módulo de comunicación inalámbrica por el cual se

(23)

23

comunica con el PC, quién es el que procesa las imágenes enviadas por la cámara y decide cuando y como se deben realizar los movimientos que debe ejecutar el robot para desplazarse de un punto a otro. El robot se encuentra sobre el escenario, rodeado por figuras planas de diferentes formas (círculos, cuadrados, rectángulos, triángulos) y colores (rojo, verde, azul, amarillo). El espacio de trabajo del robot abarca un área de 1.2m de ancho por 1.8m de largo y está pintado de color blanco para tener un mayor contraste entre el fondo y las figuras. El tipo de iluminación utilizado es luz blanca fluorescente uniformemente distribuida sobre todo el tablero, de tal forma que se presente la menor cantidad de ruido y sombras posible.

Figura 1.4: Escenario de trabajo.

Fuente: Autores del Proyecto.

1.3 FILTRADO DE IMÁGENES

Una de las mayores dificultades de muchas tareas de visión es la de conseguir la adaptación automática a los cambios de iluminación. La aparición de ruido y sombras en las imágenes dependen de esos tipos de cambios en la iluminación.

Para tener una mejor calidad en las imágenes es recomendable utilizar luz blanca ya que con este tipo de iluminación se presenta una menor cantidad de ruido en las imágenes que con otro tipo de luz. Es necesario que la distribución de la luz

(24)

24

sea uniforme sobre todo el escenario, esto permite disminuir el contenido de sombras producidas por los objetos. El objetivo de esta etapa es adecuar la imagen realizando cambios en las componentes de saturación e intensidad, para realizar posteriormente una segmentación adecuada de las figuras, sin la pérdida significativa de información.

El proceso de filtrado se realiza sobre la imagen a color capturada, cambiando su representación del espacio RGB al espacio HSV. Una vez realizada la conversión de formatos de color, lo primero que se hace es realizar una homogenización de la componente de intensidad, de tal forma que las sombras queden eliminadas sin que se presenten perdidas de color. En pruebas realizadas se observó que para valores de intensidad cercanos a cero, la imagen se vuelve muy oscura haciendo que desaparezcan los objetos, y para valores próximos a uno sucede lo contrario, la imagen se vuelve muy clara, las figuras son borrosas y hace que el ruido se resalte. Se determinó un umbral de 0.9, ya que con este valor se logra atenuar las sombras preservando los bordes de los objetos (Tabla 1.1).

Tabla 1.1: Pruebas realizadas para adecuar una imagen.

Cambios en las componentes HSV sobre la

imagen original capturada Imagen Resultante

Intensidad (V) Saturación (S)

Homogenizada a 0.4 No se modifica

Homogenizada a 1 No se modifica

(25)

25 Homogenizada a 0.9 No se modifica

Homogenizada a 0.9 S = 0; si S  0.2

Homogenizada a 0.9 S = 0; si S  0.2 y luego homogenizada a 0.6

Fuente: Autores del Proyecto.

El siguiente proceso es eliminar el ruido, en la tabla 1.1 se puede observar de forma clara que la presencia de ruido (zonas encerradas por los círculos) se hace más fuerte al acercar el valor de la componente de intensidad a uno. Por lo general el ruido presenta una concentración elevada sobre los bordes de la imagen y los objetos, mediciones realizadas sobre estas zonas con altas presencias de ruido arrojaron valores de la componente de saturación entre 0 y 0.2, estas mediciones se hacen sobre la imagen con intensidad uniforme de 0.9.

Con estos valores se hace una limitación en la componente de saturación haciendo que los valores inferiores ó iguales a 0.2 tengan un valor de cero, logrando eliminar casi por completo el ruido. En el área encerrada se observa que

(26)

26

todavía existe presencia de ruido el cual es eliminado en la etapa de binarización por medio de operaciones morfológicas. Los valores superiores a 0.2 también son modificados, estos valores se igualan a 0.6, con esto se logra un realzado en la imagen y se aumenta el contraste entre el fondo y los objetos. La componente matiz no es modificada ya que es esta la que contiene la información del color de la imagen.

1.4 SEGMENTACIÓN

Para el proceso de segmentación se realizó un algoritmo con el que se busca separar o dejar los objetos de interés en la imagen tomando como parámetro característico el color de las figuras, esto se hace implementando una red neuronal de base radial probabilística.

1.4.1 Red de base radial probabilística (PNN). Este tipo de red neuronal, combina las cualidades de clasificadores estadísticos y redes neuronales prealimentadas. Esta clase de red neuronal es una de las más apropiadas para los problemas de clasificación por su exactitud y rapidez para el aprendizaje. La red consta de dos capas, una red de neuronas de base radial con un número de neuronas igual al número de vectores de entrenamiento Q y una capa competitiva de neuronas cuyo número es igual al número de categorías K consideradas en el problema de clasificación. En la figura 1.5 se muestra la arquitectura de una PNN, y la distribución de sus capas. Cada neurona de base radial (de la capa de entrada) almacena como pesos uno de los vectores de entrenamiento. En la fase de clasificación o reconocimiento, se presenta un nuevo vector de entrada.

Figura 1.5: Arquitectura de una red probabilística.

Fuente: (Neural Network Toolbox User’s Guide) MATLAB.

(27)

27

Se asume que hay Q parejas de vectores de entrada/salida. Cada vector de salida tiene K elementos. Uno de estos elementos es 1 y el resto es 0. Así, cada vector de entrada es asociado con una de K clases. Los pesos IW1,1 de la primera capa de entrada son la matriz transpuesta formada a partir de los pares de entrenamiento Q, y P'. Cuando una entrada es presentada a la red, la función

||dist|| produce un vector cuyos elementos indican que tan cercano está la entrada del vector de entrenamiento (Distancia Euclídea). Estos elementos son multiplicados, elemento por elemento, por el parámetro b1 (spread) formando el vector n1, el parámetro “spread” es idéntico para todas las neuronas de base radial de la red e introducido como argumento en una función de tipo gaussiana denominada “radbas” (figura 1.6). Cada vector de entrada cercano al vector de entrenamiento es representado por un valor cercano a 1 en el vector de salida a1.

Si una entrada está cerca de varios vectores de entrenamiento de una misma clase, este es representado por varios elementos de a1 con valores cercanos a 1.

Los pesos de la segunda capa, LW1,2 son la matriz T formada por los vectores de salida. Cada vector tiene un 1 únicamente en la fila asociada con esa clase de entrada particular, y 0 para el resto. La multiplicación T*a1 suma los elementos de a1 a cada una de las K clases de entrada. Finalmente, la función de transferencia

“compet” de la segunda capa, produce un 1 que corresponde al elemento más grande de n2, y 0 para el resto, de esta manera la red clasifica el vector de entrada dentro de una de las K clases específicas porque esa clase tiene la máxima probabilidad de ser correcta.

Figura 1.6: Función de transferencia radbas de una neurona de base radial.

Fuente: (Neural Network Toolbox User’s Guide) MATLAB.

Esta función adquiere su valor máximo (igual a la unidad) cuando su argumento vale cero. Por lo tanto, dado un vector nuevo que deba ser clasificado, la neurona de base radial que produzca un máximo a su salida será aquella cuyos pesos más

(28)

28

se parezcan al vector de entrada. La función del parámetro “spread” es determinar la anchura de la campana de Gauss. La expresión de la función radbas (donde se ha denominado n al argumento) es:

[1.1]

El procedimiento para realizar la segmentación de las figuras mediante el color consiste en entrenar la red con una paleta de colores (figura 1.7) diseñada de acuerdo a los requerimientos de la aplicación. El diseño de la paleta se crea bajo el espacio de color HSV que luego es convertido al espacio RGB, esto se hace creando tres vectores columna que representan las componentes “H”, “S”, y “V”, cada uno contiene 256 posiciones, esto quiere decir que la paleta tendrá 256 niveles de colores diferentes. El vector “H” contiene 256 valores equidistantes entre cero y uno, mientras que los vectores “S” y “V” se mantienen constantes con un valor de uno, el objetivo de esto es trabajar sobre el borde superior externo del espacio HSV (figura 1.8), el cual es equivalente a trabajar sobre los vértices del cubo RGB (figura 1.1), donde los colores son más nítidos. Teniendo los vectores construidos, se convierten al espacio RGB utilizando el comando hsv2rgb de Image Processing Toolbox, MATLAB, este comando proporciona como salida tres vectores columna con las componentes “R”, “G” y “B” que son utilizados como vectores de entradas para el entrenamiento de la red. Para crear una red de base radial probabilística se utiliza el comando newpnn de Neural Network Toolbox, MATLAB, las entradas para este comando son el vector de entrenamiento que corresponde a la paleta de colores creada en formato RGB, la salida deseada que se crea haciendo un vector de la misma longitud de la paleta de colores, donde cada posición del vector corresponde a un nivel de color diferente (figura 1.9) a las cuales se le almacena un valor de uno si se desea clasificar ese nivel de color o un cero si se quiere eliminar y el parámetro denominado “spread”, si el valor de este parámetro es cercano a cero, la red neuronal actúa como un clasificador cercano de vecindad, mientras que si se hace más grande, la red tendrá en consideración varios vectores cercanos y no será tan exacta.

(29)

29

Figura 1.7: Paleta de colores utilizada para el entrenamiento de la red PNN y el vector de salida correspondiente para la segmentación del color verde.

Fuente: Autores del Proyecto.

Figura 1.8: Equivalencia entre el espacio RGB y el espacio HSV.

Fuente: Autores del Proyecto.

Figura 1.9: Entrenamiento de la red PNN para el reconocimiento de colores.

Fuente: Autores del Proyecto.

(30)

30

Se debe tener mucho cuidado al seleccionar el valor del parámetro spread, el cual depende de las características del entorno en el que se esté trabajando como son, el tipo de iluminación e intensidad de los colores que serán segmentados. Para el caso de este proyecto se realizaron pruebas con diferentes valores para el spread, donde para valores altos la red responde de manera inadecuada eliminando los colores (figura 1.10), mientras que para valores cercanos a cero se logra obtener una mejor segmentación (figura 1.11). Debido a estos resultados se seleccionó un valor de 0.1 (figura 1.12).

Figura 1.10: Segmentación del color verde con un valor de spread igual a 0.7.

Fuente: Autores del Proyecto.

Figura 1.11: Segmentación del color verde con un valor de spread igual a 0.4.

Fuente: Autores del Proyecto.

(31)

31

Los pasos que se requieren para realizar la segmentación de una imagen a color son:

1) Se toma la imagen filtrada y se le extrae la paleta de colores realizándole un indexado.

2) Luego de obtener la paleta de colores de la imagen, se consulta la red previamente entrenada con el color que se quiere segmentar, esto se realiza mediante el comando sim de Neural Network Toolbox MATLAB, este comando toma como parámetros de entrada la red y la paleta de colores de la imagen filtrada, proporcionando como respuesta un vector con valores de uno para los niveles de color seleccionados y ceros para el resto.

3) Cuando se tiene el vector de respuesta de la red, este es multiplicado por cada una de las tres componentes de la paleta de colores de la imagen filtrada para obtener una nueva paleta de colores en la que se mantiene el color seleccionado, mientras que el resto se hace cero apareciendo de color negro en la imagen.

Figura 1.12: Segmentación del color verde con un valor de spread igual a 0.1.

Fuente: Autores del Proyecto.

(32)

32

1.5 BINARIZACIÓN

La binarización está basada en el uso de umbrales y se realiza mediante el comando im2bw de Image Processing Toolbox MATLAB, este comando permite obtener una imagen binarizada (blanco y negro) a partir de una imagen a color indexada o en escala de grises teniendo en cuenta un umbral que debe estar en un rango entre 0 y 1. Se realizaron pruebas con diferentes umbrales donde se observó que para valores de umbrales cercanos a uno, las figuras empezaban a desaparecer (figura 1.13a) y para valores de umbrales cercanos a cero, se obtenían mejores resultados de binarización de los objetos (figura 1.13b), debido a estos resultados se decidió escoger un umbral de 0.1, se pueden observar encerradas en color rojo pequeñas áreas que corresponden al ruido que no pudo ser eliminado en la etapa de filtrado. MATLAB tiene un comando llamado bwareaopen de Image Processing Toolbox, que permite eliminar áreas inferiores a un número determinado de pixeles mediante operaciones morfológicas en una imagen binarizada, el número de pixeles debe ser menor al área de la figura más pequeña presente en la imagen ya que de otra manera también sería eliminada.

En la figura 1.14 se muestra la imagen binarizada final después de aplicar este comando con un número de pixeles igual a 200, donde se observa que desaparece por completo el ruido.

Figura 1.13: Binarización de una imagen; a) umbral de 0.72, b) umbral de 0.1.

Fuente: Autores del Proyecto.

(33)

33

Figura 1.14: Eliminación del ruido a partir de operadores morfológicos en una imagen binarizada.

Fuente: Autores del Proyecto.

1.5.1 Extracción de bordes. Un problema fundamental en el análisis de imágenes es la detección de bordes. Los bordes identifican a los objetos, y su extracción es muy útil para el cálculo de características geométricas, tales como tamaño y orientación. Por lo tanto son de gran utilidad para la detección y el reconocimiento de objetos. La extracción de bordes (figura 1.15), se realiza mediante el comando bwboundaries de Image Processing Toolbox, MATLAB, este comando toma como entrada la imagen binarizada devolviendo como resultado una matriz tipo celda de Px1, donde P es el numero de objetos en la imagen. Cada celda contiene una matriz de Qx2, donde cada fila en la matriz contiene la posición XY correspondiente al pixel del borde. La longitud de Q equivale al número de pixeles del borde.

(34)

34 Figura 1.15: Extracción de bordes.

Fuente: Autores del Proyecto.

1.6 EFECTOS DE LA ILUMINACIÓN SOBRE EL PROCESO DE SEGMENTACIÓN DEL COLOR

Para observar los efectos causados por la iluminación sobre la segmentación de los colores se tomaron imágenes con luz natural y luz amarilla producida por bombillas de 100Watts. En el primer caso se observa que la técnica implementada bajo esta condición no responde de forma óptima, ya que el software elimina la figura de color verde. El problema se centra en la etapa de filtrado, debido a la gran cantidad de luz presente en el ambiente. En esta etapa, al homogenizar la componente de intensidad ocasiona que la nueva imagen se vuelva demasiado brillante, lo cual produce que el color verde tome valores de saturación por debajo del umbral de 0.2 y sea eliminado en la etapa de filtrado. Se resalta que la red neuronal segmenta de forma adecuada los demás colores: rojo, azul y amarillo.

Una solución para este problema sería utilizar el mismo algoritmo de filtrado pero sin modificar los valores de la componente de intensidad. Se observa en la nueva imagen segmentada, la presencia de ruido al interior de las figuras, esto ocurre porque contienen pixeles con tonalidades fuera del rango de reconocimiento.

Utilizando operadores morfológicos se pueden rellenar las figuras suprimiendo el ruido; lo importante es conservar los bordes para la etapa de reconocimiento de forma de figuras (Tabla 1.2).

(35)

35

Tabla 1.2: Diferentes efectos causados a una imagen por los cambios de la iluminación.

Imagen con luz natural Imagen con luz de bombilla

Imagen real

Imagen Filtrada

Imagen segmentada

Imagen con nueva técnica

de filtrado

(36)

36 Imagen

segmentada con nueva técnica de filtrado

Fuente: Autores del Proyecto.

Con iluminación de luz de bombilla se observa que los colores de las figuras en la imagen capturada son más opacos, lo cual se debe a la resolución y la capacidad de absorción de colores de la cámara WEB. Al pasarla por el filtro se produce un cambio en el color, el verde adquiere un tono azul y el amarillo un tono entre rojo y naranja, siendo muy sensible este tipo de iluminación a los cambios de las componentes del espacio HSV. En la etapa de segmentación el resultado no es el óptimo debido a este problema. Una solución, no muy conveniente, es utilizar la imagen real y segmentarla sin realizar el filtrado, pero es necesario implementar una técnica para eliminar el ruido presente.

Teniendo en cuenta todos estos problemas causados por los diferentes tipos de iluminación (luz natural y luz de bombilla), es conveniente utilizar luz blanca fluorescente de forma homogénea sobre todo el escenario ya que las imágenes capturadas bajo estas condiciones de iluminación presentan una menor cantidad de ruido y sombras.

(37)

37

2. RECONOCIMIENTO DE FIGURAS PLANAS

La función de los algoritmos de reconocimiento es detectar e identificar cada objeto segmentado de una escena y asignarle una etiqueta. Una limitante en la mayoría de los sistemas de visión es que los niveles de reconocimiento trabajan objetos que suponen que han sido segmentados como unidades individuales. Otra limitación común es que las imágenes se deben tomar con una geometría de visión conocida (a menudo perpendicular al espacio). Esto hace que disminuya la diversidad de características de forma, simplificando la segmentación y la descripción, reduciendo a su vez las posibilidades de ocultación de detalles en las imágenes.

2.1 DESCRIPCIÓN DE FORMAS

El problema de la descripción en la visión consiste en extraer características de un objeto para reconocerlo. Por lo general, los descriptores deben ser independientes del tamaño, la localización y orientación del objeto, además deben contener suficiente información de discriminación para distinguir un objeto de otro. En esta etapa lo que se hace básicamente, es reducir la tarea de descripción de una imagen en dos dimensiones a la descripción de una función unidimensional por medio de los siguientes métodos.

 Signatura.

 Coeficientes de Fourier.

 Parámetros Topológicos.

 Parámetros Estadísticos.

2.1.1 Signatura. Una signatura es una representación funcional unidimensional de un borde. La signatura se representa como la distancia desde el centro hasta el contorno como función del ángulo, figuras 2.1 y 2.2. Las signaturas creadas mediante este método dependen del tamaño del objeto y del punto de comienzo el cual crea un desfase en la función. Para eliminar los efectos del tamaño se hace una normalización de la curva r(ө) haciendo que tenga un valor máximo igual a la unidad.

(38)

38 Figura 2.1: Signatura característica de un cuadrado.

Fuente: Autores del Proyecto.

Figura 2.2: Signatura característica de un círculo.

Fuente: Autores del Proyecto.

El algoritmo implementado para crear la signatura de una figura toma las coordenadas Xc, Yc del centroide de cada una de las figuras binarizadas, mediante el comando regionprops de Image Processing Toolbox, MATLAB, y las coordenadas Xp, Yp del borde del objeto correspondientes, las cuales se extraen como se explicó en el apartado 1.5.1, y calcula las distancias que hay entre el centroide y cada uno de los pixeles del borde (ver figura 2.3).

(39)

39

Figura 2.3: Metodología para la obtención de la signatura de una figura.

Fuente: Autores del Proyecto.

En las figuras 2.4 a 2.7 se muestran los resultados obtenidos después de aplicar el algoritmo a un cuadrado, círculo, triángulo y rectángulo.

Figura 2.4: Signatura de un cuadrado.

Fuente: Autores del Proyecto.

(40)

40 Figura 2.5: Signatura de un círculo.

Fuente: Autores del Proyecto.

Figura 2.6: Signatura de un triángulo.

Fuente: Autores del Proyecto.

Figura 2.7: Signatura de un rectángulo.

Fuente: Autores del Proyecto.

(41)

41

2.1.2 Coeficientes de Fourier. Con el fin de evitar problemas con el punto de partida al momento de crear la signatura el cual depende de la orientación de las figuras, se ha implementado el algoritmo de la transformada rápida de Fourier (FFT) con la cual se obtienen unos coeficientes que permiten caracterizar las figuras independientemente de su orientación, estos coeficientes no son más que la magnitud de las componentes frecuenciales de la curva periódica de la signatura. La transformada rápida de Fourier de una secuencia de datos X(k) se define como,

[2.1]

Donde,

[2.2]

Siendo N el número de pixeles del borde. Para calcular la FFT se toman 16 puntos equidistantes de la signatura con lo que N tendría un valor de 16. Una vez calculada la FFT, se normaliza con respecto al máximo valor que corresponde a la componente de 0Hz, como descriptores se utilizan los primeros 8 valores, donde el primer valor no se tiene en cuenta ya que al realizar la normalización adquiere un valor de uno, los otros valores restantes se descartan porque son un reflejo de los primeros, esto se debe a que los datos de la signatura corresponden a una señal real. En las figuras 2.8 a 2.11 se muestra la magnitud de los coeficientes de Fourier para un cuadrado, círculo, triángulo y rectángulo.

Figura 2.8: Magnitud de los coeficientes de Fourier de la signatura de un cuadrado.

Fuente: Autores del Proyecto.

(42)

42

Figura 2.9: Magnitud de los coeficientes de Fourier de la signatura de un círculo.

Fuente: Autores del Proyecto.

Figura 2.10: Magnitud de los coeficientes de Fourier de la signatura de un triángulo.

Fuente: Autores del Proyecto.

Figura 2.11: Magnitud de los coeficientes de Fourier de la signatura de un rectángulo.

Fuente: Autores del Proyecto.

(43)

43

2.1.3 Parámetros Topológicos. Los parámetros topológicos son propiedades que dependen de la geometría de las figuras. Los parámetros utilizados para la descripción de las figuras son: la excentricidad, redondez y compacidad.

 Excentricidad: Esta propiedad se calcula mediante el comando regionprops y suministra información de que tan elíptico es un objeto. Un valor de 0 corresponde a un círculo y un valor de 1 representa una línea.

 Redondez: Es la razón entre el área y el eje mayor al cuadrado. Los valores cercanos a uno corresponden a figuras circulares y cercanos a cero corresponden a figuras con forma rectangular. Esta propiedad se calcula mediante la siguiente ecuación:

[2.3]

 Compacidad: Se define como el cociente entre el perímetro al cuadrado sobre el área. Este es un valor sin dimensiones que es mínimo para una región en forma de disco. La forma de calcular esta propiedad es aplicando la ecuación siguiente:

[2.4]

2.1.4 Parámetros estadísticos. Estos parámetros son datos que dependen de los valores de las signaturas de las figuras. Estos parámetros son: la media aritmética, la media geométrica, la media armónica, la desviación estándar y la mediana.

 Media Aritmética: Es el resultado de sumar todos los elementos de un conjunto de valores y dividirlos por el número de ellos.

[2.5]

(44)

44

 Media Geométrica: Es el resultado de multiplicar todos los elementos de un conjunto de valores y extraer la raíz n-ésima del producto.

[2.6]

 Media Armónica: La media armónica es el inverso de la media aritmética de los inversos de los números del conjunto de valores.

[2.7]

 Desviación Estándar: Representa el alejamiento de una serie de números de su valor medio. Se calcula a partir de todas las desviaciones individuales con respecto a la media aritmética.

[2.8]

 Mediana: Colocando todos los valores en orden creciente, la mediana es aquél que ocupa la posición central.

2.2 RED NEURONAL BACKPROPAGATION

En una red Backpropagation o de aprendizaje por retropropagación del error existe una capa de entrada con n neuronas una capa de salida con m neuronas y al menos una capa oculta de neuronas internas (figura 2.12). El funcionamiento de esta red consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagación- adaptación de dos fases: primero se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida, se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida. A continuación, estos errores se

(45)

45

transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participación de la neurona intermedia en la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportación relativa al error total. Basándose en el valor del error recibido, se ajustan los pesos de conexión de cada neurona, de manera que en la siguiente vez que se presente el mismo patrón, la salida este más cercana a la deseada; es decir, el error disminuya.

Figura 2.12: Arquitectura de la red backpropagation. La burbuja superior muestra la estructura de cada neurona en la red.

Fuente: Autores del Proyecto.

La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de las neuronas de las capas intermedias, para aprender la relación que existe entre un conjunto de patrones dados como ejemplo y sus

(46)

46

salidas correspondientes. Para poder aplicar esa misma relación, después del entrenamiento, a nuevos vectores de entrada con ruido o incompleta, dando una salida activa si la nueva entrada es parecida a las presentadas durante el aprendizaje. Esta característica importante, que se exige a los sistemas de aprendizaje, es la capacidad de generalización, entendida como la facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento.

El reconocimiento de formas utiliza como vector de entrada para el aprendizaje de la red neuronal, un conjunto de 15 valores obtenidos mediante el cálculo de los descriptores de forma. Para calcular estos valores se desarrolló un algoritmo que consta de cuatro pasos. El primer paso consiste en realizar la segmentación del objeto que se quiere reconocer. Una vez realizada la segmentación se obtiene la signatura que luego es normalizada dividiéndola entre su mayor valor, esto se hace con el fin de eliminar los problemas de cambio de escala. El siguiente paso es aplicar la FFT con el fin de calcular los coeficientes de Fourier de la signatura de los cuales solo se toman siete valores. La ventaja de este procedimiento es que se logra obtener unos descriptores que son invariantes a la rotación y al desplazamiento, puesto que la signatura se obtiene siempre con respecto al centroide de la figura. En el tercer paso se hace un cálculo de tres parámetros topológicos que corresponden a la Excentricidad, Redondez y Compacidad. Luego en el cuarto paso se obtienen cinco valores estadísticos característicos de cada signatura, estos valores son: la media aritmética, media geométrica, media armónica, desviación estándar, y la mediana. El vector de salida se construye asignándole a cada figura un número que la identifique, estos valores están en un rango de uno a cuatro donde un valor de uno representa un cuadrado, un dos un rectángulo, el tres es un círculo y el cuatro un triángulo. El entrenamiento de la red se hace con una imagen que está compuesta por 76 figuras planas en las que se encuentran 20 cuadrados, 16 círculos, 24 triángulos y 16 rectángulos, todas con los diferentes tamaños mostrados en la tabla 2.1, orientación y posición (figura 2.13).

Tabla 2.1: Dimensiones de las figuras.

Fuente: Autores del Proyecto.

(47)

47

Figura 2.13: Imagen utilizada para el entrenamiento de la red backpropagation.

Fuente: Autores del Proyecto.

En las figuras 2.14 a 2.17 se muestran los descriptores de forma de un cuadrado, círculo, triángulo y rectángulo, donde se observan las diferencias entre los valores de cada uno.

Figura 2.14: Descriptores de forma de un cuadrado.

Fuente: Autores del Proyecto.

(48)

48 Figura 2.15: Descriptores de forma de un círculo.

Fuente: Autores del Proyecto.

Figura 2.16: Descriptores de forma de un triángulo.

Fuente: Autores del Proyecto.

(49)

49 Figura 2.17: Descriptores de forma de un rectángulo.

Fuente: Autores del Proyecto.

2.3 EVALUACIÓN DEL ALGORITMO DE RECONOCIMIENTO DE FORMAS

Con el fin de validar la efectividad de la metodología utilizada para el reconocimiento de formas se realizaron dos pruebas. En la primera se capturaron 20 imágenes sobre un mismo escenario (figura 2.18) en horas del día y de la noche, en las cuales se encontraban 20 cuadrados, 23 triángulos, 16 rectángulos y 16 círculos de diferente color y tamaño, colocadas de forma aleatoria. Por medio de la interfaz gráfica se evaluó cuantas figuras de una forma específica se encontraban sobre el escenario, obteniéndose los resultados que se observan en los histogramas de la figura 2.19 a 2.22. Se resalta que siempre existe una confusión entre el círculo y el triángulo, la razón se debe a que el algoritmo toma como base la signatura proveniente del proceso de segmentación del color, donde las esquinas de los triángulos no son bien identificadas, conllevando a la similitud de sus descriptores de forma, que al pasarlos por la red Backpropagation, esta entrega valores muy cercanos entre los límites de los rangos de respuesta de las dos figuras, los cuales al redondearse pueden ocasionar errores en el reconocimiento.

(50)

50

Figura 2.18: Imagen utilizada para evaluar la red backpropagation. Caso I.

Fuente: Autores del Proyecto.

Figura 2.19: Histograma de los resultados de la evaluación del algoritmo de reconocimiento de círculos; a) de día, b) de noche.

a) b) Fuente: Autores del Proyecto.

(51)

51

Figura 2.20: Histograma de los resultados de la evaluación del algoritmo de reconocimiento de cuadrados; a) de día, b) de noche.

a) b) Fuente: Autores del Proyecto.

Figura 2.21: Histograma de los resultados de la evaluación del algoritmo de reconocimiento de triángulos; a) de día, b) de noche.

a) b) Fuente: Autores del Proyecto.

(52)

52

Figura 2.22: Histograma de los resultados de la evaluación del algoritmo de reconocimiento de rectángulos; a) de día, b) de noche.

a) b) Fuente: Autores del Proyecto.

Para la segunda prueba se ha desarrollado un algoritmo que localiza y reconoce uno de los objetos que se encuentran en la imagen de la figura 2.23. El objeto es seleccionado por el usuario por medio de un software diseñado llamado TraxMaker2. En la imagen se encuentran objetos unidos de diferente forma y color. Se observa que para los casos en donde se le ordena al programa que localice un cuadrado azul (figura 2.24a), un triángulo amarillo (figura 2.24b) y un círculo azul (figura 2.24c), el sistema responde de forma adecuada. En el caso que se unan dos figuras del mismo color (figura 2.24d), donde se le pide al programa que busque un rectángulo verde el algoritmo de segmentación toma el cuadrado y el rectángulo ambos de color verde como una sola forma y la red la aproxima a una de las cuatro figuras que más se parezca utilizada en el entrenamiento.

(53)

53

Figura 2.23: Imagen utilizada para evaluar la red backpropagation. Caso II.

Fuente: Autores del Proyecto.

Figura 2.24: Validación del Algoritmo para el Reconocimiento de figuras; a) cuadrado verde, b) triángulo amarillo, c) círculo azul, d) rectángulo verde.

a) b)

(54)

54

c) d) Fuente: Autores del Proyecto.

Referencias

Documento similar

[r]

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,