DEDICATORIA. Dedicado a nuestras familias, lo más importante para nosotros.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "DEDICATORIA. Dedicado a nuestras familias, lo más importante para nosotros."

Transcripción

1 DEDICATORIA. Dedicado a nuestras familias, lo más importante para nosotros. ii

2 AGRADECIMIENTOS. Al Dr. Juan Humberto Sossa Azuela, por creer en nosotros e impulsar constantemente el desarrollo de esta tesis. Al M. en C. Roberto Antonio Vázquez Espinoza de los Monteros, por su ayuda y constante asesoría para el desarrollo de la presente tesis. Al Lic. Miguel Pimentel León por su guía y apoyo durante el desarrollo de esta tesis. Al Dr. Marco Antonio Moreno por sus consejos. Al Ing. Arturo Hernández Hernández por sus enormes aportaciones a esta tesis. Gracias a nuestros amigos y familiares que estuvieron con nosotros apoyándonos. A todas las personas que de una u otra forma ayudaron a la culminación de esta tesis. iii

3 Resumen. El Reconocimiento de Rostros es un área de investigación que ha experimentado un interés renovado, como consecuencia de la aparición de nuevas tecnologías. En esta tesis se presenta un Sistema de Reconocimiento de Rostros basado en el Análisis de Componentes Principales (PCA). Técnica que permite reducir la dimensionalidad de un conjunto de datos, el uso de esta técnica permite caracterizar de manera adecuada la información contenida en la imagen de un rostro. Sin embargo, se ha podido comprobar que debido esta caracterización, PCA es sensible a factores de ruido como la iluminación y cambios en la escala. Con el objetivo de determinar las fortalezas y debilidades de PCA, se utilizaron cuatro bases de datos de rostros, para un total de 1070 imágenes. Las cuales contienen factores de ruido como cambios en la iluminación, enfoque, escala y expresión facial. Los resultados de estos análisis muestran que PCA tiene un alto desempeño frente a cambios en la expresión facial y cambios no radicales en la orientación del rostro, mientras que a factores de ruido como la iluminación, enfoque y escala, PCA muestra un bajo desempeño. Finalmente, además de investigar el desempeño de PCA frente a factores de ruido, se analizan los efectos de aplicar PCA sobre cada componente RGB y en escala de grises, los resultados muestran variaciones mínimas en cada componente. iv

4 Abstract. Face Recognition is a research area that has experienced a renewed interest, as a result of the apparition of new technologies. In this thesis a Principal Components Analysis (PCA) based Face Recognition System is presented. PCA was elected by its ability to reduce the dimensionality of a data set; reduction that permits to characterize in an adequate way the contained information in a face image, however, due to this characterization, PCA is sensitive to noise factors such as, lightning and scales changes. In order to determine the strengths and weaknesses of PCA, 1070 face images, divided in four databases were used. These images contain noise factors due to changes in lightning, focus, scale and facial expression. The results of this analysis show that PCA has a high performance against changes in facial expression and non radical changes in face orientation, while noise factors like lightning, focus and scale cause a low performance. Finally, besides investigating the performance of PCA against common noise factors, the effects of applying PCA on each RGB component and gray scale were analyzed, the results of this analysis show only minimum differences on each component. v

5 Contenido Resumen.... iv Abstract.... v Lista de Tablas.... ix Lista de Figuras.... x Capítulo 1. Introducción Objetivo....4 Capítulo 2. Estado del Arte Análisis Lineal Basado en la Apariencia Análisis No Lineal Basado en la Apariencia Análisis Fotométrico....7 Capítulo 3. Fundamentos Matemáticos del Procesamiento Digital de Señales Preliminares Imagen Digital Muestreo y Cuantización de Imágenes Representación de Imágenes Digitales Función Histograma La Convolución y los Filtros Espaciales Filtro de Suavizado (Pasa Bajas) Filtro de Nitidez Algoritmos de Agrupación (Clustering) Algoritmo de Distancias Encadenadas Algoritmo Max Min Algoritmo de las K Medias La Eigen Descomposición de una Matriz Definición Extracción de Características (Rasgos) Selección del Vector de Características Transformación del Vector de Características Capítulo 4. El Análisis de Componentes Principales (PCA) Simplificación de un Conjunto de Datos con PCA Cálculo de la Matriz de Covarianza Cálculo de Eigenvalores y Eigenvectores Condiciones para Efectuar un Cambio de Base vi

6 Cambio de Base Reconocimiento de Rostros mediante PCA Conjunto de Imágenes de Entrenamiento Matriz de Covarianza Cálculo de Eigenvalores y Eigenvectores Eigenfaces Proyección de las Imágenes de Entrenamiento sobre el Face Space Proceso de Reconocimiento Capítulo 5. Metodología Propuesta Introducción Descripción General de un Sistema de Reconocimiento de Rostros Factores de Ruido Etapas del Sistema Descripción del Sistema de Reconocimiento Versión Versión Capítulo 6. Experimentación y Resultados Bases de Datos para la Experimentación Eficiencia vs Cantidad de Varianza Eficiencia en RGB y Escala de Gris Eficiencia vs Numero de Imágenes de Entrenamiento Capítulo 7. Conclusiones y Trabajo Futuro Conclusiones Trabajo Futuro Apéndice A. Códigos Fuente Cálculo del Vector Promedio de un Conjunto de Imágenes Cálculo de los Vectores de Desviación Media Cálculo de la Matriz Eigen Descomposición de una matriz Cálculo de Eigenfaces Cálculo de Vectores Característicos Cálculo del Vector Característico de una Imagen de Prueba Apéndice B. Software de Utilidad Paint Shop Pro Graphmatica vii

7 Microsoft.Net El Entorno Común de Ejecución (Common Language Runtime CLR) El Lenguaje Intermedio Común (Common Intermediate Language CIL) El Sistema de Tipo Común (Common Type System - CTS) La Especificación de Lenguaje Común (Common Language Specification - CLS) Bibliotecas de Clase Base (Base Class Libraries) El lenguaje de Programación C# Bibliografía viii

8 Lista de Tablas. Tabla 3.1 Número de bits necesarios para almacenar una imagen con varios valores de N y Tabla 3.2 Tabla con las métricas más comunes Tabla 4.1 Distancia recorrida por el cuerpo en once intervalos de tiempo Tabla 4.2. Datos en forma de desviación media Tabla 4.3 Conjunto de datos resultante tras el cambio de base Tabla 6.1 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Distance Tabla 6.2 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Distance Tabla 6.3 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Distance Tabla 6.4 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Distance Tabla 6.5 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Distance Tabla 6.6 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Distance Tabla 6.7 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos HighNoise Tabla 6.8 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos HighNoise Tabla 6.9 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos HighNoise Tabla Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Rostros Tabla 6.11 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Rostros Tabla 6.12 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Rostros Tabla 6.13 Resultados en escala de grises para la base de datos Rostros Tabla 6.14 Resultados en escala de grises para la base de datos Distance Tabla 6.15 Resultados en escala de grises para la base de datos Distance Tabla 6.16 Resultados en escala de grises para la base de datos HighNoise Tabla 6.19 Porcentaje de eficiencia vs numero de imágenes de entrenamiento con la base de datos Rostros Tabla 6.20 Porcentaje de eficiencia vs numero de imágenes de entrenamiento con la base de datos Distance ix

9 Lista de Figuras. Figura 1.1 Ejemplo de la extracción de información por procesamiento digital de imágenes....1 Figura 1.2 Ejemplo de segmentación....2 Figura 1.3 Ejemplo de la composición de imágenes....2 Figura 2.1 Aproximaciones más comunes para tratar el problema del reconocimiento automatizado de rostros....5 Figura 2.2 Ejemplo de seis clases utilizando LDA....6 Figura 2.3 Comparación entre la distancia euclidiana y la distancia geodésica....7 Figura 2.4 Elastic Bunch Graph Matching....8 Figura 2.5 Ejemplo de un modelo deformable tridimensional...8 Figura 3.1 Generando una imagen digital. (a) Imagen Continua. (b) una línea de muestro de A hasta B en la imagen continúa usada para mostrar los conceptos de muestreo y cuantización. (c) Muestreo y Cuantización. (d) línea de muestreo digital Figura 3.2 Convención de coordenadas para imágenes digitales. El pixel (3,1) está marcado en gris Figura 3.3 Ejemplo de una imagen en escala de grises y su histograma Figura 3.4 Una imagen poco contrastada, oscura y su histograma Figura 3.5 Una imagen con poco contraste, clara y su histograma Figura 3.6 Ejemplo del uso del filtro de nitidez Figura 3.7 Representación simbólica de un algoritmo de agrupación Figura 3.8 A la izquierda se tiene un conjunto de objetos. A la derecha un diagrama con el nivel de distancia entre los objetos Figura 3.9 Representación idealizada de un histograma. Distancia euclidiana vs índice de la distancia Figura 3.10 Gráfica de los eigenvectores de la matriz A Figura Diagrama a bloques de un sistema de reconocimiento automático de formas (Gómez Allende 1993) Figura 4.1 Un cuerpo moviéndose a velocidad aproximadamente constante Figura 4.2 Gráfica de distancia vs tiempo Figura 4.3 Gráfica de los ejes formados por los eigenvectores y Figura 4.4 Grafica de dispersión con y como ejes del plano Figura 4.5 Espectro típico de C Figura 4.6 Suma acumulativa de aportación de varianza de los eigenfaces Figura 5.1 Ruido provocado por cambios de iluminación Figura 5.2 Ruido provocado por cambios de distancia Figura 5.3 Ruido provocado por cambios de fondo Figura 5.4 Ruido provocado por cambios faciales Figura 5.5 Ruido provocado por la orientación del rostro Figura 5.6 Diagrama a bloques de la etapa de entrenamiento Figura 5.7 Diagrama a bloques de la proyección de una imagen de prueba Figura 5.8 Diagrama a bloques de la etapa de reconocimiento Figura 5.9 Diagrama a bloques del funcionamiento del clasificador euclidiano Figura 5.10 Sistema de Reconocimiento de Rostros Figura 5.11 dotnetpca ver x

10 Figura 5.12 Menú FIle Figura 5.13 Cuadro de Dialogo Project Settings Figura 5.14 El botón Add agrega imágenes de entrenamiento Figura 5.15 Visualización de las Imágenes de entrenamiento, incluyendo rutas Figura 5.16 Menú Tools Figura 5.17 Interfaz de Webcam Figura 5.18 Cuadro de diálogo Save Options Figura 5.19 Interfaz de entrenamiento Figura 5.20 Resultados del entrenamiento Figura 5.21 Opción Save Figura 5.22 Estructura de archivos para un proyecto Figura 5.23 Interfaz de prueba Figura 5.24 Elección de Eigenvectores Figura 5.25 Botón Start Test Figura 5.26 Resultados de una prueba Figura 5.27 dotnetpca versión Figura 5.28 Opción Component Figura 5.29 Resultados en la versión Figura 6.1 Ejemplo de los rostros contenidos en la base de datos Distance Figura 6.2 ejemplos de los rostros contenidos en la base de datos Distance Figura 6.3 Ejemplos de los rostros contenidos en la base de datos HighNoise Figura 6.4 Ejemplos de los rostros contenidos en la base de datos Rostros Figura 6.5 Suma Acumulativa de Varianza (Distance-1.5 Rojo) Figura 6.6 Gráfica de Eficiencia (Distance-1.5 Rojo) Figura 6.7 Suma Acumulativa de Varianza (Distance-1.5 Verde) Figura 6.8 Gráfica de Eficiencia (Distance-1.5 Verde) Figura 6.9 Suma Acumulativa de Varianza (Distance-1.5 Azul) Figura 6.10 Gráfica de Eficiencia (Distance-1.5 Azul) Figura 6.11 Suma Acumulativa de Varianza (Distance-1.0 Rojo) Figura 6.12 Gráfica de Eficiencia (Distance-1.0 Rojo) Figura 6.13 Suma Acumulativa de Varianza (Distance-1.0 Verde) Figura 6.14 Gráfica de Eficiencia (Distance-1.0 Verde) Figura 6.15 Suma Acumulativa de Varianza (Distance-1.0 Azul) Figura 6.16 Gráfica de Eficiencia (Distance-1.0 Azul) Figura 6.17 Suma Acumulativa de Varianza (HighNoise Rojo) Figura 6.18 Gráfica de Eficiencia (HighNoise Rojo) Figura 6.19 Suma Acumulativa de Varianza (HighNoise Verde) Figura 6.20 Gráfica de Eficiencia (HighNoise Verde) Figura 6.21 Suma Acumulativa de Varianza (HighNoise Azul) Figura 6.22 Gráfica de Eficiencia (HighNoise Azul) Figura 6.23 Suma Acumulativa de Varianza (Rostros Rojo) Figura 6.24 Gráfica de Eficiencia (Rostros Rojo) xi

11 Figura 6.25 Suma Acumulativa de Varianza (Rostros Verde) Figura 6.26 Gráfica de Eficiencia (Rostros Verde) Figura 6.27 Suma Acumulativa de Varianza (Rostros Azul) Figura 6.28 Gráfica de Eficiencia (Rostros Azul) Figura 6.29 Histogramas RGB (de izquierda a derecha) de una imagen digital Figura 6.30 Suma Acumulativa de Varianza (Rostros Gris) Figura 6.31 Gráfica de Eficiencia (Rostros Gris) Figura 6.32 Suma Acumulativa de Varianza (Distance-1.0 Gris) Figura 6.33 Gráfica de Eficiencia (Distance-1.0 Gris) Figura 6.34 Suma Acumulativa de Varianza (Distance-1.5 Gris) Figura 6.35 Gráfica de Eficiencia (Distance-1.5 Gris) Figura 6.36 Suma Acumulativa de Varianza (HighNoise Gris) Figura 6.37 Gráfica de Eficiencia (HighNoise Gris) Figura B.1 Paint Shop Pro Figura B.2 Graphmatica IDE Figura B.3 Ejemplo del lenguaje IL Figura B.4 Relación existente entre el CLR, CLS, CTS y las bibliotecas de Clase Base Figura B.5 Microsoft Visual C# xii

12 Capítulo 1. Introducción. El procesamiento digital de imágenes es un campo relativamente joven en el área de la informática, sin embargo, es uno de los campos más desafiantes en la actualidad, ya que se enfrentan problemas tales como: la visión artificial, el reconocimiento de patrones, el reconocimiento de objetos y la extracción de características significativas para un problema en específico. Todos estos problemas además, son de especial utilidad en diversas áreas de la ciencia y la tecnología, podemos mencionar el análisis cartográfico vía satélite para la predicción del clima, reconocimiento de terreno, análisis de desastres naturales, identificación de vehículos, etc. El campo del reconocimiento de patrones tiene como objetivo clasificar datos (patrones) basándose ya sea en conocimiento a priori o en información estadística extraída de los patrones. Típicamente, los patrones a ser clasificados son grupos de mediciones u observaciones, que definen puntos en un espacio multidimensional. Un gran número de aplicaciones de procesamiento de imágenes pueden ser encontradas en las ciencias médicas usando una o más imágenes de un paciente, por ejemplo: Diagnóstico Asistido Por Computadora. En los países occidentales es común tomar con regularidad radiografías de los senos a mujeres por encima de cierta edad con el objetivo de detectar cáncer de seno en una etapa temprana. En la práctica, el número de imágenes involucradas es tan grande que sería de mucha ayuda hacer parte del análisis de las imágenes mediante un proceso automatizado de procesamiento por computadora. La Figura 1.1 muestra un ejemplo de la extracción de información relevante a partir del procesamiento digital de imágenes, la cabeza visualizada en tres dimensiones fue construida a partir de imágenes bidimensionales como la que se muestra en la derecha. Figura 1.1 Ejemplo de la extracción de información por procesamiento digital de imágenes. 1

13 Segmentación de Imágenes. La división de una imagen en estructuras significativas. Por ejemplo: la división de una imagen del cerebro en estructuras (ver Figura 1.2) como la materia blanca, la materia gris, fluido cerebroespinal, hueso, grasa, piel, etc. La segmentación es útil en muchas tareas que van desde mejorar la visualización de un objeto hasta el monitoreo del crecimiento de un tumor. Figura 1.2 Ejemplo de segmentación. Composición de Imágenes. El alineamiento exacto de dos o más imágenes de un mismo paciente que contienen un distinto tipo de información (ver Figura 1.3), lo que sería necesario si la información contenida en estas imágenes ha de ser combinada para formar una nueva imagen significativa. Imágenes como esta, hacen que el observador sea capaz de acceder a distintos tipos de información al mismo tiempo (Twain november 2005). Figura 1.3 Ejemplo de la composición de imágenes. 2

14 Investigaciones pioneras en realidad virtual tratan el modelado de ambientes en 3D a partir del procesamiento de imágenes en 2D, esto sin mencionar aplicaciones en mercadotecnia, criminología, aplicaciones industriales como bases de datos y el control de procesos de fabricación mediante sistemas automatizados de reconocimiento de objetos. El reconocimiento de rostros es uno de los problemas más desafiantes en el campo del procesamiento digital de imágenes. La habilidad humana para reconocer rostros es remarcable. Podemos reconocer miles de rostros aprendidos a lo largo de nuestra vida e identificar rostros familiares con un simple vistazo incluso después de un largo tiempo de separación. Esta habilidad es muy robusta, a pesar de grandes cambios en los estímulos visuales debido a condiciones ambientales, envejecimiento y distractores tales como: los lentes, cambios en el estilo de peinado o el pelo facial. Como consecuencia el procesamiento virtual de rostros humanos ha fascinado a filósofos y científicos por siglos, tales como Aristóteles y Darwin (Pentland y Turk 1991). Sin embargo, factores como la iluminación, los cambios en la expresión facial, el ruido introducido por el fondo y la orientación dificultan enormemente el reconocimiento de rostros. Además dependiendo de la fuente de captura de la imagen, pueden aparecer variaciones indeseables debido a una pobre resolución, una pobre tecnología en adquisición de imágenes y diferencias notorias en el manejo de la iluminación que dependen del fabricante del dispositivo de captura. La imagen de un rostro puede ser vista como una señal visual (luz reflejada en la superficie de un rostro) en un espacio continuo que es registrada típicamente por un sensor digital como un arreglo de pixeles y por lo tanto mapeada a un espacio discreto. Estos pixeles pueden codificar color, o solo intensidad de luz (valores en escala de grises). El arreglo de pixeles puede ser considerado como un vector en un espacio vectorial dimensionalmente alto. Vemos entonces, que la cantidad de información aportada por una sola imagen es muy grande. Si consideramos que para ser viable desde un punto de vista práctico, un sistema de reconocimiento de rostros debe ser capaz de analizar la información contenida en miles de imágenes de rostros, entonces la problemática aumenta en complejidad considerablemente. Además con el surgimiento de computadoras más rápidas y económicas, se espera que el desarrollo de un sistema en tiempo real, robusto frente a condiciones adversas sea por fin una realidad. El Análisis de Componentes Principales, permite reducir la cantidad de información necesaria para caracterizar la imagen de un rostro. Sin embargo, como será demostrado en la presente tesis, debido a que PCA típicamente utiliza todos los pixeles contenidos en una imagen, factores de ruido como los descritos anteriormente afectan en gran medida el desempeño de un sistema de reconocimiento de rostros. 3

15 1.1. Objetivo. El objetivo general del trabajo de tesis es desarrollar una aplicación que demuestre el uso del Análisis de Componentes Principales como medio para realizar el reconocimiento de rostros. Los objetivos particulares de la tesis son: Determinar las variaciones en la eficiencia de PCA frente a cambios en la cantidad de varianza con la que es caracterizada una base de datos de rostros. Determinar las variaciones en la eficiencia de PCA al caracterizar las imágenes de rostros en cada una de las componentes RGB y en escala de grises. Determinar las fortalezas y debilidades de PCA frente a cada una de las fuentes de ruido más comunes en una imagen digital. Determinar el grado de eficiencia de PCA contra cambios en el número de imágenes de entrenamiento. 4

