INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD ZACATENCO
RECONOCIMIENTO DE IMÁGENES DACTILARES POR MEDIO DE LA TRANSFORMADA WAVELET DE HAAR Y
DISTANCIAS EUCLIDIANAS
TESIS
QUE PARA OBTENER EL GRADO DE:
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
PRESENTAN
CHÁVEZ LOARÍA SEATIEL SALVADOR ORTEGA MARTÍNEZ STEPHANY VICTORIA
DIRECTORES DE TESIS
DR. MARIO JIMÉNEZ HERNÁNDEZ LIC. JUAN MANUEL CONTRERAS REYES
MÉXICO, D. F. 2015
ESCUELA
STJPERIOR DEI¡{GEI\TERiA MECÁhIICA
Y ELECTRTCAUNIDAD
PROIT'ESIOh{AL"AI}OLFO LÓPEZ MATEOS"
QUE PARA OBTENER EL TÍTULO DE POR LA OPCIÓN DE TITULACIÓN DEBERA (N) DESARROLLAR
DR. MARIO JIMÉNEZ HERNÁNDEZ
..RECONOCIMIENTO DE IMÁGENES DACTILARES POR MEDIO DE LA TRANSFORMADA WAVELET DE HAAR Y DISTANCIAS EUCLIDIAI{AS."
TEMA DB TESIS
INGENIERo EN CoMT]NICACIoNES Y ELBCTRÓNTc,I TESIS COLECTIVA Y EXAMEN ORAL INDIVIDUAL
C. STEPHANY VICTORIA ORTEGA MARTINEZ C. SEATIEL SALVADOR CHAVEZ LOARIA
cruDAD
nr
mÉxrco. A 25 DE FEBRERo Dtr 2016.ASESORES
* *
{.
*
DESARRoLLAR uN pRoronpo urtLrzANDo TECNTcAS DE pRocESAMtENlo DE rnlÁcENEs MEDIANTE LA TRANSFORMADA DE WAVELET DE HAAR Y DISTANCIAS EUCLINADAS. PARA t-A VERIPICACIÓN CORRECTA DE PERSONAS POR MEDIO DE SUS HUELLAS DIGITAT,ES Y/O DACTILARES.
FORMAR UNA BASE DE DATOS DONDE SE RECoPILA LA INFoRMACIÓru oE CADA UNo DE
NUESTRoS usuARtos, cApruRANDo 20 rmÁcgxEs DE LA HUELLA DTGITAL poR cADA
USUARIO.
HACER LA coMpRrNsróN oe InrÁcuNES coN LA TRANSFoRMADA DE wAVELETS DE HAAR.
DESARRoLLAR uN pRoGRAMA DE coMpRACróN up r-ls ¡»,1ÁcENES DE LAS HUELLAS DIGITALES COMPRIMIDAS MEDIANTE DISTANCIAS EUCLIDIANAS, UTILIZANDO MATLAB.
CREAR UNA INTERFAZ CRÁr'lCA DE USUARIO (GUt) PARA AUTOMATTZAR EL PROCESO.
REALIZAR LA EvALUAc¡óN osraoisrrcn y DE FUNCIoNALIDAD DEL stsrEMA.
LIC. JUAN MANUEL CONTRERAS REYES
JEFA DBL DEPARTAMBNTO ACADÉMI INGENIERÍA EI{ COMT]NICACIONES Y ELECTRÓNICA
ING. PATRICIA
AGRADECIMIENTOS
Un camino largo que trae consigo grandes recompensas, gracias por su ayuda y motivación a mis papás José Antonio Ortega y Amada Victoria Martínez mis mentores quienes han sido piezas fundamentales desde el principio de mi vida, son los que siempre me han apoyado en las decisiones sin juzgarme y sé que estarán a mi lado por siempre.
A mis hermanos David Antonio y José Alberto quiero agradecerles por ser las personas con quienes he contado en todo momento, desde pequeña han sabido cómo cuidarme, guiarme y darme su ejemplo como los hermanos mayores que son.
Son ustedes cuatro el soporte de cada uno de mis logros, los amo por siempre y para siempre no lo olviden nunca.
Al Dr. Mario Jiménez y al Lic. Juan Manuel Contreras, nuestros Asesores de Tesis, les agradezco ya que ustedes fueron piezas claves en este logro. Gracias por los consejos, por no dejarnos y siempre alentarnos a culminar este gran objetivo que comenzó como un proyecto terminal y logro obtener el grado de Tesis.
Y por último agradecer a Seatiel Chávez Loaria por estar a mi lado hasta el final, a pesar de los altibajos logramos terminar lo que tanto trabajo nos costó. Caminamos juntos y llegamos muy alto pero ahora nuestros destinos se separaron, así toda la vida.
Stephany Victoria Ortega Martínez.
ÍNDICE.
Resumen VII
Capítulo I Introducción.
1.1 Planteamiento del problema. 1
1.2 Propuesta de solución. 1
1.3 Justificación. 2
1.4 Hipótesis. 3
1.5 Objetivo general. 3
1.6 Objetivos específicos. 3
Capítulo II Antecedentes y Estado del Arte.
2.1 Características morfológicas y biométricas de la huella digital. 4
2.2 Pilares de la Biometría. 6
2.3 Descripción de MATLAB. 9
2.4 Documentos de ayuda en MATLAB. 11
2.5 Caracteres especiales en MATLAB. 12
2.6 Categorías de funciones. 12
2.7 Representación de imágenes en MATLAB. 13
2.8 Almacenamiento de imágenes en un formato digital. 19
2.9 Formato BMP. 23
2.10 Distancias en dos dimensiones. 25
2.11 Distancias Euclidianas. 27
2.12 Wavelets en el análisis de las señales. 32
2.13 La wavelet de Haar. 34
2.14 Construcción de la transformada wavelet de Haar bidimensional. 35 Capítulo III Desarrollo.
3.1 Desarrollo e implementación de hardware y software. 40 3.2 Dispositivo de captura de la huella dactilar. 41
3.3 Comunicación con la PC. 42
3.4 Desarrollo del prototipo. 43
3.4.1 Material para el desarrollo del prototipo físico. 44
3.4.2 Procedimiento. 44
3.5 Diseño de la interfaz gráfica. 48
3.6 Programación del sistema. 51
Capítulo IV Experimentos y Resultados.
4.1 Evaluación del Sistema. 56
4.2 Análisis estadísticos de los resultados. 58 Capítulo V Conclusiones.
5.1 Conclusiones de eficiencia y operatividad del proyecto. 64
5.2 Trabajos futuros. 64
Anexo I Código Fuente.
A.1.1 Código para la Verificación del Usuario (GUIDE). 65 A.1.2 Código para la Evaluación del Sistema.
A.1.2.1 Código para el cálculo de los valores de umbral. 70
Bibliografía. 77
ÍNDICE DE FIGURAS.
Figura 1.1 Proceso del proyecto a través del Reconocimiento de Imágenes Dactilares.
2 Figura 2.1 Características morfológicas de las huellas digitales.
[Augusta, 08]
4 Figura 2.2 Patrones principales de la huella digital. 5 Figura 2.3 Proceso de captura y verificación de usuario. 8 Figura 2.4 Interfaz gráfica de MATLAB R2013a. 10 Figura 2.5 Muestra de una huella dactilar en RGB y sus 3
matrices correspondientes.
14 Figura 2.6 Representación de la huella digital indexada. 14 Figura 2.7 Ejemplo de una imagen indexada (a la derecha) de 8
colores a la izquierda una imagen con 3 colores seleccionados RGB.
15
Figura 2.8 Representación de una imagen en escala de grises. 15 Figura 2.9 Representación de una imagen binaria. 16 Figura 2.10 Imagen mostrada al utilizar la función imshow de la
huella dactilar a color.
18 Figura 2.11 Planos de una imagen a color donde a)Rojo, b)Verde y
c)Azul.
18
Figura 2.12 Imagen en binario. 20
Figura 2.13 (a) Imagen graficada como un volumen. (b) Imagen desplegada como un arreglo de intensidad visual en 2- D Y. (c) Imagen mostrada como arreglo numérico en 2-D. [González, 07]
21
Figura 2.14 Intensidades en escala de grises para 8 bits. 22 Figura 2.15 Almacenamiento de una imagen digital en una matriz y
sus valores correspondientes a cada pixel del segmento en particular.
23
Figura 2.16 Distancia euclidiana en dos dimensiones. 28 Figura 2.17 Distancia euclidiana en tres dimensiones. 29
Figura 2.18 Ejemplo práctico de las distancias euclidianas. 31 Figura 2.19 La función wavelet y la función de escalonamiento de
Haar.
34 Figura 2.20 Imagen de la huella dactilar utilizando la transformada
wavelet de Haar bidimensional.
39
Figura 3.1 Cámara Web. 41
Figura 3.2 Muestra de la imagen de la huella dactilar capturada en escala de grises.
42 Figura 3.3 Periféricos USB tipo hembra de la PC. 43 Figura 3.4 Periférico USB tipo macho, con el que cuenta la
cámara web.
43 Figura 3.5 Estructura del prototipo de captura de la huella dactilar. 44 Figura 3.6 Fondo para capturar las huellas. 45
Figura 3.7 Iluminación del prototipo. 46
Figura 3.8 Esquema de los pasos a realizar durante la etapa de entrenamiento del sistema.
47 Figura 3.9 Esquema del prototipo propuesto para la fase de
verificación.
47 Figura 3.10 Diseño de la interfaz gráfica de usuario GUIDE (*.fig). 48 Figura 3.11 Interfaz gráfica de usuario GUI. 49 Figura 3.12 Diagrama de flujo del funcionamiento del sistema. 50 Figura 3.13 Diagrama de flujo de la primer función. 51 Figura 3.14 Diagrama a bloques de la primer función en la GUIDE. 52 Figura 3.15 Diagrama a bloques para la obtención de la imagen
promedio.
53 Figura 3.16 Diagrama a bloques de la transformada de Haar. 54 Figura 3.17 Diagrama a bloques código de la validación del
sistema.
55 Figura 4.1 Valores de umbral graficados de los usuarios. Usuario1
(grafico en color
vino) y Usuario2 (grafico en color azul).
57
Figura 4.2 Valores de umbral graficados de los usuarios (Usuario1 (grafico en color vino) y Usuario2 (grafico en color azul)) VS Imagen promedio del Usuario2.
59
Figura 4.3 Valores de umbral graficados de los usuarios (Usuario1 (grafico en color vino) y Usuario2 (grafico en color azul)) VS Imagen promedio del Usuario1.
60
Figura 4.4 Valores de umbral graficados de los usuarios (Usuario1 (grafico en color vino) y Usuario2 (grafico en color azul)) VS Imagen promedio del Usuario2 aplicándole la transformada de Haar.
61
Figura 4.5 Valores de umbral graficados de los usuarios (Usuario1 (grafico en color vino) y Usuario2 (grafico en color azul)) VS Imagen promedio del Usuario1 aplicándole la transformada de Haar.
62
ÍNDICE DE TABLAS.
Tabla 2.1 Conceptos Básicos Biométricos. 6
Tabla 2.2 Comparativo de las tecnologías biométricas más comunes.
7 Tabla 2.3 Tipos de datos que puede contener una matriz en
Matlab.
16 Tabla 2.4 Formatos y extensiones soportadas por Matlab. 17
Tabla 2.5 Estructuras del archivo BMP. 23
Tabla 2.6 Estructura de la cabecera del archivo BMP (bitmap) BITMAPFILEHEADER.
24 Tabla 2.7 Información de la cabecera con información del bitmap
(BITMAPINFOHEADER).
24 Tabla 4.1 Valores de umbral del Usuario1, donde se muestra
subrayado el umbral mínimo y el umbral máximo.
56 Tabla 4.2 Valores de umbral del Usuario2, donde se muestra
subrayado el umbral mínimo y el umbral máximo.
57 Tabla 4.3 Valores de umbral de los usuarios vs la imagen
promedio del Usuario2, donde se muestra subrayado el umbral mínimo y el umbral máximo.
58
Tabla 4.4 Valores de umbral de los usuarios vs la imagen promedio del Usuario1, donde se muestra subrayado el umbral mínimo y el umbral máximo.
59
Tabla 4.5 Valores de umbral de los usuarios vs la imagen promedio del Usuario2, aplicando la transformada de Haar a ambos. Se muestra subrayado el umbral mínimo y el umbral máximo.
61
Tabla 4.6 Valores de umbral de los usuarios vs la imagen promedio de Usuario1, aplicando la transformada de Haar a ambos. Se muestra subrayado el umbral mínimo y el umbral máximo.
62
RESUMEN.
Hoy en día existen diversos métodos empleados para los sistemas de seguridad como lo son las contraseñas, los códigos alfanuméricos y las identificaciones personales como las credenciales personalizadas, en la actualidad estos tipos de sistemas de seguridad se han vuelto vulnerables y poco confiables, siendo la biometría una herramienta eficaz para mejorar los sistemas de seguridad.
En este trabajo se presenta un prototipo cuyo propósito fundamental es fungir como un sistema biométrico de verificación de huellas dactilares de bajo costo, mediante el empleo de una cámara web como elemento de captura, una estructura de acrílico e iluminación a base de led’s (hardware) y un algoritmo implementado para digitalizar imágenes usando como plataforma la herramienta Matlab (Software), este software permite el empleo de funciones prediseñadas para la implementación del almacenamiento y manipulación de las imágenes en forma matricial, permitiendo al usuario enfocarse en la resolución del proceso de reconocimiento de las huellas dactilares utiliza el método de distancias euclidianas y la transformada Wavelet de Haar. Mediante la transformada wavelet se realiza la compresión de imágenes con el objetivo de utilizar menor cantidad de información sin tener perdida de datos. Se decidió la realización de este proyecto para probar el empleo de las transformadas wavelets discretas en métodos de reconocimiento de patrones, logrando obtener resultados similares a los sistemas actuales utilizando esta nueva metodología en los sistemas de reconocimiento de personas o en sistemas de seguridad.
Los resultados obtenidos en la parte de experimentación son satisfactorios en cada una de las etapas del prototipo, se determinaron los umbrales de las muestras de huellas dactilares de cada uno de los usuarios entre la imagen de prueba y el promedio de la base de datos, definiendo los valores del umbral mínimo y del máximo, con el algoritmo de comparación se obtiene el intervalo de validación de acceso para cada usuario, logrando con esto que no existan errores de identificación, con esto se logra cumplir el objetivo principal de este proyecto que es el reconocimiento de la huella dactilar utilizando transformada wavelet discreta de Haar.
CAPÍTULO I INTRODUCCIÓN.
Hoy en día, los métodos de sistemas de seguridad junto con los algoritmos empleados para el reconocimiento de huellas dactilares están basados en la reconstrucción de la misma. En este capítulo se detallarán diversos métodos de los cuales se hará la selección de uno de ellos para dar paso a la realización de este proyecto. Posteriormente, se presenta la justificación e hipótesis de la presente investigación, en la cual se tratará una propuesta práctica, eficiente y de bajo costo para la autentificación de una huella dactilar.
1.1 Planteamiento del problema.
Identificar personas siempre ha sido una parte importante de nuestra vida, ya sea por cuestiones de seguridad o autentificación.
Tradicionalmente, los sistemas de identificación personal se efectúan mediante la autentificación, como es una clave, objeto o una característica relacionada con el individuo, métodos que resultan vulnerables. Otros tipos de sistemas utilizan el reconocimiento de voz, huella dactilar, iris, entre otras; estos rasgos conforman la base de la biometría.
A diferencia de los métodos tradicionales, los métodos biométricos no presentan inconvenientes de fiabilidad, debido a que no se pierden, olvidan ni comparten.
1.2 Propuesta de solución.
Con lo visto anteriormente se propone realizar un prototipo de verificación de personas a través de la huella digital comparada con una base de datos.
A diferencia de otros tipos de sistemas, que usualmente reconstruyen rasgos característicos de una huella digital mediante un escáner, en este proyecto se utilizará una cámara web como elemento de captura, obteniendo imágenes bidimensionales en escala de grises, haciendo uso de distancias euclidianas como método de comparación a un bajo costo.
Figura 1.1. Proceso del proyecto a través del Reconocimiento de Imágenes Dactilares.
1.3 Justificación.
Usualmente, los sistemas de seguridad que se emplean en diversos accesos, se basan en la utilización de identificaciones o claves de acceso alfanuméricos las cuales son necesarios hoy en día. Sin embargo, estos sistemas no se salvan de ser infalibles debido a que existe cierta probabilidad de que estos sistemas de seguridad puedan ser vulnerables a algunos métodos, con los cuales se podría falsificar la identificación o decodificar la contraseña, según sea el caso.
Tomando en cuenta estas importantes deficiencias de los métodos mencionados, los sistemas biométricos han adquirido un gran auge, puesto que se consideran como la nueva alternativa para los sistemas profesionales de seguridad.
El sistema que se utilizará para esta investigación, consiste en una herramienta particular que permite que cada uno de los usuarios logre un acceso al sistema de seguridad biométrico, el cual será casi inquebrantable. La huella dactilar es uno de los rasgos más utilizados en los sistemas biométricos, debido a su facilidad de uso, aceptabilidad y su alto grado de efectividad, teniendo en cuenta que resulta imposible la reconstrucción digital a partir de una base de datos, con esto se espera resultados eficientes para que no se presente algún tipo de fraude.
Con este proyecto se desarrollará un algoritmo que permita verificar la identidad de un usuario de forma rápida y eficaz, combinando tanto el método tradicional como el método biométrico.
1.4 Hipótesis.
Cuando se obtienen patrones de huellas dactilares, es conveniente que con una herramienta pueda generarse el análisis multiresolución de señales y en particular, se ajustará con la compresión de una imagen, tomando sus características en tonos de gris, para permitir explotar aspectos importantes del sistema visual humano.
El método utilizado consiste en crear una base de muestras a las cuales se les aplicará la transformada de wavelets de haar para la compresión de cada una, para así codificar con pocos bits las partes donde la imagen tendrá mejor resolución, representadas por frecuencias altas, y con más bits donde la imagen tendrá menor resolución, representadas por frecuencias bajas.
1.5 Objetivo general.
Desarrollar un prototipo utilizando técnicas de procesamiento de imágenes mediante la transformada de Wavelet de Haar y distancias euclidianas, para la verificación correcta de personas por medio de sus huellas digitales y/o dactilares.
1.6 Objetivos específicos.
Formar una base de datos donde se recopila la información de cada uno de nuestros usuarios, capturando 20 imágenes de la huella digital por cada usuario.
Hacer la compresión de imágenes con la trasformada de Wavelets de Haar.
Desarrollar un programa de comparación de las imágenes de las huellas digitales comprimidas mediante distancias euclidianas, utilizando Matlab.
Crear una interfaz gráfica de usuario (GUI) para automatizar el proceso.
Realizar la evaluación estadística y de funcionalidad del sistema.
CAPÍTULO II
ANTECEDENTES Y ESTADO DEL ARTE.
2.1 Características morfológicas y biométricas de la huella digital.
La Biometría es la ciencia que se dedica a la identificación de individuos a partir de una característica anatómica o un rasgo de su comportamiento.
Una característica anatómica tiene la cualidad de ser relativamente estable en el tiempo, tal como una huella dactilar, la silueta de la mano, patrones de la retina o el iris, comparación electrocardiográfica, identificación por voz. Sin embargo, un rasgo del comportamiento es menos estable, pues depende de la disposición psicológica de la persona, por ejemplo, la firma.
No cualquier característica anatómica puede ser utilizada con éxito por un sistema biométrico. Para que sea posible, debe cumplir con características como la: Universalidad, Unicidad, Permanencia y Cuantificación.
El indicador biométrico que más satisface estos requisitos es la huella dactilar. En la Figura 2.1, se pueden observar las características morfológicas de la huella antes definidas.
Figura 2.1 Características morfológicas de las huellas digitales.
[Augusta, 08]
La identificación por huella dactilar es una de las biometrías más conocidas y publicitadas. Gracias a su unicidad y constancia en el tiempo las huellas dactilares han sido usadas para la identificación por más de un siglo, más recientemente volviéndose automatizada (ej. biométrica) debido a los
avances en las capacidades de computación. La identificación por huellas dactilares es popular por su inherente comodidad de adquisición, las numerosas fuentes disponibles para recolección (diez dedos), y su establecido uso.
Una huella dactilar usualmente aparece como una serie de líneas oscuras que representan los relieves, la porción saliente de las crestas de fricción, mientras los valles entre estas crestas aparecen como espacio en blanco y están en bajo relieve, la porción subyacente de las crestas de fricción.
La identificación por huella dactilar está basada principalmente en las minucias, o la ubicación y dirección de los finales y bifurcaciones (separaciones) de las crestas a lo largo su trayectoria.
La Figura 2.2 presenta ejemplos de características de huellas dactilares, como son dos tipos de minucias y ejemplos de otras características algunas veces utilizadas durante la clasificación automática y procesos de extracción de minucias:
Figura 2.2 Patrones principales de la huella digital.
Los tipos de información que pueden tomarse de la impresión de la cresta de fricción de una huella incluyen el flujo de crestas de fricción (nivel 1 de detalle), la presencia o ausencia de características a lo largo de cada trayecto individual de crestas de fricción y sus secuencias (nivel 2 de detalle), y el detalle intrincado de una sola cresta (nivel 3 de detalle). El reconocimiento está usualmente basado en los primeros 2 niveles de detalle o sólo en el último.
2.2 Pilares de la Biometría.
La biometría se soporta en siete conceptos básicos que son:
Tabla 2.1 Conceptos Básicos Biométricos.
Universalidad Si es común es encontrar este biométrico en los individuos.
Singularidad Si es único o diferenciable es la huella biométrica entre uno y otro individuo.
Permanencia Si perdura la huella biométrica en el tiempo de manera inalterable.
Recolectable Si es tan fácil la adquisición, medición y almacenamiento de la huella biométrica.
Calidad Si es preciso, veloz y robusto es el sistema en el manejo de la huella biométrica.
Aceptabilidad Cuál es la aprobación que tiene la tecnología entre el público.
Fiabilidad Que tan fácil es engañar al sistema de autenticación.
En la biometría se distinguen dos grupos de registros biométricos los fisiológicos o morfológicos y los conductuales.
Los biométricos morfológicos o fisiológicos son aquellos que se soportan sobre características físicas inalterables presentes en la mayoría de los seres humanos tales como: la huella dactilar, geometría de la mano, características del iris, patrones vasculares de la retina, mano, etc.
Los biométricos conductuales son aquellos que se soportan sobre características de la conducta del ser humano tales como: Pulsaciones del teclado, discurso, dinámica de las firmas, etc.
En la Tabla 2.2, se puede observar una comparación entre las diferentes tecnologías biométricas más comunes así como su funcionamiento, el tamaño de la plantilla en bytes, la fiabilidad, facilidad de uso, costo entre otras características.
Tabla 2.2. Comparativo de las tecnologías biométricas más comunes.
Tecnología Cómo Trabaja
Tamaño plantilla (bytes)
Fiabilidad Facilidad de uso
Posibles
Incidencias Costo Aceptación Usuario
Huella digital
Captura y compara patrones de
la huella
250 -
1000 Muy alta Alta Ausencia de
miembro Bajo Alta
Geometría de la mano
Mide y compara dimensione
s de la mano y
dedos.
9 Baja Alta
Edad, ausencia de
miembro
Bajo Alta
Retina
Captura y compara
los patrones de
la retina
96 Baja Baja Gafas Alto Baja
Iris
Captura y compara
los patrones de
bits
512 Baja Baja Luz Muy
Alto Baja
Geometría facial
Captura y compara
los patrones
faciales
8401300 Baja Baja Edad, cabello
y luz Media Baja
Voz
Captura y compara el
pitch
10000 -
20000 Alta Media
Ruido, temperatura
y meteorología
Alto Media
Firma
Captura y compara
ritmo, aceleración
y presión de la firma
1000 -
3000 Alta Media
Edad, cambios analfabetismo
Alto Media
[Galvis, 07]
Un sistema biométrico en general consta de componentes tanto hardware como software necesarios para el proceso de reconocimiento. Dentro del hardware se incluyen principalmente los sensores que son los dispositivos encargados de extraer la característica deseada. Una vez obtenida la información, será necesario realizar sobre ella las tareas de acondicionamiento necesarias, para ello se emplean diferentes métodos dependiendo del sistema biométrico utilizado.
Los principales tipos de sistemas biométricos existentes son:
Reconocimiento de la huella dactilar.
Reconocimiento de la cara.
Reconocimiento de iris/retina.
Geometría de dedos/mano.
Autentificación de la voz.
Reconocimiento de la firma.
Los sistemas biométricos se han desarrollado como respuesta a la creciente demanda de seguridad existente en la actualidad y aunque algunos de ellos son altamente fiables, ningún sistema es efectivo al 100%, y estos sistemas también son susceptibles de ser engañados.
En la Figura 2.3, se puede observar el funcionamiento de un sistema biométrico que tiene como finalidad poder verificar al usuario y dar un resultado en el cual se demuestre si el usuario fue verificado con base a la información de la base de datos que posee el sistema biométrico.
Figura 2.3 Proceso de captura y verificación de usuario.
La tarea de los sistemas biométricos es determinar la identidad en un individuo. El o los datos biométricos son tomados y comparados contra las plantillas que están en la base de datos, existen dos tipos de identificación, la identificación cerrada o abierta, o también llamada watchlist. [Galvis, 07]
La identificación cerrada: Se basa en la comparación de uno a muchos, el usuario ingresa su(s) dato(s) biométrico(s) se compara contra la base de datos, buscando la identidad más probable de dicho usuario.
La identificación abierta o watchlist: este tipo de identificación es un proceso híbrido entre la verificación y la identificación cerrada, donde la(s) persona(s) no tiene una identidad específica, por lo tanto se compara contra toda la base de datos para poder verificar si existe dicho usuario en la base de datos; después de que se verifica que el usuario existe probablemente, dentro de las coincidencias más probables, determina quién es el usuario.
El resultado de cualquier comparación puede representar una de las posibilidades dependiendo de su puntuación que se alcance en la comparación de la plantilla, el dato biométrico y del umbral que se haya definido en el sistema, estas posibilidades pueden ocurrir cuando:
Hay correlación: al comparar el dato biométrico capturado con la(s) plantilla(s) almacenada(s), la puntuación está dentro de los umbrales de coincidencia.
No hay correlación: al comparar el dato biométrico capturado contra la plantilla(s) almacenada(s), la puntuación esté fuera de los umbrales de coincidencia.
2.3 Descripción de MATLAB
MATLAB es un entorno de cálculo técnico de altas prestaciones para cálculo numérico y visualización. Integra:
Análisis numérico.
Cálculo matricial.
Procesamiento de señales.
Gráficos.
Figura 2.4 Interfaz gráfica de MATLAB R2013a.
Es un entorno fácil de usar, donde los problemas y las soluciones son expresados como se escriben matemáticamente, sin la programación tradicional. El nombre MATLAB proviene de “MATrix LABoratory”
(Laboratorio de Matrices). MATLAB fue escrito originalmente para proporcionar un acceso sencillo al software matricial desarrollado por los proyectos LINPACK y EISPACK, que juntos representan lo más avanzado en programas de cálculo matricial. MATLAB es un sistema interactivo cuyo elemento básico de datos es una matriz que no requiere dimensionamiento.
Esto permite resolver muchos problemas numéricos en una fracción del tiempo que llevaría hacerlo en lenguajes como C, BASIC o FORTRAN.
MATLAB ha evolucionado en los últimos años a partir de la colaboración de muchos usuarios. En entornos universitarios se ha convertido en la herramienta de enseñanza estándar para cursos de introducción en álgebra lineal aplicada, así como cursos avanzados en otras áreas. En la industria, MATLAB se utiliza para investigación y para resolver problemas prácticos de ingeniería y matemáticas, con un gran énfasis en aplicaciones de control y procesamiento de señales.
MATLAB también proporciona una serie de soluciones específicas denominadas TOOLBOXES. Estas son muy importantes para la mayoría de los usuarios de MATLAB y son conjuntos de funciones MATLAB que extienden el entorno MATLAB para resolver clases particulares de problemas como:
Procesamiento de señales.
Diseño de sistemas de control.
Simulación de sistemas dinámicos.
Identificación de sistemas.
Redes neuronales y otros.
Probablemente la característica más importante de MATLAB es su capacidad de crecimiento. Esto permite convertir al usuario en un autor contribuyente, creando sus propias aplicaciones.
En resumen, las prestaciones más importantes de MATLAB son:
Escritura del programa en lenguaje matemático.
Implementación de las matrices como elemento básico del lenguaje, lo que permite una gran reducción del código, al no necesitar implementar el cálculo matricial.
Implementación de aritmética compleja.
Un gran contenido de órdenes específicas, agrupadas en TOOLBOXES.
Posibilidad de ampliar y adaptar el lenguaje, mediantes ficheros de script y funciones .m.
2.4 Documentos de ayuda en MATLAB.
La documentación de MATLAB incluye ayuda en línea y manuales impresos:
MATLAB USER'S GUIDE: Contiene aspectos específicos de la plataforma acerca de su uso y un tutorial con las funcionalidades básicas de MATLAB.
MATLAB REFERENCE GUIDE: Compendio alfabético de todas los comandos de MATLAB.
EXTERNAL INTERFACE GUIDE: Describe los interfaces externos de MATLAB, incluyendo la importación y exportación de datos, librerías FORTRAN y C para linkado dinámico, lectura y escritura de ficheros y llamada a MATLAB como motor de cálculo.
INSTALLATION GUIDE: Describe cómo instalar MATLAB.
ONLINE HELP: La ayuda en línea del programa y las demos proporcionan información acerca de los comandos de MATLAB y muestran algunas de sus características.
AYUDA EN INTERNET: En internet se puede encontrar una gran variedad de sitios con información abundante sobre MATLAB. Desde el texttt de la propia casa MATHWORKS, hasta FAQS (Preguntas más frecuentes), tutoriales, ayudas, foros, etc.
2.5 Caracteres especiales en MATLAB.
Los caracteres especiales se definen a continuación:
[ ] Los corchetes se utilizan para componer vectores y matrices.
( ) Los paréntesis se utilizan para indicar precedencia en expresiones aritméticas, también se utilizan para encerrar los índices de vectores y matrices. Si el índice es menor que 1 o mayor que la dimensión, ocurre un error.
= Utilizado en sentencias de asignación.
' Traspuesta de la matriz. x' es la traspuesta conjugada mientras que x.' es la traspuesta no conjugada de la matriz x.
. Punto decimal, indicador de operaciones elemento a elemento.
... Tres puntos o más al final de una línea indican que ésta continuará en la línea de debajo.
, La coma se utiliza para separar índices de la matriz y argumentos de las funciones. También se utiliza para separar sentencias en líneas multisentencia.
; Dentro de corchetes finaliza una línea. Después de una expresión o sentencia suprime la impresión en pantalla de la misma, o la separa de otra.
% Denota un comentario, indica el fin lógico de una línea.
Cualquier otro texto posterior se ignora.
! Indica que el resto de la línea de entrada es un comando del sistema operativo.
: Se utiliza para crear vectores, como índice de matrices y para iteraciones.
2.6 Categorías de funciones.
MATLAB proporciona 20 categorías de funciones. Algunas de las funciones de MATLAB están implementadas en el intérprete, mientras que otras están escritas en forma de fichero .m.
Los ficheros .m están organizados en 20 directorios, cada uno conteniendo los ficheros asociados con esa categoría. El comando help muestra la siguiente tabla de categorías:
color Funciones de control de color y modelo de iluminación.
datafun Análisis de datos y transformada de Fourier.
demos Demostraciones y ejemplos.
elfun Funciones matemáticas elementales.
elmat Matrices elementales y manipulación de matrices.
funfun Funciones de funciones (métodos numéricos no lineales).
general Comandos de propósito general.
graphics Funciones gráficas de propósito general.
Iofun Funciones de E/S de ficheros de bajo nivel.
lang Construcciones de lenguaje y depuración.
matfun Funciones matriciales (álgebra lineal numérica).
ops Operadores y caracteres especiales.
plotxy Gráficos bidimensionales.
plotyxyz Gráficos tridimensionales.
polyfun Funciones polinomiales y de interpolación.
sparfun Funciones de matrices dispersas (sparse).
specfun Funciones matemáticas especializadas.
specmat Matrices especializadas.
sounds Funciones de procesamiento de sonidos.
strfun Funciones de cadenas de caracteres.
2.7 Representación de imágenes en MATLAB .
Matlab almacena las imágenes como vectores bidimensionales (matrices), en el que cada elemento de la matriz corresponde a un sólo pixel.
Trabajar con imágenes en Matlab es equivalente a trabajar con el tipo de dato matriz. En MATLAB se puede trabajar con distintos tipos de imágenes como son las imágenes a color (RGB), indexadas, imágenes en nivel de gris e imágenes binarias (blanco y negro), cada una de ellas se explican a continuación:
Imágenes RGB (color).
Cada pixel tiene un color en particular, dicho color está descrito por una cantidad de rojo, una cantidad de verde y una cantidad de azul. Si cada uno de esos componentes tiene un rango de 0 a 255, esto da un total de 2553=16, 777,216 diferentes colores posibles dentro de una misma imagen.
En la Figura 2.5 se muestra una representación de la huella digital en RGB (color), formada por 3 matrices correspondientes a los colores rojo, verde y azul.
Figura 2.5 Muestra de una huella dactilar en RGB y sus 3 matrices correspondientes.
Imágenes indexadas.
La mayoría de las imágenes sólo tienen un pequeño subconjunto de colores de los más de 16 millones de posibilidades.
Para conveniencia de manipulación y almacenamiento la imagen tiene un mapa de colores asociado también, llamado paleta de colores, el cual es una simple lista de colores utilizados en la imagen. Cada pixel tiene un valor que no corresponde al color directamente como en las imágenes RGB.
Figura 2.6 Representación de la huella digital indexada.
Figura 2.7 Ejemplo de una imagen indexada (a la derecha) de 8 colores a la izquierda una imagen con 3 colores seleccionados RGB.
Imágenes en escala de grises.
Una imagen a escala de grises es representada por medio de una matriz bidimensional de m x n elementos, donde n representa el número de píxeles de ancho y m el número de pixeles de largo, donde cada elemento de la matriz de la imagen tiene un valor de 0 (negro) a 255 (blanco), este rango indica que cada pixel puede ser representado por 8 bits o exactamente 1 byte.
Figura 2.8 Representación de una imagen en escala de grises.
Imágenes Binarias.
En éste tipo de imágenes cada pixel es de color blanco o negro, dado que sólo hay dos valores 1 (blanco) y 0 (negro), se necesita únicamente un bit por pixel; estas imágenes suelen ser muy eficientes en términos de almacenamiento.
Figura 2.9 Representación de una imagen binaria.
Las imágenes a color implica trabajar con tres matrices, lo cual requiere mayor espacio de memoria, y por consecuencia aumenta el tiempo de respuesta del sistema, la opción a elegir fue la de utilizar imágenes en escala de grises, de esta manera se tendrá un amplio rango de valores, dejando afuera también el formato en blanco y negro, debido a que las características de dichas imágenes sólo cuentan con dos tipos de valores 1’s y 0’s, lo que haría a este método muy poco confiable.
Los tipos de imágenes también se pueden distinguir según tipo de dato de sus elementos. El tipo de dato matriz, que contendrá una imagen puede ser de varios tipos dependiendo del nivel de pixeles.
Tabla 2.3 Tipos de datos que puede contener una matriz en Matlab.
Tipo de Dato
Bytes por
elemento Características
Double 8 bytes Doble precisión, números en punto flotante que varían en un rango aproximado de -10308 a 10308.
Uint8 1 byte Enteros de 8 bits en el rango de [0, 255].
Uint16 2 bytes Enteros de 16 bits en el rango de [0, 65535].
Uint32 4 bytes Enteros de 32 bits en el rango de [0, 4294967295].
Int8 1 byte Enteros de 8 bits en el rango de [-128, 127].
Int16 2 bytes Enteros de 16 bits en el rango de [-32768, 32767].
Int32 4 bytes Enteros de 32 bits en el rango de [- 2147483648, 2147483647].
Logical 1 bit Los valores son de 0 ó 1.
[Laorden, 12]
Para leer imágenes contenidas en un archivo al ambiente de Matlab se utiliza la función imread, cuya sintaxis es: imread(’nombrefichero’), donde el nombre del archivo es una cadena de caracteres conteniendo el nombre completo de la imagen con su respectiva extensión, los formatos de imágenes que soporta Matlab son los mostrados en la Tabla 2.4.
Tabla 2.4 Formatos y extensiones soportadas por Matlab.
Formato Extensión TIFF .tiff
JPEG .jpg GIF .gif
BMP .bmp
PNG .png XWD .xwd
[Valdemar& Zaldívar, 10]
Para introducir una imagen guardada en un archivo con alguno de los formatos especificados en la tabla anterior sólo tiene que usarse la función imread y asignar su resultado a una variable que representará a la imagen, de tal forma que si se quisiera introducir la imagen contenida en el archivo huella.jpg a una variable para su procesamiento en Matlab, entonces se tendría que escribir en línea de comandos:
> > imse1 = imread ('1se.bmp');
Con ello la imagen contenida en el archivo 1se.bmp quedará contenida en la variable huella.
Una vez que la imagen está contenida en una variable de Matlab, es posible utilizar las funciones para procesar la imagen.
Después de que se realizó el procesamiento de la imagen, se requiere mostrar el resultado obtenido, con la función imshow(nombrefichero) se muestra la imagen en una ventana en el ambiente de trabajo de Matlab.
Si la variable a desplegar por ejemplo, es huella al escribir en la línea de comandos:
>>imshow(Seatiel);
Obtendríamos la imagen de la Figura 2.10
Figura 2.10 Imagen mostrada al utilizar la función imshow de la huella dactilar a color.
El acceso a píxel de una imagen es una de las operaciones más comunes en visión computacional y en Matlab está sumamente simplificado; solo bastará con indexar el píxel de interés en la estructura de la imagen.
Consideremos que se tiene una Imagen “1se.bmp” en escala de grises (Figura A.II.4) y se desea obtener su valor de intensidad en el píxel especificado por m=100 y n=100; sólo se tendrá que escribir:
> >huella(100,100)=0;
En el caso de imágenes a escala de grises, éstas sólo tienen un plano, constituido por la matriz m x n que contiene los valores de intensidad para cada índice.
Sin embargo las imágenes de color cuentan con más de un plano. En el caso de imágenes RGB (tal como se explicó arriba) éstas cuentan con 3 planos uno para cada color que representa.
Considerando que la imagen RGB contenida en la variable huella2 es la mostrada en la Figura 2.11, y deseamos obtener cada uno de los planos que la componen.
Entonces escribiríamos:
> >planeR=image2( :, :,1) ;
> >planeG=image2( :, :,2) ;
> >planeB=image2( :, :,3) ;
Figura 2.11 Planos de una imagen a color donde a) Rojo, b) Verde y c) Azul.
Sí se desea manipular un píxel de una imagen a color RGB este tendrá un valor para cada uno de sus planos correspondientes. Por ejemplo, se tiene una imagen RGB en la variable huella2 y se desea obtener el valor del píxel m=100 y n=100 para cada uno de los diferentes planos R, G y B.
Se tendrá que escribir:
> >valueR=image2(100,100,1) ;
> >valueG=image2(100,100,2) ;
> >valueB=image2(100,100,3) ;
Lo cual dará como resultado una tripleta de valores, de igual forma que con el caso de escala de grises, se puede modificar este píxel a otro color mediante el cambio de su valor en cada uno de sus respectivos planos; por ejemplo un cambio a color blanco mediante:
> >image2(100,100,1)=255;
> >image2(100,100,2)=255;
> >image2(100,100,3)=255;
En ocasiones resulta preferible saber el color o la intensidad de gris (el valor del píxel) de forma iterativa, es decir tener la posibilidad de seleccionar un píxel en una región y obtener el valor de éste, dicha posibilidad es ofrecida por la función impixel, la cual iterativamente entrega el valor (uno o tres) del píxel seleccionado que aparezca en la ventana desplegada por la función imshow.
El formato de esta función es:
>>value=impixel;
Donde value representa un escalar, en el caso de que la imagen sea a escala de grises o bien un vector de 1 x 3 con los valores correspondientes a cada uno de los planos RGB.
2.8 Almacenamiento de imágenes en un formato digital.
Las imágenes digitales son fotos electrónicas tomadas de una escena o escaneadas de documentos-fotografías, manuscritos, textos impresos e ilustraciones. Se realiza una muestra de la imagen digital y se confecciona un mapa de ella en forma de cuadrícula de puntos o elementos de la figura (píxeles). A cada píxel se le asigna un valor tonal (negro, blanco, matices de gris o color), el cual está representado en un código binario (ceros y unos).
Los dígitos binarios ("bits") para cada píxel son almacenados por una computadora en una secuencia, y con frecuencia se los reduce a una representación matemática (comprimida). Después la computadora interpreta y lee los bits para producir una versión analógica y así se pueda visualizar o imprimir. Se trata de un procesamiento de señales que es sometido a un procesado de perfil bajo con el fin de extraer determinadas características o parámetros, o bien para elaborar nuevas imágenes procesadas como material de salida. En un sentido más amplio, la visión artificial puede ser considerada como una forma más genérica del procesamiento de imágenes, más cercana a la interpretación de imágenes, cuya finalidad es procesar, comprender y descifrar características o rastrear objetos, con un objetivo claro, en una imagen o una secuencia de imágenes.
Figura 2.12 Imagen en binario.
Las imágenes pueden ser definidas como una función de dos dimensiones, f(x,y) en donde ‘x’ y ‘y’ son las coordenadas espaciales en un eje plano, y ‘f’
es la amplitud en cualquier coordenada (x,y), la cual es llamada intensidad o nivel de gris de la imagen en dicho punto como se muestra en la Figura 2.5, se denomina imagen digital a la imagen cuyos los valores de intensidad de f son totalmente definidos y discretos. [González, 07]
Los valores de intensidad son representados en bits y bytes, los cuales son la unidad fundamental con la que trabaja una computadora, por lo tanto, se precisa de una definición para estos dos vocablos.
El bit es la unidad fundamental de memoria de una computadora, cuyo valor es de 0 ó 1. Un byte contiene 8 bits y es la cantidad de información estándar necesario para almacenar un carácter del teclado. Asumiendo que un bit puede contener dos valores y que un byte contiene 8 bits se puede ver que 2^8=256 valores en un byte. [Fleet, 08]
Figura 2.13 (a) Imagen graficada como un volumen. (b) Imagen desplegada como un arreglo de intensidad visual en 2-D Y. (c) Imagen mostrada como arreglo numérico en 2-D.
[González, 07]
La fusión y el registro de imágenes, que pueden propiciar la alineación y la correlación de imágenes y tipos de imágenes diferentes, para sintetizar nuevas imágenes combinadas a partir de información enriquecida.
La reconstrucción es una tecnología importante dentro del procesamiento de imágenes, y uno de sus resultados es la reconstrucción de objetos en dos y tres dimensiones.
La segmentación permite identificar y aislar áreas de interés llamativas o estructuras específicas en las imágenes, para centrar el análisis en dichas áreas, como sucede en la creación de imágenes médicas.
La extracción de características hace posible la reducción de la complejidad (dimensionalidad) de una imagen mediante la transformación de los datos de entrada en un conjunto de rasgos que representan las características esenciales de la imagen.
Las imágenes de mapa de bits están construidas mediante una gran cantidad de cuadraditos, llamados pixel. Cada uno de estos cuadraditos está relleno de un color uniforme, pero la sensación obtenida es el resultado de integrar visualmente, en la retina, las variaciones de color y luminosidad entre píxeles vecinos.
La propiedad más básica de una imagen es su modo. Hay tres modos posibles: RGB, escala de grises e indexado. RGB son las iniciales en inglés de rojo, verde y azul, e indica que cada punto de la imagen está
representado por un nivel de “rojo”, un nivel de “verde” y un nivel de “azul”, representando una imagen a todo color. Cada canal de color tiene 256 niveles de intensidad posibles.
Un valor común para el uso en computadoras es m=8 para una escala de intensidad de 256 valores que va de 0 (negro) a 255 (blanco), tal como se ilustra en la Figura 2.6.
Figura 2.14 Intensidades en escala de grises para 8 bits.
Una imagen a groso modo se trata de una matriz de puntos. Siempre que se desee acceder a un punto concreto deberemos utilizar una coordenada (x, y). Un punto contiene una serie de bits para representar el color. Esta cantidad de bits puede variar según la calidad de la imagen.
En la actualidad se suelen utilizar 24 bits para fotografías en el que cada color primario (rojo, verde y azul) está representado por 8 bits. Puede darse el caso de que se vean imágenes a 32 bits, pero en este caso se añade un nuevo canal llamado alfa que representa la transparencia del punto.
Cada color primario se representa con 1 byte así que el rango de valores posibles es entre 0 y 255. Cuando se requiere la ausencia de color se debe colocar el color 0 y si se desea pintar ese color en su tonalidad más fuerte se deberá colocar el color 255.
Para el caso de los grises se obtienen poniendo la misma tonalidad de colores primarios. De esa forma podemos obtener 256 tonalidades de grises, desde el color negro al color blanco.
Figura 2.15 Almacenamiento de una imagen digital en una matriz y sus valores correspondientes a cada pixel del segmento en particular.
2.9 Formato BMP.
Las imágenes digitales se pueden guardar en distintos formatos. Cada uno se corresponde con una extensión específica del archivo que lo contiene.
Los más utilizados en la actualidad son: BMP, GIF, JPG, TIF y PNG.
BMP (Bitmap = Mapa de bits). Ha sido muy utilizado porque fue desarrollado para aplicaciones Windows. La imagen se forma mediante una parrilla de píxeles.
El formato BMP no sufre pérdidas de calidad y por tanto, resulta adecuado para guardar imágenes que se desean manipular posteriormente. La ventaja de este formato es que guarda gran cantidad de información de la imagen pero a su vez tiene un inconveniente como es que el archivo tiene un tamaño muy grande.
Tabla 2.5 Estructuras del archivo BMP.
BITMAPFILEHEADER Bmfh;
BITMAPINFOHEADER Bmih;
RGBQUAD aColors[ ];
BYTE aBitmapBits[ ];
La cabecera del archivo bitmap (BITMAPFILEHEADER) tiene la siguiente estructura:
Tabla 2.6 Estructura de la cabecera del archivo BMP (bitmap) BITMAPFILEHEADER.
UINT bfType; (2 byte) Tipo de archivo, vale 'BM' DWORD bfSize; (4 byte) Tamaño del archivo en bytes.
UINT bfReserved1; (2 byte) Reservado. Todo ceros.
UINT bfReserved2; (2 byte) Reservado. Todo ceros.
DWORD bfOffBits; (4 byte) Distancia en bytes entre BITMAPINFOHEADER y el mapa de bits (aBitmapBits).
Si vale cero, significa que la estructura RGBQUAD no está presente, es decir, No hay paleta de colores.
La cabecera con información del bitmap (BITMAPINFOHEADER) contiene la siguiente información:
Tabla 2.7 Información de la cabecera con información del bitmap (BITMAPINFOHEADER).
DWORD biSize; (4 byte) Número de bytes que ocupa esta estructura.
LONG biWidth; (4 byte) Anchura del bitmap LONG biHeight; (4 byte) Altura del bitmap
WORD biPlanes; (2 byte) Numero de planos de color (siempre 1) WORD biBitCount; (2 byte) Bits por pixel (1,4,8,24)
DWORD biCompression; (4 byte)
Compresión utilizada (=0) Sin compresión (=1) Compresión RLE4 (=2) Compresión RLE8 DWORD biSizeImage; (4 byte) Tamaño en bytes de la imagen
LONG biXPelsPerMeter; (4 byte) Pixel por metro. Resolución horizontal.
LONG biYPelsPerMeter; (4 byte) Pixel por metro. Resolución vertical.
DWORD biClrUsed; (4 byte) Número de índices de color utilizados.
Si biBitCount=24 no importa.
DWORD biClrImportant; (4 byte) Colores importantes (=0 todos)
La tabla de colores (RGBQUAD) indica la paleta de colores utilizada. Si trabajamos con 24 bpp no aparece esta estructura.
Los datos (BYTE) se almacenan en las filas de pixel en el formato B,G,R,B,G,R,.., pero comenzando por la última fila y terminando por la primera (de abajo hacia arriba).
2.10 Distancias en dos dimensiones.
Para la creación de nuestra base de datos, se requiere obtener valores de umbral, máximo y mínimo, los cuales serán el rango de clasificación para saber si un individuo es o no el usuario perteneciente a la base de datos.
La siguiente etapa una vez que hemos hecho una selección correcta de las variables a considerar, (pixeles de cada imagen de usuario), cada uno de los individuos sujetos al análisis estará representado por los valores que tomen estas variables en cada uno de ellos, éste es el punto de partida de la clasificación.
Para comprobar adecuadamente la identidad de cada individuo se debe ubicar y determinar lo similares o divergentes que son entre sí, obteniendo la distancia que existe entre las diferentes matrices que conforman las imágenes de cada usuario.
Una distancia alta entre individuos nos indica que son muy diferentes y una baja que son muy similares, de esta manera cuando mayor sea su valor, mayor serán las diferencias entre los pixeles y será menor la probabilidad de que los métodos de clasificación los coloquen en un mismo grupo.
La manera más específica de comparar la imagen original con una colección de imágenes, es comparar cada uno de los pixeles del cuadro de la imagen correspondiente con su correspondiente pixel en la imagen de la colección de imágenes, y así poder acumular la distancia entre cada pareja de pixeles para determinar la distancia general entre las dos imágenes. [Esqueda, 05]
Las funciones de distancia más comunes utilizadas en el mundo matemático son la distancia euclidiana, la distancia de Manhattan, la distancia de Chebychev, la distancia Minkowski y la distancia de Mahalanobis.
Estas distancias están definidas de la siguiente manera:
Sea x un objeto arbitrariamente descrita por el vector de características a (x), a (x),…, a (x).
Donde ar(x) denota el valor de r-ésimo atributo del objeto x, entonces la distancia entre dos objetos xi y xj, es definida por d(xi, xj) para cada una de las siguientes distancias:
Distancia euclidiana
d(xi, xj) = √∑ni=1(ar(xi) − ar(xj))2 (2.1)
Distancia de Manhattan
d(xi, xj) = ∑ni=1|(ar(xi) − ar(xj))| (2.2) Distancia de Chebychev
d(xi, xj) = maxi=1,…,n|(ar(xi) − ar(xj))| (2.3) Distancia de Minkowski
d(xi, xj) = (∑ni=1|(ar(xi) − ar(xj))|p)
1
p (2.4)
Distancia de Mahalanobis
d(xi, xj) = ((ar(xi) − ar(xj))tS−1(ar(xi) − ar(xj)))
1
2 (2.5)
Donde S es una matriz de covarianza.
La distancia de Minkowski es una generalización de las distancias euclidiana, Manhattan y Chebychev, donde un parámetro p debe ser definido. Si p = 1, es la distancia de Manhattan, si p = 2, es la distancia euclidiana y finalmente si p= 3, es la distancia de Chebychev, adicionalmente, la distancia euclidiana es un caso particular de la distancia de Mahalanobis: en la distancia euclidiana no se tiene en cuenta la correlación entre los atributos.
2.11 Distancias Euclidianas.
Las herramientas de distancia euclidiana describen la relación de cada celda con un origen o un conjunto de orígenes basándose en la distancia de la línea recta.
Existen dos herramientas euclidianas:
Distancia euclidiana proporciona la distancia desde cada celda en el ráster[1] hasta el origen más cercano.
Ejemplo de uso: ¿Cuál es la distancia a la población más cercana?
Dirección euclidiana proporciona la dirección desde cada celda al origen más cercano.
Asignación euclidiana identifica las celdas que se asignarán a un origen basándose en la proximidad más cercana.
Ejemplo de uso: ¿Cuál es la población más cercana?
El origen identifica la ubicación de los objetos de interés, como pozos, centros comerciales, carreteras y masas forestales. Si el origen es un ráster, debe incluir solo los valores de las celdas de origen, y las otras celdas deben incluir NoData. Si el origen es una entidad, se transformará internamente en un ráster cuando ejecute la herramienta.
Si los objetos pertenecen a un conjunto U, el conjunto de todos los pares ordenados de objetos es U x U, el producto cartesiano de U con U. De esta manera, el dominio de d es U x U y el recorrido es [0, ∞), esto es:
d: UxU → [0. ∞)
Así, si A y B son elementos de U (A, B ϵU) la función de distancia de A a B es denotada por d(A, B).
[1] El formato ráster se fundamenta en la división del área de estudio en una matriz de celdillas, generalmente cuadradas. Cada una de estas celdillas recibe un único valor que se considera representativo para toda la superficie abarcada por la misma.
Este formato, por tanto, cubre la totalidad del espacio, este hecho supone una ventaja fundamental ya que pueden obtenerse valores de forma inmediata para cualquier punto del mismo.
Toda distancia d debe satisfacer, al menos, las siguientes condiciones:
i. d(A, B) ≥ 0. la distancia es un número real no negativo y vale cero únicamente cuando A y B son el mismo objeto.
ii. d(A, B) = d(B,A). d es simétrica la distancia de A a B es la misma que la distancia de B a A
iii. d(A,B) ≤ d(A,C) + d(C,B). Desigualdad del triángulo (la distancia de A a B es menor o igual que la suma de la distancia de A a C más la distancia de C a B. Se puede visualizar esta propiedad al pensar que A,B,C definen un triángulo en el plano).
El valor de d(A, B) es siempre un valor no negativo, y cuanto mayor sea este valor mayor será la diferencia entre los individuos A y B.
Supongamos que los objetos de interés son puntos en el espacio de n dimensiones, esto es:
A = (a1, a2, … , an) y B = (b1, b2, … , bn) donde a1, a2, … , an y b1, b2, … , bn son números reales.
La Distancia Euclidiana entre A y B está dada por la fórmula:
d(A, B) = √(a1− b1)2+ (a2− b2)2+ ⋯ + (an− bn)2 (2.6) Cuando n=2, la Distancia Euclidiana tiene su razón de ser en el célebre Teorema de Pitágoras. De hecho si A = (a1, a2) y B = (0,0) al graficar los puntos en un sistema cartesiano de dos dimensiones, se ve que la distancia de A a B, d(A,B), es la hipotenusa de un triángulo rectángulo de catetos a1 y a2 como se muestra en la Gráfica 2.1.
Figura 2.16 Distancia euclidiana en dos dimensiones
Cuando n=3, la Distancia Euclidiana tiene su fundamento en una generalización del Teorema de Pitágoras como se muestra en la Gráfica 2.2.
Figura 2.17 Distancia euclidiana en tres dimensiones
Los casos particulares n=2 y n=3, sugieren que la Distancia Euclidiana es la Distancia en Línea Recta. Para un número arbitrario de dimensiones, la Distancia Euclidiana apela a la generalización basada en la inducción.
Al utilizar notación matricial y al tratar a los vectores de n componentes como matrices de n renglones y una columna podemos escribir:
d(A, B) = √(A − B)T(A − B) (2.7)
O equivalentemente
d2(A, B) = (A − B)T(A − B) (2.8) Donde (A − B)T es el transpuesto de (A − B).
Si los vectores A = (a1, a2, a3, … , an) y B = (b1, b2, b3, … , bn).
Al tratarlos como matrices tenemos: A = [ a1 a2 a3 a⋮n
] B = [
b1 b2 b3
⋮ bn]
(2.9)