VISIÓN ARTIFICIAL CON IMtdi VISIÓN ARTIFICIAL CON IMtdi Francisco Guindos Rojas José Antonio Piedra Fernández Mercedes Peralta López ALMERÍA, 2001 1 1.1 2 Introducción..........................................................................................................9 El entorno de trabajo IMtdi ................................................................................10 Segmentación......................................................................................................11 2.1 Conceptos generales ...........................................................................................11 2.2 Segmentación por niveles de gris .......................................................................11 2.3 Segmentación por gradientes..............................................................................18 2.4 Fuentes de información ......................................................................................24 3 Representación y descripción .............................................................................25 3.1 Introducción........................................................................................................25 3.2 Descriptores simples...........................................................................................32 3.3 Descriptores basados en los niveles de gris........................................................40 3.4 Descriptores basados en el rectángulo circunscrito............................................43 3.5 Puntos extremos..................................................................................................46 3.6 Descriptores basados en la elipsoide circunscrita...............................................50 3.7 Descriptores topológicos ....................................................................................55 3.8 Descriptores globales. teoría de momentos ........................................................58 3.9 Desarrollo de nuevos descriptores por combinación..........................................95 3.10 Resumen de los descriptores...............................................................................96 3.11 Lectura y almacenamiento de las configuraciones de los descriptores ..............98 3.12 Almacenamiento de los descriptores ................................................................107 3.13 Ejemplo genérico de cálculo de descriptores ...................................................109 4 Clasificación..................................................................................................... 117 4.1 Introducción...................................................................................................... 117 4.2 Patrones y clases............................................................................................... 117 4.3 Extracción de características ............................................................................ 118 4.4 Selección de características .............................................................................. 118 4.5 Vector de características y espacio de características ...................................... 119 4.6 Fronteras y regiones de decisión ...................................................................... 119 4.7 Funciones discriminantes ................................................................................. 120 4.8 Tipos de clasificadores ..................................................................................... 122 4.9 Aproximaciones al reconocimiento de patrones .............................................. 123 4.10 Ejemplos........................................................................................................... 124 4.11 Conclusión........................................................................................................ 179 5 Bibliografía....................................................................................................... 181 1 Introducción F. GUINDOS La Visión Artificial se ha convertido en una de las áreas de trabajo de la Inteligencia Artificial con más futuro. Son muchas los campos de aplicación donde ya hoy se está utilizando con éxito aportando un gran avance en los métodos de trabajo. Utilizando técnicas de Visión Artificial se puede realizar un tratamiento inteligente de las imágenes recibidas en el ordenador en el que, más allá de la pura manipulación, se llega al análisis y reconocimientos de los objetos presentes en ellas. En este manual se presentan, de forma fundamentalmente práctica, los pasos más importantes para alcanzar una interpretación de la imagen: segmentación, descripción y clasificación. No se trata de un recorrido exhaustivo por todos los métodos empleados en estas tareas, sino que se ha escogido una metodología, y se presenta ésta de forma detallada, con ejemplos y un entorno de trabajo donde llevar a la práctica cada una de las técnicas aquí mostradas. El lector encontrará a lo largo de este manual continuas referencias al entorno IMtdi. Se trata de un entorno de trabajo realizado por los mismos autores y destinado a facilitar la realización e implementación de prácticas en asignaturas de Tratamiento digital de Imágenes y Visión Artificial. Básicamente, es un conjunto de funciones de preprocesado, segmentación y descripción de imágenes que permiten al alumno centrarse directamente las prácticas de Visión Artificial, liberándolo de la implementación de los prolegómenos necesarios para ellas. Para el estudio del funcionamiento básico del entorno y de las funciones de procesamiento, se remite al lector al manual dedicado a la asignatura de Tratamiento Digital de Imágenes. Hay que hacer notar que no se trata de un entorno de prácticas/trabajo destinado a un usuario final, sino al desarrollador del sistema de Visión Artificial, que encontrará en él una valiosa ayuda a la hora de su creación. 9 Visión Artificial con IMtdi 1.1 EL ENTORNO DE TRABAJO IMtdi La principal dificultad para la realización de prácticas Visión Artificial radica en que, antes de poder abordar las tareas más propias de las prácticas de esta materia, ha de vérselas con otras que se encuadran más en las técnicas de Tratamiento Digital de Imágenes. También ocurre que para realizar una práctica de clasificación y reconocimiento de imágenes, es indispensable el contar con una serie de descriptores de los objetos que en ellas aparecen y que no son rápidos de implementar. El entorno para prácticas IMtdi está ideado para resolver estos problemas. Utilizando las herramientas y librerías disponibles en el entorno de trabajo, el alumno podrá crear fácilmente en C++ sus propios programas en los que ponga a prueba las funciones de Tratamiento de Imágenes objeto de interés, dedicando un mínimo esfuerzo a tareas de preprocesamiento. El objetivo fundamental es que el alumno pueda centrarse en el objetivo de la práctica que pretenda desarrollar sin pérdidas de tiempo en la implementación de funciones que no forman parte de los objetivos, pero que son necesarias para poder realizarla. Por motivos de simplicidad y, dado el hecho de que la mayoría de los algoritmos estudiados trabajan sobre imágenes representadas en niveles de gris, el entorno está especialmente diseñado para manipular este tipo de imágenes y, si bien admite imágenes en color, la cobertura para ellas es reducida. Distribución de IMtdi Todo lo necesario para la utilización del entorno de trabajo IMtdi, ficheros de cabecera (*.hpp) y librería (*.lib) se encuentra disponible en la dirección: http://www.ual.es/~fguindos 10 2 Segmentación F. GUINDOS 2.1 CONCEPTOS GENERALES La segmentación es una tarea de fundamental importancia en el análisis de imágenes. Su objetivo es dividir la imagen en partes, cada una de las cuales se corresponde con un objeto de la realidad. En general, los métodos de segmentación se basan en el hecho de que los píxeles que forman un objeto mantienen una cierta similitud entre ellos y, sin embargo, en las fronteras que separan dos objetos aparecen mayores variaciones. En el entrono de tratamiento de imágenes IMtdi se han incluido algunas funciones para segmentación de imágenes. Se encuentran definidos en la clase C_Matrix, por lo que operan tanto con matrices como con imágenes, ya que se trata de una clase derivada. Sin embargo, hay que hacer notar que su ámbito de aplicación son las imágenes en tonos de gris, y siempre que la paleta de grises se encuentre normalizada. paleta(i, ROJO) = i ∀i / 0 ≤ i ≤ num.grises − 1 : paleta(i, VERDE ) = i paleta(i, AZUL) = i Figura 2–1 Paleta de grises normalizada 2.2 SEGMENTACIÓN POR NIVELES DE GRIS En este grupo se encuadran aquellos métodos de segmentación que se basan directamente en los valores de la función de imagen en cada píxel, estableciendo unos límites en ellos que determinan la segmentación. 11 Visión Artificial con IMtdi Figura 2–2 Segmentación por umbrales en el histograma 2.2.1 Isolíneas o líneas de nivel Es uno de los métodos más simples de segmentación. Consiste en dividir el rango de la función de imagen en un número de intervalos de igual anchura y marcar los píxeles donde se produce un cambio de uno de estos segmentos a otro. Figura 2–3 División del rango de la imagen para extracción de isolíneas Es el método empleado en los mapas isobáricos para la representación de la presión atmosférica o en los planos de altimetría o batimetría para representación del relieve terrestre. Isolines Isolines (C_Matrix & matrixIn, const ElementT interval) Realiza un mapa de líneas de nivel o isolíneas. En la matriz resultante se indicará con un número natural el número de líneas de nivel que pasan por él. Parámetros de entrada matrixIn Matriz original. No puede coincidir con aquella para la que se ejecuta el método. interval Intervalo entre cada dos líneas de nivel. Ejemplo C_Image imagen1; C_Image imagen2; imagen1.ReadBMP("Aguadulce_Gris.bmp"); 12 Segmentación imagen2.Isolines(imagen1, 1); printf ("Min= %d Max= %d\n", (int)(imagen2.Min()), (int)(imagen2.Max())); imagen2.SubtractFromEscalar(255); imagen2.palette = imagen1.palette; imagen2.WriteBMP("AguadulceIsolines.bmp"); Figura 2–4 Extracción de líneas de contorno con matriz2.Isolines(matriz1, 1) 2.2.2 Floodfill La función floodfill extrae o marca una zona conexa en una imagen donde se mantiene una cierta similaridad entre los píxeles. Comienza en un píxel inicial y se va extendiendo, como si de un líquido derramado se tratara, por los vecinos, siempre que el valor de la función de imagen en éstos se mantenga en un cierto rango, habitualmente próximo al valor en el píxel inicial. FloodFill long FloodFill (C_Matrix & matrix, const IndexT initRow, const IndexT initCol, const ElementT newValue, const int heighbourhood = 8, const ElementT intervalRadio = 0) Realiza la función floodfill, limitada a un rango de valores centrado en el valor para el píxel inicial: minitRow, initCol – intervalRadio ≤ mi,j ≤ minitRow, initCol + intervalRadio Parámetros de entrada matrix Matriz original. Si es la misma que aquella para la que se ejecuta el método, el efecto es de una modificación en ella. Si es una matriz distinta, el efecto es de extracción de una región. initRow, initCol Coordenada donde comienza el proceso. newValue Valor que se asigna a la región. 13 Visión Artificial con IMtdi heighbourhood (opcional) Tipo de vecindad que se utilizará. Los valores posibles son 4 y 8. Por defecto toma el valor 8. intervalRadio (opcional) Es el margen de variación permitido en los valores de la región que se rellena respecto al valor en el punto de comienzo. Por defecto, toma el valor 0. Valor devuelto Número de elementos de la región tratada. Ejemplo C_Image imagen1; C_Image imagen2; imagen1.ReadBMP("Hercules_Gris.bmp"); imagen2.FloodFill(imagen1, 140, 90, 255, 4); imagen2.SubtractFromEscalar(255); imagen2.palette = imagen1.palette; imagen2.WriteBMP("Camiseta.bmp"); Figura 2–5 Extracción de la camiseta con matriz2.FloodFill(matriz1, 140, 90, 255, 4) Ejemplo C_Image imagen1; C_Image imagen2; imagen1.ReadBMP("Hercules_Gris.bmp"); imagen2.FloodFill(imagen1, 80, 100, 255, 8, 35); imagen2.SubtractFromEscalar(255); imagen2.palette = imagen1.palette; imagen2.WriteBMP("Cara.bmp"); 14 Segmentación Figura 2–6 Extracción de la cara con matriz2.FloodFill(matriz1, 80, 100, 255, 8, 35); FloodFill long FloodFill (C_Matrix & matrix, const IndexT initRow, const IndexT initCol, const ElementT newValue, const int heighbourhood, const ElementT intervalMin, const ElementT intervalMax) Es otra versión del método anterior, en la que el rango de los valores por los que se expande se especifican directamente indicando el mínimo y el máximo: intervalMin ≤ mi,j ≤ intervalMax Parámetros de entrada matrix Matriz original. Si es la misma que aquella para la que se ejecuta el método, el efecto es de una modificación en ella. Si es una matriz distinta, el efecto es de extracción de una región. initRow, initCol Coordenada donde comienza el proceso. newValue Valor que se asigna a la región. heighbourhood Tipo de vecindad que se utilizará. Los valores posibles son 4 y 8. Por defecto se toma 8. intervalMin Mínimo del intervalo de valores sobre los que actúa el método. intervalMax Máximo del intervalo de valores sobre los que actúa el método. Valor devuelto Número de elementos de la región tratada. Ejemplo C_Image imagen1; C_Image imagen2; 15 Visión Artificial con IMtdi imagen1.ReadBMP("Hercules_Gris.bmp"); imagen2.FloodFill(imagen1, 80, 100, 255, 8, 0, 240); imagen2.SubtractFromEscalar(255); imagen2.palette = imagen1.palette; imagen2.WriteBMP("Figura.bmp"); Figura 2–7 Extracción de la figura con matriz2.FloodFill(matriz1, 80, 100, 255, 8, 0, 240) 2.2.3 Umbralizado ThresholdSeg long ThresholdSeg (C_Matrix & matrixIn, const ElementT min, const ElementT max, long minSize = 1, int neighbourhood = 8, bool continuePrevSeg = false); Realiza una segmentación por umbrales en la matriz. Localiza zonas de la matriz comprendidas en el intervalo y las numera de forma que todos los elementos de una misma zona conexa tienen el mismo valor y elementos de distintas zonas tienen distintos valores. En la matriz resultante, se marca con 0 los elementos que no están comprendidos en el intervalo seleccionado y con números naturales a partir de 1 los pertenecientes a cada una de las distintas zonas. Parámetros de entrada matrixIn Matriz original. No puede coincidir con aquella para la que se ejecuta el método. min, max Definen el intervalo de elementos que se desea marcar. minSize (opcional) Tamaño (número de elementos) mínimo admisible para las zonas detectadas. El valor por omisión es 1. neighbourhood (opcional) Tipo de vecindad utilizada. El valor por omisión es 8. 16 Segmentación continuePrevSeg (opcional) Indica se en la matriz resultante se encuentran ya marcadas regiones fruto de una segmentación previa. En caso de ser así, las nuevas zonas se comienzan a numerar por el número siguiente al último que se encontrara en ella. El valor por omisión es false. Valor devuelto Número de regiones encontradas. Ejemplo C_Image imagen1; C_Image imagen2; long int numRegiones; imagen1.ReadBMP("Ajedrez_Gris.bmp"); numRegiones = imagen2.ThresholdSeg(imagen1, 165, 255, 50); printf ("numRegiones= %ld\n", numRegiones); imagen2.palette.Read("PaletaSurtida256.txt"); imagen2.WriteBMP("PeonesBlancos.bmp"); Figura 2–8 Segmentación de los peones blancos con matriz2.ThresholdSeg(matriz1, 165, 255, 50) La segmentación por umbrales en una sola operación de los peones blancos y negros no es posible debido a que las zonas que ocupan en el histograma están separadas y en medio se encuentran los valores correspondientes a la mesa. Sin embargo, se puede realizar una segmentación para los peones negros que sea continuación de la hecha para los blancos. C_Image imagen1; C_Image imagen2; long int numRegiones; imagen1.ReadBMP("Ajedrez_Gris.bmp"); imagen2.ThresholdSeg(imagen1, 165, 255, 5000, 8, false); numRegiones = imagen2.ThresholdSeg(imagen1, 0, 95, 5000, 8, true); printf ("numRegiones= %ld\n", numRegiones); imagen2.palette.Read("PaletaSurtida256.txt"); 17 Visión Artificial con IMtdi imagen2.WriteBMP("Peones.bmp"); Figura 2–9 Nuevas regiones añadidas con imagen2.ThresholdSeg(imagen1, 0, 95, 5000, 8, true) 2.3 SEGMENTACIÓN POR GRADIENTES El operador gradiente descubre las zonas de la imagen donde se producen las mayores variaciones. La aplicación de este operador resalta los contornos de los objetos presentes en la imagen de forma que hay métodos de segmentación que operan sobre el gradiente en logar de hacerlo directamente con los valores de la función imagen. 2.3.1 Gradiente y pseudogradiente GradientX GradientX (C_Matrix & matrixIn) Calcula el gradiente en la dirección del eje X (columnas) de una matriz y lo almacena en la matriz para la que se ejecuta el método. El gradiente en X se calcula: gx i, j = (m i, j+1 - m i, j-1 ) 2 Ecuación 2–1 Cálculo del gradiente en X Parámetros de entrada matrixIn Matriz original. No puede coincidir con aquella para la que se ejecuta el método. Ejemplo C_Matrix matriz1 (1, 5, 1, 5); C_Matrix matriz2; . . . matriz2.GradientX(matriz1); 18 Segmentación 1 2 3 4 5 1 2 1 7 9 5 4 6 2 4 5 9 0 3 7 1 8 4 8 3 5 1 7 1 2 -1 -2.5 0.5 2 1 2 1 2.5 -2.5 -4 1 2 4 3 -6 0.5 0.5 -2 2 5 8 0 4 -5 -1.5 2.5 -2.5 -8 2 8 0 5 6 matriz1 3 4 0.5 0.5 -1 5 -8 matriz2 Figura 2–10 matriz2.GradientX(matriz1) GradientY GradientY (C_Matrix & matrixIn) Calcula el gradiente en la dirección del eje Y (filas) de una matriz y almacena en la matriz para la que se ejecuta el método. El gradiente en Y se calcula: gy i, j = (m i+1, j - m i-1, j ) 2 Ecuación 2–2 Cálculo del gradiente en Y Parámetros de entrada matrixIn Matriz original. No puede coincidir con aquella para la que se ejecuta el método. Ejemplo C_Matrix matriz1 (1, 5, 1, 5); C_Matrix matriz2; . . . matriz2.GradientY(matriz1); 19 Visión Artificial con IMtdi 1 2 3 4 5 1 2 3 4 5 1 7 9 5 4 6 1 -3 -4 4 -4 -5 2 4 5 9 0 1 2 0 -4 1.5 -1 -1 3 7 1 8 2 4 3 2 -1 -2 4 -0.5 4 8 3 5 8 0 4 -3 3 -3 3 -2 5 1 7 2 8 0 5 -7 4 -3 0 0 matriz1 matriz2 Figura 2–11 matriz2.GradientY(matriz1) Gradient Gradient (C_Matrix & matrixIn) Calcula el gradiente de una matriz y almacena en la matriz para la que se ejecuta el método. El gradiente se calcula utilizando los gradientes en X e Y: 2 g i, j = gxi , j + gyi , j 2 Ecuación 2–3 Cálculo del gradiente Parámetros de entrada matrixIn matriz original. No puede coincidir con aquella para la que se ejecuta el método. Ejemplo C_Matrix matriz1 (1, 5, 1, 5); C_Matrix matriz2; . . . matriz2.Gradient(matriz1); 20 Segmentación 1 2 3 4 5 1 1 7 9 5 4 6 1 2 4 5 9 0 1 2 3 7 1 8 2 4 3 6.3 1.1 2.1 4.5 2.1 4 8 3 5 8 0 4 5.8 3.4 3.9 3.9 8.2 5 1 7 2 8 0 5 9.2 matriz1 2 3 3.6 4.1 4.7 1 4 5 4 5.4 4.7 2.9 4.1 1.4 4 3 1 8 matriz2 Figura 2–12 matriz2.Gradient(matriz1) Pseudogradient Pseudogradient (C_Matrix & matrixIn) A menudo el gradiente no es necesario más que para realizar comparaciones de magnitud, sin importar el valor exacto. En estos casos se puede utilizar un cálculo aproximado más rápido, también a partir de los gradientes en X e Y: g'i, j = gxi , j + gyi , j 2 Ecuación 2–4 Cálculo del pseudogradiente Parámetros de entrada matrixIn Matriz original. No puede coincidir con aquella para la que se ejecuta el método. Ejemplo C_Matrix matriz1 (1, 5, 1, 5); C_Matrix matriz2; . . . matriz2.Pseudogradient(matriz1); 21 Visión Artificial con IMtdi 1 2 3 4 5 1 7 9 5 4 6 1 2.5 2.5 3.2 2.2 3.5 2 4 5 9 0 1 2 0.5 3.2 3 7 1 8 2 4 3 4 0.75 1.2 4 8 3 5 8 0 4 4 5 1 7 2 8 0 5 matriz1 1 2 3 2 4 5 2.5 1 3 1.2 2.2 2.8 2.8 5 6.5 2.2 1.8 0.5 4 matriz2 Figura 2–13 matriz2.GradientY(matriz1) 2.3.2 Watershed Podemos interpretar una matriz de gradientes obtenidos de una imagen como un perfil topográfico donde los valores altos del gradiente se corresponden con zonas elevadas del terreno y viceversa. Una vez hecha la analogía, si hiciéramos fluir un líquido desde cada mínimo local (o unos puntos estratégicamente seleccionados y denominados marcadores o semillas) hasta anegar toda la superficie y marcáramos en cada punto del terreno de dónde proviene el líquido que lo anegó, obtendríamos una teselación de la imagen en la que las fronteras coinciden con zonas de alto gradiente. Figura 2–14 Watershed: Extracción del perfil y selección de marcadores o semillas Figura 2–15 Watershed: Proceso de inundación desde los marcadores 22 Segmentación Figura 2–16 Watershed: segmentación finalizada Uno de los puntos clave para la segmentación watershed es la elección de los marcadores. Si se toma cada mínimo local, esto suele llevar a una sobresegmentación. Es frecuente, para reducir el problema, efectuar un suavizado de la imagen original antes de la extracción del perfil. También se utilizan métodos para selección de los marcadores más relevantes. Aprovechando el método visto de segmentación por umbrales, se puede obtener un conjunto de marcadores en los que se imponga un nivel máximo de gradiente. Figura 2–17 Selección de marcadores utilizando ThresholdSeg WatershedTessellation Watersheds (C_Matrix & matrixIn, const ElementT endLevel, const int neighbourhood = 8); Realiza la inmersión del perfil a partir de un conjunto de marcadores o semillas extraído previamente. Marca cada píxel de la imagen con el índice del marcador desde el que fue inundado. Parámetros de entrada this Matriz para la que se ejecuta el método. Es necesario que contenga los marcadores que darán origen a la inmersión. Cada uno de ellos está formado por uno o varios píxeles denotados con un número natural, diferente para cada marcador. 23 Visión Artificial con IMtdi matrixIn Matriz con el perfil o gradiente de la imagen que se desea segmentar. Ha de ser del mismo tamaño que la matriz actual. neighbourhood Tipo de vecindad: 4 u 8. Ejemplo C_Image imagen; C_Image gradiente; C_Image segmentacion; long int numRegiones; imagen.ReadBMP("Alumina.bmp"); gradiente.Gradient(imagen); numRegiones = segmentacion.ThresholdSeg(gradiente, 30, gradiente.Max()); printf ("numRegiones= %ld\n", numRegiones); segmentacion.WatershedTessellation(gradiente, gradiente.Max()); segmentacion.palette.Read ("PaletaSurtida256.txt"); segmentacion.WriteBMP("Alumina_Watershed.bmp"); Figura 2–18 Imagen original y segmentación realizada a con el método Watershed 2.4 FUENTES DE INFORMACIÓN • http://cmm.ensmp.fr/~beucher/wtshed.html En esta página el creador de la técnica de segmentación Watershed hace una buena descripción del operador y sus aplicaciones. 24 3 Representación y descripción J.A. PIEDRA 3.1 INTRODUCCIÓN Después de la segmentación, la siguiente etapa en el procesamiento de una imagen consiste en establecer el tipo de representación a seguir y el conjunto de parámetros dentro de la representación escogida que van a describir una región en una imagen. La representación de una región en una imagen comprende [5, 6, 13] dos tipos de procedimientos: • Representación mediante las características externas (contorno). • Representación mediante las características internas (los píxeles que comprenden la región). La elección de nuestro esquema de representación se ha centrado más en las características internas, aunque como se comentará después se ha realizado algunos descriptores externos como son los definidos como topológicos. El seleccionar un esquema u otro de representación vendrá determinado por el área de aplicación, así como, el tipo de problema que se desea resolver. Una vez establecido el tipo de representación, que para nuestro caso no se ha optado por una, sino que se desarrollan descriptores de ambas, consiste en describir la región en cuestión a partir de la representación elegida. Un ejemplo sería representar una región describiendo sus características, tales como su longitud, área, o a través de momentos invariantes frente a transformaciones afines, etc. Se suele elegir una representación externa cuando el objetivo principal se centra en las características de forma y una representación interna cuando la importancia recae en las propiedades de reflectividad, tales como el color y textura. Los objetivos principales [3] que ha de cumplir cualquier descriptor deben ser los siguientes: 25 Visión Artificial con IMtdi • Mantenerse invariante frente a traslaciones del objeto. • Mantenerse invariante frente a rotaciones del objeto. • Mantenerse invariante frente a cambios de escala del objeto. • Mantenerse invariante frente a cambios de contraste del objeto. Estos rasgos descritos serían las características perfectas que debería poseer un descriptor ideal. Desafortunadamente, en la realidad no es así. Existen muchos descriptores que poseen algunos de estos rasgos, pero ninguno de ellos se puede considerar efectivo al cien por cien. Esto se debe a la diversidad de áreas donde es necesario aplicarlos ya que a priori no se puede determinar qué o cuáles de los descriptores van a ser los adecuados para un problema determinado. Casi todo el desarrollo se centra en los descriptores de región ya que a priori son los menos estudiados en la gran mayoría de los libros de tratamiento digital de imágenes. Estos centran su estudio en los descriptores de contorno que aquí simplemente se han referenciado muy superficialmente. Por consiguiente, creo que merece la pena analizarlos. A continuación, se va a referenciar un conjunto de imágenes que servirán como ejemplo a lo largo de todo el capítulo para determinar posibles valores de cada uno de los diferentes descriptores analizados. Después se prosigue con una descripción más o menos detallada de cada uno de ellos. 3.1.1 Descripción del ejemplo En este apartado se describe un pequeño ejemplo para verificar de manera visual cada una de las características a describir. Se van a especificar una serie de imágenes donde aparece el nombre de la imagen, el cual explicará su significado y servirá como identificador de esta. Para la imagen en cuestión se ha tomado un dibujo simple para una matriz de tamaño 15 x 15. De esta manera la comprobación de los resultados será más fácil. A continuación se muestran las distintas imágenes originales y segmentadas para cada una de las realizadas. 26 Representación y descripción Figura 3–1 Imagen original 'Prueba4.bmp' y segmentadada (Archivo inicial de la prueba) Figura 3–2 Imagen original ‘Prueba4B21%C21%.bmp’ y segmentada (Archivo modificado del original con un brillo del 21% y un contraste del 21 %) Figura 3–3 Imagen original ‘PruebaR90.bmp’ y segmentada (Archivo original rotado un ángulo de 90º) 27 Visión Artificial con IMtdi Figura 3–4 Imagen original ‘Prueba4R90B15%C32%.bmp’ y segmentada (Archivo original rotado un ángulo de 90º y con un brillo del 15% y un contraste del 32%) Figura 3–5 Imagen original ‘Prueba4R90E(+1,+1).bmp’ y segmentada (Archivo original rotado un ángulo de 90º y escalado en 1 para ambas direcciones) Figura 3–6 Imagen original ‘Prueba4T(2,3).bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas) 28 Representación y descripción Figura 3–7 Imagen original ‘Prueba4T(2,3)B35%C18%.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, con un brillo del 35% y un contraste del 18%) Figura 3–8 Imagen original ‘Prueba4T(2,3)E(2,2).bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, escalado 2 en ambas direcciones) Figura 3–9 Imagen original ‘Prueba4T(2,3)R145.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 145º) 29 Visión Artificial con IMtdi Figura 3–10 Imagen original ‘Prueba4T(2,3)R180.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 180º) Figura 3–11 Imagen original ‘Prueba4T(2,3)R220.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 220º) Figura 3–12 Imagen original ‘Prueba4T(2,3)R270.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 270º) 30 Representación y descripción Figura 3–13 Imagen original ‘Prueba4T(2,3)R315.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 315º) Figura 3–14 Imagen original ‘Prueba4T(2,3)R45.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 45º) Figura 3–15 Imagen original ‘Prueba4T(2,3)R90.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 90º) 31 Visión Artificial con IMtdi Figura 3–16 Imagen original ‘Prueba4T(2,3)R90E(+2,+3).bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 90º y escalado en 2 filas y 3 columnas) Figura 3–17 Imagen original ‘Prueba4T(2,3)R90E(M2,M2).bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 90º y escalado el doble en ambas direcciones) Figura 3–18 Imagen original ‘Prueba4T(2,3)R90E(M2,M2)B12%C15%.bmp’ y segmentada (Archivo original trasladado 2 filas y 3 columnas, rotado un ángulo de 90º y escalado el doble en ambas direcciones, con un brillo del 12% y un contraste del 15%) 3.2 DESCRIPTORES SIMPLES Los descriptores [6, 7, 10, 13] denotados por simples se consideran a aquellos cuya complejidad de cálculo no dista más de una o dos operaciones aritméticas simples (es decir, suma, resta, multiplicación y división). La sencillez de estos descriptores implica también que su relevancia respecto a los cuatro objetivos básicos considerados con anterioridad (traslación, 32 Representación y descripción rotación, cambio de escala y variación del contraste) es baja, es decir, se alejan de estos objetivos siendo considerados aisladamente como descriptores poco eficientes. En cambio, con la combinación de todos o varios de ellos permiten obtener un descriptor más compacto y robusto, en cuanto a acercamiento a estos objetivos muy superior. 3.2.1 Primer Punto El primer punto de una región es por definición el primer punto que se encuentra al hacer un barrido secuencial por la imagen de izquierda a derecha (en horizontal) y de arriba abajo (en vertical). Por si sólo este valor no tiene ningún sentido. Puede ser útil en algunas aplicaciones donde se obtengan imágenes sobre una misma zona y se quieran apreciar de manera rápida y poco eficiente si se han producido desplazamientos de algunas regiones. Dominio del valor Punto(fila, columna) • Fila ≥ 0. • Columna ≥ 0. 3.2.2 Área El área de una región se define como el número de píxeles contenido en su contorno, es decir, el número de píxeles que forma o constituye una región. Teóricamente se considera el área para el caso continuo como: A( x) = ∫ dxdy R2 Ecuación 3–1 Área en el rango continuo Para el caso discreto, o real, el área es la aproximación por el número de píxeles in x. A( x) = ∑ g ( xi , y j ) i, j Ecuación 3–2 Área en el rango discreto g ( xi , y j ) = 1 Si el píxel coincide con el objeto En otro caso g ( xi , y j ) = 0 Este descriptor suele ser útil para analizar regiones donde no se aplican modificaciones de tamaño a los objetos. De esta manera puede hacerlos invariantes frente a traslación, rotación (es susceptible de error al digitalizar), en cambio es independiente del cambio de contraste ya que el 33 Visión Artificial con IMtdi área por definición no depende del color de cada píxel que represente sino del número de los mismos. Dominio del valor • 3.2.3 Área ≥ 1. (Nunca va a ser cero ya que en ese caso la región no existiría). Perímetro El perímetro de una región es la longitud de su contorno, es decir, designa la longitud del limite del objeto. [10] En el caso continuo, permite x(t) e y(t) sean una representación paramétrica del límite de la curva δX , su perímetro se obtiene de la siguiente manera: L( X ) = ∫ δ x , 2 + y , 2 dt X Ecuación 3–3 Perímetro en el rango continuo Esta fórmula obviamente no es equivalente al caso discreto, es demasiado inútil para nuestros propósitos. Para el caso discreto, el perímetro puede ser estimado simplemente como un numero de puntos orientados en función del límite del objeto, es decir, puntos con al menos un cero en su vecindad. x x x x 1 0 x x x x x 0 x 1 x x x x x 0 x x 1 x x x x 0 x x x 1 x x x x x x x 0 1 x x x x x x x x 1 x 0 x x x x x x 1 x x 0 x x x x x 1 x x x 0 Tabla 3–1 Estructura Cuadrada 34 Representación y descripción x 0 x 0 x x 1 x x x x x x x 1 0 x x 1 x x 0 1 x x x x x x x 0 x 1 x x x x x 1 x x 0 Tabla 3–2 Estructura Hexagonal donde x significa 0 ó 1. Este algoritmo es una mala aproximación ya que tiene algunos inconvenientes. Por ejemplo, permitir que el objeto siguiente sea definido sobre tablas hexagonales. 1 1 1 1 1 1 1 y su perímetro es 1 1 1 1 1 1 El valor del perímetro es igual a 6. No obstante, los lados horizontales tienen longitud 1, mientras que los lados diagonales tienen longitud 2 . Esta característica es sensible al ruido y es propenso a los errores digitales. Algunos algoritmos han sido propuestos para obviar los inconvenientes descritos. Podemos ver una fórmula basada en el número de intercepciones. Otra aplicación puede asignar el límite a un objeto poligonal, para el cual el perímetro es obviamente definido como una aproximación a la longitud del polígono. Esta técnica implica el suavizado del contorno de algunos objetos, así como la aproximación poligonal puede ser afinada mediante filtros o variaciones locales del límite. La ambigüedad fundamental del perímetro es que cuando opera sobre el mismo contorno, varia con el factor de muestreo usado para caracterizar el objeto. Una aproximación poligonal simplifica la asignación de este factor a un valor físico consistente. La fórmula de Cauchy muestra que: π L( X ) = ∫ D2 ( X ,α )dα 0 Ecuación 3–4 Fórmula del perímetro por Cauchy El perímetro es entonces aproximado cuando se sustituye la integral del caso continuo a la sumatoria del caso discreto. 35 Visión Artificial con IMtdi En el caso de las tablas hexagonales, la sumatoria es realizada para tres direcciones fundamentales. L( X ) = π 3 × a 3 × ( N 0 + N 60 + N 120 ) 2 Ecuación 3–5 Fórmula del perímetro para estructuras hexgonales donde a es la distancia entre dos puntos sobre la tabla y a 3 es la distancia entre dos líneas. 2 En el caso de las tablas cuadradas, los términos de la diagonal deben ser corregidos N 45 y N 135 deben ser corregidos: L( X ) = π a × a × ( N 0 + N 90 ) + × ( N 45 + N 135 ) 4 2 Ecuación 3–6 Fórmula del perímetro para estructuras cuadradas donde a representa la distancia entro dos puntos sobre la tabla y la distancia entre dos líneas con dirección 0º ó 90º, y a es la distancia entre dos líneas en la dirección 45º y135º. 2 Finalmente, esta fórmula puede ser corregida por un píxeles no cuadrado. En esta situación, las diagonales no encajan en las direcciones 45º y 135º. Permite M i tomar la vecindad 4 en la ventana analizada, al ser la distancia entre las líneas horizontales, b ser la distancia entre las líneas verticales y c la distancia entre las líneas diagonales. a b α = arctan π α c= ab a2 + b2 α M4 M3 Figura 3–19 Figura de análisis del perímetro El perímetro puede definirse de acuerdo a la fórmula de Crofton basada en el número de intercepciones (son el número de puntos que se encuentran en el límite y en la misma dirección a una línea dada). La formula de Crofton es la siguiente: 36 Representación y descripción π π L( X ) = α × a × N 0 + − α × b × N 90 × × c × ( N α + N π −α ) 4 2 Ecuación 3–7 Fórmula de Crofton Esto significa una mejora estableciendo sencillez por la limitación en los píxeles. El perímetro al igual que el área no es invariante como se puede observar a los cambios de escala, aunque si es invariante a los cambios de contraste, a las traslaciones y rotaciones de regiones, a excepción de los errores introducidos por la rotación de una región digital. Dominio del valor • 3.2.4 Perímetro ≥ 1. (Nunca va a ser cero ya que en ese caso la región no existiría). Densidad Aunque, el área y el perímetro se utilizan algunas veces como descriptores, su aplicación principal es en situaciones en las que el tamaño de los objetos de interés es invariable. Un empleo más frecuente de estos dos descriptores es en la medida de la densidad ó compacidad de una región, que se define de la siguiente manera: D( X ) = L( X ) 2 A( X ) Ecuación 3–8 Fórmula de la densidad La densidad es una cantidad adimensional, es decir, no tiene dimensión (y por tanto insensible a los cambios de escala) y es mínima para una región en forma de disco. Su valor será menor en tanto la región se aproxime más a una forma circular, dado que el círculo es la forma geométrica plana con densidad mínima. También es insensible a cambios de contraste, de traslación y a la orientación, con la excepción de los errores introducidos por la rotación de una región digital. Dominio del valor • Densidad > 0. (El perímetro nunca va a ser 0 y el área tampoco, ya que de ser así no existiría la región a analizar) 3.2.5 Volumen El volumen es definido en el caso continuo como: 37 Visión Artificial con IMtdi V (X ) = ∫ I ( x, y )dxdy R2 Ecuación 3–9 Fórmula del volumen para el caso continuo Para el caso discreto, el volumen es aproximado mediante la suma de las intensidades de los píxeles en X: V ( x) = ∑ I ( xi , y j ) i, j Ecuación 3–10 Fórmula del volumen para el caso discreto donde I ( xi , y j ) es la intensidad del píxel (nivel de gris). Esta característica mide la suma global de todos los niveles de gris para una imagen digital basada en niveles de gris. En cambio, si la imagen está binarizada el valor obtenido será igual al área. El volumen no es invariante como se puede observar a los cambios de escala, ni de contraste, aunque si es invariante a las traslaciones y rotaciones de regiones, a excepción de los errores introducidos por la rotación de una región digital. Dominio del valor • Volumen ≥ 0. (Puede ser cero en el caso de que todos los valores de la región valgan cero). 3.2.6 Volumen2 El volumen2 se define como la suma de los cuadrados de las intensidades de los niveles de gris, para el caso de una imagen en escala de grises. Su ecuación para el caso discreto viene representada por: V 2( x) = ∑ I ( xi , y j ) 2 i, j Ecuación 3–11 Fórmula del volumen al cuadrado para el caso discreto donde I ( xi , y j ) es la intensidad del píxel (nivel de gris), así como, i, j están definidos para i=0,...,m y j=0,...,n. Al igual que el descriptor este se considera una variación del mismo y conserva todas las características descritas para el anterior. 38 Representación y descripción Dominio del valor • Volumen2 ≥ 0. (Puede ser cero en el caso de que todos los valores de la región valgan cero). 3.2.7 Diámetro equivalente El diámetro equivalente trata de aproximar una región al área de un círculo. DE ( X ) = (4 × A( X )) π Ecuación 3–12 Fórmula del diámetro equivalente donde A(X) es el área de la región. Esto permite comparar distintas regiones de manera que sean fácilmente diferenciables, siempre y cuando no se realicen cambios de escala. Al igual que para los descriptores anteriores se mantiene invariante frente a cambios de contraste, traslaciones y rotaciones. Dominio del valor • 3.2.8 Diámetro Equivalente > 0. (El área nunca va a ser 0 por lo que no puede valer cero) Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) Primer Punto (3,5) (3,5) (2,5) (2,5) (3,5) (6,7) Área 16 16 16 16 18 16 Perímetro 11 11 11 11 13 11 Densidad 75.625 75.625 75.625 75.625 93.889 75.625 Volumen 1228 2056 1228 58 1375 1228 Volumen2 95834 2666600000 95834 434 1068200000 95834 Diámetro Equivalente 45135 45135 45135 45135 47873 45135 39 Visión Artificial con IMtdi Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 Primer Punto (6,7) (6,6) (5,7) (6,8) (5,9) (5,8) Área 16 29 30 16 25 16 Perímetro 11 19 17 11 13 11 Densidad 75.625 12.448 96.333 75.625 6.76 75.625 Volumen 2754 2257 4572 1228 3553 1228 95834 5992600000 95834 45135 56419 45135 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) 2 Volumen 4763700000 Diámetro Equivalente 45135 Características 1780300000 8174700000 60765 61804 T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 E(M2,M2) B12C15 Primer Punto (4,7) (5,9) (5,7) (4,7) (2,6) (2,6) Área 27 30 16 34 64 64 Perímetro 15 17 11 22 38 38 Densidad 83.333 96.333 75.625 14.235 22.562 22.562 Volumen 3504 4555 1228 2670 4912 6488 Volumen2 Diámetro Equivalente 5320800000 813900000 58632 61804 95834 45135 2122500000 3833400000 6663800000 65795 9027 9027 3.3 DESCRIPTORES BASADOS EN LOS NIVELES DE GRIS Los descriptores [6, 7, 10, 13]basados en los niveles de gris se usan cuando los cambios de contraste se mantienen invariantes. Permiten normalizar regiones frente a traslación, rotaciones y cambios de escala. Se usan básicamente para imágenes con escala de colores en niveles de gris y que para una imagen binaria no tendría ningún sentido. 3.3.1 Nivel mínimo de gris El mínimo de los niveles de gris de una región se considera como el nivel de gris más bajo de todos los valores representados en el histograma que conforman una región. Se denota por : Min {I(n, m)} donde n, m pueden tomar los valores n= 0,...,p y m=0,...,q referido al dominio de los números Naturales. 40 Representación y descripción Dominio del valor 255 ≥ Mínimo ≥ 0. 3.3.2 Nivel máximo de gris El máximo de los niveles de gris de una región se considera en contraposición a lo comentado anteriormente como el nivel de gris más alto de todos los valores representados en el histograma que conforman una región. Se denota por: Max {I(n, m)} donde n, m pueden tomar los valores n= 0,...,p y m=0,...,q referido al dominio de los números Naturales. Dominio del valor • 3.3.3 255 ≥ Máximo ≥ 0. Nivel de gris medio El nivel de gris medio de una región se considera como el nivel de gris que se encuentra en la mitad de todos los valores representados en el histograma que conforman una región. Se define como: µ( X ) = 1 ∑ I ( xi , y j ) A( X ) i , j Ecuación 3–13 Fórmula para el nivel de gris medio donde i, j pueden tomar los valores i= 0,...,p y j=0,...,q referido al dominio de los números Naturales. Permite dar un valor aproximado de la intensidad de los tonos de gris dentro de dicha región. 41 Visión Artificial con IMtdi Dominio del valor 255 ≥ Media ≥ 0. • 3.3.4 Desviación típica La desviación típica o desviación estándar sobre los niveles de gris da una medida de la dispersión de los mismos, es decir, determina el radio de amplitud en el que se mueven los niveles de gris de una región respecto de la media. Se define por la siguiente fórmula: ∑ (I ( x , y i σ 2(X ) = + j ) − µ ( X )) 2 i, j A( X ) Ecuación 3–14 Fórmula para la desviación típica de los nivele de gris Dominio del valor Desviación Típica > 0. • 3.3.5 Baricentro de los niveles de gris El baricentro de los niveles de gris determina donde se encuentra el punto medio para los niveles de gris de una región determinada. La ecuación que lo determina es: ∑ (I ( x , y i Baricentro( X ) = j i, j A( X ) ) × xi ) ∑ (I (x , y i Baricentro(Y ) = j )× yj ) i, j A( X ) Ecuación 3–15 Fórmula de baricentro para las coordenadas x e y donde se obtienen las coordenadas pertinentes a cada uno de los pesos de intensidad tanto en x como en y. Este punto suele ser de utilidad para determinar cuando los valores expresados han sufrido traslaciones, rotaciones y cambios de escala, siempre que se mantenga invariante el cambio de contraste. Dominio del valor • Baricentro (X) ≥ 0. Baricentro (Y) ≥ 0. 42 Representación y descripción 3.3.6 Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) Mínimo Gris 53 99 53 0 53 53 Máximo Gris 85 139 85 8 85 85 Media Gris 76.75 128.5 76.75 3.625 76.389 76.75 Desviación Típica 9.953 12.405 9.953 37.396 99.562 9.953 Baricentro Gris X 379 636.5 351.38 18.938 388.39 609.25 Baricentro Gris Y 416.12 701.31 455.75 19.25 396.89 569.62 Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 Mínimo Gris 145 53 66 53 67 53 Máximo Gris 182 85 246 85 246 85 Media Gris 172.12 77.828 152.4 76.75 142.12 76.75 Desviación Típica 12.093 90.518 63.429 9.953 61.419 9.953 Baricentro Gris X 1371.3 665.17 1235.5 618.75 1080.8 569.62 Baricentro Gris Y 1288.5 509.45 1299.7 581.62 1166 618.75 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) T(2,3)R90 E(M2,M2) B12C15 Mínimo Gris 69 69 53 53 53 74 Máximo Gris 237 237 85 85 85 111 Media Gris 129.78 151.83 76.75 78.529 76.75 101.38 Desviación Típica 53.519 63.848 9.953 86.983 9.953 11.629 Baricentro Gris X 913.59 1261 581.62 638.65 587.62 772.81 Baricentro Gris Y 975.59 1164 609.25 645.15 642.88 850.44 3.4 DESCRIPTORES BASADOS EN EL RECTÁNGULO CIRCUNSCRITO El rectángulo circunscrito [7, 13] es aquel que como su propio nombre indica rodea a la región que contiene. Es útil ya que al igual que hemos comentado con anterioridad para el perímetro permite realizar aproximaciones poligonales que reducen cálculos y dan una medida estimativa óptima de la región sobre la que efectúan los cálculos. 43 Visión Artificial con IMtdi Gráficamente se puede ver como dada un figura es circunscrita por un rectángulo de la siguiente manera. Primer Punto Altura Anchura Figura 3–20 Rectángulo circunscrito a un arco Esta características es independiente de la intensidad de la imagen, por lo que no le afectan los cambios de contraste. 3.4.1 Primer Punto Se ha comentado en apartados anteriores el primer punto de una región, ahora se establecerá el primer punto pero para el rectángulo circunscrito. Se define como el primer punto que se encuentra al hacer un barrido secuencial por la imagen de izquierda a derecha (en horizontal) y de arriba abajo (en vertical) del rectángulo que rodea a una región dada. Por si sólo este valor no tiene ningún sentido. Puede ser útil en algunas aplicaciones donde se obtengan imágenes sobre una misma zona y se quieran apreciar de manera rápida y poco eficiente si se han producido desplazamientos de algunas regiones. Dominio del valor Punto(fila, columna) • Fila ≥ 0. • Columna ≥ 0. 3.4.2 Altura La altura del rectángulo circunscrito de una región en una imagen, se define como el número de píxeles del contorno de uno de los lados paralelo al eje y de la imagen, es decir, la altura del rectángulo en número de píxeles. 44 Representación y descripción Dominio del valor • 3.4.3 Altura > 0. Anchura La anchura o base del rectángulo circunscrito de una región en una imagen, se define como el número de píxeles del contorno de uno de los lados paralelo al eje x de la imagen, es decir, la base del rectángulo en número de píxeles. Dominio del valor • 3.4.4 Achura > 0. Área El área del rectángulo circunscrito para una región se defina como el número de píxeles encerrado en su contorno, es decir, el número de píxeles que forma o constituye el rectángulo. Se puede definir de la siguiente manera: Área del Rectángulo = Base × Altura Este descriptor al igual que el comentado para una región con anterioridad suele ser útil para analizar regiones donde no se aplican modificaciones de tamaño a los objetos. De esta manera puede hacerlos invariantes frente a traslación, rotación y escalado. Dominio del valor. • 3.4.5 Área > 0. Extendido Este descriptor permite dar una proporción del número de píxeles encerrados en el rectángulo circunscrito en función del área de la región. Para ello se determina mediante la siguiente ecuación: E( X ) = A( X ) Area _ Re ctángulo _ Circunscrito Ecuación 3–16 Fórmula del extendido 45 Visión Artificial con IMtdi La proporción establecida hace invariante frente a traslaciones, rotaciones y cambios de escala ya que la proporción se mantiene, a excepción de los errores introducidos por la rotación digital de la región en cuestión. Dominio del valor. • Extendido > 0. 3.4.6 Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) Primer Punto Rect. (3,3) (3,3) (2,4) (2,4) (3,2) (6,5) Altura 5 5 6 6 6 5 Anchura 6 6 5 5 7 6 Área 30 30 30 30 42 30 Extendido 0.53333 0.53333 0.53333 0.53333 0.42857 0.53333 Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 Primer Punto Rect. (6,5) (6,3) (5,5) (6,5) (5,5) (5,6) Altura 5 7 7 5 6 6 Anchura 6 8 7 6 7 5 Área 30 56 49 30 42 30 Extendido 0.53333 0.51786 0.61224 0.53333 0.59524 0.59524 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 (5,6) (4,5) (2,4) (2,4) 7 6 9 12 12 6 7 5 7 10 10 Área 42 49 30 63 120 120 Extendido 0.64286 0.61224 0.53333 0.53968 0.53333 0.53333 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 Primer Punto Rect. (4,5) (5,5) Altura 7 Anchura 3.5 PUNTOS EXTREMOS Los puntos extremos [7] de una región son aquellos que la delimitan externamente de manera aproximada al perímetro y para ello se contará con tan solo ocho puntos. El tomar estos puntos como descriptores no dice mucho, pero para cálculos como el número de Euler puede 46 Representación y descripción aproximar una solución en un tiempo muy inferior analizar todo el perímetro de una región ya que si la región es muy grande el tiempo de computo se dispara exponencialmente. No obstante el objeto se puede describir a pesar de que sufra traslación, rotación o cambio de escala ya que se puede jugar con las distancias que se establecen entre ellos para hacerlo invariante así como las proporciones en que se ha incrementado el objeto en el caso de sufrir un cambio de escala, a excepción de los errores añadidos por la rotación digital de una región. Se puede ver que son independientes de los cambios de contraste que sufra el objeto ya que no interviene la intensidad de los puntos, aunque podría ser un aspecto a tratar en el caso de que la aplicación en cuestión lo requiriese. A continuación se muestran unas figuras donde se representan los puntos que serán definidos a posteriori. Superior-Izquierda Superior-Derecha Izquierda-Superior Derecha-Superior Izquierda-Inferior Derecha-Inferior Inferior-Izquierda Inferior-Derecha Figura 3–21 Puntos Extremos 47 Visión Artificial con IMtdi Superior-Derecha Superior-Izquierda Izquierda-Superior Derecha-Superior Izquierda-Inferior Derecha-Inferior Inferior-Izquierda Inferior-Derecha Figura 3–22 Puntos Extremos En las definiciones expresadas a continuación cabe decir que el orden en el que se especifican las búsquedas de los puntos es secuencial e inamovible. Ejemplo sobre la Figura 3– 22, el punto izquierda-inferior (más a la izquierda y más abajo) no es igual al punto inferiorizquierda (más abajo y más a la izquierda), aunque en otra figura podrían coincidir. Dominio del valor Punto(fila, columna) • Fila ≥ 0. • Columna ≥ 0. Superior-Izquierda El punto que se encuentra en la parte de la imagen más arriba y más a la izquierda es el punto denotado por superior-izquierda. Superior-Derecha El punto superior-derecha es le que se encuentra en la parte más arriba y más a la derecha de la región en cuestión. Inferior-Izquierda El punto inferior-izquierda es el punto que se encuentra en la parte más baja y más a la izquierda de la región. 48 Representación y descripción Inferior-Derecha El punto inferior-derecha es el punto que se encuentra en la parte más baja y más a la derecha de la región. Izquierda-Superior El punto izquierda-superior es el punto que se encuentra en la parte más a la izquierda y más arriba de la región. Izquierda-Inferior El punto izquierda-inferior es el punto que se encuentra en la parte más a la izquierda y más baja de la región. Derecha-Superior El punto derecha-superior es el punto que se encuentra en la parte más a la derecha y más arriba de la región. Derecha-Inferior El punto derecha-inferior es el punto que se encuentra en la parte más a la derecha y más baja de la región. 3.5.1 Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) Superior Izquierda (3,5) (3,5) (2,5) (2,5) (3,5) (6,7) Superior Derecha (3,5) (3,5) (2,7) (2,7) (3,5) (6,7) Inferior Izquierda (7,5) (7,5) (7,6) (7,6) (8,5) (10,7) Inferior Derecha (7,5) (7,5) (7,6) (7,6) (8,5) (10,7) Izquierda Superior (5,3) (5,3) (5,4) (5,4) (5,2) (8,5) Izquierda Inferior (5,3) (5,3) (5,4) (5,4) (5,2) (8,5) Derecha Superior (4,8) (4,8) (5,8) (5,8) (4,8) (7,10) Derecha Inferior (6,8) (6,8) (5,8) (5,8) (6,8) (9,10) 49 Visión Artificial con IMtdi Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 Superior Izquierda (6,7) (6,6) (5,7) (6,8) (5,9) (5,8) Superior Derecha (6,7) (6,6) (5,7) (6,8) (5,9) (5,8) Inferior Izquierda (10,7) (12,6) (11,8) (10,8) (10,7) (10,7) Inferior Derecha (10,7) (12,6) (11,9) (10,8) (10,8) (10,9) Izquierda Superior (8,5) (8,3) (8,5) (7,5) (8,5) (7,6) Izquierda Inferior (8,5) (9,3) (8,5) (9,5) (8,5) (7,6) Derecha Superior (7,10) (7,10) (7,11) (8,10) (7,11) (7,10) Derecha Inferior (9,10) (10,10) (10,11) (8,10) (8,11) (7,10) Características T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 Superior Izquierda (4,7) (5,9) (5,7) (4,7) (2,6) (2,6) Superior Derecha (4,7) (5,9) (5,7) (4,10) (2,11) (2,11) Inferior Izquierda (10,7) (11,6) (10,8) (12,8) (13,8) (13,8) Inferior Derecha (10,7) (11,9) (10,8) (12,9) (13,9) (13,9) Izquierda Superior (6,5) (7,5) (8,6) (8,5) (8,4) (8,4) Izquierda Inferior (8,5) (10,5) (8,6) (9,5) (9,4) (9,4) Derecha Superior (7,10) (7,11) (8,10) (8,11) (8,13) (8,13) Derecha Inferior (9,10) (7,11) (8,10) (9,11) (9,13) (9,13) 3.6 DESCRIPTORES BASADOS EN LA ELIPSOIDE CIRCUNSCRITA La elipse circunscrita [3, 15] determina la silueta que más se aproxima a una región u objeto que se está analizando. Esta elipse viene determinada para nuestro caso hasta momentos de segundo orden cuya representación se muestra a continuación. 50 Representación y descripción X 2' X 2'' X 1'' a φ X 1' b Figura 3–23 Elipsoide Circunscrita Los parámetros que se muestran en la figura serán comentados a continuación y permiten describirla de manera que la hace invariante frente a traslaciones y rotaciones. De hecho, si sólo se caracteriza a la imagen con momentos de hasta segundo orden, ésta es equivalente a una elipse homogénea (con igual nivel de gris para todos sus puntos), con un tamaño, orientación y excentricidad definidas y centrada (centroide o punto medio de la elipse). 3.6.1 Centroide El centroide o punto medio de la elipse en el que se cortan los dos ejes (eje mayor y eje menor), viene descrito por las siguientes ecuaciones basadas en los momentos de orden 1 y en el momento de orden 0. X = m10 m00 Y= m01 m00 Ecuación 3–17 Fórmula del centroide para las coordenadas x e y Dependiendo del cálculo de los momentos y teniendo en cuenta si se realiza o no mediante el uso de los niveles de gris repercutirá en el centroide de manera que sea en función de los píxeles que constituyen dicha región ó de los niveles de gris de la misma. 51 Visión Artificial con IMtdi Dominio del valor • X ≥ 0. • Y ≥ 0. 3.6.2 Eje Mayor El eje mayor es la longitud en píxeles del eje mayor del elipsoide de la región. Se calcula mediante los momentos de segundo orden y el momento de orden 0. a= mt 20 + mt 02 + (mt 20 − mt 02 )2 + 4 × mt112 mt 00 2 Ecuación 3–18 Fórmula del eje mayor Dominio del valor • 3.6.3 a ≥ 0. Eje Menor El eje menor es la longitud en píxeles del eje menor del elipsoide de la región. Se calcula mediante los momentos de segundo orden y el momento de orden 0. b= mt 20 + mt 02 − (mt 20 − mt 02 )2 + 4 × mt112 mt 00 2 Ecuación 3–19 Fórmula del eje menor Dominio del valor • 3.6.4 b ≥ 0. Orientación La orientación es el ángulo entre el eje de abcisas y el eje mayor de la elipsoide de la región. Su ecuación viene determinada de la siguiente manera: 1 2 2 × mt11 mt 20 − mt 02 φ = × tg −1 Ecuación 3–20 Fórmula para la orientación de la elipse 52 Representación y descripción Existe una ambigüedad en la determinación del ángulo φ a partir de la fórmula anterior, la cual puede evitarse de varias formas, entre otras: 1. Eligiendo φ de tal forma que esté sea el ángulo entre el eje X y el semieje mayor a. 2. Eligiendo el valor principal de la función tg –1, es decir: π −π ≤ tg −1 ( x) ≤ 2 2 Ecuación 3–21 Rango de valore de la inversa de la tangente Con estas convenciones, obtenemos para φ los valores de la tabla que se muestra a continuación. mt 20 − mt 02 mt11 φ Cero Cero 0º Cero Positivo 45º Cero Negativo -45º Positivo Cero 0º Negativo Cero 90º Positivo Positivo 1 −1 tg α 2 0º < φ < 45º Positivo Negativo 1 −1 tg α 2 - 45º < φ < 0º Negativo Positivo 1 −1 tg α + 90º 2 45º < φ < 90º Negativo Negativo 1 −1 tg α − 90º 2 -90º < φ < - 45º Rangos Esta tabla determina el ángulo de inclinación de la elipse en función de los distintos signos de los momentos de segundo orden. 3.6.5 Excentricidad La excentricidad mide como se adapta la elipse a la figura o región en cuestión, es decir, el grado de semejanza de la elipse respecto a dicha región. Se define mediante la siguiente ecuación: 53 Visión Artificial con IMtdi (mt 20 − mt 02 )2 + 4 × mt11 Excentricidad = mt 00 Ecuación 3–22 Fórmula de la excentricidad de la elipse La excentricidad se puede definir como el grado de la distancia entre el centro de la elipse y la longitud del eje mayor. El valor se encuentra entre 0 y 1. (0 y 1 hace referencia a casos aislados; una elipse cuya excentricidad es cero es un circulo, mientras que una elipse cuyo valor es 1 es un segmento de línea). Dominio del valor • 3.6.6 Excentricidad ≥ 0. Grado de Circunscripción (Irradiance) El grado de circunscripción de la elipsoide de una imagen mide si la elipse está fuera del objeto es 0, en cambio si se encuentra dentro de este, el valor se obtiene como se determina en la siguiente formula. Irradiance = mt 00 π ×a×b Ecuación 3–23 Fórmula del grado de circunscripción de la elipse Dominio del valor • 3.6.7 Grado de Circunscripción ≥ 0. Resultados Características Centroide Prueba4 P4B21C21 (49.38,54.21) (49.53,54.57) R90 R90B35C18 R90E(1,1) T(2,3) (45.78,59.38) (52.24,53.10) (50.84,51.95) (79.38,74.21) Eje Mayor 28.682 29.039 28.682 18.539 31.638 28.682 Eje Menor 19.748 19.831 19.748 13.042 22.665 19.748 Orientación -15.682 0.0059788 0.39633 -15.333 -15.648 -1.569 Excentricidad 1436.5 2601.7 1436.6 6.003 2028.5 1436.5 Irradiance 69.011 113.64 69.011 76.358 61.037 69.011 54 Representación y descripción Características T(2,3) T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 (80.61,75.78) (76.04,82.04) (74.21,80.61) B35C18 Centroide (7.96,74.85) (85.46,65.45) (81.06,85.28) Eje Mayor 29.313 39.215 38.291 28.682 35.687 28.682 Eje Menor 19.876 25.772 30.978 19.748 25.762 19.748 Orientación -15.372 0.80781 -15.648 -13.642 0.0059788 0.32484 Excentricidad 3708.8 10717 17.247 1436.5 6925.9 1436.6 Irradiance 150.46 71.086 122.69 69.011 123.01 69.011 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2) B12C15 Centroide (70.39,75.17) (83.05,76.66) (75.78,79.38) (81.32,82.15) (76.56,83.76) (76.23,8.38) Eje Mayor 32.511 41.986 28.682 42.683 58.229 58.596 Eje Menor 28.831 28.342 19.748 29.512 40.742 40.786 Orientación -0.81821 0.0059788 -0.029832 -0.029832 0.0059788 0.0042069 Excentricidad 708.22 107.94 1436.6 15035 91941 1.27E+09 Irradiance 118.99 121.85 69.011 67.47 65.906 86.414 3.7 DESCRIPTORES TOPOLÓGICOS Los descriptores topológicos [6, 10, 13] como su propio nombre indica hacen referencia las características externas del contorno de los objetos (o regiones) extraídos de una imagen. Estas características de un objeto van desde la curvatura de la región hasta el número de huecos internos pasando por la lista de regiones que le son adyacentes. Para ello se ha elegido un subconjunto de estos descriptores que se comentarán a continuación. 3.7.1 Lista de Vecinos La lista de vecinos se puede definir como el conjunto de regiones disjuntas adyacentes a una dada. La adyacencia va a estar determinada como se trato de introducir en el perímetro, por un parámetro denominado vecindad. Los tipos de vecindad que pueden existir son los siguientes: 55 Visión Artificial con IMtdi Figura 3–24 Cuatro vecidad Figura 3–25 Ocho vecindad De forma más ilustrativa y teniendo en cuenta que las imágenes son en realidad matrices para el caso discreto en la representación realizada mediante un ordenador. La representación que se toma a continuación puede ser más especifica para nuestro caso. z1 z2 z3 z1 z2 z3 z4 z4 z5 Z6 z7 z8 Tabla 3–3 Representación de 4-vecindad y 8-vecindad La lista de vecinos va a estar condicionada por la vecindad seleccionada para cada uno de los puntos que conforman el perímetro y que van a ser analizados. Para una región dada y a partir de su perímetro se obtiene una lista de las regiones adyacentes que existen. Un ejemplo para mostrar el funcionamiento puede realizarse en base a la siguiente figura. 56 Representación y descripción Figura 3–26 Imagen con regiones adyacentes La lista de adyacencias es la que se muestra a continuación. Región: 1 Adyacentes: 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9. Región: 2 Adyacentes: 1. Región: 3 Adyacentes: 1 -> 8. Región: 4 Adyacentes: 1 -> 5 -> 6. Región: 5 Adyacentes: 1 -> 4. Región: 6 Adyacentes: 1 -> 4. Región: 7 Adyacentes: 1. Región: 8 Adyacentes: 1 -> 3 -> 9. Región: 9 57 Visión Artificial con IMtdi Adyacentes: 1 -> 8. 3.7.2 Descripción del perímetro La lista del perímetro se obtiene de manera similar al cálculo del perímetro solo estriba en la diferencia que en realidad lo que almacenamos no es un valor incremental, sino una sucesión de valores definidos por (x,y) en donde x representa el índice de las filas de la matriz (imagen a la que hace referencia para el caso discreto definido por un computador) e y las columnas de dicha matriz. De esta forma es posible recorrer el perímetro de una región mediante una previa ordenación y determinar múltiples características que se expresan en los siguientes apartados de manera fácil y rápida simplemente recorriendo una lista que contiene los índices de las posiciones de los distintos puntos que conforman el perímetro, evitando así la búsqueda en la imagen de los distintos puntos, ahorra tiempo de computo. Un posible ejemplo de funcionalidad sería para el archivo ‘Prueba4.bmp’ donde la lista del perímetro sería la siguiente. Región 1: sucesión de puntos del perímetro. (3,5) (4,4) (6,4) (4,8) (5,3) (5,7) (5,8) (6,4) (6,6) (6,8) (7,5) 3.8 DESCRIPTORES GLOBALES. TEORÍA DE MOMENTOS Los momentos definidos a partir de integrales, darán información acerca de las características globales de las formas, es decir, el análisis se puede considerar estadístico y sintáctico a la vez. La teoría de los Momentos [3] se aplicó por primera vez al reconocimiento de formas bidimensionales por Hu (1962). Hu obtuvo un sistema completo de invariantes frente a traslaciones, rotaciones y homotecias, a partir de los momentos. 3.8.1 Definición de momentos. Función característica Una imagen bidimensional se puede representar a partir de una función de distribución f(x,y), mediante un par de ejes fijos. Para el caso de una imagen en blanco y negro la función de distribución o intensidad del píxel de una imagen coincidiría con los niveles de gris de la misma. De esta manera se define el “método de los momentos” como una representación de los momentos espaciales de la función de distribución de una imagen dada. El momento generalizado jk, de orden j+k, se define de la forma: 58 Representación y descripción ∞ ∞ ∫ ∫N m jk = jk ( x, y ) f ( x, y )dxdy − ∞− ∞ Ecuación 3–24 Fórmula de los momentos generalizados donde N jk ( x, y ) es una función general de x e y. El estudio se va a centrar sobre los momentos ordinarios, es decir: m jk = ∞ ∞ ∫ ∫x j y k f ( x, y )dxdy j, k= 0, 1, 2, ... − ∞− ∞ Ecuación 3–25 Fórmula de los momentos ordinarios Si f(x,y) es continua , acotada y puede tomar valores distintos de cero sólo en la parte finita del plano xy, entonces existen momentos de cualquier orden y se verifica el siguiente teorema: Teorema de Unicidad: (Papoulis 1.965) La secuencia de momentos { m jk } está unívocamente determinada por f(x,y) e, inversamente, f(x,y) está unívocamente determinada por { m jk }. Es decir, podemos sustituir una descripción basada en f(x,y) correspondiente a un conjunto infinito de intensidades, por una descripción equivalente { m jk }, un conjunto infinito de momentos, y viceversa. La conexión entre ambas descripciones puede realizarse a través de la función característica de f(x,y) , o mediante la función generadora de los momentos definidas de la siguiente forma. φ (u, v) = ∞ ∞ ∫ ∫ exp(iux + ivy) f ( x, y)dxdy − ∞− ∞ Ecuación 3–26 Función Característica M (u , v) = ∞ ∞ ∫ ∫ exp(ux + vy) f ( x, y )dxdy − ∞− ∞ Ecuación 3–27 Función generadora de momentos Donde u y v son números reales e i = − 1 . Ambas funciones son bastante usadas en Estadística Matemática. Si la función característica φ (u , v) , la cual es en esencia la +i Transformada de Fourier, es conocida, f(x,y) puede obtenerse de la forma que veremos a continuación. 59 Visión Artificial con IMtdi Si existen momentos de cualquier orden, φ (u , v) puede ser desarrollada en serie tras derivarla en el origen, ∞ ∞ ∂ j+k φ (0,0) = φ uvjk (0,0) = ∫ ∫ i j + k x j y k f ( x, y )dxdy j k ∂ u∂ v − ∞− ∞ con lo cual, φ (u , v) puede ser expresada como: i j+k j k u v m jk j = 0 k = 0 j! k! ∞ ∞ φ (u, v) = ∑∑ y f(x,y) puede calcularse a partir de la fórmula de inversión: f ( x, y ) = 3.8.2 1 (2π ) 2 ∞ ∞ ∫ ∫ exp(−iux − ivy )φ (u, v)dudv − ∞− ∞ Propiedades de los momentos de bajo orden Los momentos de orden cero m00 , representan el área total de la imagen. Los momentos de primer orden m10 y m01 , localizan el centro de gravedad de f(x,y), donde sus coordenadas son como se ha comentado en los descriptores basados en la elipsoide circunscrita. Su formula se especifica en el centroide de la elipsoide. Los momentos de segundo orden: m20 = ∞ ∞ ∫ ∫x 2 f ( x, y )dxdy − ∞− ∞ m11 = ∞ ∞ ∫ ∫ xyf ( x, y )dxdy − ∞− ∞ m02 = ∞ ∞ ∫ ∫y 2 f ( x, y )dxdy − ∞− ∞ Determinan el tamaño y la orientación de la imagen. De hecho, si sólo se caracteriza a la imagen con momentos de hasta segundo orden, ésta es equivalente a una elipse homogénea (con igual nivel de gris para todos sus puntos), con un tamaño, orientación y excentricidad definidas y centrada en ( X , Y ) . Los parámetros característicos de esta elipse respecto de los ejes localizados en ( X , Y ) son los determinados como semieje menor, mayor y el ángulo de inclinación de la misma, definidos en el apartado de descriptores basados en la elipse circunscrita. 60 Representación y descripción 3.8.3 Momentos de Inercia Los momentos de Inercia [10] nos permiten describir características globales de una región analizada dado que su propia definición engloba al área que se encuentra encerrada en la integral para el caso continuo. Dominio del valor • M 1 X , M 1Y , M 2 X , M 2Y , M 2 XY y EC ∈ ℜ . Momentos de Inercia de Orden 1 Los momentos de primer orden permiten definir el baricentro o centro de gravedad de una región para nuestro caso centrada en los niveles de gris. Se definen de la siguiente manera: M 1X = 1 xdxdy A( X ) ∫X y M 1Y = 1 ydxdy A( X ) ∫X Para el caso discreto las integrales se convierten a sumatorias dando lugar a las siguientes fórmulas: M 1X = 1 ∑ xi A( X ) X y M 1Y = 1 ∑ yj A( X ) X donde A(X) es el área y ( xi , y j ) es un punto del objeto en cuestión. Momentos de Inercia de Orden 2 Los momentos de segundo orden se definen para el caso continuo como: M 2X = 1 ( x − M 1 X ) 2 dxdy ∫ A( X ) X M 2Y = 1 ( y − M 1Y ) 2 dxdy ∫ A( X ) X M 2 XY = 1 ( x − M 1 X )( y − M 1Y ) A( X ) ∫X Los momentos de segundo orden son definidos en el caso discreto como: 61 Visión Artificial con IMtdi M 2X = 1 ( xi − M 1 X ) 2 ∑ A( X ) X M 2Y = 1 ( y j − M 1Y ) 2 ∑ A( X ) X M 2 XY = 1 ∑ ( xi − M 1 X )( y J − M 1Y ) A( X ) X La orientación es definida como la dirección de su eje mayor de inercia. Se obtiene como el vector de valor más largo de la matriz de inercia: M 2 x M 2 xy M = M 2 xy M 2 y Esta es una buena característica de orientación para objetos simples y muy convexos. El resultado obtenido se encuentra definido entre π −π ≤φ ≤ . 2 2 Excentricidad Las excentricidad se denota de la siguiente manera: EC ( X ) = (4π ) 2 ( I 1 − I 2 ) 2 (4π ) 2 ( M 2 X − M 2Y ) 2 + 4M 22XY = A2 ( X ) A2 ( X ) donde I 1 e I 2 son los valores de la matriz de inercia. Un disco o una cruz tiene una excentricidad I 1 = I 2 .La excentricidad incrementa con la diferencia entre los valores de la diagonales, y así caracteriza la elongación de los objetos. También indica in algunos casos la dirección principal, correspondiendo a un valor grande y otro pequeño, por ejemplo: ( I 1 − I 2 ) 2 tiene un valor alto, a través de dos direcciones ortogonales significa dos valores altos y la diferencia pequeña para ( I 1 − I 2 ) 2 . 62 Representación y descripción Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) M 1x 55.625 55.625 6 6 53.333 75.625 M 1y 5 5 44.375 44.375 51.667 8 M 2x 22.461 22.461 1 1 26.667 22.461 M 2y 1 1 22.461 22.461 13.611 1 M 2 xy 0 0 0 0 -0.055556 0 0.95781 0.95781 0.95781 0.95781 0.83078 0.95781 Excentricity Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 M 1x 75.625 66.897 8.4 74.375 8.2 8 M 1y 8 86.207 81.333 8 7.68 75.625 M 2x 22.461 40.761 27.733 22.461 2.56 1 M 2y 1 17.527 24.489 1 16.576 22.461 M 2 xy 0 -0.083234 0.61333 0 -0.416 0 0.95781 10.137 0.020142 0.95781 0.20686 0.95781 Excentricity 63 Visión Artificial con IMtdi Características T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) T(2,3)R90 E(M2,M2) B12C15 M 1x 75.556 76.333 8 82.941 8.5 8.5 M 1y 71.111 82.667 74.375 79.706 7.375 7.375 M 2x 20.988 28.322 1 22.076 4.25 4.25 M 2y 23.951 25.956 22.461 49.109 92.344 92.344 M 2 xy 0.2716 -0.90222 0 -0.109 0 0 0.019422 0.013445 0.95781 0.99831 0.95781 0.95781 Excentricity 3.8.4 Momentos invariantes de Hu Como se ha comentado anteriormente [2, 3, 4, 12, 17], para una función continua bidimensional f(x,y), el momento de orden (j+k) está definido por m jk = ∞ ∞ ∫ ∫x j y k f ( x, y )dxdy j, k= 0, 1, 2, ... − ∞− ∞ Ecuación 3–28 Momentos ordinarios El teorema de la unicidad definido anteriormente establece que si f(x,y) es aproximadamente continua y posee valores distintos de cero en una parte finita del plano xy, existen momentos de cualquier orden y la secuencia de momentos ( m jk ) está determinada por f(x,y). Inversamente se puede definir los momentos de cualquier orden ( m jk ) que están determinados por f(x,y). Todo esto nos permite deducir que es posible definir una imagen por un conjunto extenso de sus momentos. En cambio y como se mostrará, no solo con los momentos de HU sino con el resto de momentos definidos por distintos autores, se puede caracterizar a una imagen a través de un conjunto reducido de momentos normalizados frente a distintos tipos de transformaciones. Los momentos centrales se pueden definir mediante la siguiente expresión: µ jk = ∞ ∞ ∫ ∫ (x − X ) j ( y − Y ) k f ( x, y )dxdy − ∞− ∞ Ecuación 3–29 Momentos centrales para el caso continuo 64 Representación y descripción donde X = m10 m Y = 01 son las coordenadas del centro de gravedad de la imagen. m00 m00 Estos momentos son invariantes frente a traslaciones del objeto en el espacio, es decir, los momentos son los mismos siempre y cuando el objeto se haya traslado de lugar sin efectuar otra modificación distinta del desplazamiento de las coordenadas del mismo. Al convertir estos momentos definidos en el caso continuo al caso discreto, que es el caso de las imágenes digitales, los momentos centrales se convierten de una doble integración a una doble sumatoria: µ jk = ∑∑ ( x − X ) j ( y − Y ) k f ( x, y )dxdy x y Ecuación 3–30 Momentos centrales para el caso discreto A continuación se muestra un resumen que puede ayudar a la hora de calcular los momentos centrales en función de los momentos ordinarios. µ 00 = m00 µ10 = 0 µ 01 = 0 µ11 = m11 − ym10 µ 20 = m20 − xm10 2 µ12 = m12 − 2 ym11 − xm02 + 2 y m10 µ 30 = m30 − 3xm20 + 2m10 x 2 µ 02 = m02 − ym01 2 µ 21 = m21 − 2 xm11 − ym20 + 2 x m01 2 µ 03 = m03 − 3 ym02 + 2 y m01 Una vez obtenidos los momentos centralizados es necesario normalizarlos frente a homotecias, es decir, frente a transformaciones del siguiente tipo: x' α y ' = 0 0 x × α y La normalización más utilizada frente a las homotecias, es trabajar con nuevos momentos: µ jk η jk = µ j +k +2 2 00 j, k= 2, 3, ... Ecuación 3–31 Momentos centralizados y normalizados Estos momentos son ahora invariantes frente a traslaciones y a homotecias, es decir, a invariantes desplazamientos tanto en el eje x como en el eje y, así como invariantes a cambios de escala siempre y cuando se aplique la misma constante de escalado a la componente x e y de la 65 Visión Artificial con IMtdi imagen, en nuestro caso el factor α . A estos momentos se les suele denominarse momentos centrales normalizados. A continuación se trata de normalizar estos momentos obtenidos invariantes frente a traslaciones y homotecias para que puedan ser indiferentes frente a rotaciones. Para ello se define lo que se denomina “Método del los invariantes absolutos”. Este método fue definido por Hu en base a la teoría de los invariantes algebraicos, donde obtuvo un conjunto de funciones invariantes frente a traslaciones, homotecias y rotaciones. Estas funciones se centran en los momentos centrales normalizados, así para definir momentos de orden p, existen p+1 de éstos invariantes. De los momentos de segundo y tercer orden se pueden derivar un conjunto de siete invariantes. φ1 = η 20 + η 02 φ 2 = (η 20 − η 02 )2 + 4η112 φ 3 = (η 30 + 3η12 )2 + (3η 21 − η 03 )2 φ 4 = (η 30 + η12 )2 + (η 21 + η 03 )2 [ ] φ 5 = (η 30 − 3η12 )(η 30 + η12 ) (η 30 + η12 )2 − 3(η 21 + η 03 )2 + (3η 21 − η 03 )(η 21 + η 03 )[3(η30 + η12 )2 − (η 21 + η 03 )2 ] [ φ 6 = (η 20 − η 02 )(η 30 − η12 )2 − (η 21 − η 03 )2 + 4η 211 (η 30 + η12 )(η 21 + η 03 ) [ ] ] φ 7 = (3η 21 − η 30 )(η 00 + η12 ) (η 30 + η12 )2 − 3(η 21 + η 03 )2 + (3η12 − η 03 )(η 21 + η 03 )[3(η30 + η12 ) 2 − (η 21 + η 03 ) 2 ] Ecuación 3–32 Los invariantes de Hu El invariante 7 es en realidad un pseudoinvariante, ya que cambia de signo al someter la imagen a reflexiones, por lo que resulta útil para distinguir imágenes especulares(es decir, cuando la imagen es vista como si fuese a través de un espejo). 66 Representación y descripción Dominio del valor • φ1 , φ 2 , φ 3 , φ4 , φ 5 , φ 6 y φ 7 ∈ℜ. Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) φ1 0.0024687 0.0015036 0.0024687 0.022146 0.0027539 0.0024687 φ2 7.76E-03 2.99E-03 7.76E-03 5.60E-02 7.85E-03 7.76E-03 φ3 1.41E-05 3.10E-06 3.85E-06 4.22E-02 4.96E-07 1.41E-05 φ4 6.49E-06 1.31E-06 6.49E-06 2.10E-03 1.53e-10 6.49E-06 φ5 6.10E-15 2.61E-16 -1.52E-15 -3.92E-09 -2.10E-15 6.10E-15 φ6 5.67E-10 7.13E-10 5.67E-10 1.55E-05 -4.27E-10 5.67E-10 φ7 -1.72E-16 -4.23E-18 -4.12E-15 3.12E-10 -4.44E-16 -1.72E-16 Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 φ1 0.0011386 0.0024391 0.0013265 0.00224687 0.0013631 0.0024687 φ2 1.78E-03 9.36E-03 7.67E-04 7.76E-03 1.84E-03 7.76E-03 φ3 1.30E-07 8.42E-07 7.78E-07 1.41E-05 6.56E-08 3.85E-06 φ4 5.08E-07 6.53E-07 1.13E-08 6.49E-06 3.07E-08 6.49E-06 φ5 4.10E-17 -8.62E-17 5.96E-20 6.10E-15 1.31E-20 -1.52E-15 φ6 2.13E-10 1.83E-10 2.62E-11 5.67E-10 1.03E-11 5.67E-10 φ7 -3.82E-19 2.73E-17 -3.38E-18 -1.72E-16 2.04E-19 -4.12E-15 67 Visión Artificial con IMtdi Características 3.8.5 T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 φ1 0.0013472 0.0014084 0.0024687 0.0025213 0.0025705 0.001964 φ2 2.59E-04 2.77E-03 7.76E-03 7.93E-03 7.76E-03 4.65E-03 φ3 3.89E-07 1.24E-06 3.85E-06 1.17E-05 3.85E-06 1.59E-06 φ4 1.48E-07 1.23E-07 6.49E-06 3.36E-06 6.49E-06 2.76E-06 φ5 -9.21E-18 3.04E-18 -1.52E-15 -9.87E-16 -1.52E-15 -2.86E-15 φ6 2.39E-11 5.81E-11 5.67E-10 2.96E-09 5.67E-10 1.87E-09 φ7 -1.77E-18 4.04E-19 -4.12E-15 -2.83E-15 -4.12E-15 -7.54E-16 Momentos de Zernike Al conjunto de funciones que presentan la propiedad de un comportamiento simple frente a rotaciones y con la función de pesos unidad se les denomina como polinomios de Zernike [2, 3, 4, 8, 12, 14, 17]. Son usados frecuentemente en el tratamiento de aberraciones ópticas. Se trata de polinomios compuestos por dos variables reales x e y, Vnl ( x, y ) , cuya expresión en coordenadas polares es la siguiente: Vnl ( x, y ) = Vnl ( ρsenϑ , ρ cos ϑ ) = Rnl ( ρ )e ilϑ Ecuación 3–33 Polinomios de Zernike Estas funciones son completas dentro del círculo unidad y satisfacen la relación siguiente: ∫∫ dxdy[V l n ] ( x, y ) × Vmk ( x, y ) = π (n + 1)δ mn δ kl Ecuación 3–34 Igualdad polinomios de Zernike donde ahora la integración se realiza sobre el círculo unidad x 2 + y 2 ≤ 1 . Además, se considerará siempre solo imágenes que desaparecen fuera del círculo unidad, y será limpiadas desde el contexto si la región integrada está fuera del círculo unidad o de los márgenes definidos: x ∈ (-1,+1) ; y ∈ (-1,+1) , o si en realidad no importa cual sea la región elegida. Hay que tener en cuenta que ϑ es el ángulo entre el radio del vector ρ y el eje y, mientras φ (ángulo de la elipsoide) es el ángulo entre ρ y el eje x. 68 Representación y descripción Sujeto a las limitaciones establecidas por los momentos de Legendre (será comentado en el apartado de la definición de los momentos tensoriales), la función de irradiación de la imagen debe ser aproximada mediante: f ( x, y ) = ∑∑ Anl Vnl ( ρ ,ϑ ) n l Ecuación 3–35 Función de irradiación donde n = 0,1,2,...,∞ y l toma valores enteros positivos y negativos dependiendo de la siguiente condición: n - | l | es par, | l | < n. Los momentos complejos de Zernike se definen como: Anl = n +1 π ∫∫ f ( x, y)[V l n ] ( ρ , ϑ ) * dxdy = ( An−l ) * Ecuación 3–36 Momentos complejos de Zernike en el segundo igual se le quita el signo ya que f es real y Rn− l = Rnl . La función Rnl ( ρ ) de la ecuación Ecuación 3–33 es real, y la función de intensidad de la imagen f(x,y) es también real, es a menudo conveniente trabajar con expansiones de los reales y valores reales de los momentos de Zernike. La expansión real correspondiente a la Ecuación 3–35 es: f ( x, y ) = ∑∑ (C nl cos lϑ + sin lϑ ) Rnl ( ρ ) n l Ecuación 3–37 Ampliación de la función de irradianción donde l ahora toma solo valores positivos en la integral sujeta a laEcuación 3–36. Los momentos reales de Zernike: C nl 2n + 2 cos lϑ dxdyf ( x, y ) Rnl ( ρ ) l= ∫∫ senlϑ Sn π Ecuación 3–38 Momentos reales de Zernike para l distinto de cero y C n0 = An0 = 1 dxdyf ( x, y ) R π ∫∫ 0 n (ρ) Ecuación 3–39 Momentos complejos de Zernike mientras 69 Visión Artificial con IMtdi S n0 = 0 . La relación entre los momentos reales y complejos de Zernike ( l > 0): C nl = 2 Re( Anl ) S nl = −2 Im( Anl ) C nl − iS nl A = = ( Anl ) * 2 l n Ecuación 3–40 Relación entre los momentos reales y complejos de Zernike Relación entre los momentos de Zernike y los ordinarios Los momentos de Zernike pueden ser calculados a través de los momentos µ kj , mediante una aplicación práctica. Los polinomios radiales tienen la siguiente forma: n Rnl ( ρ ) = ∑ Bnlk ρ k k =1 Ecuación 3–41 Polinomios radiales donde n-k son un número par y el coeficiente Bnlk se obtiene en la Referencia[M.Born and E. Wolf, Principles of Optics(Pergamon, New York,1975)]. A partir de la Ecuación 3–41 y la Ecuación 3–36, obtenemos la siguiente función: q l n + 1 n q l Anl = (−i ) m Bnlk × µ k − 2−l + m, 2 j + l − m ∑∑∑ π k =l j = 0 m = 0 j m donde q = casos: 70 k −l . Para las referencias propuestas al final nos vamos a remitir a los siguientes 2 Representación y descripción A00 = µ 00 1 = π π A11 = A1−1 = 0 A22 = A20 = A33 = A31 = A44 = A42 = A40 = 3( µ 02 − µ 20 − 2iµ11 ) π 3(2 µ 02 + 2 µ 20 − 1) π 4[µ 03 − 3µ 21 + i (µ 30 − 3µ12 )] π 12[µ 03 + µ 21 − i (µ 30 + µ12 )] π 5[µ 40 − 6 µ 22 + µ 04 + 4i (µ 31 − µ13 )] π 5[4(µ 04 − µ 40 ) + 3(µ 02 − µ 02 ) − 2i[4(µ 31 + µ13 ) − 3µ11 ]] π 5[6(µ 40 + 2 µ 22 + µ 04 ) − 6(µ 20 + µ 02 ) + 1] π Comportamiento bajo rotación La rotación de las imágenes se va a efectuar a través del ángulo ϑ0 . En la simetría de operaciones, esto se correspondería con la transformación a las nuevas coordenadas: x' = x cos ϑ0 − y sin ϑ0 y ' = x sin ϑ0 + y cos ϑ0 En lugar de este punto de vista, se usa un conjunto de coordenadas del plano de imagen y en lugar de la imagen rotada la función del grado de circunscripción (irradiance) de la imagen original f ( ρ , ϑ ) para que sea devuelta en la rotación f ' ( ρ ,ϑ ) = f ( ρ ,ϑ − ϑ0 ) y el nuevo momento de Zernike es n + 1 ( Anl )' = ∫∫ ρdρdϑf ( ρ , ϑ − ϑ 0 ) × Rnl ( ρ ) exp(−ilϑ ) π por lo que la formula puede quedar de la siguiente manera: 71 Visión Artificial con IMtdi ( Anl )' = Anl exp(−ilϑ ) Así, los momentos de Zernike tienen una propiedades de transformación rotacional simple; cada (complejo) momento de Zernike meramente adquiere un factor de la fase en rotación. Es correcto encontrar que la transformación del momento de Zernike real como (C nl )' = C nl cos lϑ0 − S nl sin lϑ0 , (S nl )' = C nl sin lϑ0 + S nl cos lϑ0 Comportamiento bajo reflexión Un verdadero descriptor invariante (escalar) se mantiene indiferente frente a cambios por reflexión mientras que un pseudo-invariante (pseudo-escalar) puede cambiar de signo. Esto es como tener un objeto y su imagen en un espejo, el cual produce el mismo invariante, pero deben ser distinguidos si buscamos un pseudo-invariante. Considerando el caso general de reflexión mediante una línea a través del origen, rotado mediante el ángulo positivo ϑ0 respecto al eje y. El punto de la imagen (x,y) es el siguiente: x' = − x cos 2ϑ0 − y sin 2ϑ0 y ' = − x sin 2ϑ0 + y cos 2ϑ0 Se debe tener en cuenta que esta transformación P es en si misma inversa, P2 = 1, y tiene determinante negativo. El hecho que esta transformación dependa de 2 ϑ0 es consecuencia de la reflexión lineal no teniendo una única dirección: no varia por una rotación de 180º. La intensidad de la imagen f(x,y) es modificada por la reflexión a f ( x, y )' = f ( x' , y ' ) y se corresponde con los siguientes parámetros: ρ'= ρ ϑ ' = 2ϑ0 − ϑ El nuevo momento de Zernike es: n + 1 ( Anl )' = ∫∫ dxρdyf ( x, y ) Rnl ( ρ ) × exp(−il (2ϑ 0 −ϑ )) π ó ( Anl )' = Anl exp(−i 2lϑ0 ) y se corresponde con los momentos reales de Zernike mediante la transformación 72 Representación y descripción (C nl )' = C nl cos 2lϑ0 + S nl sin 2lϑ0 , (S nl )' = C nl sin 2lϑ0 − S nl cos 2lϑ0 Momentos Invariantes y Pseudo-Invariantes La combinación de descriptores debe permitir hacer invariante a un objeto frente a cambios de escala, desplazamientos laterales y orientación. El trabajo con momentos de Zernike complejos: Anl = Anl exp(−iφ nl ) y los resultados básicos sobre los que se han comenzado a aplicar son comportamiento bajo rotación y reflexión de los momentos de Zernike. 2 Los primeros dos verdaderos invariantes son A00 y A11 , A1, −1 = A11 , pero estos son fáciles y no merece la pena hacer más hincapié en ellos. En segundo orden tenemos: S1 = A20 S 2 = A22 A2, −2 = A22 2 los cuales se mantienen invariantes frente a cualquier transformación ortogonal, propia o impropia. En tercer orden tenemos que trabajar con cuatro momentos A33 , A31 , A3, −1 , A3, −3 .Los siguientes invariantes son: S 3 = A33 2 S 4 = A31 2 El máximo número posible de invariantes de tercer orden independientes es obviamente cuatro porque, a estas alturas, dado los invariantes, podríamos resolver para los momentos. Para qué buscar dos momentos de tercer orden invariantes. Uno podría pensar un termino como A33 ( A3, −1 ) = A33 [( A31 ) *] 3 3 serviría como un invariante adicional. Esto tiene dos puntos de vista: mientras es invariante rotacionalmente, bajo una transformación impropia, cambia a 73 Visión Artificial con IMtdi ( A33 ) * ( A31 )3 En adición, ambos de estos términos son complejos. Sin embargo, un tercero verdadero, valor real, escalar es obviamente la suma de esto dos: S 5 = A33 [( A31 ) *] + c.c. = 2 A33 A31 cos(φ 33 − 3φ 31 ) 3 3 donde c.c es el complejo conjugado del término precedente. El primer pseudo-escalar usando la diferencia { } P1 = −i A33 [( A31 ) *] + c.c. = 2 A33 A31 sin (φ 33 − 3φ 31 ) 3 3 Ningún invariante independiente existe usando solo momentos de tercer orden. Sin embargo, mediante la combinación de invariantes de tercer y segundo orden podemos obtener invariantes independientes: S 6 = ( A31 ) ( A22 ) * + c.c. = 2 A31 A22 cos(2φ 31 − φ 22 ) 2 2 A estas alturas debemos establecer el hecho importante que se obtiene de S 3 a través de S 6 , es decir, no podemos resolver para cuatro momentos de tercer orden porque φ 22 también aparece. Siempre ocurren demasiados ángulos de fase para permitir uno para resolver los momentos, mediante los invariantes. Esto, sin embargo, sólo corresponde al grado de libertad rotatoria del plano de la imagen. Es decir, mientras estamos construyendo invariantes válidos, no podemos invertir los invariantes definidos en las ecuaciones para encontrar los momentos hasta haber especificado la orientación en el plano de la imagen. Estos comentarios son fundamentales para la determinación de si un conjunto de invariantes han sido construidos de manera que sean funcionalmente independientes. Para el ejemplo, en contra posición a S 6 , puede ser: ( A33 )2 [( A22 ) *]3 + c.c. = 2 A33 2 A22 3 cos(2φ 33 − 3φ 22 ) donde es un verdadero invariante, pero no ambos a la vez. Ahora consideremos momentos de orden 4º A44 , A42 , A40 , A4, −2 , A4, −4 . A continuación se muestran los invariantes obtenidos: 74 Representación y descripción S 7 = A44 2 S 8 = A42 2 S 9 = A40 S10 = ( A44 ) * ( A42 ) + c.c. = 2 A44 A42 cos(φ 44 − 2φ 42 ) 2 2 S11 = A42 ( A22 ) * +c.c. = 2 A42 A22 cos(φ 42 − φ 22 ) Para los momentos de orden 5º A55 , A53 , A51 , A5, −1 , A5, −3 , A5, −5 . De estos se extraen seis invariantes. S12 = A55 2 S13 = A53 2 S14 = A51 2 ( A55 ) *3 ( A53 )5 + c.c. = 2 A55 3 A53 5 cos(3φ 55 − 5φ 53 ) ( A55 ) * ( A51 )5 + c.c. = 2 A55 A51 cos(φ 55 − φ 51 ) ( A53 ) * ( A51 )3 + c.c. = 2 A53 A51 cos(φ 53 − 3φ 51 ) 5 3 De estos tres últimos que dependen de los cinco anteriores podemos obtener los siguientes tres invariantes. S15 = ( A51 ) * A31 + c.c. S16 = ( A53 ) * A33 + c.c. S17 = ( A55 ) * ( A31 ) + c.c. 5 Como regla general, se deben de construir con el menor número posible de invariantes de Zernike. Finalmente, es obvio que donde quiera que nosotros construimos unos verdaderos, invariante de valor real tomando una cantidad más su complejo conjugado, podríamos obtener el correspondiente, pseudoinvariante de valor real tomando -i tiempos la cantidad menos su complejo conjugado. 75 Visión Artificial con IMtdi Momentos de Zernike expresados en términos de los Momentos Centrales Normalizados Momentos de Segundo Orden S1 = 3[2(µ 20 + µ 02 ) − 1] / π [ ] S 2 = 9 (µ 20 − µ 02 ) + 4(µ11 ) / π 2 2 2 Momentos de Tercer Orden [ ] S 3 = 16 (µ 03 − 3µ 21 ) + (µ 30 − 3µ12 ) / π 2 2 [ 2 ] S 4 = 144 (µ 03 + µ 21 ) + (µ 30 + µ12 ) / π 2 2 2 (µ 03 − 3µ 21 )(µ 03 + µ 21 ) * 2 2 13824 (µ 03 + µ 21 ) − 3(µ 30 + µ12 ) S5 = π 4 − (µ 30 − 3µ12 )(µ 30 + µ12 ) * (µ 30 + µ12 )2 − 3(µ 03 + µ 21 )2 S6 = 76 [ ] [ ] [ 864 (µ 02 − µ 20 ) (µ 03 + µ 21 ) − 3(µ 30 + µ12 ) π 3 + 4µ11 (µ 03 + µ 21 )(µ 30 + µ12 ) 2 2 ] Representación y descripción Momentos de Cuarto Orden [ ] S 7 = 25 (µ 40 − 6µ 22 + µ 04 ) + 16(µ 31 − µ13 ) / π 2 2 2 [(µ 04 − µ 40 ) + 3(µ 20 − µ 02 )]2 2 S 8 = 25 /π 2 + 4[4(µ 31 + µ13 ) − 3µ11 ] S 9 = 5[6(µ 40 + 2µ 22 + µ 04 ) − 6(µ 20 + µ 02 )] / π (µ 40 − 6 µ 22 + µ 04 ) * 2 [4(µ 04 − µ 40 ) + 3(µ 20 − µ 02 )] 250 S10 = 3 − 4[4(µ 31 + µ13 ) − 3µ11 ]2 π − 16[4(µ − µ ) + 3(µ − µ )]* 04 40 20 02 [4(µ 31 + µ13 ) − 3µ11 ](µ 31 − µ13 ) S11 = 30 [4(µ 04 − µ 40 ) + 3(µ 20 µ 02 )](µ 02 + µ 20 ) π 2 + 4 µ11 [4(µ 31 + µ13 ) − 3µ11 ] 77 Visión Artificial con IMtdi Momentos Pseudoinvariates (µ 30 − 3µ12 )(µ 03 + µ 21 ) * (µ 03 + µ 21 )2 − 3(µ 30 + µ12 )2 P1 = 13824 − (µ 30 − 3µ12 )(µ 03 + µ 21 ) * (µ 30 + µ12 )2 − 3(µ 03 + µ 21 )2 /π 4 [ ] [ ] [ ] 3 µ (µ + µ 21 )2 − (µ 30 + µ12 )2 P2 = 1728 11 03 /π − (µ 30 + µ12 )(µ 30 + µ12 )(µ 02 − µ 20 ) Dominio del valor • S1 , S 2 , S 3 , S 4 , S 5 , S 6 , S 7 , S 8 , S 9 , S10 , S11 , P1 y P2 ∈ ℜ . Resultados 78 Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) S1 7109.1 12138 7109.1 141.33 9942.9 7109.1 S2 1.61E+10 4.88E+10 1.61E+10 577.99 2.56E+09 1.61E+10 S3 6.36E+10 1.84E+11 6.36E+10 4531.5 8.65E+10 6.36E+10 S4 2.64E+11 7.02E+11 2.64E+11 2008.8 1.10E+11 2.64E+11 S5 -1.37E+19 -1.01E+20 -6.75E+18 -9.55E+09 6.39E+16 -1.37E+19 S6 6.66E+14 3.08E+15 6.66E+14 95174 -1.11E+14 6.66E+14 S7 1.43E+12 3.87E+12 1.43E+12 7252.3 1.31E+13 1.43E+12 S8 3.18E+22 2.72E+23 3.18E+22 2.03E+13 2.59E+23 3.18E+22 S9 1.35E+08 2.32E+09 1.35E+08 686.78 2.71E+09 1.35E+08 S10 2.71E+18 1.31E+19 2.71E+18 3.41E+11 2.34E+19 2.71E+18 S11 1.35E+12 4.03E+12 1.35E+12 17215 2.89E+12 1.35E+12 P1 6.42E+17 4.37e+14 6.42E+17 4.85E+10 -1.73E+18 6.42E+17 P2 -8.07e+09 -3.08E+14 -8.07e+09 -16481 -3.33E+14 -8.07E+09 Representación y descripción Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 S1 16492 23729 52954 7109.1 32863 7109.1 S2 9.31E+10 2.22E+11 3.06E+11 1.61E+10 2.68E+11 1.61E+10 S3 3.34e+07 2.93E+11 3.37E+12 6.36E+10 5.56E+10 6.36E+10 S4 1.17E+12 5.58E+11 3.30E+12 2.64E+11 2.54E+11 2.64E+11 S5 -2.94E+20 1.12E+19 1.09E+20 -1.37E+19 8.94E+18 -6.75E+18 S6 7.14E+15 1.52E+15 3.05E+16 6.66E+14 2.05E+14 6.66E+14 S7 6.75E+12 7.04E+13 3.45E+12 1.43E+12 6.65E+12 1.43E+12 S8 3.17E+09 9.30E+09 1.82E+10 1.35E+08 8.86E+09 1.35E+08 S9 3.20E+19 7.85E+20 4.85E+18 2.71E+18 3.84E+20 2.71E+18 S10 7.57E+11 3.24E+12 4.30E+13 1.35E+12 2.86E+13 1.35E+12 S11 4.40E+12 1.48E+14 1.35E+12 7.87E+13 1.59E+15 2.88E+15 P1 9.39E+18 1.35E+19 -1.57E+20 6.42E+17 5.86E+18 6.42E+17 P2 -5.17E+14 -5.03E+15 2.00E+16 -8.07e+09 1.64E+15 -8.07E+09 79 Visión Artificial con IMtdi Características 3.8.6 T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 S1 31589 55807 7109.1 34327 1.18E+09 1.58E+09 S2 3.57E+10 1.09E+12 1.61E+10 3.67E+11 4.12E+12 7.52E+12 S3 3.99E+11 4.03E+12 6.36E+10 3.78E+12 6.51E+13 1.15E+14 S4 1.14E+12 3.52E+11 2.64E+11 6.64E+12 2.71E+14 4.63E+14 S5 -4.06E+18 1.58E+20 -6.75E+18 -4.34E+21 -7.07E+24 -2.10E+25 S6 4.31E+15 6.59E+16 6.66E+14 7.99E+16 1.09E+19 2.52E+19 S7 6.19E+12 2.63E+13 1.43E+12 3.09E+14 5.81E+15 1.00E+16 S8 1.59E+23 5.19E+19 3.18E+22 6.97E+26 9.29E+29 3.00E+30 S9 8.35E+09 2.11E+10 1.35E+08 1.72E+10 1.15E+11 1.54E+11 S10 4.08E+18 1.48E+14 1.35E+12 7.87E+13 1.59E+15 2.88E+15 S11 4.40E+12 1.48E+14 1.35E+12 7.87E+13 1.59E+15 2.88E+15 P1 -2.21E+19 2.27E+21 6.42E+17 -5.43E+21 6.73E+22 1.87E+24 P2 1.67E+14 -3.24E+16 -8.07e+09 1.01E+16 -1.32E+18 -2.82E+18 Momentos invariantes de S. Maitra S. Maitra [3] define un conjunto de funciones que además de ser invariantes a las transformaciones mencionadas anteriormente como son la traslación, homotecias y rotación, también lo son frente a cambios de contraste. Estas transformaciones se definen si consideramos f(x,y) como los niveles de intensidad de la imagen como: f 1 ( x , y ) = k * f 2 ( x, y ) donde la constate k condiciona una variación en el contraste de los niveles de intensidad de la imagen. Los invariantes obtenidos han sido desarrollados a partir de los generados por Hu. Estos invariantes frente a cambios de contraste se muestran a continuación. L1 = φ2 φ1 L2 = φ 3 mt 00 φ1φ 2 L3 = φ4 φ3 L4 = φ5 φ4 L5 = φ6 φ1φ 4 L6 = φ7 φ5 Ecuación 3–42 Los invariantes de Maitra 80 Representación y descripción Dominio del valor • L1 , L2 , L3 , L4 , L5 y L6 ∈ ℜ . Resultados Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) L1 0.3568 0.36389 0.3568 0.33793 0.32168 0.3568 L2 903.65 1416.4 246.85 197.33 31.542 903.65 L3 0.46019 0.42225 16.846 0.049706 3.086 0.46019 L4 12.037 12.327 19.032 29.842 29.961 12.037 L5 0.35421 0.36209 0.35421 0.33298 -0.10137 0.35421 L6 -0.028138 -0.016244 0.27009 -0.079498 0.21134 -0.028138 Características T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 L1 0.37008 0.39673 0.20882 0.3568 0.31481 0.3568 L2 1773.5 83.254 3495.8 903.65 92.851 246.85 L3 0.38992 0.77549 0.14547 0.46019 0.46783 16.846 L4 12.613 14.212 0.21563 12.037 0.37256 19.032 L5 0.36911 0.11467 0.17453 0.35421 0.24559 0.35421 L6 -0.0093064 -0.31718 -56.695 -0.028138 15.57 0.27009 81 Visión Artificial con IMtdi Características 3.8.7 T(2,3)R315 T(2,3)R45 T(2,3)R90 T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 L1 0.37008 0.39673 0.20882 0.3568 0.31481 0.3568 L2 1773.5 83.254 3495.8 903.65 92.851 246.85 L3 0.38992 0.77549 0.14547 0.46019 0.46783 16.846 L4 12.613 14.212 0.21563 12.037 0.37256 19.032 L5 0.36911 0.11467 0.17453 0.35421 0.24559 0.35421 L6 -0.0093064 -0.31718 -56.695 -0.028138 15.57 0.27009 Definición tensorial de los momentos La definición tensorial de los momentos ha sido diseñada para poder introducir momentos de cualquier orden con las únicas limitaciones que las que ponga el propio computador. A continuación se van a definir los distintos momentos [3, 15] frente a las transformaciones afines a sufrir, así como, las modificaciones que se generan en estos para adaptarse a las mismas. Momentos Ordinarios Una imagen puede ser representada por una función f ( x, y ) con respecto a un par de ejes cartesianos x e y fijos. Una imagen también puede ser representada, en el espacio de momentos, por sus momentos bidimensionales q ij ...k (a los que denominaremos momentos ordinarios) respecto de (x, y) definidos como se muestra a continuación: q m1 ...m j n1 ...nk = q jk = ∫∫ x j y k f ( x, y )dxdy Ecuación 3–43 Momentos ordinarios m j = 1 , mk = 2 , j , k = 0,1,2,... donde q m1 ...m j n1 ...nk es un tensor cartesiano y simétrico de orden j+k y 2 j + k componentes. La integral está extendida a la región del espacio donde está definida f. Una imagen discreta de M x N elementos puede ser representada por un conjunto de M x N momentos. A partir de aquí se plantea una cuestión, ¿ es posible utilizar un conjunto reducido de momentos para construir un vector que defina a una imagen dada en el espacio de características?. La respuesta es afirmativa para la gran mayoría de casos. 82 Representación y descripción El número de momentos a usar en el reconocimiento va a depender directamente de la complejidad de las imágenes que se deseen reconocer. Dominio del valor • q jk ∈ ℜ . El Procedimiento de implementación comentado con anterioridad ‘CalculateData(...)’, es el que permite el cálculo de los momentos ordinarios de cualquier orden. Momentos Invariantes frente a transformaciones Afines Una transformación lineal de la siguiente forma: x * c d x + a L : = y * e f y + b Ecuación 3–44 Transformación lineal genérica donde a, b, c, d, e y f son constantes y el determinante c e d ≠ 0 se denomina transformación f afín. La transformación L puede descomponerse en el producto siguiente: L= A x R x T, donde: x' x + a T : = y' y + b Ecuación 3–45 Aplicación de la traslación x' ' cos ϑ senϑ x' R : = y ' ' − senϑ cos ϑ y ' Ecuación 3–46 Aplicación de la rotación x * α A : = y * 0 0 x' ' β y ' ' Ecuación 3–47 Aplicación de la amplificación Para normalizar los momentos frente a transformaciones existen varias formas que se presentan a continuación: 1. Aplicar la teoría de invariantes algebraicos tal y como hace Hu, para obtener ciertas combinaciones de momentos que son invariantes frente a transformaciones afines. 2. Calcular los parámetros a, b, α , β y ϑ normalizando momentos de bajo orden y una vez calculados, aplicar la transformación L resultante a la imagen original para 83 Visión Artificial con IMtdi transformarla en una imagen canónica, cuyos momentos ordinarios serán invariantes frente a L, tal y como hace Wang-Kuo. 3. Calcular las relaciones existentes entre los momentos, antes y después de realizar las transformaciones T, R y A. En la primera forma que se presenta, aparte de la complejidad inherente en la teoría de invariantes algebraicos, el mayor inconveniente radica en el gran tamaño de las expresiones obtenidas, lo que implica errores de cálculo apreciables para casos discretos en computadoras. El segundo método presenta el inconveniente de la redigitalización de la imagen transformada, ya que la aplicación de la transformación A a la imagen original, puede deteriorarse la conectividad entre los elementos de la imagen. El último caso, permite evitar los problemas descritos. Además, presenta una gran sencillez conceptual, ya que los invariantes finales se obtienen directamente a partir de los momentos ordinarios de la imagen original. Momentos Invariantes frente a Traslaciones La normalización frente a traslaciones o momentos centrales consiste simplemente en desplazar el origen de coordenadas hasta el centro de gravedad de la imagen ( x, y ) dado por las siguiente fórmula: x= ∫∫ xf (x, y )dxdy ∫∫ f (x, y )dxdy y= ∫∫ yf (x, y )dxdy ∫∫ f (x, y )dxdy y a continuación calcular los momentos a partir de dicho origen. Los momentos así calculados, denominados momentos centrales, vienen dados por la siguiente ecuación: µ ' m ...m n ...n = ∫∫ ( x − x ) j ( y − y )k f ( x, y )dxdy 1 j 1 k Ecuación 3–48 Momentos centrales Esto es equivalente a normalizar los momentos centrales de primer orden a cero: µ10 = 0, µ 01 = 0 . Es posible calcular los momentos centrales a partir de los momentos ordinarios haciendo uso del binomio. 84 Representación y descripción j j j −r r ( x − x ) j = ∑ ( x ) (− x ) r =0 r k k −s s ( y − y ) = ∑ ( x ) (− y ) s =0 s k k La función resultante que se obtendría en función de los momentos ordinarios y usando el binomio sería la siguiente: j k r = 0 s = 0 r s j k µ jk = ∑∑ (− 1)r + s x r y s m j −r ,k − s Ecuación 3–49 Momentos invariantes frente a traslaciones Dominio del valor • µ jk ∈ ℜ . Momentos Invariantes frente a Rotaciones Una imagen caracterizada con momentos de hasta segundo orden, es equivalente a una elipse homogénea, con un tamaño, orientación y excentricidad definidos. Los ejes ( x' ' , y ' ') se denominan ejes principales. Es posible calcular el ángulo φ que forman los ejes ( x' ' , y ' ') y (x' , y') en función de los momentos determinados respecto de (x' , y') . Si a continuación se rota la imagen un ángulo φ en el sentido adecuado, habremos llevado la imagen a una posición estándar en la que coinciden los ejes ( x' ' , y ' ') y ( x' , y ') , y de este modo quedará normalizado frente a rotaciones. En lugar de rotar la imagen y calcular los nuevos momentos, calcularemos la relación existente entre los momentos antes y después de realizar una rotación arbitraria ϑ y obtendremos los momentos invariantes frente a rotaciones en función de los momentos determinados respecto de ( x' , y ') sin más que hacer ϑ = φ . Cabe destacar que el calculo del ángulo φ ha sido explicado en el capítulo que hace referencia a los descriptores basados en la elipse circunscrita, más concretamente en la orientación. La forma de calcular los momentos invariantes frente a rotación en función de los momentos anteriores (invariantes frente a traslaciones) es la siguiente: 85 Visión Artificial con IMtdi j k s j k j−r +s m' ' jk = ∑∑ (− 1) (senφ ) (cos φ )r + k − s µ r + s , j + k − r − s r =0 s =0 r s Ecuación 3–50 Momentos invariantes frente a rotaciones Dominio del valor • m 'jk' ∈ ℜ . Momentos Invariantes frente a Escalado La transformación A es una amplificación anisótropa. Esta transformación permite hacer invariantes no solo frente a traslaciones y rotaciones, sino también, frente a cambio de escala. La forma para llevar a cabo su cálculo mediante los momentos invariantes frente a rotaciones es la que se muestra a continuación: η jk = m' ' jk 8 (m' ' 20 )3 j −k +2 (m' ' 02 )3k − j +2 Ecuación 3–51 Momentos invariantes frente a escalado Una vez realizado los momentos que se quedan normalizados son los siguientes: η10 = 0 η 01 = 0 η11 = 0 η 20 = 1 η 02 = 1 . Obtenidos los invariantes frente a traslaciones, amplificaciones y rotaciones, si la región en cuestión de la imagen a analizar es caracterizada mediante un vector de N componentes en el espacio de los momentos invariantes, el reconocimiento se resume en asignar un elemento a una clase dentro de un conjunto de clases dado. 86 Representación y descripción Dominio del valor • η jk ∈ ℜ . Resultados Momentos Ordinarios Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) m0, 0 1228 2056 1228 58 1375 1228 m1, 0 6064 10184 5622 303 6991 9748 m0,1 6658 11221 7292 308 7144 9114 m1,1 32870 55575 33392 1618 36260 72340 m 2, 0 31142 52466 28264 1629 37313 78578 m0, 2 38624 65575 44498 1664 40556 70168 m1, 2 1.91E+08 3.25E+09 2.04E+09 8788 2.05E+09 5.57E+09 m2,1 1.69E+09 2.86E+09 1.68E+09 8758 1.93E+09 5.83E+09 m0, 3 2.38E+08 4.08E+09 2.78E+09 9128 2.47E+09 5.60E+09 m3, 0 1.66E+09 2.80E+09 1.51E+09 9003 2.09E+09 6.43E+09 87 Visión Artificial con IMtdi Características 88 T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 m0, 0 2754 2257 4572 1228 3553 1228 m1, 0 21941 19290 37064 9900 27020 9114 m0,1 20616 14774 38992 9306 29151 9900 m1,1 1.64E+09 1.26E+08 3.19E+0.9 75016 2.21E+08 73484 m 2, 0 1.78E+09 1.69E+09 3.14E+08 81010 2.12E+09 70168 m0, 2 1.60E+09 1.05E+09 3.47E+09 73048 2.50E+09 81010 m1, 2 1.28E+10 8.98E+09 2.86E+10 5.89E+09 1.89E+10 6.01E+09 m2,1 1.33E+10 1.10E+10 2.72E+10 6.14E+09 1.72E+10 5.66E+09 m0, 3 1.29E+10 8.05E+0.9 3.19E+0.9 5.90E+0.9 2.24E+10 6.72E+09 m3, 0 1.46E+10 1.51E+09 2.77E+10 6.72E+09 1.70E+10 5.60E+09 Representación y descripción T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 1228 2670 4912 6488 37831 9306 21714 37608 49460 26341 34920 9748 21935 41144 54428 m1,1 1.86E+09 2.85E+09 73880 1.78E+08 3.15E+09 4.15E+09 m 2, 0 1.83E+08 3.28E+09 73048 1.89E+09 3.30E+09 4.33E+09 m0, 2 2.06E+08 2.83E+09 78578 1.86E+09 3.65E+09 4.84E+09 m1, 2 1.46E+10 2.26E+10 5.96E+09 1.51E+10 2.80E+10 3.70E+10 m2,1 1.38E+10 2.43E+10 5.80E+09 1.55E+10 2.76E+10 3.63E+10 m0, 3 1.66E+10 2.40E+10 6.43E+09 1.62E+10 3.40E+10 4.51E+10 m3, 0 1.41E+10 2.96E+10 5.90E+09 1.73E+10 3.11E+10 4.08E+10 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 m0, 0 3504 4555 m1, 0 24667 m0,1 Momentos invariantes frente a traslaciones Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) µ 0, 0 1228 2056 1228 58 1375 1228 µ1, 0 -5.12E09 -3.41E-09 -4.26E-10 -1.95E-10 2.30E-09 -5.12E-09 µ 0,1 4.26E-10 6.04E-09 -5.12E-09 -2.31E-10 -5.72E-09 4.26E-10 µ1,1 79.414 -60.623 79.414 -60.623 79.414 89.655 µ 2, 0 1197.3 2021.5 2525.5 46.086 1768.2 1197.3 µ 0, 2 2525.5 4334.3 1197.3 28414 3438.4 2525.5 µ1, 2 52.524 72.039 158.02 -0.18549 -393.98 52.524 µ 2,1 -158.02 -293.84 52.524 13.774 12.737 -158.02 µ 0, 3 1501.9 2484.6 20.59 -10.188 520.69 1501.9 µ 3, 0 20.59 31.379 -1501.9 11.358 1077.7 20.59 89 Visión Artificial con IMtdi Características 90 T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 µ 0, 0 2754 2257 4572 1228 3553 1228 µ1, 0 7.64E-09 -1.56E-08 -2.74E-08 5.12E-09 1.29E-08 4.26E-10 µ 0,1 6.77E-09 -9.89E-09 -2.93E-08 -4.26E-10 4.99E-09 5.12E-09 µ1,1 -57.887 -165.59 2892.1 -79.414 -1087.7 79.414 µ 2, 0 2720 3753.3 13734 1197.3 6123.2 2525.5 µ 0, 2 5915.9 8671.5 13993 2525.5 11084 1197.3 µ1, 2 68.584 -628 -3432.5 -52.524 -37.05 -158.02 µ 2,1 -425.32 -151.99 -3208.4 158.02 724.93 -52.524 µ 0, 3 3259.6 1760.7 -1026.3 -1501.9 402.53 -20.59 µ 3, 0 28.728 1740.8 1268.7 -20.59 -645.86 1501.9 Representación y descripción T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 1228 2670 4912 6488 2.17E-09 -4.26E-10 1.15E-08 -3.41E-09 -6.18E-09 6.96E-09 -1.23E-08 -5.12E-09 -5.15E-09 -4.09E-08 4.59E-08 µ1,1 598.08 -5451.8 79.414 -189.24 127.06 120.78 µ 2, 0 9057.5 14252 2525.5 12155 41636 55691 µ 0, 2 7482.9 14969 1197.3 5819.2 20385 26982 µ1, 2 123.04 -2648.6 158.02 814.56 5056.5 6937.9 µ 2,1 -1198.7 4441.4 52.524 2825.4 1680.8 2125.5 µ 0, 3 254.43 -189.53 20.59 -3049.2 658.89 771.81 µ 3, 0 -2757.1 192.31 -1501.9 -7558.9 -48060 -63181 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 µ 0, 0 3504 4555 µ1, 0 -1.99E-09 µ 0,1 Momentos invariantes frente a rotaciones Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) m' ' 0 , 0 1228 2056 1228 58 1375 1228 m' '1, 0 -4.57E-11 -6.05E-09 -4.57E-11 -2.69E-11 5.80E-10 -4.57E-11 m' ' 0,1 -5.11E-09 -3.39E-09 -5.11E-09 -1.38E-10 2.08E-09 -5.11E-09 m' '1,1 -1.41E-09 -1.71E-10 4.01E-12 9.04E-12 -5.63E-11 2.62E-10 m' ' 2 , 0 2525.5 4334.3 2525.5 49.838 3440.7 2525.5 m' ' 0 , 2 1197.2 2021.5 1197.2 24.662 1765.9 1197.2 m' '1, 2 157.44 293.52 157.44 -10.137 56.36 157.44 m' ' 2,1 63.386 80.091 63.386 17.828 -372.01 63.386 m' ' 0 , 3 17.761 29.07 17.761 -27.875 1075.2 17.761 m' ' 3, 0 -1500.8 -2484 -1500.8 21.828 -563.8 -1500.8 91 Visión Artificial con IMtdi Características 92 T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 m' ' 0 , 0 2754 2257 4572 1228 3553 1228 m' '1, 0 -6.75E-09 9.36E-09 -4.01E-08 4.57E-11 -2.23E-09 4.57E-11 m' ' 0,1 7.65E-09 -1.59E-09 -4.08E-10 5.11E-09 1.37E-08 5.11E-09 m' '1,1 -1.41E-10 -2.19E-09 8.24E-09 2.03E-10 -1.81E-09 -1.96E-12 m' ' 2 , 0 5916 8677.1 16759 2525.5 11312 2525.5 m' ' 0 , 2 2720 3747.7 10969 1197.2 5895.2 1197.2 m' '1, 2 425.11 249.99 2452.9 -157.44 -749.19 -157.44 m' ' 2,1 76.028 -554.24 -624.55 -63.386 -257.86 -63.386 m' ' 0 , 3 26.418 1720.5 -738.05 -17.761 -179.21 -17.761 m' ' 3, 0 -3259.2 -1820.4 -7008.9 1500.8 -494.39 1500.8 Representación y descripción T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 1228 2670 4912 6488 1.04E-08 -4.57E-11 1.17E-08 -3.66E-09 -5.99E-09 7.23E-09 -6.80E-09 -5.11E-09 -4.81E-09 -4.09E-08 4.59E-08 m' '1,1 -2.36E-09 -2.26E-08 -6.90E-12 -2.47E-11 2.59E-10 2.83E-11 m' ' 2 , 0 9258.9 20074 2525.5 12161 41637 55692 m' ' 0 , 2 7281.5 9146.9 1197.2 5813.5 20384 26982 m' '1, 2 536 2520 157.44 1064.5 5038 6921.8 m' ' 2,1 92.522 -1043.5 63.386 2540.1 2028.4 2449.5 m' ' 0 , 3 -146.76 2156.9 17.761 -2965 568.36 684.35 m' ' 3, 0 -3333.7 -7302.5 -1500.8 -7799.2 -48027 -63152 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 m' ' 0 , 0 3504 4555 m' '1, 0 3.37E-10 m' ' 0,1 Momentos invariantes frente a escalado Características Prueba4 P4B21C21 R90 R90B35C18 R90E(1,1) T(2,3) η 0,0 29.449 37.79 29.449 97.956 27.695 29.449 η1, 0 -1.41E-12 -1.25E-11 -1.41E-12 -1.57E-11 1.40E-11 -1.41E-12 η 0,1 -2.29E-1 -1.02E-1 -2.29E-1 -1.14E-1 7.04E-1 -2.29E-1 η1,1 -8.12E-13 -5.77E-13 2.30E-15 2.85E-13 -2.29E-13 1.51E-13 η 2,0 1 1 1 1 1 1 η 0, 2 1 1 1 1 1 1 η1, 2 0.016897 0.0116268 0.016897 -0.14168 0.0038339 0.016897 η 2,1 0.004684 0.0030314 0.004684 0.017528 -0.018129 0.004684 η 0,3 0.0027686 0.0023591 0.0027686 -0.055383 0.10209 0.0027686 η 3, 0 -0.076361 -0.064209 -0.076361 0.15096 -0.019684 -0.076361 93 Visión Artificial con IMtdi Características 94 T(2,3)B35C18 T(2,3)E(2,2) T(2,3)R145 T(2,3)R180 T(2,3)R220 T(2,3)R270 η 0,0 43.483 29.888 39.265 29.449 39.317 29.449 η1, 0 -1.10E-11 1.16E-11 -2.87E-11 1.41E-12 -2.21E-12 1.41E-12 η 0,1 1.84E-11 -2.99E-11 -3.61E-13 2.29E-11 1.87E-11 2.29E-11 η1,1 -3.52E-13 -3.84E-13 6.08E-13 1.17E-13 -2.22E-13 -1.12E-14 η 2,0 1 1 1 1 1 1 η 0, 2 1 1 1 1 1 1 η1, 2 0.016171 0.006227 0.01864 -0.016897 -0.011359 -0.016897 η 2,1 0.0019611 -0.0090668 -0.0038398 -0.004684 -0.0028222 -0.004684 η 0,3 0.0014821 0.065165 -0.0069328 -0.0027686 -0.0037639 -0.0027686 Representación y descripción T(2,3)R90 T(2,3)R90 T(2,3)R90 E(+2,+3) E(M2,M2) E(M2,M2)B12C15 29.449 29.118 28.778 32.953 6.82E-12 -1.41E-12 1.10E-11 -1.37E-12 -1.81E-12 8.91E-12 -6.59E-12 -2.29E-11 -6.58E-12 -2.19E-12 1.99E-11 η1,1 -2.88E-13 -1.66E-12 -3.97E-15 -2.94E-14 8.88E-15 7.30E-16 η 2,0 1 1 1 1 1 1 η 0, 2 1 1 1 1 1 1 η1, 2 0.0072822 0.02098 0.016897 0.0159 0.015824 0.015253 η 2,1 0.0011147 -0.0058643 0.004684 0.026233 0.0044578 0.0037572 η 0,3 -0.0022484 0.026602 0.0027686 -0.064053 0.0025514 0.0021666 η 3, 0 -0.035619 -0.027702 -0.076361 -0.055691 -0.073853 -0.067423 Características T(2,3)R315 T(2,3)R45 T(2,3)R90 η 0,0 38.67 39.13 η1, 0 3.68E-14 η 0,1 3.9 DESARROLLO DE NUEVOS DESCRIPTORES POR COMBINACIÓN Los descriptores que se han comentado a lo largo de todo el capítulo no existen de manera aislada. Una de las posibilidades que permiten es adaptarlos al dominio del problema mediante posibles combinaciones de los mismos. Se han intentado extraer un conjunto de estos posibles descriptores resultado de las combinaciones. Los nuevos descriptores han sido originados a partir de los resultados obtenidos para el capítulo 9 pero no han llegado a ser implementados. También cabe destacar que su buen funcionamiento va a depender directamente del dominio del problema a resolver. Entre otros descriptores los que mayor eficiencia pueden tener son los siguientes: • Diametro Equivalente Extendido El diámetro equivalente trata de aproximar una región de una imagen a un círculo, a través de unas operaciones sobre el área. Por otra parte, la característica extendido es en si un cociente invariante en función del área y del rectángulo circunscrito. El cociente generado por ambos debe dar un buen descriptor invariante frente a las distintas 95 Visión Artificial con IMtdi transformaciones afines que pueda sufrir el objeto. Esto se basa en que se parte de un descriptor invariante para generar otro nuevo invariante en función de un parámetro en común, como es, el área. • Eje Mayor Eje Menor Este descriptor establece la relación entre los dos ejes de la elipsoide y permite hacerlos invariantes frente a transformaciones afines (traslación, rotación, escalado), siempre y cuando los cálculos de los momentos se hayan efectuado sin niveles de gris. Esto se debe a que la intensidad gris, así como la luminosidad de la imagen puede producir variaciones a la hora de realizar las distintas segmentaciones. • El último descriptor descubierto, consiste en seleccionar dos puntos extremos cualesquiera y establecer la orientación de la línea que los une. Esto puede dar bastante información para objetos siempre y cuando no sufran modificaciones en cuanto a rotaciones. 3.10 RESUMEN DE LOS DESCRIPTORES A continuación se muestra los distintos descriptores desarrollados a lo largo de todo el capítulo y el nombre con el que se almacenan. Descriptores de región Número de región. ‘NumReg’ Primer punto. ‘FirstPointRow, FirstPointCol’ Área. ‘Area’ Perímetro. ‘Perimeter’ Densidad. ‘Density’ Volumen. ‘Volume’ Volumen2. ‘Volume2’ Diámetro equivalente. ‘EquivDiameter’ Nivel mínimo de gris. ‘MinGrey’ Nivel máximo de gris. ‘MaxGrey’ Nivel de gris medio. ‘MeanGrey’ 96 Representación y descripción Desviación típica. ‘Stddev’ Baricentro de los niveles de gris. ‘GreyBaryCenterx, GreyBaryCentery’ Primer punto del rectángulo circunscrito. ‘BoundingBoxOx’ Altura del rectángulo circunscrito. ‘BoundingBoxDx’ Anchura del rectángulo circunscrito. ‘BoundingBoxDy’ Área del rectángulo circunscrito. ‘BoundingBoxArea’ Extendido. ‘Extent’ Puntos extremos. ‘TopLeftx, TopLefty, TopRightx, TopRighty, RightTopx, RightTopy, RightBottomx, BottomLeftx, RightBottomy, BottomLefty, BottomRightx, LeftBottomx, BottomRighty, LeftBottomy, LeftTopx, LeftTopy’ Centroide de la elipsoide. ‘Centroidex, Centroidey’ Eje mayor de la elipsoide. ‘MajorAxis’ Eje menor de la elipsoide. ‘MinorAxis’ Orientación de la elipsoide. ‘Orientation’ Excentricidad de la elipsoide. ‘ExcentricityMomentT’ Grado de circunscripción. ‘Irradiance’ Momentos de inercia de orden 1. ‘M1x, M1y’ Momentos de inercia de orden 2. ‘M2x, M2y, M2xy’ Excentricidad de los momentos de inercia. ‘ExcentricityInertia’ Momentos invariantes de Hu. ‘invHu1, invHu2, invHu3, invHu4, invHu5, invHu6, invHu7’ Momentos invariantes de Maitra. ‘L1, L2, L3, L4, L5, L6’ Momentos invariantes de Zernike. ‘S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, P1, P2’ Definición tensorial de los momentos Momentos ordinarios. ‘MomentP,Q’ Momentos invariantes frente a traslaciones. ‘MomentTP,Q’ Momentos invariantes frente a rotaciones. ‘MomentTRP,Q’ Momentos invariantes frente a escalado. ‘MomentTREP,Q’ 97 Visión Artificial con IMtdi Descriptores topológicos Lista de vecinos ‘MapNeighbour’ Lista de puntos del perímetro ‘PlacesPerimeter’ 3.11 LECTURA Y ALMACENAMIENTO DE LAS CONFIGURACIONES DE LOS DESCRIPTORES La selección de las diferentes características se realiza a través de un archivo de configuración . Este archivo de configuración permite facilitar la labor de selección de descriptores por parte del usuario estableciendo cuales son los que necesita que sean calculados para una determinada aplicación. Estructura del archivo de configuración La estructura del archivo de configuración se compone de un conjunto de subgrupos que se establecen a continuación . Cada uno de estos subgrupos está constituido por una serie de parámetros, estos a su vez dependen del valor asignado para ser calculados que será descrito en cada uno de estos. Simples • NumReg El número de la región a analizar. Si se ha decidido analizar todas, el sistema no tiene en cuenta este parámetro. • First_Point El primer punto para la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Area El número de píxeles para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Perimeter El número de píxeles que forma el contorno para una región. Se pone 4 u 8 dependiendo del tipo de vecindad si se desea visualizar y 0 en caso contrario. 98 Representación y descripción • Density El cociente entre el perímetro y el área para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Volume El volumen para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Volume2 El volumen al cuadrado para un región. Se pone 1 si se desea visualizar y 0 en caso contrario. Niveles de gris • MinGrey El nivel mínimo de gris para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • MaxGrey El nivel máximo de gris para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • MeanGrey La media de los niveles de gris para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Stddev Desviación estándar de los niveles de gris para una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • GreyBaryCenter El baricentro de los niveles de gris. Se pone 1 si se desea visualizar y 0 en caso contrario. 99 Visión Artificial con IMtdi Rectángulo circunscrito • BoundingBoxDx Anchura del rectángulo circunscrito. Se pone 1 si se desea visualizar y 0 en caso contrario. • BoundingBoxDy Altura del rectángulo circunscrito. Se pone 1 si se desea visualizar y 0 en caso contrario. • BoundingBoxO Punto de inicio del rectángulo circunscrito. Se pone 1 si se desea visualizar y 0 en caso contrario. • BoundingBoxArea Área del rectángulo circunscrito. Se pone 1 si se desea visualizar y 0 en caso contrario. Puntos extremos • TopLeft Punto superior izquierdo de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • TopRight Punto superior derecho de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • RightTop Punto derecho superior de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • RightBottom Punto derecho inferior de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. 100 Representación y descripción • BottomRight Punto inferior derecho de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • BottomLeft Punto inferior izquierdo de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • LeftBottom Punto izquierdo inferior de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. • LeftTop Punto izquierdo superior de la región. Se pone 1 si se desea visualizar y 0 en caso contrario. Elipsoide circunscrita • Centroide Centro de la elipsoide circunscrita a una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • MajorAxis Eje mayor de la elipsoide circunscrita a una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • MinorAxis Eje menor de la elipsoide circunscrita a una región. Se pone 1 si se desea visualizar y 0 en caso contrario. • Orientation Ángulo de orientación del la elipsoide. Se pone 1 si se desea visualizar y 0 en caso contrario. • ExcentricityMomentT Excentricidad de la elipsoide. Se pone 1 si se desea visualizar y 0 en caso contrario. 101 Visión Artificial con IMtdi • EquivDiameter Diámetro equivalente, aproxima el área de una región a una circunferencia. Se pone 1 si se desea visualizar y 0 en caso contrario. • Extent Extendido en función del área de la región y el área del rectángulo circunscrito. Se pone 1 si se desea visualizar y 0 en caso contrario. Descriptores topológicos • ListPerimeter Lista de puntos del perímetro. Se pone 4 u 8 dependiendo del tipo de vecindad si se desea visualizar y 0 en caso contrario. • ListNeigh Lista de vecinos para una región. Se pone 4 u 8 dependiendo del tipo de vecindad si se desea visualizar y 0 en caso contrario. Momentos de inercia • M1x, M1y Momentos de inercia de orden 1. Se pone 1 si se desea visualizar y 0 en caso contrario. • M2x, M2y, M2xy Momentos de inercia de orden 2. Se pone 1 si se desea visualizar y 0 en caso contrario. • ExcentricityInertia Excentricidad de los momentos de inercia. Momentos invariantes de Hu • invHu1, invHu2, invHu3, invHu4, invHu5, invHu6, invHu7 Se pone 1 si se desea visualizar y 0 en caso contrario. 102 Representación y descripción Momentos invariantes de Maitra • L1, L2, L3, L4, L5, L6 Se pone 1 si se desea visualizar y 0 en caso contrario. Momentos invariantes de Zernike • S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11 Momentos invariantes. Se pone 1 si se desea visualizar y 0 en caso contrario. • P1, P2 Momentos pseudoinvariantes. Se pone 1 si se desea visualizar y 0 en caso contrario. Momentos invariantes definición tensorial • OrderMoment. Momentos ordinarios. Se pone el número de orden si se desea visualizar y -1 en caso contrario. • OrderMomentT. Momentos invariantes a traslaciones. Se pone el número de orden si se desea visualizar y -1 en caso contrario. • OrderMomentTR. Momentos invariantes a traslaciones y rotaciones. Se pone el número de orden si se desea visualizar y -1 en caso contrario. • OrderMomentTRE. Momentos invariantes a traslaciones, rotaciones y escalado. Se pone el número de orden si se desea visualizar y -1 en caso contrario. Ejemplo del archivo de configuración Un ejemplo del archivo de configuración es el que se muestra a continuación: [Basic] NumReg = 5; FirstPoint = 1; Area = 1; Perimeter = 1; Density = 1; 103 Visión Artificial con IMtdi Volume = 1; Volume2 = 1; [Grey Level] MinGrey = 1; MaxGrey = 1; MeanGrey = 1; Stddev = 1; GreyBaryCenter = 1; [Bounding Box] BoundingBoxDx = 1; BoundingBoxDy = 1; BoundingBoxO = 1; BoundingBoxArea = 1; [Extrem Points] TopLeft = 1; TopRight = 1; RightTop = 1; RightBottom = 1; BottomRight = 1; BottomLeft = 1; LeftBottom = 1; LeftTop = 1; [Elipsoide] Centroide = 1; MajorAxis = 1; MinorAxis = 1; Orientation = 1; ExcentricityMomentT = 1; Irradiance = 1; EquivDiameter = 1; Extent = 1; [Adjacent] NumHoles = 0; NumEuler = 0; ListNeigh = 1; ListPerimeter = 1; [Inertia Moment] M1x = 1; M1y = 1; M2x = 1; M2y = 1; M2xy = 1; ExcentricityInertia = 1; [Invariant Moment HU] invHu1 = 1; invHu2 = 1; invHu3 = 1; invHu4 = 1; invHu5 = 1; invHu6 = 1; invHu7 = 1; [Invariant Moment S. Maitra] 104 Representación y descripción L1 L2 L3 L4 L5 L6 = = = = = = 1; 1; 1; 1; 1; 1; [Invariant Moment Zernike] S1 = 1; S2 = 1; S3 = 1; S4 = 1; S5 = 1; S6 = 1; S7 = 1; S8 = 1; S9 = 1; S10 = 1; S11 = 1; P1 = 1; P2 = 1; [Invariant Moment Manuel Canton] OrderMoment = 3; OrderMomentT = 3; OrderMomentTR = 3; OrderMomentTRE = 3; Procedimientos de control de la configuración Los procedimientos que permiten acceder y trabajar sobre el archivo de configuración son los que se muestran a continuación. Estos permiten leer o almacenar configuraciones de descriptores. • SearchConfiguration SearchConfiguration (char *car) Busca el índice para una cadena que representa a una característica. • ReadConfiguration ReadConfiguration (const char *filename, char *modo, C_Matrix::IndexT whatcharact [NumCharactConfig]) Lee una configuración de un archivo y la carga en una estructura de memoria. • WriteConfiguration WriteConfiguration(const char *filename, char *modo, C_Matrix::IndexT whatcharact [NumCharactConfig]) 105 Visión Artificial con IMtdi Almacena en un archivo una configuración establecida. Ejemplo const char * fileconfig; //FILE :"Caracteristicas.txt" int indice=0; C_Matrix::IndexT whatcharact [C_Characteristic::NumCharactConfig]; C_Characteristic Cobject; C_Trace ("Reading Characteristic..."); if (!C_Characteristic::ReadConfiguration(fileconfig,"rt",whatcharact)) C_Trace ("ERROR IN FILE CHARACTERISTIC...") C_Trace ("Found Extent..."); indice = C_Characteristic::SearchConfiguration("Extent"); C_TraceNum ("Position Extent",indice); • CadConfig CadConfig(C_Matrix::IndexT config [NumCharactConfig]) Devuelve el array especial de configuración de descriptores interno. En este array se ecuentran relaciones de pertenencia en función de los descriptores seleccionados para facilitar los cálculos de las distintas características implicadas. • Config Config(C_Matrix::IndexT col) Devuelve el valor de la columna a la que referencia el tipo de constante definida en el archivo cabecera con una A inicial para cada uno de los descriptores. • CadNameCharact CadNameCharact (CadenaT cadname[MaxCharacteristic+1]) Devuelve un vector con todos los nombres de los descriptores existentes. • NameCharact NameCharact(char *cad,C_Matrix::IndexT col) Devuelve el nombre del número de columna referenciada. Ejemplo //**** Array de Configuracion Interno ******** C_Matrix::IndexT config [C_Characteristic::NumCharactConfig]; Cobject.CadConfig(config); C_TraceNum("Calculada Area",Cobject.Config(C_Characteristic::AArea)); 106 Representación y descripción //**** Array de Nombres de Caracteristicas ***** C_Characteristic::CadenaT cadname[C_Characteristic::MaxCharacteristic+1]; char name[MaxCadena]; Cobject.CadNameCharact(cadname); Cobject.NameCharact(name,C_Characteristic::Area); C_TraceStr("Name",name); 3.12 ALMACENAMIENTO DE LOS DESCRIPTORES Definición de grupos Se han planteado las siguientes extensiones para el almacenamiento de los datos en archivos, atendiendo a lo que se muestra a continuación: • Archivo con extensión: ‘.car’ Se almacenan todos los descriptores referentes a los siguiente grupos descritos: Simples Niveles de gris Rectángulo circunscrito Puntos extremos Elipsoide circunscrita Descriptores topológicos Momentos de inercia Momentos invariantes de Hu Momentos invariantes de Maitra Momentos invariantes de Zernike • Archivo con extensión: ‘.mnt’ Se almacenan los momentos definidos de manera tensorial como son: Momentos ordinarios Momentos invariantes frente a traslaciones Momentos invariantes frente a rotaciones 107 Visión Artificial con IMtdi Momentos invariantes frente a escalado • Archivo con extensión: ‘.nei’ Se almacena la lista de vecinos para cada una de las regiones seleccionadas de la imagen. • Archivo con extensión: ‘.per’ Se almacena la lista de puntos del perímetro para cada una de las regiones seleccionadas de la imagen. Estructura de almacenamiento de los datos Extensión ‘.car’ La estructura interna del archivo de almacenamiento es el de una matriz, donde aparecen una serie de filas y columnas. En la primera fila del archivo se visualizan para cada columna el nombre del descriptor para el que se han extraído los resultados que se muestran debajo. La primera columna actúa de indice de la matriz numerando las filas. Row NumReg Perimeter Area Volume Extent 1 120 --- --- --- --- 2 5 --- --- --- --- 3 23 --- --- --- --- Tabla 3–4 Formato de almacenamiento de datos Extensión ‘.mnt’ La estructura interna del archivo es similar al anterior con la salvedad que los descriptores visualizados pertenecen a los momentos tensoriales. Extensión ‘.nei’ La estructura interna del archivo es similar a la descrita con anterioridad destacando que en la úlitma columna lo que se representa es una lista de regiones adyacentes. Row NumReg Adjacent 1 120 5 12 3 7 2 5 --- 3 23 --- Tabla 3–5 Formato de almacenamiento de la lista de vecinos a una región 108 Representación y descripción Extensión ‘.per’ La estructura interna es similar a la anterior, donde en la última columna se representa la lista de puntos que conforman el contorno de la región tratada. Row NumReg Points(X,Y)->(X=col,Y=row) 1 120 (413,12) (414,12) (415,12) 2 5 --- 3 23 --- Tabla 3–6 Formato de almacenamiento de la lista del perímetro 3.13 EJEMPLO GENÉRICO DE CÁLCULO DE DESCRIPTORES Las librerías diseñadas facilitan la labor de cálculo de los descriptores correspondientes a las distintas regiones que conforman una imagen. Para ello cabe representar un ejemplo significativo donde se aprecie el modo de actuación con los distintos métodos. const char * fileoriginal; //FILE : "Imagenes\\Test_GrayScale.bmp" const char * filesegmentation; //FILE : "Imagenes\\Test_Segmentation.bmp" const char * fileconfig; //FILE :"Caracteristicas.txt" int greylevel=1; int allRegiones=1; int neighbour=8; C_Matrix::IndexT whatcharact [C_Characteristic::NumCharactConfig]; C_Characteristic Cobject; C_Arguments argument (argc, argv, 1, 3, "lan", false); TestArguments(argument,argc, argv,&fileoriginal,&filesegmentation,&fileconfig,greylevel,allR egiones,neighbour); C_Trace ("Reading Characteristic..."); if (!C_Characteristic::ReadConfiguration(fileconfig,"rt",whatcharact)) C_Trace ("ERROR IN FILE CHARACTERISTIC...") Cobject.CalculateCharacteristic(fileoriginal,filesegmentation,whatcharact ,greylevel,allRegiones,neighbour); Cobject.SaveCharacteristic(allRegiones,whatcharact); Cobject.Clear(); Se puede apreciar la estructura simple que permite extraer un conjunto de descriptores seleccionados del archivo de configuración para efectuar los cálculos sobre las distintas características. Basta con seguir la secuencia siguiente especificada para los métodos definidos: 1. Lectura del archivo de configuración. 2. Calculo de los descriptores seleccionados. 109 Visión Artificial con IMtdi 3. Almacenamiento de los descriptores que han sido calculados con anterioridad. 4. Liberar memoria de los distintos objetos que han intervenido en el procedimiento. Procedimientos generales definidos • CalculateCharacteristic CalculateCharacteristic(const char * FileOrig,const char * FileSeg, C_Matrix::IndexT whatcharact [NumCharactConfig], const bool &greylevel, const bool &allRegiones, const int &neighbour) Calcula el conjunto de descriptores definido en whatcharact a partir del nombre del archivo de la imagen original FileOrig y el de la imagen segementada FileSeg.Además se le debe especificar si de los descriptores señalados se desean con o sin niveles de gris a través de greylevel, así como el análisis de todas las regiones o sólo la especificada en el archivo de configuración mediante allRegiones, además del tipo de vecindad en el cálculo a través de neighbour. • SaveCharacteristic SaveCharacteristic(const bool allRegiones, C_Matrix::IndexT whatcharact [NumCharactConfig]) Almacena las regiones en la estructura de cuatro archivos especificada en los apartados anteriores. Se debe establecer si son todas las regiones o solo la seleccionada en el archivo de configuración por allRegiones, así como el vector de configuraciones leídas. Procedimientos de acceso a los descriptores de región • c c(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor del descriptor de región referenciado mediante row y col. • car car(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor del descriptor de región a través del número de la región y la columna del descriptor al que pertenece. 110 Representación y descripción • carFirstRow carFirstRow() Devuelve la primera fila de la matriz perteneciente a los descriptores de región. • carLastRow carLastRow() Devuelve la última fila de la matriz perteneciente a los descriptores de región. • carFirstCol carFirstCol() Devuelve la primera columna de la matriz perteneciente a los descriptores de región. • carLastCol carLastCol() Devuelve la última columna de la matriz perteneciente a los descriptores de región. • carRowN carRowN() Devuelve el número de filas de la matriz perteneciente a los descriptores de región. • carColN carColN() Devuelve el número de columnas de la matriz perteneciente a los descriptores de región. Ejemplo //Acceso a Caracteristica por row y col C_TraceNum("Area",Cobject.c(1,C_Characteristic::Area)); //Acceso a Caracteristica por numero de region y col C_TraceNum("Area",Cobject.car(3,C_Characteristic::Area)); C_TraceNum("FirstRow",Cobject.carFirstRow()); C_TraceNum("FirstCol",Cobject.carFirstCol()); C_TraceNum("LastRow",Cobject.carLastRow()); C_TraceNum("LastCol",Cobject.carLastCol()); C_TraceNum("RowN",Cobject.carRowN()); 111 Visión Artificial con IMtdi C_TraceNum("Col",Cobject.carColN()); Procedimientos de acceso a los momentos tensoriales • m m(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor de cualquier momento referenciado mediante row y col. • mnt mnt(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor de cualquier momento a través del número de la región y la columna del descriptor al que pertenece. • mN mN(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor del momento ordinario referenciado mediante row y col. • mntN mntN(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor del momento ordinario a través del número de la región y la columna del descriptor al que pertenece. • mT mT(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a traslación referenciado mediante row y col. • mntT mntT(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a traslación a través del número de la región y la columna del descriptor al que pertenece. • mR mR(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a rotación referenciado mediante row y col. 112 Representación y descripción • mntR mntR(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a rotación a través del número de la región y la columna del descriptor al que pertenece. • mE mE(const C_Matrix::IndexT row, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a escalado referenciado mediante row y col. • mntE mntE(const C_Matrix::ElementT numregion, const C_Matrix::IndexT col) Devuelve el valor del momento invariante frente a escalado a través del número de la región y la columna del descriptor al que pertenece. • mntFirstRow mntFirstRow() Devuelve la primera fila de la matriz perteneciente a los descriptores de región. • mntLastRow mntLastRow() Devuelve la última fila de la matriz perteneciente a los descriptores de región. • mntFirstCol mntFirstCol() Devuelve la primera columna de la matriz perteneciente a los descriptores de región. • mntLastCol mntLastCol() Devuelve la última columna de la matriz perteneciente a los descriptores de región. • mntRowN mntRowN() 113 Visión Artificial con IMtdi Devuelve el número de filas de la matriz perteneciente a los descriptores de región. • mntColN mntColN() Devuelve el número de columnas de la matriz perteneciente a los descriptores de región. Ejemplo //Acceso a cualquier momento por row y col C_TraceNum("Momento",Cobject.m(1,3)); //Acceso a cualquier momento por numero de region y col C_TraceNum("Momento",Cobject.mnt(1,3)); //Acceso a momentos Ordinarios por row y M(p,q) C_TraceNum("Momento",Cobject.mN(3,0,1)); //Acceso a momentos Ordinarios por numero de region y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mntN(3,0,1)); //Acceso a momentos Invariantes a Traslaciones por row y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mT(3,0,1)); //Acceso a momentos Invariantes a Traslaciones por numero region y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mntT(3,0,1)); //Acceso a momentos Invariantes a Rotaciones por row y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mR(3,0,1)); //Acceso a momentos Invariantes a Rotaciones por numero de region y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mntR(3,0,1)); //Acceso a momentos Invariantes a Escalado por row y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mE(3,0,1)); //Acceso a momentos Invariantes a Escalado por numero de region y M(p,q) C_TraceNum("Momento(0,1)",Cobject.mntE(3,0,1)); C_TraceNum("FirstRow",Cobject.mntFirstRow()); C_TraceNum("FirstCol",Cobject.mntFirstCol()); C_TraceNum("LastRow",Cobject.mntLastRow()); C_TraceNum("LastCol",Cobject.mntLastCol()); C_TraceNum("RowN",Cobject.mntRowN()); C_TraceNum("Col",Cobject.mntColN()); Procedimientos de acceso a la lista de vecinos adyacentes • MapAdjacent MapAdjacent() Devuelve la lista de regiones con todos los vecinos adyacentes a cada una de ellas 114 Representación y descripción • ListAdjacentPlace ListAdjacentPlace(C_Matrix::ElementT numregion) Devuelve la lista de regiones adyacente a una región dada mediante numregion. Ejemplo //**** Lista de Adyacentes ******** C_Characteristic::MapNeighb mapvecinos; C_Characteristic::ListAdjacent listadj; mapvecinos = Cobject.MapAdjacent(); listadj = Cobject.ListAdjacentPlace(3); Procedimientos de acceso a los puntos del perímetro • MapPlacesPerimeter MapPlacesPerimeter() Devuelve la lista de todas las regiones con las listas de puntos del perímetro. • ListPerimeterPlace ListPerimeterPlace(C_Matrix::ElementT numregion) Devuelve la lista del puntos del perímetro para la región seleccionada mediante numregion. Ejemplo //**** Lista del Perimetro ******** C_Characteristic::MapPerimeter mapregiones; C_Characteristic::ListPerimeter listper; mapregiones = Cobject.MapPlacesPerimeter(); listper = Cobject.ListPerimeterPlace(3); Procedimientos de acceso a los nombres de los descriptores • CadNameCharact CadNameCharact(CadenaT cadname[MaxCharacteristic+1]) Devuelve el vector con los nombres de los descriptores de región con la salvedad de los momentos tensoriales. • NameCharact NameCharact(char *cad,C_Matrix::IndexT col) Devuelve el nombre de la característica referenciada por el número de columna de dicho vector. 115 Visión Artificial con IMtdi • StringMomentN StringMomentN(char *cad,C_Matrix::IndexT p,C_Matrix::IndexT q) Devuelve el nombre de los momentos ordinarios en función del orden p y q. • StringMomentT StringMomentT(char *cad,C_Matrix::IndexT p,C_Matrix::IndexT q) Devuelve el nombre de los momentos invariantes frente a traslaciones en función del orden p y q. • StringMomentR StringMomentR(char *cad,C_Matrix::IndexT p,C_Matrix::IndexT q) Devuelve el nombre de los momentos invariantes frente a rotaciones en función del orden p y q. • StringMomentE StringMomentE(char *cad,C_Matrix::IndexT p,C_Matrix::IndexT q) Devuelve el nombre de los momentos invariantes frente a escalado en función del orden p y q. Ejemplo //**** Array de Nombres de Caracteristicas ***** C_Characteristic::CadenaT cadname[C_Characteristic::MaxCharacteristic+1]; char name[MaxCadena]; Cobject.CadNameCharact(cadname); Cobject.NameCharact(name,C_Characteristic::Area); C_TraceStr("Name",name); //**** Nombre de Momentos ***** Cobject.StringMomentN(name,0,1); C_TraceStr("Name",name); Cobject.StringMomentT(name,0,0); C_TraceStr("Name",name); Cobject.StringMomentR(name,1,0); C_TraceStr("Name",name); Cobject.StringMomentE(name,1,1); C_TraceStr("Name",name); 116 4 Clasificación M. PERALTA Y J.A. PIEDRA 4.1 INTRODUCCIÓN El problema de la clasificación consiste básicamente en lograr una partición del espacio de características en regiones mutuamente excluyentes y en asignar a cada región una clase. Si un vector “pertenece” a una región del espacio de características, la forma a la que representa será asignada a dicha clase. Podemos dividir el conjunto de técnicas que forman parte del análisis de imágenes en tres fases fundamentales. En una primera fase (procesamiento a bajo nivel) se realizan la adquisición y el preprocesamiento de la imagen. La segunda fase (procesamiento a nivel intermedio) comprende la segmentación, representación y descripción de los resultados obtenidos en la primera fase. Los resultados anteriores constituyen la información de la que se sirve una tercera fase (procesamiento a alto nivel) para llevar a cabo las técnicas de clasificación (o reconocimiento) e interpretación de las que se obtienen los resultados finales. 4.2 PATRONES Y CLASES Un patrón es una descripción cuantitativa o estructural de un objeto o de alguna otra entidad de interés de una imagen. En general, un patrón está formado por una o más características (también denominadas descriptores). Las características son cualquier medida simbólica y/o numérica susceptible de ser calculada. Así por ejemplo, son características el color, el tamaño, etc. Estas pueden ser representadas por variables continuas o discretas. A su vez, definimos una clase como el conjunto de patrones que comparten los mismos atributos y cuyo fin en el reconocimiento de patrones es identificar características y obtener una buena medida de similaridad y asociatividad. 117 Visión Artificial con IMtdi [11]¿Qué es lo que realmente diferencia a los distintos patrones?. El objetivo principal en el reconocimiento de patrones o clasificación es distinguir entre diferentes patrones. Muchas de las aproximaciones al reconocimiento de patrones están basadas en el concepto de similaridad entre patrones. Por ejemplo, si un patrón, x, es muy similar a otro patrón que pertenece a la clase w1, intuitivamente clasificaríamos a x como perteneciente a la clase w1. Cuantificar la similaridad desarrollando medidas de similitud que den lugar a buenos clasificadores conlleva a menudo una gran dificultad. 4.3 EXTRACCIÓN DE CARACTERÍSTICAS [11]Cuando la imagen se encuentre segmentada se podrá realizar la extracción de características, proceso que no es inmediato ya que nos debemos plantear el conjunto de características que debemos calcular. Debemos tener presente que en la mayoría de los casos los patrones a analizar presentan cambios o desviaciones en comparación con el caso “ideal”. Por ejemplo, los humanos somos capaces de reconocer (clasificar) animales aunque estos aparezcan con variaciones de tamaño y en distintas posiciones. Para solucionar el problema se pueden calcular una serie de características invariantes. Por ejemplo, existen características como son los momentos o los descriptores de Fourier, mediante los cuales podemos trasladar el objeto de la imagen a clasificar a un dominio donde los nuevos datos que representan dichos objetos son invariantes a rotaciones, traslaciones y escalas. 4.4 SELECCIÓN DE CARACTERÍSTICAS La selección de características es una etapa en la que se intenta identificar aquellas características que realmente aportan información relevante para el proceso de clasificación, o dicho de otra forma, de todas aquellas características que pueden ser calculadas se seleccionarán un conjunto tal que las características que lo conformen mantengan la capacidad de clasificación. Para reconocer un grupo de objetos es necesario determinar aquellas características que permiten agrupar dichos objetos de manera que no se solapen las clases entre sí. Existen una serie de métodos de selección de características. Estos se clasifican en dos grandes grupos: 118 Clasificación • Deterministas Como la expansión de Karhunen-Loéve, el método de los discriminantes lineales de Ficher, etc. • Probabilistas Como el método de divergencia, la distancia de Bhattacharyya, la distancia de Mahalanobius, etc. 4.5 VECTOR DE CARACTERÍSTICAS Y ESPACIO DE CARACTERÍSTICAS Las características se presentan en vectores de características n-dimensionales, que pueden tener distintas representaciones. La representación vectorial del vector x es: x1 x 2 . x= . . xn Donde cada componente xi representa la i-ésima característica y n es el número total de características. Una forma equivalente es x=(x1, x2, ..., xn)T, donde T indica la transposición. Los vectores de características producen un espacio multidimensional o espacio de características. Si cada característica es un número real, el espacio de características es Rn. A menudo la clasificación es realizada particionando el espacio de características en regiones cada una perteneciente a una clase. 4.6 FRONTERAS Y REGIONES DE DECISIÓN [11]En una clasificación, el espacio de características se particiona en las regiones de decisión que representan gráficamente la zona de pertenencia a una clase. Estas regiones deben representar todo Rn y ser disjuntas, es decir, no debe de existir solapamiento entre dos regiones. Al borde de cada una de las regiones de decisión se le denomina frontera de decisión. Desde este punto de vista la clasificación del vector x es muy simple: determinamos la región de 119 Visión Artificial con IMtdi decisión donde x “cae”, y asignamos x a esa clase. Aunque esta estrategia de decisión es sencilla, la determinación de las regiones de decisión es una tarea compleja. 4.7 FUNCIONES DISCRIMINANTES [6]El diseño de numerosos clasificadores se basa en las funciones discriminantes o de decisión. Los métodos de decisión teórica para el reconocimiento se basan en la utilización de funciones de decisión. Dado un patrón x formado por n descriptores, para m clases de patrones, w1, w2, ..., wm, el problema del reconocimiento de patrones por decisión teórica consiste en encontrar m funciones de decisión d1(x), d2(x), ..., dm(x), que tengan la propiedad de que, si un patrón x pertenece a la clase wi, entonces: di(x)>dj(x) j= 1,2,…,m; j≠i Esto se puede entender como, dado un patrón desconocido x éste pertenece a la i-ésima clase de patrones si, al sustituir la x en todas las funciones de decisión, di(x) toma el mayor valor. La frontera de decisión que separa la clase wi de la wj, viene dada por los valores de x para los que di(x)= dj(x) o, lo que es lo mismo di(x)-dj(x) = 0- Normalmente se suele tomar la frontera de decisión entre dos clases de manera que sea la función dij = di(x)-dj(x) = 0 De esta forma, dij(x)>0 para los patrones de la clase wi y dij(x)<0 para los patrones de la clase wj. Clasificador de la mínima distancia [6]Supongamos que cada clase de patrones está representada por un vector prototipo: mj = 1 Nj ∑x j = 1,2,..., m x∈w j donde Nj es el número de patrones vectoriales de la clase wj y la suma se realiza para todos los vectores. Una forma de determinar la pertenencia a una clase de patrón vectorial desconocido x consiste en asignarlo a la clase del prototipo más próximo. Si se utiliza la distancia euclídea para determinar el grado de proximidad, se reduce el problema del cálculo de medidas de distancia: 120 Clasificación D j ( x) = x − m j j = 1,2,..., m donde ||a|| = (aT a)1/2 es la norma de Euclides. Si Di(x) es la menor distancia, entonces se asigna el patrón x a la clase wi. Una formulación similar a la anteriormente expuesta es: 1 d j ( x) = x T m j − m Tj m j 2 j = 1,2,..., m entonces se asigna x a la clase wj si di(x) toma el mayor valor numérico. Esta formulación hace referencia al concepto de decisión establecido anteriormente. La frontera de decisión entre clases wi y wj para un clasificador de mínima distancia es: d ij ( x) = d i ( x) − d j ( x) = x T (mi − m j ) − 1 (mi − m j )T (m − m j ) = 0 2 La superficie dada por esta ecuación es el bisector perpendicular a la línea que une mi y mj. Para n=2, el bisector perpendicular es una línea, para n=3 es un plano, y para n>3 un hiperplano. En la práctica, el clasificador de mínima distancia funciona bien cuando la distancia entre los promedios es grande en comparación con las variaciones de los elementos de cada clase con respecto a su media. En la Figura 4–1 observamos un ejemplo de reconocimiento de dos tipos de objetos. Para el objeto triángulo la mínima distancia a la media de cada conjunto de objetos es di(x), por lo que podemos decir que pertenece (está más próximo) a los cilindros que a los círculos concéntricos. Figura 4–1 Gráfica bidimensional de la clasificación de dos patrones mediante dos descriptores 121 Visión Artificial con IMtdi 4.7.1 Identificación de clases o aprendizaje Para el proceso de identificación de clases es necesario disponer de una muestra lo suficientemente grande para que nos permita poder enmarcar a una forma dentro de una única clase de manera unívoca. Los métodos de identificación se clasifican en dos tipos que son: • Supervisados En una clasificación supervisada un operador que conoce la verdadera asignación de las clases instruye al ordenador. • No supervisados En el caso de los no supervisados, dado un conjunto de muestras pertenecientes a clases que el operador ignora, la misión del identificador consistirá en diseñar la mejor distribución de las clases, de tal modo que las muestras de las mismas cumplan determinadas reglas de afinidad. Uno de los métodos de clasificación no supervisada más conocida es el análisis cluster. El análisis cluster es un procedimiento para detectar agrupaciones de datos. Este análisis es similar al análisis discriminante en un aspecto, el investigador busca clasificar un conjunto de objetos en grupos o categorías, sin embargo, en el análisis cluster se parte desconociendo el grupo de elementos y a menudo el número de grupos. 4.8 TIPOS DE CLASIFICADORES [3,6]Existen tres tipos de procedimientos de clasificación: • Clasificadores estadísticos Hacen uso de las propiedades estadístisticas de la distribución de los patrones. En este caso las clases son caracterizadas mediante una familia de densidades de probabilidad, las cuales, a priori, se suponen conocidas. De esta forma es posible calcular las probabilidades de pertenencia de un vector dado a cada una de las clases existentes. Todos los clasificadores de este tipo están basados en el Teorema de Bayes y se les denomina, por ello, bayesianos. 122 Clasificación • Clasificadores de distribuciones En este caso las clases son caracterizadas a través de una familia de funciones discriminantes. Dada una función discriminante ideal (permite clasificadores libres de error), se intenta aproximar la función ideal mediante miembros de la familia original. • Clasificadores no paramétricos En este caso no es necesario ningún conocimiento de las densidades de probabilidad ni de funciones discriminantes. Un ejemplo importante de este tipo de clasificadores lo constituye la regla del vecino más próximo, la cual asigna una forma desconocida a aquella clase que contiene el vector de características que menos dista (en el sentido de distancia euclídea) del correspondiente a la forma dada. 4.9 APROXIMACIONES AL RECONOCIMIENTO DE PATRONES [6,16] Existen tres grandes grupos de técnicas utilizadas en la etapa de clasificación/identificación de todo sistema de reconocimiento de patrones: • Enfoque estadístico Utiliza técnicas estadísticas que hacen uso de las propiedades estadísticas de la distribución de los patrones. La idea de estas técnicas es la de conseguir que la clasificación conlleve la probabilidad más baja de error posible. El clasificador en el que se basan estas técnicas es el de Bayes, y puede ser aplicado a distintas distribuciones entre las clases, obteniendo clasificadores especializados (gaussianos, binomiales, etc.). • Enfoque estructural Las técnicas estructurales se caracterizan por usar como valores de los patrones información no numérica, estructurada en forma de cadenas. Un ejemplo de este tipo de técnicas lo tenemos en los reconocedores sintácticos de patrones. Esta técnica consiste en la especificación de un conjunto de primitivas de patrones, un conjunto de reglas de manipulación de símbolos, que conforman una gramática, y un autómata reconocedor que, gobernado por ésta, reconoce cadenas de 123 Visión Artificial con IMtdi características estructurales que componen un patrón. Estos clasificadores resultan útiles cuando el factor de discriminación entre patrones depende de la estructura de la información en el patrón. • Enfoque neuronal A diferencia de los clasificadores estadísticos, en los modelos neuronales no se hacen suposiciones acerca de la distribución estadística de los patrones en las clases. El sistema constituido por una red neuronal es capaz de realizar su función mediante un proceso de aprendizaje en el que se muestran a la red patrones de entradas o de entradas/salidas y mediante un algoritmo se modifican las interconexiones entre distintas neuronas. Tomadas desde el punto de vista de la clasificación estadística, las redes neuronales son clasificadores no paramétricos. Los sistemas de computación neuronales son útiles cuando el problema maneja un conocimiento escaso, cambiante y variable en el tiempo. Las técnicas neuronales de clasificación de patrones convencionales proporcionan niveles de precisión superiores a las técnicas tradicionales, especialmente cuando se usan conjuntos de datos complicados, como por ejemplo, series temporales de imágenes. 4.10 EJEMPLOS [14]La herramienta utilizada para la presentación de este ejemplo es el SPSS versión 10.0, aplicación matemática que posee la funcionalidad de clasificar los distintos resultados obtenidos mediante la especificación de un conjunto de patrones. El SPSS ofrece dos métodos para agrupar objetos en categorías: • Conglomerados jerárquicos En este método se comienza buscando el par de objetos que se encuentre más cercano y los combina para formar un grupo. El algoritmo continúa paso a paso uniendo pares de objetos, pares de grupos o un objeto con un grupo hasta que todos los datos aparecen en un grupo. Todos los pasos se visualizan en un gráfico (dendograma). El método es jerárquico debido a que una vez que dos objetos o grupos son unidos, permanecen juntos hasta la última etapa. Es decir, un grupo formado en una etapa del análisis contiene grupos de etapas anteriores. 124 Clasificación • Conglomerados de K-medias Este procedimiento comienza utilizando los valores de los primeros k casos contenidos en el archivo de datos como una estimación temporal de medias de los k grupos, donde k es el número de grupos especificado por el usuario. El centro del grupo inicial se calcula asignando cada caso, uno a uno, al grupo con el centro más cercano para posteriormente actualizar dichos centros. Entonces se utiliza un proceso iterativo para encontrar el centro del grupo final. En cada paso, los casos son agrupados en el grupo con el centro más cercano, y el centro del grupo es de nuevo calculado. Este proceso continua hasta que no se realizan más cambios en los centros o hasta que se ejecuta el número máximo de iteraciones. El usuario puede especificar los centros de los grupos. El método de los conglomerados de las K-medias es útil cuando se posee un gran número de casos (200 o más). La principal diferencia entre los dos métodos anteriores es que a nivel de computación y de presentación de los resultados el método de los conglomerados de las K-medias se utiliza cuando el número de casos es grande, mientras que el método de los conglomerados jerárquicos es utilizado en caso contrario. En los ejemplos presentados a continuación estudiaremos los distintos resultados que se obtienen a partir un conjunto de datos, una vez que éstos son sometidos a una clasificación siguiendo el método de conglomerados jerárquicos. 4.10.1 Imágenes Conjunto de imágenes que corresponden a fichas de ajedrez, en concreto imágenes de las figuras: Peón, Alfil, Torre, Caballo, Reina y Rey. Se han tomado vistas laterales de las mismas para ser reconocidas. Estas serán mostradas en el siguiente apartado. Figura-Alfil Figura 4–2 Alfil 1 (50%). (Color | Gris | Umbralizado 155-255) 125 Visión Artificial con IMtdi Figura 4–3 Alfil 2 (45%). (Color | Gris | Umbralizado 155-255) Figura 4–4 Alfil 3 (65%). (Color | Gris | Umbralizado 155-255) Figura 4–5 Alfil 3 (72%). (Color | Gris | Umbralizado 155-255) Figura-Caballo Figura 4–6 Caballo Lateral 1 (61%). (Color | Gris | Umbralizado 155-255) 126 Clasificación Figura 4–7 Caballo Lateral 2 (65%). (Color | Gris | Umbralizado 155-255) Figura 4–8 Caballo Lateral 3 (76%). (Color | Gris | Umbralizado 155-255) Figura 4–9 Caballo Lateral 4 (76%). (Color | Gris | Umbralizado 155-255) Figura Peón Figura 4–10 Peón 1 (65%). (Color | Gris | Umbralizado 155-255) 127 Visión Artificial con IMtdi Figura 4–11 Peón 2 (71%). (Color | Gris | Umbralizado 155-255) Figura 4–12 Peón 3 (68%). (Color | Gris | Umbralizado 155-255) Figura 4–13 Peón 4 (68%). (Color | Gris | Umbralizado 155-255) Figura Reina Figura 4–14 Reina 1 (68%). (Color | Gris | Umbralizado 155-255) 128 Clasificación Figura 4–15 Reina 2 (67%). (Color | Gris | Umbralizado 155-255) Figura 4–16 Reina 3 (47%). (Color | Gris | Umbralizado 155-255) Figura 4–17 Reina 4 (50%). (Color | Gris | Umbralizado 155-255) Figura Rey Figura 4–18 Rey 1 (44%). (Color | Gris | Umbralizado 155-255) 129 Visión Artificial con IMtdi Figura 4–19 Rey 2 (47%). (Color | Gris | Umbralizado 155-255) Figura 4–20 Rey 3 (65%). (Color | Gris | Umbralizado 155-255) Figura 4–21 Rey 4 (71%). (Color | Gris | Umbralizado 155-255) Figura 4–22 Rey Lateral 1 (47%). (Color | Gris | Umbralizado 155-255) 130 Clasificación Figura 4–23 Rey Lateral 2 (47%). (Color | Gris | Umbralizado 155-255) Figura 4–24 Rey Lateral 3 (70%). (Color | Gris | Umbralizado 155-255) Figura 4–25 Rey Lateral 4 (70%). (Color | Gris | Umbralizado 155-255) Figura-Torre Figura 4–26 Torre 1 (62%). (Color | Gris | Umbralizado 155-255) 131 Visión Artificial con IMtdi Figura 4–27 Torre 2 (64%). (Color | Gris | Umbralizado 155-255) Figura 4–28 Torre 3 (88%). (Color | Gris | Umbralizado 155-255) Figura 4–29 Torre 4 (92%). (Color | Gris | Umbralizado 155-255) EJEMPLOS DE RECONOCIMIENTO DE FIGURAS: Figura 4–30 Imagen 1 (18%). (Color | Gris | Umbralizado 155-255) Figura 4–31 Imagen 2 (32%). (Color | Gris | Umbralizado 155-255) 132 Clasificación Figura 4–32 Imagen 3 (23%). (Color | Gris | Umbralizado 155-255) Figura 4–33 Imagen 4 (18%). (Color | Gris | Umbralizado 155-255) Figura 4–34 Imagen 5 (21%). (Color | Gris | Umbralizado 155-255) 4.10.2 Fases de procesado previas a la clasificación 1. Adquisición de la imagen con una cámara digital. Obtenemos una imagen en color y formato JPEG. 2. Conversión de la imagen a BMP y niveles de gris mediante el Paint Shop Pro 4.0. No se aplicó ningún tipo de filtro ya que las imágenes han sido tomadas con flash sobre fondo negro. Lo que se persigue es el resaltado de los contornos de las distintas figuras. 3. Segmentación aplicando el método de umbralizado. 4. Extracción de las características de la imagen. 5. Inclusión de las características obtenidas en una hoja de cálculo. 6. Etiquetado de cada una de las regiones. 7. Aplicación de un método de clasificación de conglomerados jerárquicos haciendo uso del SPSS. 4.10.3 Ejemplo 1 En este ejemplo, utilizaremos los datos y las variables que aparecen en las tablas que se muestran a continuación. Los descriptores pertenecen a los siete invariantes de Hu y la extracción se ha llevado a cabo sin tener en cuenta los niveles de gris de las imágenes. 133 Visión Artificial con IMtdi Etiqueta Imagen invHu1 InvHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Alfil 1 0,39834 0,11672 0,0019696 0,0039255 -7,31E-05 0,001341 -1,75E-05 Alfil 2 0,40987 0,12516 0,0024978 0,0047292 -0,00010377 0,0016725 -2,59E-05 Alfil 3 0,43012 0,14162 0,0030304 0,0054538 -0,00012968 0,0020522 -3,33E-05 Alfil 4 0,44062 0,15027 0,0040056 0,0067675 -0,00018098 0,0026213 -4,98E-05 invHu6 invHu7 Tabla 4–1 Grupo de descriptores para el Alfil Etiqueta Imagen invHu1 invHu2 invHu3 invHu4 invHu5 C_Lateral 1 0,31611 0,062073 0,00013827 0,00012038 -1,77E-08 2,85E-05 -9,63E-09 C_Lateral 2 0,30511 0,055511 9,66E-05 7,47E-05 -7,05E-09 1,57E-05 -4,86E-09 C_Lateral 3 0,31191 0,05984 0,00017504 0,00017419 -4,44E-08 4,04E-05 -1,97E-08 C_Lateral 4 0,30335 0,054713 0,00013703 0,0001178 -2,69E-08 2,41E-05 -1,32E-08 Tabla 4–2 Grupo de descriptores para el Caballo lateral Etiqueta Imagen invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 0,00152 -2,62E-05 Peon 1 0,38355 0,099283 0,0022692 0,0048254 -0,00011006 Peon 2 0,38912 0,10214 0,002484 0,0053291 -0,00013382 0,0017009 -3,11E-05 Peon 3 0,38582 0,10094 0,0022497 0,0048342 -0,00011282 0,0015351 -2,62E-05 Peon 4 0,38658 0,10134 0,0023214 0,0049563 -0,00011849 0,0015772 -2,77E-05 Tabla 4–3 Grupo de descriptores para el Peón Etiqueta Imagen invHu1 invHu2 invHu3 invHu4 invHu5 invHu7 Reina 1 0,50216 0,20325 0,0041299 0,0065167 -0,00017792 0,0029376 -4,69E-05 Reina 2 0,49893 0,0041961 0,0070349 -0,0001977 0,0031408 -5,38E-05 Reina 3 0,50771 0,20883 0,0054945 0,0086853 -0,00028219 0,0039652 -8,12E-05 Reina 4 0,50688 0,20617 0,0056849 0,0088165 -0,00026325 0,0040018 -8,34E-05 0,1997 Tabla 4–4 Grupo de descriptores para la Reina 134 invHu6 Clasificación Etiqueta Imagen invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 R_Frente 1 0,57092 0,27695 0,0077493 0,010803 -0,00033732 0,0056847 -0,00012458 R_Frente 2 0,57263 0,27686 0,0084659 0,012434 -0,00058581 0,0065407 -0,00016717 R_Frente 3 0,57521 0,01199 -0,00054593 0,0063441 -0,00015549 R_Frente 4 0,55814 0,26232 0,0066408 0,0096114 -0,0002798 0,0049224 -9,93E-05 R_Lateral 5 0,54151 0,23961 0,013552 0,019157 -0,0011697 0,009375 -0,00039079 R_Lateral 6 0,57282 0,2721 0,016349 0,022245 -0,0014175 0,011602 -0,00052207 R_Lateral 7 0,56801 0,26751 0,012071 0,016981 -0,00085712 0,008781 -0,00030509 R_Lateral 8 0,54046 0,23929 0,011473 0,016605 -0,00091613 0,008121 -0,00029507 0,2801 0,008109 Tabla 4–5 Grupo de descriptores para el Rey Etiqueta Imagen invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Torre 1 0.31312 0.061029 0.00055797 0.0013326 -9,48E-02 0.00032918 -2,07E-02 Torre 2 0.31599 0.06334 0.00060203 0.0014321 -1,08E-01 0.0003604 -2,37E-02 Torre 3 0.30974 0.059925 0.00040993 0.0010951 -6,82E-02 0.00026805 -1,40E-02 Torre 4 0.31489 0.063026 0.00042913 0.0010836 -6,27E-02 0.00027199 -1,36E-02 Tabla 4–6 Grupo de descriptores para la Torre Etiqueta Región invHu1 invHu2 invHu3 InvHu4 invHu5 invHu6 invHu7 Rey_Lateral 1 0.54164 0.24129 0.010828 0.015449 -0.00088485 0.0075884 -0.00025965 Reina 2 0.52294 0.22375 0.0063574 0.0093942 -0.00027976 0.0044424 -9,38E-01 Alfil 3 0.43188 0.1433 0.0038594 0.0064907 -0.00016962 0.0024566 -4,76E-01 Caballo_Lat 4 0.30928 0.058699 0.00010621 7,65E-01 -2,00E-05 1,65E-01 -3,32E-05 Torre 5 0.31171 0.061406 0.00041914 0.00099025 -4,90E-02 0.00024524 -1,11E-02 Peon 6 0.38041 0.096059 -0.00011704 0.0015688 -2,84E-01 0.0023838 0.0050653 Tabla 4–7 Grupo de descriptores para la imagen 1 de reconocimiento de figuras Etiqueta Región invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Reina 1 0.48447 0.18533 0.0031486 0.005677 -0.00013599 0.0024418 -3,54E-01 Caballo_Lat 2 0.2988 0.052451 0.00010089 6,53E-01 -2,26E-05 1,42E-01 -2,86E-05 Torre 3 0.29681 0.051878 0.00023902 0.00076429 -3,90E-02 0.00017407 -7,04E-03 Peon 4 0.35112 0.075195 0.00096574 0.0030309 -5,75E-01 0.00083104 -1,09E-01 Peon 5 0.35992 0.08105 0.0011269 0.0033193 -6,85E-01 0.00094496 -1,33E-01 Peon 6 0.35535 0.079364 0.0010806 0.0030859 -5,65E-01 0.00086857 -1,09E-01 Tabla 4–8 Grupo de descriptores para la imagen 2 de reconocimiento de figuras 135 Visión Artificial con IMtdi Etiqueta Región invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Rey_Frente 1 0.54219 0.24397 0.0053288 0.0083959 -0.00030322 0.0041467 -7,79E-01 Reina 2 0.48454 0.18566 0.0032711 0.0058072 -0.00014219 0.0025003 -3,70E-01 Alfil 3 0.4148 0.1287 0.0027082 0.0051204 -0.00011502 0.0018369 -2,98E-01 Caballo_Lat 4 0.29764 0.051815 0.00010986 7,61E-01 -3,20E-05 1,61E-01 -3,86E-06 Torre 7 0.29906 0.052271 0.00025911 0.00085742 -4,70E-02 0.00019547 -8,17E-03 Peon 8 0.3638 0.0036033 -7,66E-01 0.0010502 0.085187 0.0013636 -1,48E-01 Tabla 4–9 Grupo de descriptores para la imagen 3 de reconocimiento de figuras Etiqueta Región invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Caballo_Lat 1 0.29437 0.049368 0.00017672 0.00023443 4,60E-04 4,86E-01 1,95E-05 Torre 2 0.32028 0.064301 0.0016203 0.00029233 1,19E-03 6,92E-01 -1,93E-04 Rey_Frente 3 0.56771 0.27188 0.017022 0.0089403 9,94E-02 0.0046611 -3,07E-01 Reina 5 0.52884 0.22725 0.010103 0.00435 2,83E-01 0.002069 4,13E-02 Alfil 6 0.43157 0.14337 0.011407 0.005597 3,66E-01 0.0021192 1,45E-02 Peon 7 0.39848 0.10025 0.010258 0.0021238 8,16E-02 0.00067203 2,18E-02 Tabla 4–10 Grupo de descriptores para la imagen 4 de reconocimiento de figuras Etiqueta Región invHu1 invHu2 invHu3 invHu4 invHu5 invHu6 invHu7 Rey_Frente 1 0.55028 0.25356 0.005855 0.0088109 -0.00024946 0.0044359 -8,48E-01 Reina 2 0.49442 0.19506 0.0034009 0.0059782 -0.00014704 0.0026374 -3,89E-01 Caballo_Lat 3 0.30793 0.057427 0.00010737 7,72E-01 -5,90E-05 1.72e-05 -5,59E-05 Caballo_Lat 4 0.30542 0.055946 0.0001399 0.00012488 -1,95E-04 2,80E-01 -9,97E-05 Torre 6 0.29713 0.052098 0.00022336 0.0007379 -3,74E-02 0.00016841 -6,60E-03 Peon 7 0.38306 0.097623 0.0018533 0.0043576 -9,91E-01 0.0013615 -2,23E-01 Peon 8 0.37094 0.089314 0.0013422 0.0035837 -7,40E-01 0.0010704 -1,49E-01 Peon 9 0.35696 0.079292 0.0010386 0.0031534 -6,10E-01 0.00088766 -1,17E-02 Peon 10 0.36229 0.083772 0.0012258 0.0033738 -6,62E-01 0.00097525 -1,29E-01 Tabla 4–11 Grupo de descriptores para la imagen 5 de reconocimiento de figuras Una vez seleccionadas las opciones Analizar, Clasificar y Conglomerados Jerárquicos y situados en la pantalla Análisis de Conglomerado Jerárquico, seleccionaremos las siete variables correspondientes a los momentos invariantes de Hu y la variable que nos permitirá etiquetar cada uno de los casos. La figura muestra la configuración final de esta pantalla. 136 Clasificación Figura 4–35 Pantalla del análisis de conglomerados jerárquicos para el SPSS En la pantalla a la que accedemos tras seleccionar la opción Método podemos especificar la medida de distancia utilizada que para este caso es la distancia Euclidea al cuadrado y el método de conglomeración siendo este la vinculación inter-grupos tal y como muestra la pantalla de la Figura 4–36. Figura 4–36 Pantalla de métodos de conglomeración del SPSS Posteriormente se seleccionará la opción Estadísticos, en ella obtendremos: • Matriz de distancias Muestra las distancias calculadas. 137 Visión Artificial con IMtdi • Conglomerado de pertenencias Donde se muestra la pertenencia a los grupos para un rango de grupos posibles. En nuestro caso los datos introducidos para esta pantalla son los que muestra la pantalla de la figura.... Figura 4–37 Pantalla de estadísticos del SPSS Por último y a partir de la pantalla de Análisis de conglomerados jerárquico seleccionaremos la opción de Gráficos donde se nos da la opción de visualizar el Dendograma, tal y como nos muestra la pantalla. Figura 4–38 Pantalla de gráficos del SPSS Cabe destacar un aspecto clave a la hora de interpretar el dendograma, lo que prima es que secuencialmente se puedan leer diferenciadas las distintas clases o grupos de objetos del mismo tipo independiente de la agrupación inicial. Es decir, puede haber clases con rangos de valores para un descriptor bien diferenciados, pero con una distancia de separación entre sí muy pequeña, entonces el SPSS los engloba juntos pero secuencialmente no están revueltos. Una vez seleccionadas todas las opciones se procede a la descripción de los distintos resultados en función del conjunto de datos tomados. 138 Clasificación Resultados teniendo en cuenta sólo los patrones En este apartado se han tenido en cuenta sólo las seis primeras tablas donde se encuentra los distintos patrones de los objetos a los que referencia. Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 2 4:Alfil 2 2 2 5:C_Lateral 3 3 3 6:C_Lateral 3 3 3 7:C_Lateral 3 3 3 8:C_Lateral 3 3 3 9:Peon 4 1 1 10:Peon 4 1 1 11:Peon 4 1 1 12:Peon 4 1 1 13:Reina 5 4 4 14:Reina 5 4 4 15:Reina 5 4 4 16:Reina 5 4 4 17:R_Frente 6 5 5 18:R_Frente 6 5 5 19:R_Frente 6 5 5 20:R_Frente 6 5 5 21:R_Lateral 7 6 6 22:R_Lateral 6 5 5 23:R_Lateral 6 5 5 24:R_Lateral 7 6 6 25:Torre 8 7 7 26:Torre 8 7 7 27:Torre 9 8 7 28:Torre 9 8 7 En la tabla del conglomerado de pertenencias cada una de las columnas representa el conjunto de conglomerados obtenidos para un número de grupos predefinidos. Se observan los siguientes resultados en función de la columna a analizar: 139 Visión Artificial con IMtdi • Columna de 7 conglomerados La separación de los grupos en 7 es bastante buena con la salvedad del alfil que se separa perteneciendo al grupo de los peones. Así como, el rey se subdivide en dos grupos 5 y 6. El resto de figuras se mantienen perfectamente agrupadas. • Columna de 8 conglomerados Para la separación en 8 grupos los valores descritos para los conglomenrados anteriores se mantienen, cabe destacar la subdivisión en dos subgrupos del grupo correspondiente a la figura de la torre. • Columna de 9 conglomerados En una separación en 9 grupos la clasificación mejora ya que se elimina la pertenencia del alfil al grupo del peón quedando este subdividido en dos grupos. La mejor clasificación para este ejemplo concreto es tomar un máximo de 9 conglomerados ya que no mezcla patrones entre sí. 140 Clasificación Dendograma Se puede apreciar que a través del dendograma la separación entre los distintos patrones es bastante buena. Como se definió con anterioridad lo que prima en el dendograma es la secuencialidad y no tanto los distintos grupos que establece. Hay que destacar en función de lo comentado que la unión en el dibujo del peón junto a un subconjunto de alfiles no implica que el descriptor no funcione correctamente sino todo lo contrario, ya que secuencialmente se pueden leer separados ambos grupos, es decir, no existen elementos de un grupo intercalados con los elementos del siguiente. Resultados teniendo en cuenta los patrones y la imagen 1 del reconocimiento de figuras En este apartado, así como en los sucesivos se emplea de base las seis primeras tablas donde se encuentran los distintos patrones de los objetos a los que referencia y una de las imágenes del reconocimiento de figuras para dificultar un poco más la labor de clasificación. 141 Visión Artificial con IMtdi Conglomerado de pertenencia Caso 142 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 3 18:R_Frente 4 4 3 19:R_Frente 4 4 3 20:R_Frente 4 4 3 21:R_Lateral 4 4 3 22:R_Lateral 4 4 3 23:R_Lateral 4 4 3 24:R_Lateral 4 4 3 25:Torre 5 2 2 26:Torre 5 2 2 27:Torre 5 2 2 28:Torre 5 2 2 29:Rey_Lateral 4 4 3 30:Reina 6 5 4 31:Alfil 7 6 5 32:Caballo_Lat 8 7 6 33:Torre 5 2 2 34:Peon 9 8 7 Clasificación La agrupación para los distintos conglomerados es muy similar variando entre ellos la numeración. Cabe destacar la división en 9 grupos donde se refleja como característica a reflejar una unión entre los peones y los alfiles. Las figuras 30, 31, 32 y 34 se encuentran agrupadas en diferentes conglomerados con respecto a sus patrones. Dendograma El dendograma clasifica bien salvo los últimos cuatro elementos a los que engloba como elementos distintos del gráfico. En cuanto a la secuencialidad para el resto de los elementos se observa una buena funcionalidad ya que no hay intercalados elementos de patrones disjuntos. 143 Visión Artificial con IMtdi Resultados teniendo en cuenta los patrones y la imagen 2 del reconocimiento de figuras Conglomerado de pertenencia Caso 144 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 3 18:R_Frente 4 4 3 19:R_Frente 4 4 3 20:R_Frente 4 4 3 21:R_Lateral 4 4 3 22:R_Lateral 4 4 3 23:R_Lateral 4 4 3 24:R_Lateral 4 4 3 25:Torre 5 2 2 26:Torre 5 2 2 27:Torre 5 2 2 28:Torre 5 2 2 29:Reina 6 5 4 30:Caballo_Lat 7 6 5 31:Torre 5 2 2 32:Peon 8 7 6 33:Peon 9 8 7 Clasificación 34:Peon 8 7 6 Se produce una agrupación entre los grupos del peón y el alfil, así como, se encuentran fuera de lugar las últimas figuras. Dendograma Para el gráfico expuesto se observa que se encuentran fuera de lugar la reina 29 los tres peones y el caballo lateral 30. Esto implica una mayor imperfección en la clasificación de los objetos con los descriptores seleccionados y el método escogido. 145 Visión Artificial con IMtdi Resultados teniendo en cuenta los patrones y la imagen 3 del reconocimiento de figuras Conglomerado de pertenencia Caso 146 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 3 3 18:R_Frente 4 3 3 19:R_Frente 4 3 3 20:R_Frente 4 3 3 21:R_Lateral 4 3 3 22:R_Lateral 4 3 3 23:R_Lateral 4 3 3 24:R_Lateral 4 3 3 25:Torre 2 2 2 26:Torre 2 2 2 27:Torre 2 2 2 28:Torre 2 2 2 29:Rey_Frente 5 4 4 30:Reina 6 5 5 31:Alfil 7 6 5 32:Caballo_Lat 8 7 6 33:Torre 2 2 2 Clasificación 34:Peon 9 8 7 Centrándonos en el conglomerado 9 podemos observar la agrupación entre los patrones de peón y alfil ó caballo lateral y torre. No obstante se contemplan las figuras fuera de lugar como son 29, 30, 31, 32 y 34. Dendograma En esta gráfica se puede observar que las figuras mal situadas son la reina 30, el alfil 31, el Peón 34 y el caballo lateral 32. El resto de grupos mantiene su secuencialidad en el dibujo. 147 Visión Artificial con IMtdi Resultados teniendo en cuenta los patrones y la imagen 4 del reconocimiento de figuras Conglomerado de pertenencia Caso 148 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 1 6:C_Lateral 2 2 1 7:C_Lateral 2 2 1 8:C_Lateral 2 2 1 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 2 14:Reina 3 3 2 15:Reina 3 3 2 16:Reina 3 3 2 17:R_Frente 3 3 2 18:R_Frente 3 3 2 19:R_Frente 3 3 2 20:R_Frente 3 3 2 21:R_Lateral 3 3 2 22:R_Lateral 3 3 2 23:R_Lateral 3 3 2 24:R_Lateral 3 3 2 25:Torre 2 2 1 26:Torre 2 2 1 27:Torre 2 2 1 28:Torre 2 2 1 29:Caballo_Lat 4 4 3 30:Torre 5 5 4 31:Rey_Frente 6 6 5 32:Reina 7 7 6 33:Alfil 8 8 7 Clasificación 34:Peon 9 1 1 Para este ejemplo y basándonos en la primera columna de resultados se observa la agrupación entre alfil y peón ó caballo lateral y torre ó reina y rey. Las figuras 29-34 se encuentran fuera de lugar. Dendograma Para este caso las figuras mal situadas son el peón 29, la reina 32, el alfil 33, el caballo lateral 29 y la torre 30. Al igual que antes el resto de patrones mantiene la correspondiente secuencialidad con el resto de grupos. 149 Visión Artificial con IMtdi Resultados teniendo en cuenta los patrones y la imagen 5 del reconocimiento de figuras Conglomerado de pertenencia Caso 150 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 1 1 1 6:C_Lateral 1 1 1 7:C_Lateral 1 1 1 8:C_Lateral 1 1 1 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 2 2 1 14:Reina 2 2 1 15:Reina 2 2 1 16:Reina 2 2 1 17:R_Frente 2 2 1 18:R_Frente 2 2 1 19:R_Frente 2 2 1 20:R_Frente 2 2 1 21:R_Lateral 2 2 1 22:R_Lateral 2 2 1 23:R_Lateral 2 2 1 24:R_Lateral 2 2 1 25:Torre 1 1 1 26:Torre 1 1 1 27:Torre 1 1 1 28:Torre 1 1 1 29:Rey_Frente 3 3 2 30:Reina 4 4 3 31:Caballo_Lat 5 5 4 32:Caballo_Lat 6 6 5 33:Torre 1 1 1 Clasificación 34:Peon 7 7 6 35:Peon 8 8 7 36:Peon 9 8 7 37:Peon 8 8 7 Las agrupaciones generadas en la tabla de conglomerados de pertenencias con respecto a la primera columna de resultados son: peón-caballo-alfil-torre; reina-rey. Las figuras fuera de lugar son 29-32 y los peones 34-37. Dendograma Se observa la separación del grupo del peón en dos subgrupos, así como también se visualiza una irregularidad en cuanto a la secuencialidad para las siguientes figuras caballo lateral 31,32, reina 30 y rey de frente 29. 151 Visión Artificial con IMtdi 4.10.4 Ejemplo 2 En el siguiente ejemplo estudiaremos el poder de clasificación de los momentos invariantes de Hu. En este caso se han mantenido los mismos parámetros para la clasificación que en el ejemplo anterior y únicamente se han reducido el número de variables seleccionadas, los momentos seleccionados serán del 1 al 5. 152 Clasificación Resultados teniendo en cuenta sólo los patrones Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 2 4:Alfil 2 2 2 5:C_Lateral 3 3 3 6:C_Lateral 3 3 3 7:C_Lateral 3 3 3 8:C_Lateral 3 3 3 9:Peon 4 1 1 10:Peon 4 1 1 11:Peon 4 1 1 12:Peon 4 1 1 13:Reina 5 4 4 14:Reina 5 4 4 15:Reina 5 4 4 16:Reina 5 4 4 17:R_Frente 6 5 5 18:R_Frente 6 5 5 19:R_Frente 6 5 5 20:R_Frente 6 5 5 21:R_Lateral 7 6 6 22:R_Lateral 6 5 5 23:R_Lateral 6 5 5 24:R_Lateral 7 6 6 25:Torre 8 7 7 26:Torre 8 7 7 27:Torre 9 8 7 28:Torre 9 8 7 Es prácticamente igual que el descrito para el ejemplo anterior. 153 Visión Artificial con IMtdi Dendograma El utilizar en vez de los 7 invariantes de Hu solo los 5 primeros y manteniendo el mismo método no produce modificación alguna sobre este dendograma. 154 Clasificación Resultados teniendo en cuenta los patrones y la imagen 1 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 2 4:Alfil 2 2 2 5:C_Lateral 3 3 3 6:C_Lateral 3 3 3 7:C_Lateral 3 3 3 8:C_Lateral 3 3 3 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 4 4 4 14:Reina 4 4 4 15:Reina 4 4 4 16:Reina 4 4 4 17:R_Frente 5 5 5 18:R_Frente 5 5 5 19:R_Frente 5 5 5 20:R_Frente 5 5 5 21:R_Lateral 6 6 4 22:R_Lateral 5 5 5 23:R_Lateral 5 5 5 24:R_Lateral 6 6 4 25:Torre 7 7 6 26:Torre 7 7 6 27:Torre 8 7 6 28:Torre 8 7 6 29:Rey_Lateral 6 6 4 30:Reina 6 6 4 31:Alfil 2 2 2 32:Caballo_Lat 9 8 7 33:Torre 8 7 6 155 Visión Artificial con IMtdi 34:Peon 1 1 1 Al igual que para el ejemplo anterior correspondiente a este resultado la situación es muy similar y las figuras que se quedan en grupos diferentes son 30, 32. Con respecto al ejemplo anterior es una mejora ya que se encontraban fuera de lugar cuatro figuras y no solo dos. Esto lleva a condicionar que es muy importante a la hora de clasificar seleccionar un conjunto de descriptores adecuados para permitir una buena separación entre patrones disjuntos. Dendograma En el dendograma se aprecia con más claridad la unión entre clases y como la reducción entre en número de descriptores mejora la clasificación quedando fuera de lugar solo las dos últimas figuras en lugar de cuatro como en el ejemplo anterior. 156 Clasificación Resultados teniendo en cuenta los patrones y la imagen 2 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 1 1 4:Alfil 2 1 1 5:C_Lateral 3 2 2 6:C_Lateral 3 2 2 7:C_Lateral 3 2 2 8:C_Lateral 3 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 4 3 3 14:Reina 4 3 3 15:Reina 4 3 3 16:Reina 4 3 3 17:R_Frente 5 4 4 18:R_Frente 5 4 4 19:R_Frente 5 4 4 20:R_Frente 5 4 4 21:R_Lateral 5 4 4 22:R_Lateral 5 4 4 23:R_Lateral 5 4 4 24:R_Lateral 5 4 4 25:Torre 6 5 2 26:Torre 6 5 2 27:Torre 6 5 2 28:Torre 6 5 2 29:Reina 4 3 3 30:Caballo_Lat 7 6 5 31:Torre 6 5 2 32:Peon 8 7 6 33:Peon 9 8 7 157 Visión Artificial con IMtdi 34:Peon 8 7 6 La clasificación es muy similar al ejemplo anterior destacando que para el conglomerado 9 se encuentra fuera de lugar la figura 30 y los tres últimos peones. Dendograma En el gráfico se aprecia con más claridad los variaciones en cuanto mejora sufridas con respecto al ejemplo anterior. 158 Clasificación Resultados teniendo en cuenta los patrones y la imagen 3 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 1 4:Alfil 2 2 1 5:C_Lateral 3 3 2 6:C_Lateral 3 3 2 7:C_Lateral 3 3 2 8:C_Lateral 3 3 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 4 4 3 14:Reina 4 4 3 15:Reina 4 4 3 16:Reina 4 4 3 17:R_Frente 5 5 4 18:R_Frente 5 5 4 19:R_Frente 5 5 4 20:R_Frente 5 5 4 21:R_Lateral 5 5 4 22:R_Lateral 5 5 4 23:R_Lateral 5 5 4 24:R_Lateral 5 5 4 25:Torre 6 6 5 26:Torre 6 6 5 27:Torre 7 6 5 28:Torre 7 6 5 29:Rey_Frente 5 5 4 30:Reina 4 4 3 31:Alfil 1 1 1 32:Caballo_Lat 8 7 6 33:Torre 7 6 5 159 Visión Artificial con IMtdi 34:Peon 9 8 7 Con respecto al ejemplo anterior y en función de los 9 conglomerados cabe mencionar la puesta fuera de lugar de la figura 34 con respecto a las cinco descritas en el otro ejemplo, así como la separación entre los grupos de caballo lateral y torre que ya no se encuentran unidos. Dendograma Los cambios descritos se reflejan en el dendograma de manera más clara siguiendo siempre la secuencialidad en la distribución de los patrones disjuntos. Se observa como se encuentran fuera de lugar las figuras 32, 34. 160 Clasificación Resultados teniendo en cuenta los patrones y la imagen 4 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 3 18:R_Frente 4 4 3 19:R_Frente 4 4 3 20:R_Frente 4 4 3 21:R_Lateral 4 4 3 22:R_Lateral 4 4 3 23:R_Lateral 4 4 3 24:R_Lateral 4 4 3 25:Torre 5 2 2 26:Torre 5 2 2 27:Torre 5 2 2 28:Torre 5 2 2 29:Caballo_Lat 2 2 2 30:Torre 2 2 2 31:Rey_Frente 6 5 4 32:Reina 7 6 5 33:Alfil 8 7 6 161 Visión Artificial con IMtdi 34:Peon 9 8 7 Mejora la estructura para la primera columna de resultados respecto al ejemplo 1. Además, destacar que la única agrupación que se conserva es el peón y el alfil y las figuras mal ubicadas son 30-34. Dendograma Lo descrito con anterioridad para los conglomerados de pertenencia queda reflejado en la gráfica del dendograma. 162 Clasificación Resultados teniendo en cuenta los patrones y la imagen 5 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 3 18:R_Frente 4 4 3 19:R_Frente 4 4 3 20:R_Frente 4 4 3 21:R_Lateral 4 4 3 22:R_Lateral 4 4 3 23:R_Lateral 4 4 3 24:R_Lateral 4 4 3 25:Torre 5 2 2 26:Torre 5 2 2 27:Torre 5 2 2 28:Torre 5 2 2 29:Rey_Frente 4 4 3 30:Reina 3 3 3 31:Caballo_Lat 6 5 4 32:Caballo_Lat 2 2 2 33:Torre 5 2 2 163 Visión Artificial con IMtdi 34:Peon 7 6 5 35:Peon 8 7 6 36:Peon 9 8 7 37:Peon 9 8 7 Desaparece con respecto al ejemplo 1 las agrupaciones descritas manteniéndose la del peón y el alfil. Las figuras fuera de lugar se reducen al caballo 31 y los cuatro últimos peones por lo que se observa una mejora bastante buena con respecto al ejemplo anterior. Dendograma El dendograma refleja exactamente el contenido de las tabla donde se aprecia que el caballo 31 se encuentra separado del resto y del subgrupo de peones que se ha realizado. 164 Clasificación 4.10.5 Ejemplo 3 En este ejemplo observaremos los nuevos resultados que nos aporta una clasificación donde mantenemos las mismas variables y parámetros que en el ejemplo 1 excepto el Método de clasificación que en este caso es el del vecino más próximo y la Medida donde en este caso se ha optado por la de Intervalo seleccionando entre las posibles opciones la Distancia euclídea. 165 Visión Artificial con IMtdi Resultados teniendo en cuenta sólo los patrones Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 1 4:Alfil 2 2 1 5:C_Lateral 3 3 2 6:C_Lateral 3 3 2 7:C_Lateral 3 3 2 8:C_Lateral 3 3 2 9:Peon 4 1 1 10:Peon 4 1 1 11:Peon 4 1 1 12:Peon 4 1 1 13:Reina 5 4 3 14:Reina 5 4 3 15:Reina 5 4 3 16:Reina 5 4 3 17:R_Frente 6 5 4 18:R_Frente 6 5 4 19:R_Frente 6 5 4 20:R_Frente 6 5 4 21:R_Lateral 7 6 5 22:R_Lateral 6 5 4 23:R_Lateral 6 5 4 24:R_Lateral 7 6 5 25:Torre 8 7 6 26:Torre 8 7 6 27:Torre 9 8 7 28:Torre 9 8 7 Al igual que lo descrito para los anteriores ejemplos sobre estos resultados son muy similares destacando que para la división en 7 grupos tanto el alfil como el peón son considerados como un único grupo por su proximidad. 166 Clasificación Dendograma El dendograma se mantiene muy similar a los ejemplos mostrados con anterioridad referentes a este tipo de resultados. Hay que destacar que la modificación sufrida es el cambio en la posición de los grupos influenciada por el método llevado a cabo que difiere de los anteriores. 167 Visión Artificial con IMtdi Resultados teniendo en cuenta los patrones y la imagen 1 del reconocimiento de figuras Conglomerado de pertenencia Caso 168 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 2 2 1 4:Alfil 2 2 1 5:C_Lateral 3 3 2 6:C_Lateral 3 3 2 7:C_Lateral 3 3 2 8:C_Lateral 3 3 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 4 4 3 14:Reina 4 4 3 15:Reina 4 4 3 16:Reina 4 4 3 17:R_Frente 5 5 4 18:R_Frente 5 5 4 19:R_Frente 5 5 4 20:R_Frente 5 5 4 21:R_Lateral 6 4 3 22:R_Lateral 5 5 4 23:R_Lateral 5 5 4 24:R_Lateral 6 4 3 25:Torre 7 6 5 26:Torre 7 6 5 27:Torre 8 7 6 28:Torre 8 7 6 29:Rey_Lateral 6 4 3 30:Reina 4 4 3 31:Alfil 2 2 1 32:Caballo_Lat 9 8 7 33:Torre 8 7 6 Clasificación 34:Peon 1 1 1 En este ejemplo la diferencia con respecto a los otros dos anteriores es que llega al extremo de mejorar aún más la clasificación dando lugar a un único descuadre por la figura 32 y manteniendo los resultados provistos en apartados anteriores para la columna de 9 conglomerados. Dendograma En este gráfico es donde mejor se observan los resultados y se puede ver como secuencialmente todos los patrones se encuentran separados con la salvedad de la figura 32 que se encuentra fuera de lugar. Esto es una gran mejora respecto al primer ejemplo donde se ubicaban cuatro figuras fuera de lugar o respecto al segundo ejemplo, donde se reducían a dos figuras por la disminución del número de descriptores. La diferencia de este ejemplo con 169 Visión Artificial con IMtdi respecto al primero es que manteniendo los mismos descriptores y modificando el método de clasificación se obtiene una mejora de los resultados. 170 Clasificación Resultados teniendo en cuenta los patrones y la imagen 2 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 4 18:R_Frente 4 4 4 19:R_Frente 4 4 4 20:R_Frente 4 4 4 21:R_Lateral 4 4 4 22:R_Lateral 4 4 4 23:R_Lateral 4 4 4 24:R_Lateral 4 4 4 25:Torre 5 5 2 26:Torre 5 5 2 27:Torre 5 5 2 28:Torre 5 5 2 29:Reina 3 3 3 30:Caballo_Lat 6 6 5 31:Torre 7 5 2 32:Peon 8 7 6 33:Peon 9 8 7 171 Visión Artificial con IMtdi 34:Peon 8 7 6 La tabla de conglomerados es prácticamente igual que la obtenida para el ejemplo número dos en estos mismos resultados. Dendograma Se puede observar que el dendograma es similar al obtenido en el ejemplo dos con estos resultados. 172 Clasificación Resultados teniendo en cuenta los patrones y la imagen 3 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 4 4 18:R_Frente 4 4 4 19:R_Frente 4 4 4 20:R_Frente 4 4 4 21:R_Lateral 4 4 4 22:R_Lateral 4 4 4 23:R_Lateral 4 4 4 24:R_Lateral 4 4 4 25:Torre 5 5 5 26:Torre 5 5 5 27:Torre 6 6 5 28:Torre 6 6 5 29:Rey_Frente 4 4 4 30:Reina 3 3 3 31:Alfil 1 1 1 32:Caballo_Lat 7 7 6 33:Torre 8 6 5 173 Visión Artificial con IMtdi 34:Peon 9 8 7 El conglomerado de pertenencias mantiene la semejanza con respecto al ejemplo dos donde se muestras los mismos resultados. Dendograma Al igual que lo comentado para el conglomerado de pertenencias cabe mencionarlo para el dendograma ya que es similar al ejemplo dos comentado con anterioridad. 174 Clasificación Resultados teniendo en cuenta los patrones y la imagen 4 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 3 3 18:R_Frente 4 3 3 19:R_Frente 4 3 3 20:R_Frente 4 3 3 21:R_Lateral 4 3 3 22:R_Lateral 4 3 3 23:R_Lateral 4 3 3 24:R_Lateral 4 3 3 25:Torre 5 4 2 26:Torre 5 4 2 27:Torre 5 4 2 28:Torre 5 4 2 29:Caballo_Lat 2 2 2 30:Torre 2 2 2 31:Rey_Frente 6 5 4 32:Reina 7 6 5 33:Alfil 8 7 6 175 Visión Artificial con IMtdi 34:Peon 9 8 7 La tabla de conglomerados de pertenencia es similar a la expuesta en el ejemplo dos para estos mismos resultados. Dendograma De la misma manera que se han descrito los resultados para la tabla de conglomerados de pertenencia cabe destacar la semejanza del dendograma con respecto al ejemplo dos para estos resultados. 176 Clasificación Resultados teniendo en cuenta los patrones y la imagen 5 del reconocimiento de figuras Conglomerado de pertenencia Caso 9 conglomerados 8 conglomerados 7 conglomerados 1:Alfil 1 1 1 2:Alfil 1 1 1 3:Alfil 1 1 1 4:Alfil 1 1 1 5:C_Lateral 2 2 2 6:C_Lateral 2 2 2 7:C_Lateral 2 2 2 8:C_Lateral 2 2 2 9:Peon 1 1 1 10:Peon 1 1 1 11:Peon 1 1 1 12:Peon 1 1 1 13:Reina 3 3 3 14:Reina 3 3 3 15:Reina 3 3 3 16:Reina 3 3 3 17:R_Frente 4 3 3 18:R_Frente 4 3 3 19:R_Frente 4 3 3 20:R_Frente 4 3 3 21:R_Lateral 4 3 3 22:R_Lateral 4 3 3 23:R_Lateral 4 3 3 24:R_Lateral 4 3 3 25:Torre 2 2 2 26:Torre 2 2 2 27:Torre 2 2 2 28:Torre 2 2 2 29:Rey_Frente 4 3 3 30:Reina 3 3 3 31:Caballo_Lat 5 4 4 32:Caballo_Lat 2 2 2 33:Torre 2 2 2 177 Visión Artificial con IMtdi 34:Peon 6 5 5 35:Peon 7 6 6 36:Peon 8 7 7 37:Peon 9 8 7 La tabla de conglomerado de pertenencias es similar al ejemplo dos para los mismos resultados especificados. Dendograma Destacar que al igual que la tabla de los conglomerados de pertenencias el dendograma se adapta al mostrado en el ejemplo dos. 178 Clasificación 4.11 CONCLUSIÓN Una vez comentados los diferentes ejemplos expuestos es necesario establecer que la clasificación de patrones no es un problema trivial, sino bastante complejo que se encuentra influenciado por gran cantidad de factores. Una clasificación no mejora por incrementar el número de descriptores utilizados como se ha podido comprobar en los ejemplos, así como tampoco por disminuir el número de los mismos. Se podría definir como clasificación óptima al conjunto mínimo de descriptores que permiten distinguir perfectamente grupos de patrones disjuntos. El conjunto mínimo de descriptores hace referencia al menor número de descriptores necesarios para clasificar de manera correcta diferentes grupos de objetos. Otra conclusión que se puede extraer de los resultados anteriores es el uso de diferentes métodos de clasificación condiciona de manera directa la solución obtenida. Se puede observar que para el mismo conjunto de descriptores en el ejemplo 1 se obtienen peores resultados con el método de vinculación inter-grupos con respecto al ejemplo 3 donde se utiliza el método del vecino más próximo. En definitiva, tanto los descriptores utilizados como los métodos empleados son factores que influyen directamente en la clasificación de objetos. 179 5 Bibliografía [1] BEUCHER S. and LANTUEJOUL C. Use of Watersheds in contour detection. Centre de Géostatistique et de Morphologie Mathématique. Fontainebleau –France-. (1979). [2] S. O. BELKSIM, M. SHRIDHAR and M.AHMADI Pattern recongition with moment invariants: a comparative study and new results. Pattern Recognition. Vol 24. (1991). [3] CANTÓN GARBÍN MANUEL. Tesis Doctoral. La teoría de momentos en el análisis de formas: formulación tensorial, invarianzas y aplicaciones. (1982). [4] CHO-HUAK TEH and ROLAND T.CHIN. On Image Analysis the Methods of Moments. IEEE Transactions on pattern analysis and machine intelligence. Vol 10. (1988). [5] DERYN GRAHAM and ANTHONY BARRETT. Knowledge-Based Image Processing System. Springer. (1997) [6] GONZALEZ, R. Digital Image Processing, Addison Wesley. (1992). 181 Tratamiento Digital de Imágenes y Visión Artificial [7] MATLAB (HELP). Image processing toolbox.Imfeature. http://morena.ual.es/doc/matlab/help/toolbox/images/imfeature.html [8] MING KUEI HU Visual Pattern Recognition by Moment Invariant. IRE Trans. Inform. Theory. Vol IT-8. (1962). [9] PARKER J. R. Algorithms for image processing and computer vision. Wiley Computer Publishing. (1996). [10] PIERRE DUCHENE, DANIEL LEWIS. The Visilog 5. (1996). [11] SCHALKOFF ROBERT J. Pattern Recongnition: Statistical, Structural and Neural Approaches. 1992 by John Wiley & Sons,Inc. [12] SIMON X. LIAO and MIROSLAW PAWLAK. On Image Analysis by Moments. IEEE Transactions on pattern analysis and machine intelligence. Vol 18. (1996). [13] SONKA, M. Image Processing, Analysis and Machine Vision, Champan & Hall. (1995). [14] SPSS Inc. SPSS® Base 10.0 Applications Guide (1999). [15] TEAGUE M. Image Analysis via the general theory of moments. Journal of Optical Society of America. (1980). 182 Bibliografía [16] TORRES ARRIAZA JOSÉ ANTONIO. Tesis Doctoral. Reconocimiento automático de estructuras oceánicas en imágenes de satélite AVHRR mediante redes neuronales. (2000). [17] WONG and HALL. Scene Matching with Invariant Moments. Computer Graphics and Image Processing. (1978). [18] THE DEPARTMENT OF ARTIFICIAL INTELLIGENCE IN THE UNIVERSITY OF EDINBURGH Image processing and machine vision. http://www.dai.ed.ac.uk/HIPR2/ Hypermedia Image Processing Reference (HIPR2). [19] ROBERT B. FISHER The Evolving, Distributed, Non-Proprietary, On-Line Compendium of Computer Vision. http://www.dai.ed.ac.uk/CVonline/ Division of Informatics. University of Edinburgh. 183