16 Capítulo 2. Estado del Arte. El área del reconocimiento de patrones y la visión artificial nacen como consecuencia del deseo de crear maquinas que puedan interactuar de forma inteligente con su entorno. Algunas de las primeras investigaciones en el ramo fueron hechas para agencias de inteligencia durante la guerra fría, tal es el caso de la investigación del matemático Woody Bledsoe en Su trabajo consistía en un sistema computarizado dotado de una gran base de datos compuesta a partir de imágenes de rostros, el problema radicaba en proporcionar al sistema una fotografía de un individuo de prueba y, probar la eficacia del mismo al medir la razón de imágenes correctas dadas con el tamaño de la base de datos original. Sin embargo, como el mismo Bledsoe reportaría en su investigación, el sistema era sensible a varios factores externos como el envejecimiento, la inclinación y rotación de la cabeza, además de la iluminación y el ángulo de visión, etc. Todos estos factores no pueden ser controlados fácilmente y por lo tanto la problemática crece considerablemente. Algunas otras investigaciones realizadas en la década de 1960 buscaron fundamentarse en estudios realizados sobre el sistema visual humano. Sin embargo, los resultados arrojados por dichas investigaciones mostraron que era prácticamente imposible desarrollar un sistema computacional cuyas capacidades fueran comparables con algo tan complejo y poderoso como lo es el sistema visual humano. Durante la década de 1970 surgieron nuevas técnicas para abordar el problema del reconocimiento de rostros, la mayoría de las cuales se enfocaron en el uso de algoritmos de clasificación de patrones. Algunas de estas investigaciones se enfocaron en tratar el rostro humano como cualquier otra imagen bidimensional, mientras otras buscaron construir bases de conocimiento sobre el rostro, para después utilizar dicho conocimiento para desarrollar un mejor clasificador. Durante la década de 1980 hubo un gran estancamiento en el campo debido, principalmente a la falta de resultados alentadores por parte de la mayoría de las investigaciones realizadas en la década pasada. Sin embargo, a principios de la década de 1990 resurge el interés por el reconocimiento automatizado de rostros, esto principalmente debido al interés en las posibles aplicaciones, tanto comerciales como militares y a la disponibilidad de nuevo hardware que podría hacer viable el desarrollo de un sistema de reconocimiento de rostros en tiempo real. Actualmente existen diversas aproximaciones para tratar el problema del reconocimiento de rostros, la figura 2.1 muestra las aproximaciones más comunes. PCA Reconocimiento Automatizado de Rostros. Análisis Basado en la Apariencia Análisis Fotométrico. Lineal No Lineal 2D 3D LDA ICA Otros KPCA ISOMAP Otros Elastic Bunch Graph Matching Active Appearance Models 3D Morphable Model Figura 2.1 Aproximaciones más comunes para tratar el problema del reconocimiento automatizado de rostros. 5

17 2.1. Análisis Lineal Basado en la Apariencia. PCA (Principal Components Analysis). Se basa en el uso de vectores característicos conocidos como eigenfaces, esta técnica fue propuesta por Kirby y Sirovich en PCA es utilizado para reducir el número de dimensiones en un espacio vectorial dimensionalmente alto, cada conjunto de imágenes pertenecientes a un mismo sujeto es considerado, como un vector en este espacio dimensionalmente alto. PCA utiliza métodos estadísticos para remover información que no es útil y descomponer de un modo preciso la estructura del rostro en componentes ortogonales conocidas como eigenfaces. La principal ventaja de esta técnica es que puede reducir los datos necesarios para identificar al individuo a una milésima parte de los datos originales (Subcomitee on Biometrics. National Science and Technology Council. 2006). LDA (Linear Discriminant Analysis). Es una aproximación estadística para clasificar muestras de clases desconocidas, basada en entrenar muestras con clases conocidas. Esta técnica pretende maximizar la varianza entre clases y minimizar la varianza dentro de una clase. En la figura 2.2, donde cada bloque representa una clase, existe una gran varianza entre clases, pero muy poca varianza dentro de cada clase (Subcomitee on Biometrics. National Science and Technology Council. 2006). Figura 2.2 Ejemplo de seis clases utilizando LDA. ICA (Independent Component Analysis). Es un método de análisis de datos que se deriva de las técnicas de Separación de fuentes originadas en el procesamiento de señales. El objetico de la Separación de fuentes es recuperar las señales originales, de las observaciones dadas, donde cada observación es una mezcla (desconocida) de las señales originales. Anticipando que las señales originales son estadísticamente independientes, y bajo condiciones controladas de la mezcla, es posible recuperar las señales originales a partir de cada una de las observaciones dadas. Los algoritmos que reproducen esta técnica son llamados comúnmente ICA, ya que expresan las observaciones como una combinación de las fuentes originales. Al usar ICA los rostros en el conjunto de entrenamiento son vistos como vectores, resultado de una combinación lineal de vectores fuente independientes en un espacio dimensionalmente alto. El objetivo de ICA es encontrar estimaciones de los vectores fuente que sean óptimas para reconstruir las imágenes originales. Los coeficientes resultantes de la expansión ICA son usados como vectores característicos para los rostros, al ser estos vectores independientes entre sí, se espera que representen más fielmente las características naturales del rostro, y por lo tanto sean más capaces de denotar las diferencias entre rostros (Havran, y otros 2002). 6

18 2.2. Análisis No Lineal Basado en la Apariencia. KPCA (Kernel Principal Components Analysis). La metodología básica de KPCA consiste en aplicar un mapeo no lineal a una entrada y entonces resolver para un PCA lineal dentro del espacio lineal característico resultante, donde es más grande que y posiblemente infinita. Debido a este incremento en la dimensionalidad, el mapeo es hecho implícitamente usando los kernels que satisfacen el teorema de Mercer: Donde las evaluaciones del kernel en el espacio de entrada corresponden a productos punto en el espacio dimensionalmente alto (Shakhnarovich y Moghaddam 2004). ISOMAP. Es una técnica de reducción de dimensionalidad no lineal que busca encontrar una transformación (comúnmente un mapeo no lineal) que preserve las distancias geodésicas entre puntos en un espacio dimensional alto. El principal problema con esta técnica surge a partir del cálculo de las distancias geodésicas, punto crítico de este método. La Figura 2.3 muestra una comparación entre la distancia geodésica y la distancia euclidiana para una distribución de datos no lineal (Gutierrez Osuna s.f.). (2.1) 2.3. Análisis Fotométrico. Figura 2.3 Comparación entre la distancia euclidiana y la distancia geodésica. EBGM (Elastic Bunch Graph Matching). Se fundamenta en el hecho de que los rostros humanos contienen muchas características no lineales que no son consideradas por los métodos lineales tratados anteriormente, tales como las variaciones en la iluminación, pose y expresión del rostro. Una transformada Wavelet de Gabor crea una arquitectura dinámica que proyecta el rostro sobre una reja elástica. El jet de Gabor es un nodo dentro de la reja elástica, denotado por círculos en la Figura 2.4, que describe el comportamiento de una imagen alrededor de un pixel dado. El jet es el resultado de una convolución de la imagen con un filtro de Gabor, el cual es usado para detectar formas y extraer características utilizando procesamiento digital de imágenes. El reconocimiento es efectuado al comparar la similitud de la respuesta del filtro de Gabor a cada nodo de Gabor dentro de la reja (Subcomitee on Biometrics. National Science and Technology Council. 2006). 7

19 Figura 2.4 Elastic Bunch Graph Matching. Active Appearance Models. Este método requiere una combinación de modelos estadísticos tanto de textura como de forma para formar un modelo combinado de apariencia. Este modelo combinado de apariencia es entrenado con un conjunto de imágenes, después de haber entrenado el modelo, nuevas imágenes pueden ser interpretadas usando el algoritmo AASA (Active Appearance Search Algorithm) (Ivan 2007). 3D Morphable Model. Los modelos típicos de dos dimensiones de un rostro no distinguen el ángulo de rotación de la cabeza o su forma, y solo algunos de ellos son capaces de separar la cantidad de iluminación y la textura del rostro. La completa separación de la rotación y la forma de un rostro es lograda al ajustar un modelo deformable tridimensional a imágenes en dos dimensiones. Algunos algoritmos hacen coincidir algunos vértices característicos con la imagen, para posteriormente interpolarlos a un modelo deformable tridimensional, la Figura 2.5 muestra este proceso (Volker y Vetter 2003). Figura 2.5 Ejemplo de un modelo deformable tridimensional 8

20 Capítulo 3. Fundamentos Matemáticos del Procesamiento Digital de Señales Preliminares. El presente capítulo tiene como objetivo ilustrar los fundamentos teóricos necesarios para un entendimiento óptimo del problema que se plantea en la presente tesis. Debemos recordar que dada la naturaleza del problema presentado aquí, el lenguaje que se utilizara es de un estricto rigor tanto técnico como científico Imagen Digital. Una imagen digital puede ser denotada como una función bidimensional de la forma. El valor de la amplitud de en coordenadas espaciales es una cantidad escalar positiva cuyo significado físico está determinado por la fuente de la imagen (C. Gonzales y E. Woods 2008). Se dice que una imagen monocromática se extiende sobre la escala de grises. Cuando una imagen es generada de una fuente física, sus valores son proporcionales a la energía radiada desde la fuente (por ejemplo, las ondas electromagnéticas). Como consecuencia debe ser no cero y finita, por lo tanto: (3.1) Donde es el número de bits de profundidad. La función puede ser caracterizada por dos componentes: La cantidad de iluminación de la fuente que incide sobre la escena que está siendo observada. La cantidad de iluminación reflejada por los objetos en la escena. De modo apropiado estas dos cantidades son llamadas componentes de incidencia y reflactancia denotadas por y respectivamente. Estas dos funciones se combinan como un producto para formar. Donde: Y Esto último muestra que tiene como fronteras cero (absorción total) y uno (reflactancia total). La naturaleza de está determinada por la fuente luminosa. (3.2) (3.3) (3.4) 9

21 Muestreo y Cuantización de Imágenes. La idea básica detrás del muestreo y la cuantización se muestra en la Figura 3.1. La Figura 3.1(a) muestra una imagen continua, que deseamos convertir a formato digital, una imagen puede ser continua a lo largo de las coordenadas y en amplitud. Para convertirla en formato digital tendríamos que muestrear tanto los valores de coordenadas como los de amplitud. La digitalización de las coordenadas es llamada muestreo y la digitalización de los valores de amplitud es llamada cuantización (C. Gonzales y E. Woods 2008). La función unidimensional que se muestra en la Figura 3.1 (b) es una gráfica de valores de amplitud (niveles de gris) de la imagen continua a lo largo del segmento de línea AB en la Figura 3.1(a). Las variaciones aleatorias son debido al ruido en la imagen. Para muestrear esta función, tomamos muestras espaciadas equitativamente a lo largo de la línea AB, como se muestra en la Figura 3.1(c). La localización de cada muestra se ilustra como una línea vertical en la parte inferior de la ilustración. Las muestras son ilustradas como pequeños cuadros blancos superpuestos en la función. El conjunto de localizaciones de estas muestras da como resultado una función muestreada, sin embargo, los valores de las muestras se extienden continuamente sobre una escala de gris. Con el objetivo de formar una función digital, los valores de gris deben ser convertidos (cuantizados) en cantidades discretas. El lado derecho de la Figura 3.1(c) muestra una escala de gris dividida en ocho valores discretos que van desde el negro al blanco. La asignación de los valores de gris a cada muestra se hace dependiendo de la proximidad vertical con cada uno de los valores de la escala. Los resultados del muestreo y la cuantización se muestran en la Figura 3.1 (d) (C. Gonzales y E. Woods 2008). Figura 3.1 Generando una imagen digital. (a) Imagen Continua. (b) una línea de muestro de A hasta B en la imagen continúa usada para mostrar los conceptos de muestreo y cuantización. (c) Muestreo y Cuantización. (d) línea de muestreo digital. 10

22 Representación de Imágenes Digitales. El resultado del muestreo y la cuantización es una matriz de números reales. Asumamos que una imagen es muestreada para que la imagen digital resultante tenga filas columnas. Los valores de las coordenadas son ahora cantidades discretas. De este modo, los valores de las coordenadas en el origen son. La Figura 3.2 muestra la convención adoptada para denotar las coordenadas de una imagen digital (C. Gonzales y E. Woods 2008). Figura 3.2 Convención de coordenadas para imágenes digitales. El pixel (3,1) está marcado en gris. La notación introducida anteriormente nos permite escribir la imagen digital como una matriz compacta de dimensiones, como se muestra a continuación. (3.5) Expresar el muestreo y la cuantización en términos matemáticos más formales puede ser útil a veces. Dejemos que denoten el conjunto de enteros reales y el conjunto de números reales respectivamente. El proceso de muestreo puede ser visto como una partición del plano en una reja, con las coordenadas del centro de cada fragmento de la reja siendo un par de elementos de producto cartesiano, el cual es el conjunto de pares ordenados con y siendo enteros de y una función que asigna un nivel de gris (es decir un numero real perteneciente al conjunto ) a cada par distinto de coordenadas. Esta regla de correspondencia funcional es obviamente el proceso de muestreo y cuantización descrito anteriormente. Si los niveles de gris son también enteros (como es el caso de la mayoría de las imágenes monocromáticas), entonces reemplaza al conjunto, y una imagen digital entonces se convierte en una función bidimensional cuyos valores de coordenadas y amplitud son enteros. El proceso de digitalización requiere de valores para y y, el número de valores de gris permitidos para cada pixel. No hay restricciones para y, otra que deben ser enteros positivos. Sin embargo, debido a las consideraciones de procesamiento, almacenamiento y hardware de muestreo el número de niveles de gris típicamente es una potencia entera de base dos. (3.6) 11

23 El número, de bits necesarios para almacenar una imagen digital es: (3.7) Cuando, esta ecuación toma la forma: La tabla 3.1 muestra el numero de bits necesarios para almacenar imágenes cuadradas con varios valores para. Cuando una imagen puede tener niveles de gris, es una práctica común referirnos a la imagen como una imagen de bits. Por ejemplo, una imagen con 256 posibles valores de gris es llamada una imagen de 8 bits. N/k 1(L=2) 2(L=4) 3(L=8) 4(L=16) 5(L=32) 6(L=64) 7(L=128) 8(L=256) 32 1,024 2,048 3,072 4,096 5,120 6,144 7,168 8, ,096 8,192 12,288 16,384 20,480 24,576 28,672 32, ,384 32,768 49,152 65,536 81,920 98, , , , , , , , , , , , , ,432 1,048,576 1,310,720 1,572,864 1,835,008 2,097, ,048,576 2,097,152 3,145,728 4,194,304 5,242,880 6,291,456 7,340,032 8,388, ,194,304 8,388,608 12,582,912 16,777,216 20,971,520 25,165,824 29,369,128 33,554, ,777,216 33,554,432 50,331,648 67,108,864 83,886, ,663, ,440, ,217, ,108, ,217, ,326, ,435, ,544, ,653, ,762, ,870,912 Tabla 3.1 Número de bits necesarios para almacenar una imagen con varios valores de N y Función Histograma. Muchas técnicas en procesamiento digital de imágenes y visión por computadora hacen uso del histograma de una imagen. El histograma de una imagen se define como: una función discreta con niveles de intensidad de gris en el rango, denotado como, de modo tal que: (3.8) (3.9) Donde es el ésimo nivel de gris, es el número de pixeles en la imagen con el nivel de intensidad y el número total de pixeles en la imagen. La Figura 3.3 muestra el histograma de una imagen en escala de grises. 12

24 Figura 3.3 Ejemplo de una imagen en escala de grises y su histograma. La función proporciona un estimado de la probabilidad de ocurrencia de un nivel de gris dado. De igual forma, la función también habla de una imagen. Figura 3.4 Una imagen poco contrastada, oscura y su histograma. 13

25 Figura 3.5 Una imagen con poco contraste, clara y su histograma. Por ejemplo, un histograma de una imagen cargada hacia a la izquierda nos habla de una imagen con poco contraste y oscura (Figura 3.4), mientras que un histograma con valores cargados hacia la derecha nos habla de una imagen también con poco contraste pero brillante, como se ilustra en la Figura 3.5 (Sossa Azuela 2006) La Convolución y los Filtros Espaciales. Matemáticamente la Convolución de una función (x, y) puede ser definida como: (3.10) Dónde es una imagen en un espacio continuo y es el llamado kernel de convolución (Glyn 2002). En el procesamiento digital de imágenes, sin embargo, no se trabaja con imágenes definidas en un espacio continuo, por lo tanto, utilizaremos la definición de convolución para un espacio discreto: (3.11) Donde, es decir, el conjunto de todas las coordenadas donde es distinto de cero. 14

26 Si tomamos en cuenta la convención de coordenadas para una imagen digital definida anteriormente, podemos reescribir la ecuación anterior como: (3.12) De la ecuación anterior podemos observar que el resultado de la convolución es una suma con peso de los valores de la imagen alrededor de. Que tanto contribuye cada valor de la imagen al resultado de la convolución está determinado por los valores de. Ejemplo: Suponga el siguiente kernel de convolución. (3.13) Podemos rescribir como: Utilizando la ecuación de la convolución con el kernel anterior tenemos: Por lo que vemos que el resultado de la Convolución es exactamente la suma de los valores de la imagen que ocurren alrededor de donde el kernel tiene valor Filtro de Suavizado (Pasa Bajas). El kernel para este tipo de filtros es el siguiente: (3.14) El efecto de la convolución de una imagen y este kernel, es que el valor de cada pixel es reemplazado por el promedio de sí mismo y sus ocho vecinos. Algunos usos de este filtro incluyen la reducción de ruido y la eliminación de frecuencias altas Filtro de Nitidez. Un ejemplo de un kernel que mejora los detalles de una imagen es el siguiente: (3.15) 15

27 Note que todos los factores en el kernel suman 1, así que la convolución con este kernel no cambia el valor del pixel en una parte de la imagen que tiene valores de gris constante, sin embargo, si el pixel tiene un valor de gris más alto o más bajo que sus vecinos su valor será aumentado por el filtro. A continuación se da un ejemplo de cómo se utiliza un filtro de nitidez a una imagen digitalizada, utilizando la ecuación (3.15). 16

28 Note que el borde exterior de la imagen desaparece como resultado de la convolucion, esto debido a la imposibilidad de operar con los valores contenidos en esa porcion de la imagen, en consecuencia la imagen resultado tendrá dimensiones menores a la imagen original. En la Figura 3.6 se muestra el resultado de aplicar este filtro a una imagen en escala de grises, como se puede observar, los detalles de la imagen han sido resaltados como resultado de la convolucion. Figura 3.6 Ejemplo del uso del filtro de nitidez Algoritmos de Agrupación (Clustering). Podemos definir a los algoritmos de agrupación como aquellos que tienen el objetivo de agrupar datos en un cierto número de clases, basándose en mecanismos que causan que los datos contenidos en estas clases presenten características similares entre ellos. Sea un conjunto de datos que representa un conjunto de puntos en. El objetivo es particionar en subconjuntos denotados como, de modo tal que cada dato que pertenezca al mismo subconjunto comparta características similares. El resultado de los algoritmos de agrupación es un mapeo inyectivo de datos a clases. (Fung 2001) De acuerdo al tipo de aprendizaje, los algoritmos de agrupación pueden clasificarse en dos categorías: Algoritmos de Aprendizaje Supervisado. Este tipo de algoritmos son provistos con información acerca del numero de clases que existen, el objetivo es predecir una clase para una entrada desconocida. 17

29 Algoritmos de Aprendizaje No Supervisado. Los algoritmos de este tipo no tienen ningún tipo de información a priori acerca del número de clases existentes, el objetivo es encontrar las reglas que representan la distribución de los datos con el objetivo de encontrar información acerca de las posibles clases en el conjunto de datos. La Figura 3.7 muestra el diagrama de un algoritmo de agrupación, a la izquierda se tienen vectores dispersos, después de utilizar algún algoritmo de agrupación, se obtienen clases en las cuales están acomodados los vectores según sus características y similitudes (Gómez Allende 1993). Figura 3.7 Representación simbólica de un algoritmo de agrupación. Los algoritmos de agrupación varían entre sí por el mayor o menor grado de reglas heurísticas que utilizan e, inversamente, por el nivel de procedimientos involucrados. La calidad de un algoritmo depende de la implementación y del criterio elegido (Gómez Allende 1993). Un buen método tendrá las siguientes características. Producirá clases de calidad, es decir, habrá alta similitud entre los elementos de una misma clase, y baja similitud entre elementos que pertenezcan a distintas clases. La capacidad para descubrir patrones ocultos. Para medir la semejanza entre objetos se suelen utilizar diferentes métricas: distancia euclidiana, distancia de Manhattan, distancia de Minkowski, etc. En la Figura 3.8 se muestra un ejemplo de cómo se agrupan objetos en un espacio bidimensional conforme su distancia. Se nota claramente que se pueden obtener dos clases. Figura 3.8 A la izquierda se tiene un conjunto de objetos. A la derecha un diagrama con el nivel de distancia entre los objetos. 18

30 Sin embargo, se tiene que tener cuidado cuando se toma un umbral para determinar las clases. Si la distancia umbral es demasiado grande, la mayor parte de las muestras quedarán en una misma clase, si la distancia umbral es demasiado pequeña, podemos obtener demasiadas clases. La tabla 3.2 contiene la definición matemática de distintas métricas. Métrica Distancia Euclidiana Definición Distancia Manhattan Distancia de Minkowski Los algoritmos de agrupación más comunes son: Tabla 3.2 Tabla con las métricas más comunes. Algoritmo de las distancias encadenadas (Chain - Map). Algoritmo Max Min. Algoritmo de las K Medias. Algoritmo ISODATA Algoritmo de Distancias Encadenadas. Este algoritmo no requiere ningún tipo de información a priori respecto de la distribución por clases de los objetos a clasificar. Dado una serie de objetos a clasificar, se escoge uno de ellos al azar. A continuación se ordenan según la sucesión: (3.15) En donde esta sucesión se ha formado de tal manera que el siguiente vector de la cadena es el más próximo al anterior. Es decir será el vector más próximo al, el vector será el más cercano al y así sucesivamente. El siguiente paso es el establecimiento de las clases, para ello se analizan los valores de las distancias euclidianas entre cada elemento y el elemento siguiente. Si una distancia y la siguiente se diferencian más de un umbral dado se considera que existe una nueva clase. Si no se pasa a analizar la distancia siguiente. (3.16) Cuando encontremos un, crea una clase. La distancia umbral es el parámetro más problemático, un umbral bajo dará lugar a clases ficticias, mientras que un umbral alto tenderá a agrupar en una misma clase muestras de clases distintas. En la Figura 3.9 se observa gráficamente la distribución por clases de una serie de vectores dados. 19

31 Figura 3.9 Representación idealizada de un histograma. Distancia euclidiana vs índice de la distancia Algoritmo Max Min. Se tiene una serie de objetos a clasificar, se escoge uno de ellos al azar. Que se elegirá como primera clase. A continuación se obtiene la distancia euclidiana del resto de los elementos respecto a x i. Para determinar si existe una segunda clase se elige el elemento más lejano, y si la distancia que los separa es mayor que un valor prefijado se considera como segunda clase. Para ver si son necesarias más clases o no se realizará una primera clasificación de los objetos restantes a las dos clases conocidas. Para ello se obtienen las parejas de distancias entre los puntos restantes y las dos clases anteriores. Para cada elemento se toma la mínima de las dos. De entre ellas se elige la máxima, que si es mayor a un tanto por ciento de la distancia entre las dos clases se elegirá a dicho elemento como prototipo de una tercera (de aquí el nombre de algoritmo Max - Min) clase. El proceso se vuelve a realizar sólo que tomando ahora tres distancias y obteniéndose la cuarta Cuando no se obtengan más clases se ordenarán el resto de los objetos según el criterio de mínima distancia, es decir, los elementos que queden sin agrupar se asignarán a la clase más cercana Algoritmo de las K Medias. El algoritmo de clustering K-medias, clasifica o agrupa objetos basándose en atributos ó características dentro de un número de k grupos. Donde K es un número entero positivo. Se hace la agrupación minimizando la suma de las distancias entre datos y el centroide correspondiente. Este algoritmo parte del conocimiento a priori del número de clases pero no de sus características. Para el algoritmo de k medias se tienen los siguientes pasos. 1. De entre la serie a clasificar se escogen de forma arbitraria, tantos elementos como número de clases y se considera que constituyen los centros (o valores prototipo) de cada clase. 20

32 2. Una vez obtenidos los centros, se calcula la distancia euclidiana de éstos contra todos los demás objetos. 3. Siguiendo el criterio de mínima distancia, se clasifica cada objeto con el centro más cercano. 4. Se vuelven a calcular los centros de cada clase. Para ello se toma la media de todos los valores dentro de cada clase. 5. Si los centros, no varían se considera que el algoritmo ha terminado, si no, se vuelve a repetir desde el paso numero 2. Es un algoritmo simple pero muy eficiente. Una serie de factores influyen en el comportamiento del algoritmo: El parámetro k o número prefijado de clases: un valor superior al real dará lugar a clases ficticias, y un k inferior producirá menos clases de las reales. Los centroides iníciales. La distribución geométrica de los valores. Por ello no es extraño que se tengan que hacer varias suposiciones hasta encontrar una que resuelva el problema La Eigen Descomposición de una Matriz. Los eigenvectores y los eigenvalores de una matriz cuadrada son valores y vectores respectivamente, que proporcionan información acerca de la estructura de la matriz a la que están asociados. La eigen descomposición de este tipo de matrices es una importante herramienta estadística, ya que es utilizada para hallar el máximo (o mínimo) de funciones que involucran a estas matrices. Por ejemplo, el análisis de componentes principales (PCA) es obtenido a partir de la eigen descomposición de una matriz de covarianza. Los eigenvalores y eigenvectores son también llamados vectores característicos y raíces latentes (en alemán, eigen significa especifico de ó característico de ). El conjunto de eigenvalores de una matriz constituye el espectro de la misma (Hervé 2007) Definición. Suponga que: (3.17) Es una matriz de dimensiones con valores en. Suponga además que existe un número y un vector no cero tal que, decimos entonces que es un eigenvalor de la matriz, y que es el eigenvector correspondiente al eigenvalor. (W. W. L 2006) Suponga que es un eigenvalor de la matriz, y que es un eigenvector correspondiente al eigenvalor. Tenemos entonces, donde es la matriz identidad, por lo que. Ya que es no cero, tenemos que: (3.18) 21

33 En otras palabras: (3.19) Note que la ecuación anterior es una ecuación polinomial. Las raíces de esta ecuación son los eigenvalores de la matriz. El polinomio representado en esta ecuación es llamado polinomio característico de la matriz Por ejemplo, la matriz: Tiene el polinomio característico, en otras palabras, Los eigenvalores resultantes de esta ecuación son y, con los eigenvectores correspondientes: La Figura 3-10 muestra la gráfica de los eigenvectores de la matriz Y Figura 3.10 Gráfica de los eigenvectores de la matriz A Extracción de Características (Rasgos). Durante las etapas de diseño de un sistema de reconocimiento de formas (ver Figura 3.11), la selección y extracción de características es un aspecto fundamental para una correcta clasificación. Selección del Universo de Trabajo Segmentación Selección y Extracción de Rasgos. Cálculo de Funciones Discriminantes Clasificación Figura Diagrama a bloques de un sistema de reconocimiento automático de formas (Gómez Allende 1993). 22

34 En muchas ocasiones los datos obtenidos tras el análisis de un fenómeno son altamente redundantes (contienen poca información significativa). En estos casos conviene realizar una transformación que permita representar dichos datos de una manera más concreta, pero que al mismo tiempo conserve las relaciones subyacentes que los hacen únicos. Dado que la caracterización del conjunto de datos depende en gran medida del dominio en el que se trabaje, conviene considerar algunas propiedades que una característica representativa de un conjunto de datos debe cumplir (Gómez Allende 1993) (Sossa Azuela 2006). 1. Capacidad Discriminante. Es decir, que separe lo más nítidamente posible las clases existentes. Los rasgos deben permitir discriminar entre los objetos de diferentes clases; tienen que proporcionar valores numéricos para objetos de clases distintas. 2. Fiabilidad. Esto es, los objetos de una misma clase deberán presentar la menor dispersión posible. 3. Incorrelación. Nunca deben utilizarse características que dependan fuertemente entre sí, ya que no añaden información discriminante. 4. Rapidez de cálculo. Esta propiedad está sujeta al sistema en el que se desarrolle el sistema de reconocimiento de formas. Las características deben poder calcularse en tiempos aceptables. Este es un requisito que puede llegar a ser determinante en ciertas aplicaciones. 5. Economía de cálculo. Es una propiedad hasta cierto punto independiente del diseño teórico del sistema, pero esencial desde un punto de vista práctico. La Incorrelación es medida sobre las combinaciones posibles de parejas de dos características, clase a clase, a partir de la matriz de covarianza. (3.20) El coeficiente de correlación de dos características genéricas se define como: (3.21) Estas variables serán tanto más independientes entre sí cuanto más próximo a cero sea su coeficiente de correlación. La cuantificación de la fiabilidad se calcula utilizando la matriz de covarianza y analizando los valores de la diagonal principal, clase a clase. Los elementos de la diagonal principal de son precisamente las varianzas de las correspondientes características. Cuantos mayores sean estos elementos, mayor es la dispersión estadística de las características. 23

35 Selección del Vector de Características. Aunque la selección de características tiene el objetivo primario de seleccionar características relevantes e informativas, puede tener otras motivaciones (Guyon y Elisseeff 2004). 1. Reducción General de los Datos. Para limitar los requerimientos e incrementar la velocidad de los algoritmos. 2. Reducción del conjunto de características. Para ahorrar recursos en la siguiente recolección de datos o durante la utilización. 3. Mejorar el desempeño. En específico para mejorar la eficiencia predictiva. 4. Entendimiento de los datos. Para ganar conocimiento acerca del proceso que genero los datos o simplemente para ayudar a la visualización de los datos. El problema de la selección consiste en pasar de un conjunto de características a un subconjunto de características, que dé lugar a un rendimiento igual o menor al obtenido con el conjunto de caracteristicas. Aunque es posible evaluar el comportamiento o bondad de una característica a través de parámetros como el coeficiente de correlación o el radio de Fisher (Gómez Allende 1993), estos sólo se evalúan para una característica aislada del resto. No basta con calcular los parámetros descritos anteriormente para las características disponibles y eliminar aquellas que no superen un cierto umbral. Sólo en el caso de que todas las características elegidas fueran estadísticamente independientes, podríamos basar nuestra selección en parámetros como el radio de Fisher. Sin embargo, dado que el total de características opera como un conjunto es necesario tomar en cuenta otras aproximaciones para resolver este problema. 1. Selección de un subconjunto de características. Consiste en evaluar el rendimiento global del sistema para una serie de subconjuntos de características; eligiéndose el que aporte los mejores resultados. 2. Transformación del vector de características. Se basa en aplicar una transformación matricial del vector original de características: (3.22) De tal forma que las nuevas componentes del vector de características estén incorrelacionadas, con lo que se podría evaluar la bondad discriminante de cada una de ellas con independencia de las demás y eliminar aquellas que no superen un cierto umbral discriminante Transformación del Vector de Características. El objetivo de aplicar transformaciones al vector de características es mejorar la calidad de las mismas. Es decir, se busca que el rendimiento del sistema sea mayor tras una transformación del vector de características (Guyon y Elisseeff 2004). 24

36 Algunas de las transformaciones más comunes incluyen: Mapeos Lineales y No Lineales. Cuando la dimensionalidad de los datos es muy alta, algunas técnicas pueden utilizarse para proyectar los datos en un espacio vectorial de menor dimensionalidad al mismo tiempo que se retiene la mayor cantidad de información posible. Ejemplos de estas técnicas son: El Análisis de Componentes Principales y el Escalamiento Multidimensional. Las coordenadas de los puntos que representas los datos pueden ser utilizadas como características o como medios para visualizar los datos. Expansiones No Lineales. Aunque la reducción de la dimensionalidad es altamente utilizada cuando se trabaja con datos complejos, algunas veces es mejor incrementarla. Esto sucede cuando el problema es muy complejo y las interacciones de primer orden no son suficientes para derivar buenos resultados. Típicamente el proceso consiste en computar productos de las características originales para crear monomios. Transformaciones a Espacios Discretos. Algunos algoritmos no manejan adecuadamente datos definidos en un espacio continuo. Para resolver esto, conviene realizar una conversión a un espacio discreto y finito. Este paso, no solo facilita el uso de ciertos algoritmos, podría además, simplificar la descripción de los datos y facilitar su entendimiento. La extracción y selección de características es un paso clave en el diseño de cualquier sistema de reconocimiento de formas, condicionando en gran medida el éxito del mismo. Un aspecto clave en la extracción y selección de características es cuidar que la cantidad de información que se retiene sea suficiente para asegurar un buen rendimiento del sistema. 25

37 Capítulo 4. El Análisis de Componentes Principales (PCA). El Análisis de Componentes Principales es una técnica estadística que puede ser utilizada para simplificar un conjunto de datos (I. Smith 2002). PCA es una transformación que busca un nuevo sistema coordenado para un conjunto de datos de modo tal que, la mayor cantidad de varianza recaiga en el primer eje (llamada primera componente principal), la segunda mayor cantidad de varianza en el segundo eje y así sucesivamente. PCA puede ser utilizado para reducir la dimensionalidad en un conjunto de datos sin perder las características del conjunto que más contribuyen a su varianza, al eliminar las componentes principales menos significativas Simplificación de un Conjunto de Datos con PCA. El cálculo de componentes principales se hace a partir de una matriz de covarianza (una matriz de covarianza es siempre simétrica y cuadrada) que se obtiene a partir de un conjunto de datos dado. Suponga un cuerpo en movimiento con velocidad constante como el de la Figura 4.1, si graficamos la distancia recorrida por el cuerpo a diferentes intervalos de tiempo obtendremos una representación en el plano del movimiento del cuerpo, donde cada punto representa un vector resultado de la combinación lineal de los ejes del plano cartesiano, es decir, cada punto graficado en este espacio bidimensional tiene como base canónica los vectores que definen los ejes cartesianos. Figura 4.1 Un cuerpo moviéndose a velocidad aproximadamente constante. La tabla 4.1 muestra los pares de datos (distancia y tiempo) que describen el movimiento del cuerpo a diferentes intervalos de tiempo. La tabla 4.2 muestra los datos en la forma de desviación media. Si observamos la tabla 4.1 es claro que la velocidad del cuerpo es alrededor de 10 m / s, por lo que el vector unitario que describiría esta velocidad es. X= t (s) Y= d (m) Tabla 4.1 Distancia recorrida por el cuerpo en once intervalos de tiempo. X= t (s) Y= d (m) Tabla 4.2. Datos en forma de desviación media. 26

38 La Figura 4.2 muestra los datos en una gráfica de distancia vs tiempo, donde podemos apreciar sobre la misma, una recta que se ajusta a estos datos mediante una regresión lineal, esta recta representa la trayectoria de, por lo que el vector debe encontrarse sobre esta recta. Figura 4.2 Gráfica de distancia vs tiempo Cálculo de la Matriz de Covarianza. Como se indicó anteriormente el movimiento del cuerpo se encuentra descrito por dos pares de datos que representan distancia y tiempo, es decir, tratamos con un conjunto de datos bidimensional, sin embargo, desconocemos en qué medida están correlacionadas las dimensiones que componen este conjunto de datos. La covarianza proporciona una medida a partir de la cual es posible determinar qué tan correlacionadas están un par de variables (ó dimensiones), por ejemplo, una covarianza positiva entre datos de distintas dimensiones indica que mientras una cantidad asociada a una dimensión crece, su correspondiente par en la otra dimensión también lo hará; por otra parte, si la covarianza es negativa significa que mientras una de las cantidades crece la otra decrecerá y finalmente si la covarianza es igual a cero, significa que no existe correlación alguna entre datos. La matriz de covarianza captura todas las correlaciones posibles en el conjunto de datos. Recuerde que y, lo que dará como resultado una matriz de covarianza simétrica y cuadrada (4.1) (4.2) La matriz de covarianza resultante queda de la siguiente manera. 27

39 Cálculo de Eigenvalores y Eigenvectores. Se dijo anteriormente que los datos están expresados como combinaciones lineales de los vectores unitarios que representan los ejes cartesianos ( ), sin embargo, estos vectores no siempre resultan apropiados para describir un conjunto de datos, por lo que es necesario hallar una nueva base a partir de la cual expresarlos, los vectores que definen esta nueva base son los eigenvectores de la matriz de covarianza. Los eigenvectores de la matriz de covarianza, también llamados componentes principales, están asociados a escalares conocidos como eigenvalores, la magnitud de los eigenvalores es una medida de la cantidad de varianza aportada por la componente principal asociada al eigenvalor en cuestión, en consecuencia, entre más grande sea la magnitud de un eigenvalor, será mayor la cantidad de varianza que aporta su eigenvector asociado. Una matriz de covarianza de dimensiones tendrá diferentes eigenvalores con diferentes eigenvectores asociados. La eigen descomposición de la matriz de covarianza del conjunto de datos mostrado en la tabla 4.2 arroja los siguientes resultados. La magnitud del eigenvalor asociado a indica que este eigenvector aporta el del total de varianza contenida en el conjunto de datos, además al observar podemos observar que este es aproximadamente igual al vector que describe el movimiento del cuerpo en estudio, esto se debe a que cuando describimos el movimiento de un cuerpo con velocidad constante en términos de distancia y tiempo, la velocidad del cuerpo en cuestión aporta la misma información que las dos variables originales. La Figura 4.3 muestra los ejes formados por los eigenvectores. Como se puede observar, estos ejes son ortogonales y recorren la trayectoria en la que la varianza se maximiza para los datos normalizados (en la dirección de y. Observe además que la mayoría de los puntos que representa el conjunto de datos se proyectan directamente sobre, consecuencia de la cantidad de varianza aportada por este vector. 28

40 Figura 4.3 Gráfica de los ejes formados por los eigenvectores y. Existen diversos métodos para calcular los eigenvectores y eigenvalores de una matriz simétrica cuadrada, si las dimensiones de la matriz no son muy grandes se puede recurrir al polinomio característico de la misma, sin embargo, cuando las dimensiones de la matriz crecen, la complejidad de este método se incrementa notablemente. Cuando la matriz resulta ser muy grande podemos recurrir a métodos iterativos tales como el de Jacobi ó el algoritmo QR (E. García y A. Sozen 2002). Dado que los eigenvectores de la matriz de covarianza servirán como nueva base para los datos es importante que estos estén normalizados (en forma de vectores unitarios) e idealmente ordenados de mayor a menor Condiciones para Efectuar un Cambio de Base. Es claro que cada vector en puede ser definido como una combinación lineal de los vectores (los vectores de la base canónica), sin embargo, hasta este punto no sabemos si los eigenvectores de la matriz de covarianza cumplen con las condiciones para ser utilizados como una nueva base de. Para que un conjunto de vectores pueda ser utilizado como base de un espacio vectorial debe cumplir la siguiente definición: Una base para un espacio vectorial es una secuencia de vectores que forman un conjunto que es linealmente independiente y que generan al espacio vectorial (se dice que el conjunto es span del espacio vectorial). De acuerdo a la definición anterior, el primer paso para verificar que los eigenvectores pueden formar una nueva base para es comprobar la independencia lineal de los mismos, recordemos que un conjunto de vectores es linealmente independiente si su determinante es distinto de cero, es decir: 29

41 (4.3) Donde y. Sustituyendo en la ecuación 4.3: (4.4) De donde podemos concluir que son linealmente independientes. Para demostrar que el conjunto de eigenvectores es un span de, debemos verificar que los vectores de la base canónica ( ) pueden ser expresados como una combinación lineal de los dos eigenvectores calculados. Recordemos que los vectores de la base canoníca pueden ser expresados como: En términos de y, podemos expresar al vector como: (4.5) (4.6) (4.7) Al agrupar términos y resolviendo el sistema resultante para y. De manera análoga, podemos expresar al vector, en términos de y como: (4.8) 30

42 Al agrupar términos y resolviendo el sistema resultante para y. Finalmente podemos expresar a en términos de y como: Ahora que se ha comprobado que el conjunto de eigenvectores forma una base válida para, es necesario expresar cada uno de los pares de datos de distancia y tiempo, mostrados en la tabla 4.2 en base a los eigenvectores de la matriz de covarianza, es decir, es necesario efectuar un cambio de base a través de estos eigenvectores (Shlens 2005) Cambio de Base. Para efectuar el cambio de base, es necesario realizar una proyección de los pares de datos de la tabla 4.2 sobre cada uno de los eigenvectores que formaran la nueva base. Note que dado que aporta solo una mínima cantidad de varianza, no es necesario tomarlo en cuenta para este procedimiento, sin embargo, para fines ilustrativos será considerado a continuación. Sea uno de los vectores que representan distancia y tiempo en la tabla 4.2, podemos definir la proyección de este vector sobre como: Por ejemplo, al sustituir el primer par de valores de la tabla 4.2 obtenemos: (4.9) De manera similar, la proyección de sobre se define como: Al sustituir el primer par de valores de la tabla 4.2 obtenemos: (4.10) 31

43 Las proyecciones y representan las variables de distancia y tiempo expresadas en base a y, esta transformación constituye el cambio de base vectorial que se ha analizado. La tabla 4.3 muestra los datos de la tabla 4.2 tras efectuarse el cambio de base en todos ellos. Y X Tabla 4.3 Conjunto de datos resultante tras el cambio de base. Dado que la mayor cantidad de varianza recae solamente en, es posible eliminar con el fin de simplificar el conjunto de datos en estudio, mediante este proceso es posible manejar un conjunto de datos más concreto y significativo, sin que esto signifique una gran pérdida de información. Como punto final de este ejemplo note que la Figura 4.4 muestra una grafica de los datos de la tabla 4.3, en ella aparecen los datos graficados utilizando a y como ejes del plano Figura 4.4 Grafica de dispersión con y como ejes del plano. 32

44 4.2. Reconocimiento de Rostros mediante PCA Toda imagen digital puede ser representada por un vector dentro de un espacio vectorial (denominado image space ) cuya dimensionalidad depende de la imagen en cuestión, es decir, si la imagen tiene pixeles de ancho y pixeles de alto, la dimensionalidad del image space será de Cuando se trata de caracterizar rostros el image space es muy redundante, esto se debe a que cada pixel en una imagen digital está muy correlacionado con los demás pixeles. Sin embargo cuando un grupo de imágenes de rostros son convertidas a su forma vectorial, todas se agrupan en un sub-espacio del image space, esto se debe a que las imágenes de rostros comparten ciertas características globales (la posición del rostro dentro de la imágenes, el tamaño que ocupa el rostro dentro de la imagen, etc.) El objetivo de PCA es caracterizar este sub-espacio conocido como face space en base a las componentes principales más significativas (aquellas que contienen la mayor varianza entre las imágenes) de la matriz de covarianza del conjunto de imágenes de rostros (conjunto de entrenamiento). Una vez que se ha caracterizado el face space, las imágenes del conjunto de entrenamiento serán proyectadas sobre este espacio vectorial, obteniendo así, un vector para cada imagen, cuya dimensionalidad está en el orden del número de componentes principales que se utilizaron para caracterizar el face space. Una vez que se obtienen estos vectores el proceso de reconocimiento consiste en proyectar una imagen de prueba sobre el face space con el objetivo de obtener un vector característico que se comparará con los vectores obtenidos para cada una de las imágenes en el conjunto de entrenamiento Conjunto de Imágenes de Entrenamiento. Considere el conjunto de imágenes de entrenamiento, donde es el número de imágenes en el conjunto, considere que el tamaño de las imágenes es de pixeles. Como se mencionó antes estas imágenes tienen características globales similares y por lo tanto su distribución dentro del image space no es aleatoria (Ahmet Bahtiyar 2003). El vector que define la media del conjunto de entrenamiento esta dado por: (4.10) La desviación de la media de cada una de las imágenes del conjunto de entrenamiento está dada por el vector: Matriz de Covarianza. (4.11) Denotemos la matriz A como aquella matriz que captura cada vector sus dimensiones serán., de acuerdo a lo anterior (4.12) El producto constituye la matriz de covarianza del conjunto de datos, las dimensiones de esta matriz serán. 33

45 (4.13) Cálculo de Eigenvalores y Eigenvectores. Dado que la eigen descomposición de es muy compleja debido a sus dimensiones, es conveniente considerar la matriz de dimensiones dada por: Los eigenvectores y los eigenvalores de están definidos por la siguiente ecuación: Al multiplicar la ecuación (4.15) por : Dado que es un escalar y, la ecuación (4.16) puede escribirse como: (4.14) (4.15) (4.16) (4.17) De donde podemos concluir que es uno de los eigenvectores de, sin embargo sólo se pueden obtener los primeros eigenvalores y eigenvectores de (debido a las dimensiones de ), sin embargo, si solo habrá eigenvectores significativos (los eigenvectores restantes tendrán eigenvalores asociados igual a cero). Dado que los eigenvectores de eigenfaces. constituyen la base vectorial del face space son denominados Eigenfaces. Una característica interesante de los eigenvalores asociados a los eigenfaces de, es que estos siempre tendrán una distribución exponencial, la figura 4.5 muestra un espectro (gráfica de eigenvalores) típico de la matriz. Figura 4.5 Espectro típico de C. 34

46 Aunque es posible caracterizar el face space a partir de los eigenfaces de, no todos ellos aportan la misma cantidad de varianza, debido a esto, es posible eliminar los eigenfaces menos significativos, sin que esto signifique una gran pérdida de información. Los eigenfaces son vectores que apuntan en la dirección de máxima varianza, el valor de varianza que el eigenface representa es directamente proporcional al valor de su eigenvalor asociado, en consecuencia, entre más grande sea el eigenvalor más grande será la varianza que representa el eigenface. La Figura 4.6 muestra una suma acumulativa del porcentaje de varianza aportado por los primeros eigenfaces para un conjunto de entrenamiento de 60 imágenes. De la Figura 4.6 podemos concluir que sólo es necesario un reducido número ( ) del total de eigenfaces para caracterizar adecuadamente el face space Figura 4.6 Suma acumulativa de aportación de varianza de los eigenfaces Proyección de las Imágenes de Entrenamiento sobre el Face Space. Una vez que el face space ha sido caracterizado por los eigenfaces, el conjunto de imágenes de entrenamiento debe ser proyectado sobre este espacio vectorial, con el objetivo de obtener la contribución de cada eigenface para representar cada una de las imágenes del conjunto de entrenamiento. La contribución de un eigenface para representar una imagen se define como: (4.18) Nótese que esta operación está definida como el producto punto entre 2 vectores (un eigenface y el vector que define la desviación de la media de una imagen de entrenamiento), por lo que es análogo al cálculo de una componente al proyectar un vector sobre otro en un espacio vectorial dimensionalmente bajo. A partir de la contribución de cada eigenface para la representación de una imagen, es posible construir los vectores característicos (cuyas dimensiones serán ), que son la representación de una imagen dentro del face space, y por lo tanto, otorgan unicidad a cada imagen del conjunto de entrenamiento. (4.19) Vemos entonces que a través de PCA es posible representar una imagen como un simple vector de dimensiones en el face space, al contrario de una representación. 35

47 Proceso de Reconocimiento. Considere la imagen de prueba, para efectuar el reconocimiento de esta imagen es necesario compararla con las imágenes en el conjunto de entrenamiento, en consecuencia, debe ser proyectada sobre el face space. La desviación de la media de se define como: La contribución de cada eigenface para representar esta dada por: (4.20) (4.21) El vector característico que representa a en el face space está definido por: (4.22) Una vez que se ha obtenido el vector característico, este puede ser comparado con los vectores característicos del conjunto de entrenamiento utilizando diversas métricas, o algoritmos de agrupación como los descritos en el Capítulo 3. 36

48 Capítulo 5. Metodología Propuesta Introducción. En el presente capítulo se hará una descripción de las etapas de un sistema de reconocimiento de rostros, así como, la descripción del sistema desarrollado Descripción General de un Sistema de Reconocimiento de Rostros. Para realizar un sistema de reconocimiento automático de rostros existen muchas variables que considerar, dependiendo de estas se pueden utilizar distintos métodos en conjunto para lograr el mejor desempeño del sistema, sin embargo, esto sólo se consigue con un gran número de pruebas, ya que algunos métodos dan mejores resultados que otros, dependiendo el problema que se trate de resolver. La función principal de un sistema de rostros es la comparación de una imagen de entrada con un conjunto de imágenes que el sistema tiene como entrenamiento, y decidir cual imagen es la que más se parece. Como ya se ha mencionado el algoritmo principal de este sistema de reconocimiento de rostros es el Análisis de Componentes Principales (PCA), cuyo objetivo es reducir la dimensión de un conjunto de datos, de modo que la nueva base describa mejor las características del conjunto. En términos matemáticos, se desea encontrar los componentes principales de la distribución de rostros Factores de Ruido. Antes de poder utilizar el sistema de reconocimiento hay que contar con una base de datos, que contenga una cierta cantidad de imágenes, para que pueda funcionar el sistema, cada persona (denominada clase), debe contar con un determinado número de imágenes y como mínimo deben ser tres personas con una imagen de cada uno. Existen cinco factores principales que pueden afectar la eficiencia del sistema al momento de tomar las fotos como son: La Iluminación. Este factor puede considerarse como el más problemático de todos. Sólo con una pequeña variación en la iluminación de dos imágenes de la misma clase el sistema podría confundirse a tal grado de considerar que es otra clase (Ver Figura 5.1). Figura 5.1 Ruido provocado por cambios de iluminación. 37

49 La Distancia. La distancia puede cambiar al tomar fotos, es por esto que se corre el riesgo de meter ruido, como por ejemplo, que no solo aparezca el rostro sino también los hombros, brazos, etc. Haciendo más difícil comparar. Observar Figura 5.2. Figura 5.2 Ruido provocado por cambios de distancia. El Fondo de la Imagen. Si el fondo no fuera uniforme, el sistema puede confundir el rostro y tomar la imagen completa con lo que tenga alrededor. Observar Figura 5.3. Figura 5.3 Ruido provocado por cambios de fondo. Cambios Faciales. Si las fotos fueron tomadas en distintos días, puede ser que la persona cuando se tomo las imágenes de entrenamiento utilizaba un tipo de peinado, y cuando se realizo la prueba tenía otro, o inclusive pudo haber tenido gorra. Observar Figura 5.4. Figura 5.4 Ruido provocado por cambios faciales. Orientación del Rostro. Esto se debe a que una persona se mueve al tomar la foto por ejemplo: por una distracción. Observar Figura 5.5. Figura 5.5 Ruido provocado por la orientación del rostro. 38

50 Hay que tener encuentra que algunas imágenes se utilizaran para el entrenamiento del sistema y otras para el reconocimiento, y que al aumentar el número de fotos por clase también aumenta dramáticamente el tiempo de entrenamiento. Las imágenes de entrenamiento deben ser distintas a las que se utilizan para el reconocimiento, estas últimas incluso pueden tomarse en el instante que se quiera probar el sistema, previamente entrenado con las imágenes de la clase que se quiera utilizar Etapas del Sistema. 1. Etapa de entrenamiento. En el proceso de entrenamiento se utiliza una base de datos de imágenes como entrada, y por medio de PCA obtener sus Eigenvectores, Eigenvalores y Eigenfaces, para poder formar el face space. Que se utiliza para que las imágenes de entrenamiento se han proyectadas sobre él. Y obtener sus vectores característicos. Como se muestra en la Figura 5-6. Conjunto de entrenamiento. 1, 2, 3, M Procesamiento digital de la imagen Computar imagen promedio i Cálculo de Eigenfaces Calcular Eigenvectores, Eigenvalores. Cálculo de la matriz de covarianza Calcular vectores de desviación i = i - i Ordenar por eigenvalor Proyectar cada imagen de entrenamiento al face space Obtener el vector característico de cada imagen. Figura 5.6 Diagrama a bloques de la etapa de entrenamiento. 2. Proyección de imagen(es) de prueba. Una vez que está entrenado el sistema, y se desea reconocer una persona, se coloca la imagen para ser proyectada al face space y de esta forma obtener su vector característico, como se muestra en la Figura 5.7. Imagen(es) de prueba. Vectores de desviación media Proyectar al face space Cálculo del vector característico. Figura 5.7 Diagrama a bloques de la proyección de una imagen de prueba. 39

51 3. Etapa de Reconocimiento. Esta etapa consiste en la comparación a través de un clasificador euclidiano de los vectores característicos de las imágenes de entrenamiento y el vector característico de una imagen de prueba. Vector característico de la(s) imagen(es) de prueba. Cálculo de las distancias euclidianas entre los vectores característicos. Vector característico de la(s) imagen(es) de entrenamiento. Clasificador euclidiano Figura 5.8 Diagrama a bloques de la etapa de reconocimiento. El funcionamiento del clasificador euclidiano consiste en las siguientes etapas: 1. Dado un vector (el vector característico de una imagen de prueba), calcular las distancias euclidianas de a cada uno de los vectores característicos de las imágenes de entrenamiento. 2. Asignar a la imagen, tal que la distancia es mínima. La figura 5.9 muestra el diagrama a bloques de este proceso de reconocimiento. Función de decisión de distancia mínima Figura 5.9 Diagrama a bloques del funcionamiento del clasificador euclidiano. La función de distancia del clasificador euclidiano es obviamente la distancia euclidiana. Sin embargo, se pueden emplear otras métricas, como la distancia Manhattan o la distancia Minkowsky. La elección de estas métricas debe hacerse tomando en cuenta la carga computacional que su cálculo conlleva. Finalmente la Figura 5.10 muestra un diagrama generalizado del sistema de reconocimiento de rostros. 40

52 Figura 5.10 Sistema de Reconocimiento de Rostros. 41

53 5.3. Descripción del Sistema de Reconocimiento. Se desarrollaron dos sistemas de reconocimiento de rostros la versión 1.0 y la 1.1 para el mejor desarrollo de las pruebas. Estas fueron desarrolladas en visual C# 2008 Express Versión 1.0 A continuación se explican los pasos para utilizar el sistema desde la creación de un nuevo proyecto, hasta poner en marcha un reconocimiento de rostros. En la Figura 5.10 se observa el sistema de reconocimiento de rostros nombrado dotnetpca ver 1.0. Figura 5.11 dotnetpca ver Lo primero es crear un proyecto nuevo, lo que hay que hacer es en la barra de herramientas seleccionar File, y después hacer click en la opción New Project como se observa en la figura 5.11, esto abrirá una nueva ventana en la que podemos seleccionar la carpeta para el proyecto, oprimimos aceptar. Ver Figura

54 Figura 5.12 Menú FIle. Figura 5.13 Cuadro de Dialogo Project Settings. 2. Como segundo paso se prosigue a colocar las imágenes que se utilizaran para entrenar al sistema oprimiendo el botón Add como se observa en la figura 5.13, esto ocasionara que aparezca una ventara para seleccionar las imágenes, las rutas donde se en encuentran las imágenes agregadas se mostraran en forma de lista, por la cual se puede ir desplazando y las imágenes se muestran del lado derecho (ver Figura 5.14), los formatos soportados por el sistema son: bmp, jpg y gif. El botón Delete se utiliza para borrar alguna imagen de la lista y el botón Clear se utiliza para borrar la lista completa. Figura 5.14 El botón Add agrega imágenes de entrenamiento. 43

55 Figura 5.15 Visualización de las Imágenes de entrenamiento, incluyendo rutas. El sistema también cuenta con una herramienta para poder tomar fotos por medio de una webcam, por si no se contara con fotos o por si se quiere hacer una prueba rápida. Para seleccionar esta herramienta solo hay que ir a la barra de herramientas y seleccionar Tools, después dar click con el mouse en la opción Capture Window. Como se observa en la Figura Figura 5.16 Menú Tools. En la Figura 5.16 se puede observar cómo funciona la interfaz para la webcam que consta de dos botones Capture y Save Options. Figura 5.17 Interfaz de Webcam. 44

56 El botón Save Options da la posibilidad de seleccionar las características que se quieren para las fotos como por ejemplo si se quiere a color o en escala de grises, y un tamaño promedio de 256 * 256 pixeles o el tamaño máximo de la cámara como se observa en la Figura Figura 5.18 Cuadro de diálogo Save Options. El botón Capture toma la foto y la guarda en una dirección de disco duro que le asignemos como cualquier otra aplicación, el formato con el que se guardan las imágenes es jpg. 3. Una vez que las fotos fueron agregadas al proyecto, lo siguiente es entrenar el sistema con esas fotos. Esto se hace con el botón Start Training que se muestra en la Figura Figura 5.19 Interfaz de entrenamiento. 4. Cuando el entrenamiento ha finalizado se pueden observar la imagen promedio de todo el conjunto de fotos y los eigenfaces resultantes, existe un TrackBar que se distingue en la Figura 5.19 por una elipse, al moverlo con el mouse se puede ir cambiando de eigenface. Figura 5.20 Resultados del entrenamiento. En este punto ya se puede guardar el proyecto, para que la próxima vez que se quiera utilizar solo se cargue y no sea necesario volverlo a entrenar. Solo hay que seleccionar en el menú File, la opción 45

57 de guardar como se muestra en la Figura 5.20, ya no se necesita dar la dirección de la carpeta por que ya se coloco cuando se creó el proyecto. Figura 5.21 Opción Save. Es importante que la carpeta que elegimos para crear el nuevo proyecto se encuentre vacía debido que cuando se guarda se crean algunos archivos propios pero también se guardan los eigenfaces y si se guarda otro proyecto en la misma carpeta puede ser que se sobrescriban los eigenfaces y se pierdan los del proyecto anterior. En la Figura 5.21 se muestra una ventana de cómo quedan guardados los proyectos. Figura 5.22 Estructura de archivos para un proyecto. 46

58 5. Cuando ya se quiere comenzar a reconocer si una persona se encuentra en el proyecto que está entrenado lo que hay que hacer es oprimir el botón Load Test Image como se observa en la Figura Figura 5.23 Interfaz de prueba. Una vez oprimido el botón Load Test Image, se abre una ventana en la cual podemos seleccionar la imagen que se quiera reconocer. 6. El siguiente paso es la selección de los Eigenvectores que se quieran utilizar. Están organizados del más significativo al menos. Por ejemplo el primer eigenvalor será el más significativo y así sucesivamente. Con el NumericUpDown se pueden seleccionar los eigenvectores como se observa en la Figura Figura 5.24 Elección de Eigenvectores. 7. Ya elegida la imagen para ser reconocida y establecidos los eigenvectores a utilizar solo resta oprimir el botón Start Test para que el sistema comience a funcionar como en la Figura Una vez que termine el sistema proporcionara dos tipos de resultados el primero es la imagen de la persona que el sistema cree que pertenece la imagen introducida en el paso número cinco y el segundo resultado son las distancias euclidianas calculadas del vector característico de la imagen de prueba con todos los vectores característicos de las imágenes de entrenamiento. En la Figura 5.25 se observan los resultados. 47

59 Figura 5.25 Botón Start Test. Figura 5.26 Resultados de una prueba Versión 1.1 En esta versión del sistema tiene las mismas características que la anterior, aunque se agregaron otras, y se elimino la parte que mostraba las distancias euclidianas, fue especialmente modificada para la realización de las pruebas. Sólo se explicaran las opciones extras que tiene esta versión, que se puede observar en la Figura

60 Figura 5.27 dotnetpca versión Crear un nuevo proyecto. Los proyectos entre las dos versiones no son compatibles. 2. Agregar fotos para el entrenamiento. 3. A diferencia de la versión anterior que sólo funcionaba con la componente B (azul) automáticamente. Una característica nueva es que antes de poder comenzar con el entrenamiento del sistema, se tiene que elegir en que componente lo va hacer, en la Figura 5.27 se observa cómo se realiza la elección de la componente. En la barra de menú se agrego la opción Component, la cual contiene las tres componentes del RGB. Esto es con propósitos de prueba para determinar en qué componente ofrece mejores resultados el sistema. Figura 5.28 Opción Component. 49

61 4. Entrenar el sistema. Después de entrenar el sistema ya se puede guardar el proyecto. 5. En la version1.1 del sistema de reconocimiento de rostros ya se pueden elegir fotos al mismo tiempo para realizar el reconocimiento, en la versión anterior solo si podía de una en una. Esto ofrece un gran ahorro de tiempo cundo se tienen muchas fotos. 6. Ana vez que ha terminado de comparar las fotos de prueba, se puede ir desplazando por las fotos y al mismo tiempo se irá mostrando el resultado. Ver Figura Figura 5.29 Resultados en la versión

62 Capítulo 6. Experimentación y Resultados Bases de Datos para la Experimentación. Para el de desarrollo de la presente tesis se recurrió a juntar una gran cantidad de fotos de personas en distintos lugares. En las escuelas como son: La Escuela Superior de Ingeniería Mecánica y Eléctrica, y el Centro de Investigación en Computación, con profesores y alumnos, también con familiares y amigos. Las fotos se tomaron a lo largo de 2 meses, la cantidad de fotos por persona es variable. Con el fin de llegar a resultados concretos acerca de la eficiencia del Análisis de Componentes Principales, el total de imágenes capturadas fue organizado en 3 diferentes Bases de Datos de Rostros, cada una diseñada para investigar el desempeño de PCA bajo diversos escenarios. Además de estas tres bases de datos, se incluyen los resultados de la experimentación con la base de datos construida por el Dr. Libor Spacek (Spacek 2007). Base de Datos Distance-1.5. Contiene 250 imágenes de tres mujeres y seis hombres, las imágenes fueron tomadas a una distancia promedio de 1.5 metros, contra un fondo claro y uniforme. Para todos los sujetos existen variaciones en la expresión facial (sonriendo / no sonriendo), orientación de la cabeza, iluminación y enfoque. Además en esta base de datos se contempla un escenario donde el número de imágenes por individuo es variable. Las imágenes se encuentran en formato JPG, en una resolución de (ancho alto), con una profundidad de color de 24 bits y divididas en dos carpetas, entrenamiento y prueba respectivamente. Varios ejemplos de los rostros contenidos en esta base de datos se pueden apreciar en la Figura 6.1. Figura 6.1 Ejemplo de los rostros contenidos en la base de datos Distance-1.5. Base de Datos Distance-1.0. Esta base de datos posee una naturaleza similar a Distance-1.5, contiene 200 imágenes de cuatro mujeres y seis hombres, estas fueron tomadas a una distancia promedio de 1 metro, contra un fondo claro y uniforme, contiene para cada individuo, variaciones en expresión facial, orientación de la cabeza, iluminación y enfoque. A diferencia de Distance-1.5 se contempla un número igual de imágenes por individuo (20). El formato de las 51

63 imágenes es idéntico al de las contenidas en la base de datos Distance-1.5. Un ejemplo de las imágenes contenidas en esta base de datos puede observarse en la Figura 6.2. Figura 6.2 ejemplos de los rostros contenidos en la base de datos Distance-1.0 Base de Datos HighNoise. Representa la prueba más exigente en lo que a términos de Ruido se refiere, las imágenes contenidas en esta base de datos presentan para un mismo individuo, variaciones en iluminación, fondo (no uniforme), escala del rostro, expresión facial, enfoque y detalles faciales (uso de gorras, lentes, etc.). Contiene 320 imágenes de cinco mujeres y 3 hombres, contemplando 40 imágenes por individuo. El formato y organización de las imágenes de esta base de datos es idéntico al de las dos bases anteriores. La Figura 6.3 muestra varios ejemplos de los rostros de la base de datos HighNoise. Figura 6.3 Ejemplos de los rostros contenidos en la base de datos HighNoise Base de Datos Rostros (Spacek 2007). Provee un escenario, donde fuentes de ruido, como la iluminación y el enfoque son controladas casi por completo. Como se puede observar a en la Figura 6.4, los bordes de la imagen han sido ajustados a los rostros, con el fin de eliminar la mayor cantidad de ruido posible debido al fondo, además de diferencias en la escala y enfoque de la imagen. Las imágenes contienen variaciones progresivas en la expresión facial. Esta base de datos contiene 300 imágenes de 13 hombres y 2 mujeres, el escenario propuesto contempla 4 imágenes por individuo para el entrenamiento y 16 imágenes por individuo para las pruebas. Las imágenes se encuentran en formato BMP, en una resolución de (ancho alto), con una profundidad de color de 24 bits y divididas en dos carpetas, entrenamiento y prueba respectivamente. Varios ejemplos de los rostros contenidos en esta base de datos se pueden apreciar en la Figura

64 Figura 6.4 Ejemplos de los rostros contenidos en la base de datos Rostros 6.2. Eficiencia vs Cantidad de Varianza. Como fue discutido en el Capítulo 4, sólo se necesita un reducido número de eigenfaces para caracterizar el face space. Esta aproximación tiene numerosos beneficios, además de reducir notablemente la dimensionalidad de las imágenes, reduce el tiempo necesario para conducir el proceso de reconocimiento. Dado que el número de proyecciones que se necesitan realizar sobre una imagen de prueba disminuye notablemente. Sin embargo, el proceso anterior conlleva algunas pérdidas de varianza, con el objetivo de determinar cómo afectan estar pérdidas de varianza a la eficiencia del sistema, se efectuó la siguiente experimentación: 1. Para cada base de datos, se determinó la eficiencia máxima del sistema, esta se logra al caracterizar el face space con el número total de eigenfaces obtenidos y por lo tanto, proyectar cada imagen de prueba sobre cada uno de estos eigenfaces. 2. Se eligieron tres porcentajes de varianzas distintos para cada base de datos, lo que significa utilizar un número distinto de eigenfaces para efectuar la experimentación. 3. Se proporcionan los resultados detallados de cada individuo dentro de las bases de datos, con el propósito de facilitar el análisis de estos resultados. 53

65 Porcentade de Varianza Porcentaje de Eficiencia Los resultados para la base de datos Distance-1.5 pueden apreciarse en las tablas 6.1, 6.2 y 6.3. Espectro luminoso: Rojo. Tiempo de entrenamiento: 00:06:41 Nombre de la Base de Datos: Distance-1.5. Cantidad de imágenes de entrenamiento: 125 Condiciones de la Prueba: Cantidad de imágenes de prueba: 125 Equipo utilizado: Gateway MX 6947m. Iluminación variable entre clases. Iluminación aproximadamente constante dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1.5m. Sujeto de prueba / Número Número de eigenvectores / Porcentaje de varianza. Resultados. imágenes de entrenamiento 1 / % 3 / % 7 / 73.78% 125/100% Charly / 10 Éxitos Fracasos Cobilt / 20 Éxitos Fracasos Dr. Sossa / 20 Éxitos Fracasos Noya / 20 Éxitos Fracasos Girl3 / 15 Éxitos Fracasos Girl13 / 10 Éxitos Fracasos Lupita / 10 Éxitos Fracasos Pedro / 10 Éxitos Fracasos Subject9 / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % 76 % 70.4 % 72.8% Tabla 6.1 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.5 Suma Acumulativa de Varianza (Distance-1.5 Rojo). Figura 6.6 Gráfica de Eficiencia (Distance-1.5 Rojo). 54

66 Porcentaje de Varianza Porcentaje de Varianza Espectro luminoso: Verde. Nombre de la Base de Datos: Distance-1.5. Tiempo de Cantidad de imágenes de entrenamiento: entrenamiento: 00:06: Condiciones de la Prueba: Cantidad de imágenes de prueba: 125 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente constante dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1.5m. Sujeto de prueba / Número de imágenes de entrenamiento Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / % 7 / % 125/100% Charly / 10 Éxitos Fracasos Cobilt / 20 Éxitos Fracasos Dr. Sossa / 20 Éxitos Fracasos Noya / 20 Éxitos Fracasos Girl3 / 15 Éxitos Fracasos Girl13 / 10 Éxitos Fracasos Lupita / 10 Éxitos Fracasos Pedro / 10 Éxitos Fracasos Subject9 / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % 58.4 % 70.4 % 73.6% Tabla 6.2 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.7 Suma Acumulativa de Varianza (Distance-1.5 Verde). Figura 6.8 Gráfica de Eficiencia (Distance-1.5 Verde). 55

67 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Azul. Nombre de la Base de Datos: Distance-1.5. Tiempo de Cantidad de imágenes de entrenamiento: entrenamiento: 00:06: Condiciones de la Prueba: Cantidad de imágenes de prueba: 125 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente constante dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1.5m. Sujeto de prueba / Número de Imágenes de entrenamiento Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / 51.9 % 7 / % 125/100% Charly / 10 Éxitos Fracasos Cobilt / 20 Éxitos Fracasos Dr. Sossa / 20 Éxitos Fracasos Noya / 20 Éxitos Fracasos Girl3 / 15 Éxitos Fracasos Girl13 / 10 Éxitos Fracasos Lupita / 10 Éxitos Fracasos Pedro / 10 Éxitos Fracasos Subject9 / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % 62.4 % 66.4 % 69.6% Tabla 6.3 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.9 Suma Acumulativa de Varianza (Distance-1.5 Azul). Figura 6.10 Gráfica de Eficiencia (Distance-1.5 Azul).. A partir de las graficas de eficiencia mostradas en las tablas 6.1, 6.2 y 6.3, podemos observar que, el nivel de eficiencia del sistema se estabiliza en un punto máximo al utilizar los siete primeros eigenfaces. Lo que representa en promedio un 73.28% del total de varianza obtenido. A partir de este punto, las variaciones en los resultados son mínimas, utilizar un mayor número de eigenvectores, sólo significaría incrementar sin beneficio alguno el tiempo de reconocimiento. 56

68 Porcentaje de Varianza Porcentaje de Eficiencia Debido a los factores de ruido contenidos en esta base de datos, el porcentaje de eficiencia no es óptimo, esto debido a que, tales factores son incluidos dentro de la caracterización del face space, lo que provoca una distribución indeseable tanto de las imágenes de entrenamiento, como de las imágenes de prueba. Los resultados para la base de datos Distance-1.0 pueden apreciarse en las tablas 6.4, 6.5 y 6.6. Espectro luminoso: Rojo. Nombre de la Base de Datos: Distance-1.0. Tiempo de Cantidad de imágenes entrenamiento: de entrenamiento: 00:04: Condiciones de la Prueba: Cantidad de imágenes de prueba: 100 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente igual dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1 m. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 7 / % 100/100% Felipe / 10 Éxitos Fracasos Fermín / 10 Éxitos Fracasos Girl1 / 10 Éxitos Fracasos Girl7 / 10 Éxitos Fracasos Girl10 / 10 Éxitos Fracasos Guille / 10 Éxitos Fracasos Ing. Ruiz / 10 Éxitos Fracasos Subject3 / 10 Éxitos Fracasos Subject5 / 10 Éxitos Fracasos Teo / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia. 27 % 54 % 65 % 66% Tabla 6.4 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.11 Suma Acumulativa de Varianza (Distance-1.0 Rojo). Figura 6.12 Gráfica de Eficiencia (Distance-1.0 Rojo). 57

69 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Verde. Nombre de la Base De Datos: Distance-1.0. Tiempo de Cantidad de imágenes de entrenamiento: entrenamiento: 00:04: Condiciones de la Prueba: Cantidad de imágenes de prueba: 100 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente igual dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1 m. Sujeto de prueba / Numero de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 7 / % 100/100% Felipe / 10 Éxitos Fracasos Fermín / 10 Éxitos Fracasos Girl1 / 10 Éxitos Fracasos Girl7 / 10 Éxitos Fracasos Girl10 / 10 Éxitos Fracasos Guille / 10 Éxitos Fracasos Ing. Ruiz / 10 Éxitos Fracasos Subject3 / 10 Éxitos Fracasos Subject5 / 10 Éxitos Fracasos Teo / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia. 32 % 58 % 65 % 66% Tabla 6.5 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.13 Suma Acumulativa de Varianza (Distance-1.0 Verde). Figura 6.14 Gráfica de Eficiencia (Distance-1.0 Verde). 58

70 Porcentaje de Varianza Porcentaje de Varianza Espectro luminoso: Azul. Nombre de la Base de Datos: Distance-1.0. Cantidad de imágenes de entrenamiento: 100 Tiempo de entrenamiento: 00:04:17 Condiciones de la Prueba: Cantidad de imágenes de prueba: 100 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente igual dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1 m. Sujeto de prueba / Numero de Imágenes de Entrenamiento Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / % 7 / % 100/100% Felipe / 10 Éxitos Fracasos Fermín / 10 Éxitos Fracasos Girl1 / 10 Éxitos Fracasos Girl7 / 10 Éxitos Fracasos Girl10 / 10 Éxitos Fracasos Guille / 10 Éxitos Fracasos Ing. Ruiz / 10 Éxitos Fracasos Subject3 / 10 Éxitos Fracasos Subject5 / 10 Éxitos Fracasos Teo / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia. 34 % 59 % 65 % 66% Tabla 6.6 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.15 Suma Acumulativa de Varianza (Distance-1.0 Azul). Figura 6.16 Gráfica de Eficiencia (Distance-1.0 Azul). Los resultados sobre la base de datos Distance-1.0 muestran un descenso en el nivel de eficiencia del sistema en relación a los resultados obtenidos para la base de datos Distance-1.5. Dado que la naturaleza de los factores de ruido entre estas dos bases de datos es similar, podemos concluir que diferencias mínimas en el enfoque y la iluminación de una imagen, pueden conducir a variaciones 59

71 Porcentaje de Varianza Porcentaje de Eficiencia significativas en el desempeño del sistema. Especial atención merece el caso del sujeto de prueba Ing. Ruiz, note que en las 3 componentes RGB, la eficiencia del sistema decae notablemente debido a este caso, consecuencia de una pobre caracterización del face space debido a los factores de ruido; en especial el enfoque y la iluminación. Los resultados para la base de datos HighNoise pueden apreciarse en las tablas 6.7, 6.8 y 6.9. Espectro luminoso: Rojo. Tiempo de entrenamiento: 00:10:41 Nombre de la Base de Datos: HighNoise. Cantidad de imágenes de entrenamiento: 160 Condiciones de la Prueba: Cantidad de imágenes de prueba: 160 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación variable dentro de la misma clase. Distancia a la que se tomaron las fotos es variable. Fondo no uniforme. Las fotos fueron tomadas en diferentes días. Cambios radicales en la apariencia, posición y expresión de las personas. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 11 / % 160/100% Alicia / 20 Éxitos Fracasos Alma / 20 Éxitos Fracasos Arturo / 20 Éxitos Fracasos Brenda / 20 Éxitos Fracasos María / 20 Éxitos Fracasos Maryfer / 20 Éxitos Fracasos Misael / 20 Éxitos Fracasos Ricardo / 20 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % % % Tabla 6.7 Efectos de la variación de la cantidad de varianza en la componente R de la base de datos HighNoise Número de Eigenfaces Número de Eigenfaces Figura 6.17 Suma Acumulativa de Varianza (HighNoise Rojo). Figura 6.18 Gráfica de Eficiencia (HighNoise Rojo). 60

72 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Verde. Tiempo de entrenamiento: 00:10:41 Nombre de la Base de Datos: HighNoise. Cantidad de imágenes de entrenamiento: 160 Condiciones de la Prueba: Cantidad de imágenes de prueba: 160 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación variable dentro de la misma clase. Distancia a la que se tomaron las fotos es variable. Fondo no uniforme. Las fotos fueron tomadas en diferentes días. Cambios radicales en la apariencia, posición y expresión de las personas. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 11 / % 160/100% Alicia / 20 Éxitos Fracasos Alma / 20 Éxitos Fracasos Arturo / 20 Éxitos Fracasos Brenda / 20 Éxitos Fracasos María / 20 Éxitos Fracasos Maryfer / 20 Éxitos Fracasos Misael / 20 Éxitos Fracasos Ricardo / 20 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % 42.5 % % Tabla 6.8 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos HighNoise Número de Eigenfaces Número de Eigenfaces Figura 6.19 Suma Acumulativa de Varianza (HighNoise Verde). Figura 6.20 Gráfica de Eficiencia (HighNoise Verde). 61

73 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Azul. Tiempo de entrenamiento: 00:10:41 Nombre de la Base de Datos: HighNoise. Cantidad de imágenes de entrenamiento: 160 Condiciones de la Prueba: Cantidad de imágenes de prueba: 160 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación variable dentro de la misma clase. Distancia a la que se tomaron las fotos es variable. Fondo no uniforme. Las fotos fueron tomadas en diferentes días. Cambios radicales en la apariencia, posición y expresión de las personas. Sujeto de prueba / Numero de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 11 / % 160/100% Alicia / 20 Éxitos Fracasos Alma / 20 Éxitos Fracasos Arturo / 20 Éxitos Fracasos Brenda / 20 Éxitos Fracasos María / 20 Éxitos Fracasos Maryfer / 20 Éxitos Fracasos Misael / 20 Éxitos Fracasos Ricardo / 20 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % % Tabla 6.9 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos HighNoise Número de Eigenfaces Número de Eigenfaces Figura 6.21 Suma Acumulativa de Varianza (HighNoise Azul). Figura 6.22 Gráfica de Eficiencia (HighNoise Azul). Las tablas 6.7, 6.8 y 6.9 muestran los resultados de la experimentación sobre la base de datos HighNoise, en ellas queda ejemplificada la alta sensibilidad de PCA a los factores de ruido descritos en la sección 5.2.1, queda de manifiesto la necesidad de utilizar técnicas de pre procesamiento que permitan controlar los factores de ruido, de modo que su influencia en los resultados sea reducida al mínimo. Los resultados para la base de datos Rostros pueden apreciarse en las tablas 6.10, 6.11 y

74 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Rojo. Tiempo de entrenamiento: 00:00:40 Nombre de la Base de Datos: Rostros. Cantidad de imágenes de entrenamiento: 60 Condiciones de la Prueba: Cantidad de imágenes de prueba: 240 Equipo utilizado: Gateway MX6947m. Iluminación constante entre clases. Iluminación constante dentro de la misma clase. La posición del rostro dentro de la imagen es aproximadamente la misma en todos los casos. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 7 / % 60/100% And / 4 Éxitos Fracasos Ant / 4 Éxitos Fracasos Chr / 4 Éxitos Fracasos Dah / 4 Éxitos Fracasos Dav / 4 Éxitos Fracasos Den / 4 Éxitos Fracasos Glen / 4 Éxitos Fracasos Ian / 4 Éxitos Fracasos Éxitos Jer / 4 Fracasos John / 4 Éxitos Fracasos Lib / 4 Éxitos Fracasos Mike / 4 Éxitos Fracasos Pat / 4 Éxitos Fracasos Sar / 4 Éxitos Fracasos Will / 4 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % 87.5 % Tabla Efectos de la variación de la cantidad de varianza en la componente R de la base de datos Rostros Número de Eigenfaces Figura 6.23 Suma Acumulativa de Varianza (Rostros Rojo). Número de Eigenfaces Figura 6.24 Gráfica de Eficiencia (Rostros Rojo). 63

75 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Verde. Tiempo de entrenamiento: 00:00:40 Nombre de la Base de Datos: Rostros. Cantidad de imágenes de entrenamiento: 60 Condiciones de la Prueba: Cantidad de imágenes de prueba: 240 Equipo utilizado: Gateway MX6947m. Iluminación constante entre clases. Iluminación constante dentro de la misma clase. La posición del rostro dentro de la imagen es aproximadamente la misma en todos los casos. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / 37.5 % 3 / % 7 / % 60/100% And / 4 Éxitos Fracasos Ant / 4 Éxitos Fracasos Chr / 4 Éxitos Fracasos Dah / 4 Éxitos Fracasos Dav / 4 Éxitos Fracasos Den / 4 Éxitos Fracasos Glen / 4 Éxitos Fracasos Ian / 4 Éxitos Fracasos Éxitos Jer / 4 Fracasos John / 4 Éxitos Fracasos Lib / 4 Éxitos Fracasos Mike / 4 Éxitos Fracasos Pat / 4 Éxitos Fracasos Sar / 4 Éxitos Fracasos Will / 4 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % % 86.25% Tabla 6.11 Efectos de la variación de la cantidad de varianza en la componente G de la base de datos Rostros Número de Eigenfaces Número de Eigenfaces Figura 6.25 Suma Acumulativa de Varianza (Rostros Verde). Figura 6.26 Gráfica de Eficiencia (Rostros Verde). 64

76 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Azul. Nombre de la Base de Datos: Rostros. Tiempo de entrenamiento: Cantidad de imágenes 00:00:40 de entrenamiento: 60 Condiciones de la Prueba: Cantidad de imágenes de prueba: 240 Equipo utilizado: Gateway MX6947m. Iluminación constante entre clases. Iluminación constante dentro de la misma clase. La posición del rostro dentro de la imagen es aproximadamente la misma en todos los casos. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 7 / % 60/100% And / 4 Éxitos Fracasos Ant / 4 Éxitos Fracasos Chr / 4 Éxitos Fracasos Dah / 4 Éxitos Fracasos Dav / 4 Éxitos Fracasos Den / 4 Éxitos Fracasos Glen / 4 Éxitos Fracasos Ian / 4 Éxitos Fracasos Éxitos Jer / 4 Fracasos John / 4 Éxitos Fracasos Lib / 4 Éxitos Fracasos Mike / 4 Éxitos Fracasos Pat / 4 Éxitos Fracasos Sar / 4 Éxitos Fracasos Will / 4 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % % 90 % 90.41% Tabla 6.12 Efectos de la variación de la cantidad de varianza en la componente B de la base de datos Rostros Número de Eigenfaces Número de Eifenfaces Figura 6.27 Suma Acumulativa de Varianza (Rostros Azul). Figura 6.28 Gráfica de Eficiencia (Rostros Azul) 65

77 Dada la naturaleza de la base de datos Rostros, es fácil concluir a partir de los resultados de las tablas 6.10, 6.11 y 6.12 que, cuando factores de ruidos como la escala, el enfoque y la iluminación son controlados, el nivel de eficiencia del Sistema de Reconocimiento de Rostros aumenta notablemente. Note además que a diferencia de las bases de datos anteriores, la base de datos Rostros, necesita un número menor de eigenfaces para estabilizarse en su nivel máximo de eficiencia, lo que reducirá el tiempo necesario para reconocer una imagen de prueba Eficiencia en RGB y Escala de Gris. Todos los pixeles de una imagen digital aportan un color, dicho color se encuentra definido por una estructura que contiene 3 valores que corresponden a los colores primarios Rojo (Red), Verde (Green) y Azul (Blue), de modo que el color real del pixel es una combinación de estos colores, en consecuencia la información que cada componente aporta a la imagen es diferente, esta diferencia queda de manifiesto al observar el histograma de cada una de esta componentes (ver Figura 5.33). Cuando utilizamos PCA caracterizamos la información que cada una de estas componentes aporta, en consecuencia el face space resultante será diferente en cada caso, y por lo tanto los resultados del reconocimiento de rostros serán distintos. Además de caracterizar una imagen a partir de sus componentes RGB, es posible realizar una transformación a escala de grises, comúnmente esta transformación se logra al calcular la luminiscencia efectiva de un pixel a partir de sus componentes RGB, esta transformación está definida por (6.1): (6.1) Figura 6.29 Histogramas RGB (de izquierda a derecha) de una imagen digital. Al realizar esta transformación, los valores de las componentes RGB serán los mismos, y la información de la imagen será distinta a la de las componentes RGB. Para determinar cómo varia la eficiencia en relación a la información RGB y en escala de grises, las imágenes de las bases de datos Distance-1.0 y Rostros fueron convertidas a escala de grises y se efectuaron las pruebas con las mismas cantidades de varianza mostradas en la sección 6.2. Los resultados de estas pruebas pueden apreciarse en las tablas 6.13, 6.14, 6.15 y

78 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Escala de Grises. Nombre de la Base de Datos: Rostros. Tiempo de Cantidad de imágenes entrenamiento: de entrenamiento: 00:00:40 60 Condiciones de la Prueba: Cantidad de imágenes de prueba: 240 Equipo utilizado: Gateway MX 6947m. Iluminación constante entre clases. Iluminación constante dentro de la misma clase. La posición del rostro dentro de la imagen es aproximadamente la misma en todos los casos. Sujeto de prueba / Número de Resultados. Número de eigenvectores / Porcentaje de varianza. Imágenes de Entrenamiento 1 / % 3 / % 7 / % 60/100% And / 4 Éxitos Fracasos Ant / 4 Éxitos Fracasos Chr / 4 Éxitos Fracasos Dah / 4 Éxitos Fracasos Dav / 4 Éxitos Fracasos Den / 4 Éxitos Fracasos Glen / 4 Éxitos Fracasos Ian / 4 Éxitos Fracasos Éxitos Jer / 4 Fracasos John / 4 Éxitos Fracasos Lib / 4 Éxitos Fracasos Mike / 4 Éxitos Fracasos Pat / 4 Éxitos Fracasos Sar / 4 Éxitos Fracasos Will / 4 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % 90.41% 90.83% 90.83% Tabla 6.13 Resultados en escala de grises para la base de datos Rostros Número de Eigenfaces Número de Eigenfaces Figura 6.30 Suma Acumulativa de Varianza (Rostros Gris). Figura 6.31 Gráfica de Eficiencia (Rostros Gris). 67

79 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Escala de grises. Tiempo de entrenamiento: 00:04:17 Nombre de la Prueba: Distance-1.0. Cantidad de imágenes de entrenamiento: 100 Condiciones de la Prueba: Cantidad de imágenes de prueba: 100 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación aproximadamente igual dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1 m. Sujeto de prueba. Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / % 7 / % 100 / 100% Felipe / 10 Éxitos Fracasos Fermín / 10 Éxitos Fracasos Girl1 / 10 Éxitos Fracasos Girl7 / 10 Éxitos Fracasos Girl10 / 10 Éxitos Fracasos Guille / 10 Éxitos Fracasos Ing. Ruiz / 10 Éxitos Fracasos Subject3 / 10 Éxitos Fracasos Subject5 / 10 Éxitos Fracasos Teo / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia. 22 % 54 % 65 % 65 % Tabla 6.14 Resultados en escala de grises para la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.32 Suma Acumulativa de Varianza (Distance-1.0 Gris). Figura 6.33 Gráfica de Eficiencia (Distance-1.0 Gris) 68

80 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Escala de Grises. Nombre de la Base de Datos: Distance-1.5. Tiempo de entrenamiento: Cantidad de 00:07:50 imágenes de entrenamiento: 125 Condiciones de la Prueba: Cantidad de imágenes de prueba: 125 Equipo utilizado: Gateway MX 6947m. Iluminación variable entre clases. Iluminación aproximadamente constante dentro de la misma clase. Distancia a la que se tomaron las fotos aproximadamente 1.5m. Sujeto de prueba / Numero de Imágenes de Entrenamiento Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / % 7 / 72.40% 125/100% Charly / 10 Éxitos Fracasos Cobilt / 20 Éxitos Fracasos Dr. Sossa / 20 Éxitos Fracasos Noya / 20 Éxitos Fracasos Girl3 / 15 Éxitos Fracasos Girl13 / 10 Éxitos Fracasos Lupita / 10 Éxitos Fracasos Pedro / 10 Éxitos Fracasos Subject9 / 10 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia. 31.2% 59.2% 71.2% 72.8% Tabla 6.15 Resultados en escala de grises para la base de datos Distance Número de Eigenfaces Número de Eigenfaces Figura 6.34 Suma Acumulativa de Varianza (Distance-1.5 Gris) Figura 6.35 Gráfica de Eficiencia (Distance-1.5 Gris) 69

81 Porcentaje de Varianza Porcentaje de Eficiencia Espectro luminoso: Escala de Grises. Tiempo de entrenamiento: 00:12:13 Nombre de la Base de Datos: HighNoise. Cantidad de imágenes de entrenamiento: 160 Condiciones de la Prueba: Cantidad de imágenes de prueba: 160 Equipo utilizado: Gateway MX6947m. Iluminación variable entre clases. Iluminación variable dentro de la misma clase. Distancia a la que se tomaron las fotos es variable. Fondo no uniforme. Las fotos fueron tomadas en diferentes días. Cambios radicales en la apariencia, posición y expresión de las personas. Sujeto de prueba / Número de Imágenes de Entrenamiento Resultados. Número de eigenvectores / Porcentaje de varianza. 1 / % 3 / % 11 / % 160/100% Alicia / 20 Éxitos Fracasos Alma / 20 Éxitos Fracasos Arturo / 20 Éxitos Fracasos Brenda / 20 Éxitos Fracasos Maria / 20 Éxitos Fracasos Maryfer / 20 Éxitos Fracasos Misael / 20 Éxitos Fracasos Ricardo / 20 Éxitos Fracasos Total de éxitos Porcentaje de eficiencia % 36.25% 47.5% % Tabla 6.16 Resultados en escala de grises para la base de datos HighNoise Número de Eigenfaces Número de Eigenfaces Figura 6.36 Suma Acumulativa de Varianza (HighNoise Gris) Figura 6.37 Gráfica de Eficiencia (HighNoise Gris) 70

82 Los resultados de la experimentación sobre las componentes RGB mostrados en la sección 6.2 muestran algunas variaciones significativas en la eficiencia del Sistema, tal es el caso de los resultados en la base de datos HighNoise, donde existe una diferencia del 7.5% en la eficiencia mostrada entre las componentes G (Verde) y B (Azul). Sin embargo, los resultados en la base de datos Distance-1.0 muestran que el sistema tiene un desempeño idéntico (66%) en las tres componentes RGB. Ya que la información del color que una imagen contiene varia debido a muchas causas (en nuestro caso la más influyente es el fondo), determinar en qué componente PCA tendrá un mejor desempeño es una tarea imposible de realizar previo al análisis del conjunto de entrenamiento, ya que dicha información surgirá como consecuencia de múltiples experimentos como los aquí realizados. Dada la problemática anterior, podemos tomar como alternativa la conversión de las imágenes de entrenamiento a escala de grises, tal conversión, permitirá analizar las imágenes a partir de la luminiscencia efectiva de cada pixel. Los resultados de las tablas 6.13 y 6.14 muestran que en el caso de la base de datos Rostros, el análisis en escala de grises permite alcanzar una gran eficiencia con un número de eigenfaces menor que el utilizado en el análisis RGB, sin embargo, cuando la cantidad de ruido aumenta, como lo es el caso de la base de datos Distance-1.0, no existe beneficio alguno como consecuencia de esta conversión. En conclusión, una etapa de pre - procesamiento encargada de una conversión en escala de grises, puede ser considerada, solo cuando se ha controlado de manera adecuada las fuentes de ruido más comunes, de lo contrario, solo se incrementará inútilmente el tiempo de entrenamiento del Sistema de Reconocimiento de Rostros Eficiencia vs Numero de Imágenes de Entrenamiento. Dado que una sola imagen de entrenamiento no aporta suficiente información acerca de cambios en la expresión facial u orientación del rostro, es necesario determinar cómo varía el desempeño del sistema en relación al número de imágenes de entrenamiento. La prueba se realizo tomando la máxima varianza, con dos bases de datos Rostros y Distance- 1.0, las cuales aportarían condiciones de bajo ruido y ruido moderado, respectivamente. La prueba fue realizada en la componente verde, sin algún motivo de mayor relevancia. Las tablas 6.15 y 6.16 muestran los resultados de la experimentación de las bases de datos mencionadas anteriormente. Nombre de la prueba: porcentaje de eficiencia vs numero de imágenes de entrenamiento. Nombre de la base de datos donde se Componente: realizo: Rostros. verde. Porcentaje de varianza: 100 % Numero de imágenes de entrenamiento Tiempo de entrenamiento 6.6 s 24 s 32 s 40 s % de eficiencia Tabla 6.17 Porcentaje de eficiencia vs numero de imágenes de entrenamiento con la base de datos Rostros. 71

83 Nombre de la prueba: porcentaje de eficiencia vs numero de imágenes de entrenamiento. Nombre de la base de datos donde se Componente: realizo: Distance-1.0. verde. Porcentaje de varianza: 100 % Numero de imágenes de entrenamiento Tiempo de entrenamiento 14 s 55.9 s 2 min 56 s 4 min 17 s % de eficiencia Tabla 6.18 Porcentaje de eficiencia vs numero de imágenes de entrenamiento con la base de datos Distance-1.0. Al igual que en experimentos anteriores, las variaciones más grandes en los resultados ocurren con los primeros eigenfaces, después de cierto número, los resultados tienden a estabilizarse. Observemos que en condiciones de ruido bajo, las variaciones en la eficiencia, debido al cambio en el número de imágenes de entrenamiento son muy bajas, no más del 3%, mientras que en condiciones de ruido moderado las variaciones alcanzan el 16%. Los resultados de las tablas 6.15 y 6.16 nos llevan a concluir que en condiciones de ruido bajo, la información que las imágenes de entrenamiento aportan para el reconocimiento de rostros es mayor y, por lo tanto, se necesita un menor número de imágenes de entrenamiento para alcanzar un buen porcentaje de eficiencia. 72

84 Capítulo 7. Conclusiones y Trabajo Futuro Conclusiones. El desarrollo de un Sistema de Reconocimiento de Rostros representa una tarea muy compleja, esto debido principalmente a la enorme cantidad de información que debe ser procesada y analizada, además las fuentes de ruido como la iluminación y la escala dificultan el manejo de esta información. En esta tesis se presentó un Sistema de Reconocimiento de Rostros basado en el Análisis de Componentes Principales (PCA), esta técnica propuesta en 1991, permite reducir la cantidad de información que debe ser procesada para modelar y comparar rostros humanos. A través del Sistema desarrollado se determinaron las fortalezas y debilidades de PCA. Como primer punto fue demostrado que las imágenes de rostros no tienen una distribución aleatoria en un espacio vectorial y, por lo tanto, es posible caracterizarlas a partir de un conjunto reducido de vectores conocidos como eigenfaces. Sin embargo, dado que PCA caracteriza toda la información contenida en una imagen, existen factores de ruido que afectaran de manera significativa la eficiencia del sistema. Para determinar las variaciones en la eficiencia del sistema debido al ruido, se construyeron cuatro bases de datos de rostros, las cuales aportan grados distintos de ruido debido a la iluminación, escala, enfoque y cambios en la expresión facial; los resultados muestran que el Sistema desarrollado, y en consecuencia PCA, tiene un buen grado de eficiencia en ambientes controlados, es decir, ambientes donde las fuentes de ruido han sido reducidas notablemente, conforme están fuentes de ruido tienen una mayor influencia en las imágenes de rostros, la eficiencia del sistema cae gradualmente. Es posible otorgar a PCA cierta resistencia a fuentes de ruido como el enfoque y la escala, para lograr esto, es necesario incluir en el conjunto de entrenamiento, imágenes que aporten información acerca de cambios con relación a estas fuentes de ruido, al hacer esto, sin embargo, se aumenta notablemente el tiempo de entrenamiento, el cual si observamos los resultados de las experimentaciones tiende a crecer en una proporción mucho mayor en relación al número de imágenes de entrenamiento. Uno de los grandes beneficios de PCA como puede observarse a partir de los resultados en la sección 5.4.1, es que, basta un número reducido de eigenfaces para caracterizar adecuadamente las imágenes de rostros, vemos que en todas las bases de datos basta tomar los primeros 7 eigenfaces para lograr la estabilización del sistema en su máximo punto de eficiencia, como consecuencia de este procedimiento, el tiempo necesario para reconocer un rostro es relativamente bajo. Posteriormente los efectos de caracterizar la información de las imágenes en cada una de las componentes RGB y en escala de grises fueron analizados, los resultados muestran que la caracterización en cada componente es muy similar y en consecuencia, las variaciones en la eficiencia del sistema son despreciables para propósitos prácticos. Por otro lado, al aplicar PCA con información en escala de grises, vemos en situaciones de ruido controlado que se necesita un número menor de eigenfaces para lograr la eficiencia máxima en relación a lo obtenido en componentes RGB, sin embargo, cuando el ruido no es controlado, no existe incremento alguno en la eficiencia, por lo que, incluir una etapa de pre procesamiento encargada de convertir tanto las imágenes de entrenamiento, como las imágenes de prueba a escala de grises resulta útil solo cuando los efectos de las fuentes de ruido han sido minimizados. 73

85 7.2. Trabajo Futuro. Los resultados de todos los experimentos, muestran que los principales factores responsables de un bajo desempeño del sistema y, en consecuencia de PCA, son los cambios en la iluminación y la escala. Como trabajo futuro se propone utilizar técnicas de pre - procesamiento para normalizar la iluminación, tales técnicas consisten en una transformación pixel a pixel a partir de los valores RGB (Kelkar 2001). Los efectos de la escala puede ser reducidos a partir de procedimiento matemáticos que localicen el rostro dentro de una imagen y realicen un cropp alrededor del rostro, eliminando no solo las diferencias en la escala, sino el ruido introducido por el fondo de la imagen. La mejora más sustancial sin embargo, pude realizarse una vez que se han obtenido los vectores característicos de las imágenes de entrenamiento y de la imagen de prueba, el sistema presentado en esta tesis hace uso de la distancia euclidiana para determinar el parentesco entre 2 imágenes, aunque es una técnica que ha demostrado cierto grado de eficiencia, tiene varias desventajas, por ejemplo, es incapaz de distinguir clases dentro del face space. Para lograr una mejor clasificación y aprovechando el hecho de que tras aplicar PCA, las imágenes son representadas por vectores de una dimensionalidad relativamente baja, podemos hacer uso de redes neurales, en especifico de memorias asociativas (Sussner y Valle 2006) ó Mapas Auto Organizativos de Kohonen, en este último caso, existiría el problema de que el mapa debe ser alimentado a priori de una serie de vectores aleatorios con valores probables para una clase. 74

86 Apéndice A. Códigos Fuente. A continuación se listan los códigos fuente de los algoritmos utilizados en el desarrollo del sistema de reconocimiento de rostros. Dado que el sistema fue desarrollado utilizando el lenguaje C#, estos códigos contienen tipos y construcciones propias de este lenguaje, por lo que se recomienda consultar Microsoft MSDN Library en la dirección web Cálculo del Vector Promedio de un Conjunto de Imágenes. public static float[,] GetMeanVector(List<Bitmap> faces, ref List<float[,]> imagesmatrices, ref Label labelpercentdone, string colorcomponent) int i, j, k; float[,] meanvector = new float[faces[0].height, faces[0].width]; float[,] aux; // Extract gray values and obtain meanmatrix according to colorcomponent switch (colorcomponent) case "Blue": for (k = 0; k < faces.count; k++) aux = new float[faces[0].height, faces[0].width]; for (i = 0; i < faces[0].height; i++) for (j = 0; j < faces[0].width; j++) aux[i, j] = (float)faces[k].getpixel(j, i).b; meanvector[i, j] += aux[i, j] / faces.count; imagesmatrices.add(aux); if (labelpercentdone!= null) DisplayPercentDone(k, faces.count - 1, ref labelpercentdone); break; case "Green": for (k = 0; k < faces.count; k++) aux = new float[faces[0].height, faces[0].width]; for (i = 0; i < faces[0].height; i++) for (j = 0; j < faces[0].width; j++) aux[i, j] = (float)faces[k].getpixel(j, i).g; meanvector[i, j] += aux[i, j] / faces.count; imagesmatrices.add(aux); if (labelpercentdone!= null) 75

87 break; DisplayPercentDone(k, faces.count - 1, ref labelpercentdone); case "Red": for (k = 0; k < faces.count; k++) aux = new float[faces[0].height, faces[0].width]; for (i = 0; i < faces[0].height; i++) for (j = 0; j < faces[0].width; j++) aux[i, j] = (float)faces[k].getpixel(j, i).r; meanvector[i, j] += aux[i, j] / faces.count; imagesmatrices.add(aux); if (labelpercentdone!= null) DisplayPercentDone(k, faces.count - 1, ref labelpercentdone); break; return meanvector Descripción: La función GetMeanVector calcula el vector promedio de un grupo de imágenes, este grupo es típicamente el conjunto de imágenes de entrenamiento para el Sistema de Reconocimiento de Rostros. Parámetros: faces: Una colección genérica del tipo Bitmap que contiene el conjunto de imágenes de entrenamiento. imagesmatrices: Una colección genérica del tipo float[,] pasada por referencia donde se almacenaran los valores de la componente especificada por colorcomponent para cada imagen en el conjunto de entrenamiento. labelpercentdone: Un objeto de la clase Label pasado por referencia, utilizado para mostrar el porcentaje de trabajo hecho por este algoritmo. Este parámetro puede ser nulo. colorcomponent: Una cadena de caracteres que especifica, para que componente RGB deben extraerse los valores de cada pixel en las imágenes de entrenamiento. Valor de Retorno. Un arreglo del tipo float[,], que represente el vector promedio del conjunto de Imágenes de entrenamiento. Cálculo de los Vectores de Desviación Media. public static List<float[]> GetPhiVectors(List<float[,]> imagesdata, float[,] meanmatrix, ref Label labelpercentdone) int i, j, k; List<float[]> phivectors = new List<float[]>(); for (k = 0; k < imagesdata.count; k++) phivectors.add(new float[meanmatrix.getlength(0) * meanmatrix.getlength(1)]); 76

88 for (i = 0; i < meanmatrix.getlength(0); i++) for (j = 0; j < meanmatrix.getlength(1); j++) phivectors[k][meanmatrix.getlength(1) * i + j] = imagesdata[k][i, j] - meanmatrix[i, j]; if (labelpercentdone!= null) DisplayPercentDone(k, imagesdata.count - 1, ref labelpercentdone); return phivectors; Descripción: La función GetPhiVectors calcula los vectores de desviación Media de cada una de las imágenes de entrenamiento. Parámetros: imagesdata: Una colección genérica del tipo float[,] que contiene los valores en el rango de de alguna de las componentes RGB, para cada imagen en el conjunto de entrenamiento. meanmatrix: un arreglo del tipo float[,] que representa el vector promedio del conjunto de imágenes de entrenamiento. labelpercentdone: Un objeto de la clase Label pasado por referencia, utilizado para mostrar el porcentaje de trabajo hecho por este algoritmo. Este parámetro puede ser nulo. Valor de Retorno. Una colección genérica del tipo float[] que contiene los vectores de desviación media para cada una de las imágenes de entrenamiento. Cálculo de la Matriz public static double[,] GetMatrixL(List<float[]> phivectors, ref Label labelpercentdone) int i, j, w; double[,] matrixl = new double[phivectors.count, phivectors.count]; for (w = 0; w < phivectors.count; w++) for (i = 0; i < phivectors.count; i++) for (j = 0; j < phivectors[0].length; j++) matrixl[w, i] += phivectors[w][j] * phivectors[i][j]; if (labelpercentdone!= null) DisplayPercentDone(w, phivectors.count - 1, ref labelpercentdone); return matrixl; 77

89 Descripción: La función GetMatrixL calcula la matriz que servirá para efectuar la eigen descomposición de la matriz de covarianza. Parámetros: phivectors: Una colección genérica del tipo float[] que contiene los vectores de desviación media para cada una de las imágenes de entrenamiento. labelpercentdone: Un objeto de la clase Label pasado por referencia, utilizado para mostrar el porcentaje de trabajo hecho por este algoritmo. Este parámetro puede ser nulo. Valor de Retorno. Una arreglo del tipo double[,] que representa la matriz. Eigen Descomposición de una matriz. public static int GetEigen(double[,] S, int n, double[] W, double[,] V) int i, j, k, iq, ip; double p; double[] b = new double[n]; double[] z = new double[n]; int nrot; //make of V an identity matrix for (ip = 0; ip < n; ip++) for (iq = 0; iq < n; iq++) if (ip == iq) V[ip, iq] = 1.0; for (ip = 0; ip < n; ip++) b[ip] = W[ip] = S[ip, ip]; z[ip] = 0.0; nrot = 0; for (i = 0; i < jacobimaxiterations; i++) sm = 0.0; for (ip = 0; ip < n - 1; ip++) for (iq = ip + 1; iq < n; iq++) sm += Math.Abs(S[ip, iq]); if (sm == 0.0) /*eigenvalues and eigenvectors sorting*/ for (i = 0; i < n - 1; i++) p = W[k = i]; for (j = i + 1; j < n; j++) if (W[j] >= p) p = W[k = j]; 78

90 if (k!= i) W[k] = W[i]; W[i] = p; for (j = 0; j < n; j++) p = V[j, i]; V[j, i] = V[j, k]; V[j, k] = p; /*restore symmetric matrix S*/ for (i = 1; i < n; i++) for (j = 0; j < i; j++) S[j, i] = S[i, j]; z = null; b = null; return nrot; if (i < 4) tresh = 0.2 * sm / (n * n); else tresh = 0.0; for (ip = 0; ip < n - 1; ip++) for (iq = ip + 1; iq < n; iq++) g = * Math.Abs(S[ip, iq]); if (i > 4 && Math.Abs(W[ip]) + g == Math.Abs(W[ip]) && Math.Abs(W[iq]) + g == Math.Abs(W[iq])) S[ip, iq] = 0.0; else if (Math.Abs(S[ip, iq]) > tresh) h = W[iq] - W[ip]; if (Math.Abs(h) + g == Math.Abs(h)) t = (S[ip, iq]) / h; else theta = 0.5 * h / (S[ip, iq]); t = 1.0 / (Math.Abs(theta) + Math.Sqrt(1.0 + theta * theta)); if (theta < 0.0) t = -t; c = 1.0 / Math.Sqrt(1 + t * t); s = t * c; tau = s / (1.0 + c); 79

91 h = t * S[ip, iq]; z[ip] -= h; z[iq] += h; W[ip] -= h; W[iq] += h; S[ip, iq] = 0.0; for (j = 0; j < ip; j++) Rotate(ref S, ref j, ref ip, ref j, ref iq); for (j = ip + 1; j < iq; j++) Rotate(ref S, ref ip, ref j, ref j, ref iq); for (j = iq + 1; j < n; j++) Rotate(ref S, ref ip, ref j, ref iq, ref j); for (j = 0; j < n; j++) Rotate(ref V, ref j, ref ip, ref j, ref iq); ++nrot; for (ip = 0; ip < n; ip++) b[ip] += z[ip]; W[ip] = b[ip]; z[ip] = 0.0; z = null; b = null; return -1; /*too many iterations in Jacobi*/ internal static void Rotate(ref double[,] S1, ref int i1, ref int j1, ref int k1, ref int l1) g = S1[i1, j1]; h = S1[k1, l1]; S1[i1, j1] = g - s * (h + g * tau); S1[k1, l1] = h + s * (g - h * tau); Descripción: La función GetEigen efectúa la eigen descomposición de una matriz cuadrada. Parámetros: S: La matriz cuadrada de la cual se desea efectuar la eigen - descomposicion. n: El numero de filas o columnas de la matriz S. W: El arreglo unidimensional donde se almacenaran los eigenvalores de S. V: La matriz donde se almacenaran los eigenvectores de S. Valor de Retorno. Un entero que representa el numero de iteraciones necesarias para efectuar la eigen descomposición. 80

92 Cálculo de Eigenfaces. public static float[,] GetEigenFaces(List<float[]> A, double[,] eigenvectors, ref Label labelpercendone) int i, j, w; float[,] eigenfaces = new float[a[0].length, eigenvectors.getlength(1)]; for (w = 0; w < A[0].Length; w++) for (i = 0; i < eigenvectors.getlength(1); i++) for (j = 0; j < eigenvectors.getlength(1); j++) eigenfaces[w, i] += (float)(a[j][w] * eigenvectors[j, i]); if (labelpercendone!= null) DisplayPercentDone(w, A[0].Length - 1, ref labelpercendone); return eigenfaces; Descripción: La función GetEigenFaces obtiene los eigenfaces de la matriz de covarianza. Parámetros: A: Los vectores de desviación media de las imágenes de entrenamiento. eigenvectors: Los eigenvectores de la matriz. labelpercentdone: Un objeto de la clase Label pasado por referencia, utilizado para mostrar el porcentaje de trabajo hecho por este algoritmo. Este parámetro puede ser nulo. Valor de Retorno. Los eigenfaces de la matriz de covarianza. Cálculo de Vectores Característicos. public static List<float[]> GetOmegaVectors(List<float[,]> gammaimages, float[,] meanvector, float[,] eigenfaces, ref Label labelpercendone) int i, j, k, l, m; float[] omegavector; List<float[]> omegavectors = new List<float[]>(); for (m = 0; m < gammaimages.count; m++) omegavector = new float[eigenfaces.getlength(1)]; for (k = 0; k < eigenfaces.getlength(1); k++) for (i = 0; i < gammaimages[0].getlength(0); i++) l = i; for (j = 0; j < gammaimages[0].getlength(1); j++) omegavector[k] += eigenfaces[l, k] * (gammaimages[m][i, j] - meanvector[i, j]); l += gammaimages[0].getlength(0); omegavectors.add(omegavector); 81

93 if (labelpercendone!= null) DisplayPercentDone(m, gammaimages.count - 1, ref labelpercendone); return omegavectors; Descripción: La función GetOmegaVectors calcula los vectores característicos de las imágenes de entrenamiento. Parámetros: gammaimages: Las matrices que contienen los datos de las imágenes de entrenamiento. meanvector: El vector promedio de las imágenes de entrenamiento. eigenfaces: Los eigenfaces de la matriz de covarianza labelpercentdone: Un objeto de la clase Label pasado por referencia, utilizado para mostrar el porcentaje de trabajo hecho por este algoritmo. Este parámetro puede ser nulo. Valor de Retorno. Los vectores característicos de las imágenes de entrenamiento. Cálculo del Vector Característico de una Imagen de Prueba. public static float[] GetTestProjection(float[,] testmatrix, int nprojections, float[,] meanvector, float[,] eigenfaces) int i, j, k, l; float[] omegatestvector = new float[nprojections]; for (k = 0; k < nprojections; k++) for (i = 0; i < testmatrix.getlength(0); i++) l = i; for (j = 0; j < testmatrix.getlength(1); j++) omegatestvector[k] += eigenfaces[l, k] * (testmatrix[i, j] - meanvector[i, j]); l += meanvector.getlength(0); return omegatestvector; Descripción: La función GetTestProjection calcula el vector característico de una imagen de prueba. Parámetros: testmatrix: La matriz que contiene los datos de la imagen de prueba. nprojections: El número de eigenvectores sobre el cual realizar las proyecciones de la imagen de prueba. meanvector: El vector promedio de las imágenes de entrenamiento. eigenfaces: Los eigenfaces de la matriz de covarianza Valor de Retorno. El vector característico de la imagen de prueba. 82

94 Apéndice B. Software de Utilidad. A continuación se presentan algunas de las herramientas utilizadas en el desarrollo del Sistema de Reconocimiento de Rostros, se presentan, con el motivo de ayudar a reproducir los resultados obtenidos en esta tesis, o apoyar el desarrollo de futuras investigaciones. Paint Shop Pro. Uno de los elementos para el manejo de imágenes es el programa Paint Shop Pro (ver figura A1). Figura B.1 Paint Shop Pro. Paint Shop Pro es un completo programa para crear imágenes, visualizarlas, manipularlas, incluye herramientas para dibujar con diferentes pinceles, retoque fotográfico, optimizador de imágenes, explorador de imágenes, conversión de múltiples ficheros y soporte para escáner. Incluye muchos filtros cuenta con soporte completo de capas, separación de colores, herramientas de corte y herramientas para mejorar las imágenes. Con este software se modifico la resolución de las fotos para las pruebas, a un tamaño adecuado, también una imagen a color se puede convertir a una imagen monocromática con las utilidades que tiene. Otra de las posibilidades que ofrece este software, es que permite calcular el histograma de una imagen monocromática o a colores, con la posibilidad de elegir la componente RGB que se desee. Requisitos mínimos para instalarse: Procesador: 466 MHZ. Memoria: 256 MB. Espacio libre en disco: 500 MB. Resolución de pantalla: (16 bit). 83

95 Graphmatica. Para la elaboración de las graficas de resultados se recurrió a un software llamado graphmatica. En la Figura B.2 se observa la interfaz de este sencillo programa de graficación. Por ejemplo: se utilizo para algunas graficas de la descripción de PCA. Figura B.2 Graphmatica IDE. Obtiene graficas de 6 tipos: en coordenadas cartesianas, polares, paramétricas, aproximaciones campo-tangente, ecuaciones diferenciales ordinarias de primer orden, también admite desigualdades en coordenadas cartesianas. Microsoft.Net.Net es un nuevo modelo para el desarrollo de sistemas tanto en sistemas operativos de la familia Windows como en sistemas operativos ajenos a Microsoft (Mac OS, Linux). Microsoft.Net surge de la necesidad de proveer una plataforma de desarrollo simple, moderna y de alto desempeño para el desarrollo de software. A continuación se listan algunas de las características provistas por.net: Interoperabilidad con código existente. Código binario escrito para el modelo COM puede interactuar de manera conjunta con ensamblados.net. Los servicios de invocación de plataforma (Platform Invocation Services: PInvoke) permiten llamar bibliotecas basadas en C ó C++ (incluyendo el API del Sistema Operativo) desde código escrito para.net. Completa y Total Integración de Lenguajes. Microsoft.Net soporta herencia multilenguaje, manejo de excepciones multilenguaje y depuración de código multilenguaje. 84

96 Un Entorno de Ejecución (Runtime) Compartido. Un aspecto de este entorno de ejecución, es un conjunto de tipos bien definido que cualquier lenguaje compatible con.net puede entender. Un Modelo de Publicación Simplificado. Bajo.Net no hay necesidad de registrar una unidad binaria en el registro del sistema, lo que es más, Microsoft.Net permite que múltiples versiones del mismo dll existan en armonía en una sola computadora. El Entorno Común de Ejecución (Common Language Runtime CLR) Todo programa es ejecutado dentro de un contexto. Programas para DOS son ejecutados dentro del contexto provisto por los servicios del Sistema Operativo DOS. Aplicaciones como Microsoft Word se ejecutan en el contexto de los sistemas operativos Windows y, están sujetos a las limitantes y servicios impuestos por tal Sistema Operativo, como los permisos otorgados a una cuenta de usuario. Por ejemplo, en Windows XP y Windows Server 2003, las aplicaciones tienen acceso restringido al sistema de archivos ya que toda aplicación corren dentro de un contexto seguro que protege el sistema de archivos con una lista de control de acceso. El CLR es un componente central de Microsoft.Net que provee el contexto para que el código administrado sea ejecutado. En algunos sentidos el CLR es una maquina virtual, sin embargo, las capacidades del CLR se extienden más allá del modelo de una maquina virtual. El CLR es autoconsciente de su contexto y, en consecuencia, puede responder apropiadamente dependiendo del ambiente en el que se encuentre. Por ejemplo, el CLR se comporta diferente en Windows 98 y Windows ME qué como lo haría en Windows XP ó Windows Server 2003 debido a las diferencias fundamentales entre estas dos familias de Sistemas Operativos. El CLR tiene además la habilidad de comportarse de manera distinta en ambientes multiprocesador con el objetivo de aprovechar las capacidades de múltiples procesadores. El CLR es una implementación del estándar Ecma-335 de Ecma International conocido como la Infraestructura de Lenguaje Común (CLI), que define un ambiente independiente de la maquina en el cual las aplicaciones son ejecutadas. El Sistema de Ejecución Virtual del CLR provee importantes servicios tales como la administración de memoria (administración del tiempo de vida de un objeto y recolección de basura) y seguridad. EL CLR también provee un compilador JIT (Just In Time) para convertir Lenguaje Intermedio (IL) en código nativo que puede ser ejecutado por el CPU. El Lenguaje Intermedio Común (Common Intermediate Language CIL) El Lenguaje Intermedio Común (CIL ó simplemente IL) es un leguaje diseñado para ser eficientemente convertido en código maquina nativo en diferentes tipos de dispositivos. IL está basado en la estructura de un procesador abstracto basado en una pila. Todos los compiladores de lenguajes compatibles con.net generan IL. Este es un lenguaje de programación de un nivel más bajo que Visual Basic.Net o C#, tiene un grado de similitud al lenguaje ensamblador pero con un nivel de abstracción más alto. La siguiente figura B.3 muestra un ejemplo de IL. 85

97 Figura B.3 Ejemplo del lenguaje IL. El Sistema de Tipo Común (Common Type System - CTS) Al igual que el CLR, el sistema de Tipo Común está definido en el estándar Ecma-335. El CTS es una especificación que describe en su totalidad todos los tipos de dato posibles y construcciones de programación soportadas por el CLR, especifica como estas entidades interactúan una con la otra y detalla cómo son representadas en el formato de metadatos de.net. La Especificación de Lenguaje Común (Common Language Specification - CLS) Ya que el IL es un lenguaje muy rico, no es necesario que cada lenguaje que busque ser compatible con.net implemente toda la funcionalidad del IL descrita en el CTS, en lugar de esto, un lenguaje que busque ser compatible con.net solo necesita cumplir con un subconjunto de tipos comunes y construcciones de programación descritas por la CLS, de modo que si se diseña un lenguaje que siga las consideraciones descritas por la CLS, se puede estar seguro que este código puede interactuar con cualquier otro lenguaje compatible con.net. Bibliotecas de Clase Base (Base Class Libraries) La plataforma.net provee varias bibliotecas base que están disponibles para todos los lenguajes de programación.net. Además de encapsular varios primitivos como hilos, entrada / salida de archivo, manejo de gráficos e interacción con dispositivos de hardware externos, estas bibliotecas proveen un gran número de servicios requeridos por la mayoría de las aplicaciones de hoy en día. Por ejemplo, las bibliotecas de Clase Base definen tipos que facilitan el acceso a bases de datos, manipulación de documentos XML, seguridad programática y aplicaciones web y de escritorio. La figura B.4 muestra la relación que existe entre el CLR, CLS, CTS y las bibliotecas de Clase Base. 86

98 El lenguaje de Programación C#. Figura B.4 Relación existente entre el CLR, CLS, CTS y las bibliotecas de Clase Base. Figura B.5 Microsoft Visual C#. Dado que.net es un cambio radical con respecto a las tecnologías anteriores, Microsoft considero necesario crear un nuevo lenguaje de programación llamado C# (pronunciado see Sharp ), específicamente para esta nueva plataforma de desarrollo. C# (ver figura B.5) es un lenguaje sintácticamente parecido a Java, sin embargo, tanto Java como C# son miembros de la familia C de lenguajes de programación. C# hereda cierta funcionalidad de varios lenguajes anteriores, por ejemplo, al igual que Visual Basic 6, C# soporta el manejo de propiedades para tipos formales y la habilidad de declarar métodos que tomen un número variable de argumentos, como C++, C# permite la sobrecarga de operadores, así como la creación de estructuras enumeraciones y delegados. Dado el hecho de que C# es un hibrido de varios lenguajes, el resultado es un producto sintácticamente limpio, tan simple como Visual Basic 6 y tan poderoso y flexible como C++. A continuación se listan algunas de las características principales del lenguaje C#. 87

Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones.

Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones. Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones. 2.1 Revisión sistema reconocimiento caracteres [9]: Un sistema de reconocimiento típicamente esta conformado por

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides

Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides Introducción La visión artificial, también conocida como visión por computador

Más detalles

Redes de Kohonen y la Determinación Genética de las Clases

Redes de Kohonen y la Determinación Genética de las Clases Redes de Kohonen y la Determinación Genética de las Clases Angel Kuri Instituto Tecnológico Autónomo de México Octubre de 2001 Redes Neuronales de Kohonen Las Redes de Kohonen, también llamadas Mapas Auto-Organizados

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL 1. Introducción ESTADÍSTICA CO EXCEL La estadística es la rama de las matemáticas que se dedica al análisis e interpretación de series de datos, generando unos resultados que se utilizan básicamente en

Más detalles

Operaciones Morfológicas en Imágenes Binarias

Operaciones Morfológicas en Imágenes Binarias Operaciones Morfológicas en Imágenes Binarias Introducción La morfología matemática es una herramienta muy utilizada en el procesamiento de i- mágenes. Las operaciones morfológicas pueden simplificar los

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales Estadística 38 Tema 3: Variables aleatorias y vectores aleatorios bidimensionales El concepto de variable aleatoria surge de la necesidad de hacer más manejables matemáticamente los resultados de los experimentos

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

1.1. Introducción y conceptos básicos

1.1. Introducción y conceptos básicos Tema 1 Variables estadísticas Contenido 1.1. Introducción y conceptos básicos.................. 1 1.2. Tipos de variables estadísticas................... 2 1.3. Distribuciones de frecuencias....................

Más detalles

Curso de Procesamiento Digital de Imágenes

Curso de Procesamiento Digital de Imágenes Curso de Procesamiento Digital de Imágenes Impartido por: Elena Martínez Departamento de Ciencias de la Computación IIMAS, UNAM, cubículo 408 http://turing.iimas.unam.mx/~elena/teaching/pdi-lic.html elena.martinez@iimas.unam.mx

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

Más detalles

Control Estadístico del Proceso. Ing. Claudia Salguero Ing. Alvaro Díaz

Control Estadístico del Proceso. Ing. Claudia Salguero Ing. Alvaro Díaz Control Estadístico del Proceso Ing. Claudia Salguero Ing. Alvaro Díaz Control Estadístico del Proceso Es un conjunto de herramientas estadísticas que permiten recopilar, estudiar y analizar la información

Más detalles

EL MODELO DE DATOS RASTER

EL MODELO DE DATOS RASTER EL MODELO DE DATOS RASTER El modelo de datos raster, como señala Bosque (1992), es el modelo de datos complementario al modelo vectorial presentado anteriormente. Tiene como principal característica el

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Nicole García Gómez 2830047-6 Diego Riquelme Adriasola 2621044-5 RESUMEN.- La minería de datos corresponde a la extracción

Más detalles

Espacios generados, dependencia lineal y bases

Espacios generados, dependencia lineal y bases Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................

Más detalles

MÁQUINA DE VECTORES DE SOPORTE

MÁQUINA DE VECTORES DE SOPORTE MÁQUINA DE VECTORES DE SOPORTE La teoría de las (SVM por su nombre en inglés Support Vector Machine) fue desarrollada por Vapnik basado en la idea de minimización del riesgo estructural (SRM). Algunas

Más detalles

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL SISTEMAS DE COORDENADAS En la vida diaria, nos encontramos con el problema de ordenar algunos objetos; de tal manera que es necesario agruparlos, identificarlos, seleccionarlos, estereotiparlos, etc.,

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Análisis y cuantificación del Riesgo

Análisis y cuantificación del Riesgo Análisis y cuantificación del Riesgo 1 Qué es el análisis del Riesgo? 2. Métodos M de Análisis de riesgos 3. Método M de Montecarlo 4. Modelo de Análisis de Riesgos 5. Qué pasos de deben seguir para el

Más detalles

I.E.S.MEDITERRÁNEO CURSO 2015 2016 DPTO DE MATEMÁTICAS PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O.

I.E.S.MEDITERRÁNEO CURSO 2015 2016 DPTO DE MATEMÁTICAS PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O. PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O. Este programa está destinado a los alumnos que han promocionado a cursos superiores sin haber superado esta materia.

Más detalles

Ejercicio de estadística para 3º de la ESO

Ejercicio de estadística para 3º de la ESO Ejercicio de estadística para 3º de la ESO Unibelia La estadística es una disciplina técnica que se apoya en las matemáticas y que tiene como objetivo la interpretación de la realidad de una población

Más detalles

Operación de Microsoft Excel

Operación de Microsoft Excel Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

Reconocimiento de imágenes

Reconocimiento de imágenes Capítulo 4 Reconocimiento de imágenes En la actualidad, el reconocimiento de imágenes es una herramienta de gran utilidad en el área de control y automatización. Varias empresas usan el reconocimiento

Más detalles

Roberto Quejido Cañamero

Roberto Quejido Cañamero Crear un documento de texto con todas las preguntas y respuestas del tema. Tiene que aparecer en él todos los contenidos del tema. 1. Explica qué son los modos de presentación en Writer, cuáles hay y cómo

Más detalles

Curso Excel Básico - Intermedio

Curso Excel Básico - Intermedio Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos

Más detalles

MODELOS DE RECUPERACION

MODELOS DE RECUPERACION RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN

Más detalles

Enfoque propuesto para la detección del humo de señales de video.

Enfoque propuesto para la detección del humo de señales de video. Capítulo 3 Enfoque propuesto para la detección del humo de señales de video. 3.1 Comportamiento del enfoque propuesto. Una visión general del método propuesto se muestra en la figura 2. El método genera

Más detalles

VI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES

VI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES VI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES En la presente sección, se realiza el correspondiente plan de pruebas del prototipo con la finalidad de exponer las estrategias y recursos necesarios para

Más detalles

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu EDU082 Resumen SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA Lic. Maikel León Espinosa mle@uclv.edu.cu Departamento de Ciencia de la Computación Universidad Central Marta Abreu de Las Villas Carretera

Más detalles

Análisis de medidas conjuntas (conjoint analysis)

Análisis de medidas conjuntas (conjoint analysis) Análisis de medidas conuntas (conoint analysis). Introducción Como ya hemos dicho anteriormente, esta técnica de análisis nos sirve para analizar la importancia que dan los consumidores a cada uno de los

Más detalles

CAPÍTULO IV METODOLOGÍA PARA EL CONTROL DE INVENTARIOS. En este capítulo se presenta los pasos que se siguieron para la elaboración de un sistema de

CAPÍTULO IV METODOLOGÍA PARA EL CONTROL DE INVENTARIOS. En este capítulo se presenta los pasos que se siguieron para la elaboración de un sistema de CAPÍTULO IV METODOLOGÍA PARA EL CONTROL DE INVENTARIOS En este capítulo se presenta los pasos que se siguieron para la elaboración de un sistema de inventarios para lograr un control de los productos.

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Medidas de tendencia central o de posición: situación de los valores alrededor

Medidas de tendencia central o de posición: situación de los valores alrededor Tema 10: Medidas de posición y dispersión Una vez agrupados los datos en distribuciones de frecuencias, se calculan unos valores que sintetizan la información. Estudiaremos dos grandes secciones: Medidas

Más detalles

Sistemas de Información Geográficos (SIG o GIS)

Sistemas de Información Geográficos (SIG o GIS) Sistemas de Información Geográficos (SIG o GIS) 1) Qué es un SIG GIS? 2) Para qué sirven? 3) Tipos de datos 4) Cómo trabaja? 5) Modelos de datos, Diseño Conceptual 6) GeoDataase (GD) 7) Cómo evaluamos

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión... Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación

Más detalles

x 10000 y 8000 x + y 15000 a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas.

x 10000 y 8000 x + y 15000 a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas. Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Septiembre 2012 - Propuesta A 1. Queremos realizar una inversión en dos tipos

Más detalles

ESTIMACIÓN. puntual y por intervalo

ESTIMACIÓN. puntual y por intervalo ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio

Más detalles

Parte I: Introducción

Parte I: Introducción Parte I: Introducción Introducción al Data Mining: su Aplicación a la Empresa Cursada 2007 POR QUÉ? Las empresas de todos los tamaños necesitan aprender de sus datos para crear una relación one-to-one

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b La función lineal Una función polinomial de grado uno tiene la forma: y = a 0 + a 1 x El semestre pasado estudiamos la ecuación de la recta. y = m x + b En la notación de funciones polinomiales, el coeficiente

Más detalles

SISTEMAS INTELIGENTES

SISTEMAS INTELIGENTES SISTEMAS INTELIGENTES T11: Métodos Kernel: Máquinas de vectores soporte {jdiez, juanjo} @ aic.uniovi.es Índice Funciones y métodos kernel Concepto: representación de datos Características y ventajas Funciones

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

IV. Implantación del sistema.

IV. Implantación del sistema. IV. Implantación del sistema. Para hablar sobre el proceso de desarrollo del sistema de Recuperación de Información Visual propuesto, empezaremos hablando del hardware utilizado, las herramientas de software

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Base de datos II Facultad de Ingeniería. Escuela de computación.

Base de datos II Facultad de Ingeniería. Escuela de computación. Base de datos II Facultad de Ingeniería. Escuela de computación. Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos II en el desarrollo de sus prácticas de laboratorios,

Más detalles

Aprender a realizar filtrados de información en capas de SIG raster.

Aprender a realizar filtrados de información en capas de SIG raster. TEMA 40: OPERACIONES DE VECINDAD INMEDIATA OBJETO DEL TEMA: Conocer los diferentes tipos de operaciones de análisis de vecindad inmediata y su metodología de aplicación en los Sistemas de Información Geográfica

Más detalles

EL ANÁLISIS DE CONGLOMERADOS EN LOS ESTUDIOS DE MERCADO

EL ANÁLISIS DE CONGLOMERADOS EN LOS ESTUDIOS DE MERCADO EL ANÁLISIS DE CONGLOMERADOS EN LOS ESTUDIOS DE MERCADO I. INTRODUCCIÓN Beatriz Meneses A. de Sesma * En los estudios de mercado intervienen muchas variables que son importantes para el cliente, sin embargo,

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

MUESTREO TIPOS DE MUESTREO

MUESTREO TIPOS DE MUESTREO MUESTREO En ocasiones en que no es posible o conveniente realizar un censo (analizar a todos los elementos de una población), se selecciona una muestra, entendiendo por tal una parte representativa de

Más detalles

Visión Artificial. Por Elisabeth Pérez

Visión Artificial. Por Elisabeth Pérez Visión Artificial Por Elisabeth Pérez Indice Qué es la Visión Artificial? Visión Artificial Diversos nombres Áreas de Aplicación Visión Artificial en Sistemas de Calidad Los pasos a tener en cuenta Áreas

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

1.1 EL ESTUDIO TÉCNICO

1.1 EL ESTUDIO TÉCNICO 1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar

Más detalles

Aprendizaje Automático y Data Mining. Bloque IV DATA MINING

Aprendizaje Automático y Data Mining. Bloque IV DATA MINING Aprendizaje Automático y Data Mining Bloque IV DATA MINING 1 Índice Definición y aplicaciones. Grupos de técnicas: Visualización. Verificación. Descubrimiento. Eficiencia computacional. Búsqueda de patrones

Más detalles

Sistema Inteligente de Exploración

Sistema Inteligente de Exploración Observatorio Municipal de Estadística Sistema Inteligente de Exploración Capítulos 1. Consideraciones iniciales y requerimientos... 2 2. Navegación... 3 3. Consulta de indicadores... 5 3.1. Elaboración

Más detalles

understanding documents Digitalización y Captura Inteligente de Documentos

understanding documents Digitalización y Captura Inteligente de Documentos Digitalización y Captura Inteligente de Documentos Mayo 2013 Poder mantener accesibles los documentos desde cualquier punto del planeta y utilizar la información contenida en ellos se ha vuelto crítico

Más detalles

MODELOS DE DATOS EN UN SIG: RÁSTER Y VECTORIAL. Los datos espaciales refieren a entidades o fenómenos que cumplen los siguientes principios básicos:

MODELOS DE DATOS EN UN SIG: RÁSTER Y VECTORIAL. Los datos espaciales refieren a entidades o fenómenos que cumplen los siguientes principios básicos: MODELOS DE DATOS EN UN SIG: RÁSTER Y VECTORIAL Los datos espaciales refieren a entidades o fenómenos que cumplen los siguientes principios básicos: Tienen posición absoluta: sobre un sistema de coordenadas

Más detalles

ORIENTACIONES PARA LA PRUEBA DE APTITUD PARA EL ACCESO A LA UNIVERSIDAD

ORIENTACIONES PARA LA PRUEBA DE APTITUD PARA EL ACCESO A LA UNIVERSIDAD ORIENTACIONES PARA LA PRUEBA DE APTITUD PARA EL ACCESO A LA UNIVERSIDAD MODALIDAD CIENTÍFICO-TÉCNICO 1. NOMBRE DE LA MATERIA: Matemáticas II 2. NOMBRE DEL COORDINADOR: Miguel Delgado Pineda (mdelgado@mat.uned.es,

Más detalles

Funciones, x, y, gráficos

Funciones, x, y, gráficos Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre

Más detalles

Control Estadístico de Procesos

Control Estadístico de Procesos Control Estadístico de Procesos Gráficos de Control Los gráficos de control o cartas de control son una importante herramienta utilizada en control de calidad de procesos. Básicamente, una Carta de Control

Más detalles

Programación Gráfica. Conceptos Básicos

Programación Gráfica. Conceptos Básicos 2013 1 Procesamiento de Imágenes. Es el campo que trata con métodos, técnicas, y algoritmos para manipulación, realce e interpretación de imágenes. Graficación por Computadora. Es la disciplina concerniente

Más detalles

Capítulo V Resultados y conclusiones

Capítulo V Resultados y conclusiones Capítulo V Resultados y conclusiones Nadav Levanon, autor del libro Radar Principles dijo: el estudio de los radares no solo una aplicación práctica, pero también una disciplina científica madura con fundamentos

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN GESTIÓN DE PROYECTOS CON PLANNER AVC APOYO VIRTUAL PARA EL CONOCIMIENTO GESTIÓN DE PROYECTOS CON PLANNER Planner es una poderosa herramienta de software

Más detalles

Introducción al Cálculo Simbólico a través de Maple

Introducción al Cálculo Simbólico a través de Maple 1 inn-edu.com ricardo.villafana@gmail.com Introducción al Cálculo Simbólico a través de Maple A manera de introducción, podemos decir que los lenguajes computacionales de cálculo simbólico son aquellos

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales Matemáticas 2º BTO Aplicadas a las Ciencias Sociales CONVOCATORIA EXTRAORDINARIA DE JUNIO 2014 MÍNIMOS: No son contenidos mínimos los señalados como de ampliación. I. PROBABILIDAD Y ESTADÍSTICA UNIDAD

Más detalles

DATA MINING EN LA BASE DE DATOS DE LA OMS KNOWLEDGE DETECTION (DETECCIÓN DEL CONOCIMIENTO) Q.F.B. JUANA LETICIA RODRÍGUEZ Y BETANCOURT

DATA MINING EN LA BASE DE DATOS DE LA OMS KNOWLEDGE DETECTION (DETECCIÓN DEL CONOCIMIENTO) Q.F.B. JUANA LETICIA RODRÍGUEZ Y BETANCOURT DATA MINING EN LA BASE DE DATOS DE LA OMS KNOWLEDGE DETECTION (DETECCIÓN DEL CONOCIMIENTO) Q.F.B. JUANA LETICIA RODRÍGUEZ Y BETANCOURT REACCIONES ADVERSAS DE LOS MEDICAMENTOS Los fármacos por naturaleza

Más detalles

Se podría entender como una matriz de filas y columnas. Cada combinación de fila y columna se denomina celda. Por ejemplo la celda A1, B33, Z68.

Se podría entender como una matriz de filas y columnas. Cada combinación de fila y columna se denomina celda. Por ejemplo la celda A1, B33, Z68. Departamento de Economía Aplicada: UDI de Estadística. Universidad Autónoma de Madrid Notas sobre el manejo de Excel para el análisis descriptivo y exploratorio de datos. (Descriptiva) 1 1 Introducción

Más detalles

Tema 1.- Introducción a la Visión Artificial

Tema 1.- Introducción a la Visión Artificial Tema 1.- Introducción a la Visión Artificial Visión Artificial Avanzada Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

SISTEMAS DE SEGURIDAD DE RECONOCIMIENTO FACIAL

SISTEMAS DE SEGURIDAD DE RECONOCIMIENTO FACIAL SISTEMAS DE SEGURIDAD DE RECONOCIMIENTO FACIAL INTRODUCCIÓN Los sistemas de reconocimiento facial son sistemas de seguridad basados en aplicaciones que detectan e identifican automáticamente rostros humanos.

Más detalles

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores EJERCICIOS DE MATEMÁTICAS I HOJA 4 Ejercicio 1. Se consideran los vectores u 1 = (1, 1, 0, 1), u 2 = (0, 2, 1, 0), u 3 = ( 1, 1, 1, 1), u 4 = (2, 2, 1, 0) de R 4. Expresa, si es posible, los vectores u

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

MEDIDAS DE DISPERSIÓN EMPLEANDO EXCEL

MEDIDAS DE DISPERSIÓN EMPLEANDO EXCEL MEDIDAS DE DISPERSIÓN EMPLEANDO EXCEL Las medias de tendencia central o posición nos indican donde se sitúa un dato dentro de una distribución de datos. Las medidas de dispersión, variabilidad o variación

Más detalles

UNIVERSIDAD MINUTO DE DIOS PROGRAMA CONTADURÍA PÚBLICA

UNIVERSIDAD MINUTO DE DIOS PROGRAMA CONTADURÍA PÚBLICA UNIVERSIDAD MINUTO DE DIOS PROGRAMA CONTADURÍA PÚBLICA COSTOS II Guía No. 1.- Conceptos Básicos OBJETIVO 1. Asimilar conceptos fundamentales de costos I. CONCEPTOS BASICOS DE COSTOS 1. CONTABILIDAD DE

Más detalles

ANÁLISIS DESCRIPTIVO CON SPSS

ANÁLISIS DESCRIPTIVO CON SPSS ESCUELA SUPERIOR DE INFORMÁTICA Prácticas de Estadística ANÁLISIS DESCRIPTIVO CON SPSS 1.- INTRODUCCIÓN Existen dos procedimientos básicos que permiten describir las propiedades de las distribuciones:

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

6. DESCRIPCIÓN DEL SOFTWARE

6. DESCRIPCIÓN DEL SOFTWARE Capítulo 2. Equipo 6. DESCRIPCIÓN DEL SOFTWARE 6.1 Introducción El equipo de medida descrito en el capítulo anterior lleva asociado un software que hace de sistema de control del proceso de medición. Este

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

activuspaper Text Mining and BI Abstract

activuspaper Text Mining and BI Abstract Text Mining and BI Abstract Los recientes avances en lingüística computacional, así como la tecnología de la información en general, permiten que la inserción de datos no estructurados en una infraestructura

Más detalles

Modelos de Help Desk

Modelos de Help Desk biblioteca foro helpdesk Mejores prácticas Modelos de Help Desk HUGO VILLADA FHD / BIBLIOTECA / MEJORES PRÁCTICAS Pág. 02 Modelos de Help Desk Composición de la demanda En el ambiente informático los problemas

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

Media vs mediana vs moda Cual medida de tendencia central es mas adecuada? MEDIA conveniencias:

Media vs mediana vs moda Cual medida de tendencia central es mas adecuada? MEDIA conveniencias: Iniciar con las interpretaciones de las medidas MEDIA VS MEDIANA VS MODA CUAL ES LA MEDIDA ADECUADA TAREA MEDIA PONDERADA Actividad de Medidas de Localización Problema 1. El problema de las tasas de delito.

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos

ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos Descargado desde www.medwave.cl el 13 Junio 2011 por iriabeth villanueva Medwave. Año XI, No. 2, Febrero 2011. ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos Autor:

Más detalles