RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 1. Introducción........................................................................................................ 1 2. Biometría............................................................................................................... 2 2.1 Definición ....................................................................................................... 2 2.2 Breve historia de la biometría................................................................... 3 2.3 Funcionamiento básico de sistemas biométricos .................. 4 2.4 Clasificación de sistemas biométricos.......................................... 7 2.4.1 Huellas dactilares ........................................................................... 10 2.4.2 Biometría facial ................................................................................ 11 2.4.3 Geometría de la mano.................................................................. 12 2.4.4 Reconocimiento de voz................................................................ 14 2.4.5 Reconocimiento mediante escaneado del iris ............... 15 2.4.6 Reconocmiento mediante análisis de ADN ...................... 16 2.4.7 Estándares asociados a las tecnologías biométricas 17 3. Reconocimiento de pisadas ..................................................................... 19 3.1 The ORL Active Floor (1997)............................................................ 19 3.2 The Smart Floor (2000)....................................................................... 19 3.3 The UBi Floor, Korea (2003)............................................................. 21 3.4 The EMFi floor, Finlandia (2004) ................................................... 22 4. Sistema empleado en el proyecto........................................................ 23 4.1 Introducción al sistema del laboratorio .................................... 23 4.2 El panel de sensores.............................................................................. 24 5. Trabajo con datos simulados .................................................................. 25 5.1 Introducción............................................................................................... 25 5.2 Estructura de los datos........................................................................ 25 5.3 Modelado aproximado del panel de sensores ........................ 26 5.3.1 Introducción ...................................................................................... 26 5.3.2 Modelado aproximado.................................................................. 26 5.4 Análisis de los datos simulados...................................................... 29 5.4.1 Introducción ...................................................................................... 29 5.4.2 Análisis de los sensores de forma independiente....... 29 5.4.3 Análisis del panel como sistema............................................ 34 5.4.4 Ground Reaction Force ................................................................ 35 5.4.5 Obtención de la GRF ...................................................................... 38 5.4.6 Obtención de superficies de presión y energía............. 45 5.4.7 Curvas de presión – modelo aproximado......................... 47 5.4.8 Curvas de energía – modelo aproximado......................... 50 5.5 Modelado a escala del panel............................................................. 57 5.5.1 Introducción ...................................................................................... 57 5.5.2 Matriz del modelo a escala del panel.................................. 58 5.5.3 Obtención de valores y mapeado en la matriz final... 60 5.5.4 Interpolación de la matriz de alta resolución................ 65 5.5.5 Interpolación por filtro de suavizado gaussiano ......... 66 5.5.6 Cálculo del filtro gaussiano discreto ................................... 68 5.5.7 Imágenes obtenidas en alta resolución ............................ 69 5.5.8 Umbral mínimo................................................................................. 76 5.5.9 Obtención del umbral mínimo................................................. 77 5.5.10 Superficies tras aplicación del umbral ............................ 79 _____________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6. Extracción de características.................................................................. 82 6.1 Área de la pisada ..................................................................................... 83 6.2 Determinación de picos de presión .............................................. 84 6.3 Ángulo de pisada ..................................................................................... 88 6.4 Comparación entre superficies de energía .............................. 89 6.4.1 Rotación y traslación de la superficie de energía ....... 90 6.4.2 Correlación de superficies de energía ................................ 92 7. Trabajo con datos reales ........................................................................... 95 7.1 Introducción............................................................................................... 95 7.2 Señales adquiridas del tablón de sensores ............................. 96 7.3 Acondicionamiento de las señales................................................ 97 7.4 Extracción de pisadas individuales de los ficheros .......... 101 7.5 Obtención de muestras completas ............................................. 105 7.6 Ejemplos de muestras reales y curvas GRF asociadas ... 108 7.7 Superficies de energía con muestras reales......................... 114 7.8 Umbral mínimo con muestras reales ........................................ 121 7.9 Extracción de características ......................................................... 122 8. Conclusiones ................................................................................................... 125 Apéndice I. Funciones para los datos simulados ........................... 126 I1. Listado de funciones ............................................................................ 126 I2. Códigos de las funciones................................................................... 128 Apéndice II. Funciones para las muestras reales.......................... 155 II1. Listado de funciones.......................................................................... 155 II2. Códigos de las funciones................................................................. 156 Bibliografía ............................................................................................................ 163 _____________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 1. Introducción El objetivo de este proyecto es el estudio de la viabilidad del uso de las pisadas humanas como señal biométrica. En otras palabras, se trata de trabajar en un sistema que permite reconocer a las personas por su forma de andar o, en este caso, de pisar. Para ello se ha trabajado en un laboratorio en el que se dispone de un panel de sensores de presión dispuesto en el suelo y a través del cual se toman los datos necesarios que posteriormente se utilizan para el estudio. Este proyecto pretende determinar si el sistema es capaz de identificar automáticamente a un usuario con una tasa de error mínima que lo haga viable para su uso en sistemas de seguridad o reconocimiento. Existen diferentes métodos para abordar el diseño integral de un sistema de reconocimiento a través de señales biométricas. Este proyecto trata de centrarse en las características geométricas que pueden derivarse del procesado de los datos obtenidos. En nuestro caso, estamos hablando de características geométricas en la distribución de presión en un proceso de pisada al andar. Para ello, las técnicas de procesamiento de imágenes van a jugar un papel fundamental en el desarrollo de este trabajo. Durante el desarrollo de este proyecto, se ha trabajado en todo momento utilizando el lenguaje matemático de programación MATLAB®, bajo entorno Linux. Se va a comenzar realizando una introducción a la biometría en general; su significado, historia, tecnologías y métodos utilizados en la actualidad, etc. Posteriormente se detallarán los pasos y técnicas empleadas para la obtención de los resultados; así como una explicación de los dispositivos utilizados en el laboratorio para tal fin. Finalmente, se realizará un comentario y se obtendrán conclusiones de los resultados obtenidos. _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 1 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2. Biometría 2.1 Definición La palabra biometría es una composición de dos términos provenientes del griego clásico: bios, que significa “vida” y metron que equivale a “medida”. La biometría es el conjunto de métodos automáticos cuya finalidad es la identificación y reconocimiento de las personas por medio de características fisiológicas y de comportamiento. Entre las características que se estudian dentro del extenso campo de la biometría se encuentran: geometría facial, huellas dactilares, geometría de la mano, escritura, código del iris, retina, voz, etc. Las tecnologías biométricas están cada vez adquiriendo más importancia. Debido al notable incremento en las brechas de seguridad de los actuales sistemas informáticos y en el desarrollo de técnicas cada vez más complejas para llevar a cabo actividades fraudulentas, la obtención de sistemas que permitan la autenticación y verificación personal con una máxima fiabilidad están resultando cada vez más importantes. Entre los objetivos más importantes de las tecnologías basadas en biometría se encuentran el asegurar la fiabilidad de las transacciones financieras personales y el asegurar la privacidad individual. La necesidad para el desarrollo de este campo se puede encontrar, sin ir más lejos, en la garantía de seguridad en aplicaciones militares y financieras. Las infraestructuras de seguridad de las redes de comunicación de grandes empresas, la identificación personal para identificación policial e IDs, banca electrónica segura y otras transacciones financieras, ventas y servicios de salud y sociales se están ya beneficiando de estas tecnologías. Las tecnologías biométricas incluyen redes, estaciones de trabajo, acceso a dominios, protección de datos, acceso remoto a recursos, seguridad de la web… El buen funcionamiento de todos estos flujos de datos es esencial para el crecimiento de la economía mundial. Empleado conjuntamente con otras tecnologías tales como tarjetas inteligentes, códigos de encriptamiento o firmas digitales, la biometría está en general destinada a preservar todos los aspectos de la economía en nuestra vida diaria. El uso de estas técnicas para identificación personal está convirtiéndose en un método considerablemente más seguro que el uso de contraseñas o códigos PIN. Esto es en parte debido a que las técnicas biométricas hacen referencia directamente a la persona en concreto que hace uso de ellas en ese momento. Existe la llamada Sociedad Internacional de Biometría, fundada en 1947, cuyo objetivo es el desarrollo continuo de métodos cualitativos y cuantitativos, así como de técnicas matemáticas y estadísticas que impulsen el desarrollo y diseño de los sistemas dedicados a hacer uso de las características biométricas. _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 2 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2.2 Breve historia de la biometría La biometría no fue introducida en las culturas occidentales hasta finales del siglo XIX, aunque se sabe a ciencia cierta que ya se empleaban técnicas biométricas en china hacia el siglo XIV. Los primeros documentos que se tienen sobre su uso fueron redactados por el explorador Joao de Barros, que afirmaba que los comerciantes chinos estampaban las impresiones y las huellas de la palma de las manos de los niños en papel con tinta. De esta forma, los comerciantes podían distinguir entre los niños jóvenes. La primera utilización aplicada de las técnicas biométricas tiene lugar en 1890, cuando Alphonso Bertillon, policía parisino, desarrolló un sistema de estudio de la mecánica y medidas del cuerpo para identificar a los criminales. El método se utilizó hasta que identificó incorrectamente a algunos sujetos. El método se abandonó en favor del uso de huellas dactilares, devuelta a su uso por el inspector Richard Edward Henry de Scotland Yard. Kart Pearson, un matemático londinense, realizó investigaciones en el campo de la biometría en los primeros años del siglo XX, en la Universidad de Collage, Londres. Realizó importantes descubrimientos en el campo de la biometría a través del estudio estadístico de diferentes aspectos, los cuales aplicó a la teoría de la evolución animal. Su trabajo incluyó el método de los momentos, el sistema de curvas de Pearson y el test de chi2. Alphonso Bertillon Durante los años 60 y 70, se desarrollaron métodos para la identificación personal a través de la firma personal. Sin embargo, el campo de investigación biométrico quedó estancado hasta que diversas agencias militares y de seguridad desarrollaron tecnologías más allá de las huellas digitales. Los ataques terroristas del 11M impulsaron a las autoridades norteamericanas a la instalación de sistemas de identificación en los aeropuertos. Sin embargo, muchos de ellos nunca llegaron a completarla, debido a los altos costes que suponían. Desde el 7 de julio del 2005, las autoridades británicas están usando tecnologías de reconocimiento facial después de los atentados que tuvieron lugar en el metro de Londres. De hecho, Londres dispone de más de 200.000 cámaras de seguridad que se han venido usando desde 1960. _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 3 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2.3 Funcionamiento básico de sistemas biométricos En un sistema informático de identificación biométrica, el usuario ingresa en el sistema cuando una o más de sus características biométricas (físicas y de comportamiento) son obtenidas. La información se proceso por medio de diferentes técnicas y algoritmos y entonces introducida en una base de datos. En caso de que el usuario sea nuevo, al darse de alta un modelo de sus características biométricas es introducido en la base de datos para futuro uso en la identificación. Figura 2.2.1 Diagrama sencillo de un sistema biométrico La efectividad de un sistema biométrico se mide en términos del cociente de falsa aceptación (False Accept Rate, FAR) y el cociente de falso rechazo (False Reject Rate, FRR). La FAR mide el porcentaje de individuos que son incorrectamente aceptados como usuarios del sistema, mientras que la FRR mide el porcentaje de usuarios del sistema que son incorrectamente rechazados al intentar darse de alta en él. En la prácticas, se suele emplear la EER (Equal Error Rate), o valor para el cual la FAR y la FRR son equivalentes. Cuanto más baja es esta tasa, más eficiente se considera el sistema. Figura 2.2.2 Gráfica de FAR, FRR y EER _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 4 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ El sistema de verificación compara las características obtenidas de la persona que intenta acceder al sistema con las características almacenadas en la base de datos, computa la similitud entre todas ellas y da como resultado una puntuación. Dependiendo de esta puntuación y del umbral establecido se decide si dicha persona es un legítimo usuario del sistema o un impostor. Habitualmente, las bases de datos que almacenan los datos biométricos se dividen en tres partes: training set (entrenamiento), evaluation set (evaluación) y test set (prueba). El set de entrenamiento se emplea para construir los modelos necesarios de los verdaderos usuarios del sistema. El set de evaluación es necesario para producir las puntuaciones correspondientes a los clientes e impostores, que permitirá calcular el umbral óptimo que decidirá si una persona es verdaderamente un usuario perteneciente al sistema. Figura 2.2.3 Curvas de FAR y FRR Los valores para FAR y FRR se obtienen de la siguiente manera: FAR = EI/I * 100% FRR = EC/C * 100% Donde: - EI representa el número de veces que los impostores han sido aceptados. I es el número de intentos de acceso de los impostores. EC es el número de veces que los clientes han sido rechazados. C es el número de intentos de acceso de los clientes. En aplicaciones reales, el umbral deberá establecerse a priori, puesto que el grado de seguridad y aceptación dependerá del escenario en concreto. En teoría, la puntuación de los clientes debería ser siempre superior a la de los impostores. En tal _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 5 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ caso, solamente sería necesario establecer un umbral que separara los dos grupos diferentes. Sin embargo, debido a diferentes razones, esto no ocurre así en los sistemas biométricos del mundo real. En algunos casos, las puntuaciones generadas por los impostores pueden ser más altas que las generadas por los patrones de acceso de algunos de los clientes legítimos. Por ello, independientemente del umbral de clasificación establecido, siempre existirán errores de diferentes tipos. El uso de un umbral muy alto permitiría que ningún patrón fuera falsamente aceptado por el sistema. Por otra parte, clientes con una puntuación inferior a la puntuación más alta de los impostores serían falsamente rechazadas. En contraposición, un umbral muy bajo permitiría que ningún cliente fuera rechazado incorrectamente, mientras que algunos de los impostores serían incorrectamente aceptados en el sistema. Por ello, el umbral ha de escogerse en algún lugar entre esos dos puntos, de forma que habrá lugar a errores de incorrecta aceptación e incorrecto rechazo. Figura 2.2.4 Umbral establecido teniendo en cuenta los clientes Figura 2.2.5 Umbral establecido teniendo en cuenta los impostores Figura 2.2.5 Umbral establecido teniendo en cuenta clientes/impostores _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 6 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2.4 Clasificación de sistemas biométricos Desde los comienzos del uso de la biometría se han ido desarrollando diferentes sistemas y tecnologías relacionadas con este campo. Las diferentes tecnologías cuentan con ventajas e inconvenientes que las hacen apropiadas para su uso según el escenario en concreto. Las tecnologías biométricas en uso actual están muchas de ellas en fase de desarrollo aún. Podemos hacer referencia, en primer lugar, a las más desarrolladas, como es el caso de las huellas dactilares, el ADN o la geometría de la mano. Estas tecnologías llevan muchos años implantándose y siendo utilizadas en numerosas aplicaciones y campos diferentes. En el caso de ciertas otras tecnologías, se encuentran en proceso de madurez y actualmente se trabaja para su implementación y aplicación a diferentes escenarios y productos de la vida real. En lo sucesivo, irán apareciendo nuevas tecnologías, pero los estudios y toda la teoría que subyace a todos estos diferentes métodos está ya muy avanzada. Podemos mencionar entre éstas últimas el reconocimiento por iris, voz, geometría facial y firma manuscrita. Otras, como la termografía facial, estructura venosa, forma de las orejas, olores y la forma de andar se encuentran en proceso de investigación y desarrollo. A continuación se muestra una comparación entre las más conocidas y usadas técnicas biométricas, señalando sus diferentes ventajas e inconvenientes. Figura 2.4.1 Comparación entre diferentes tecnologías biométricas Las características más importantes a destacar en este cuadro son: _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 7 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ - Verify (verificación): Indica si la tecnología en cuestión está capacitada para la verificación. Por este término entendemos el proceso mediante el cual una entrada (un usuario que intenta acceder al sistema) es comparado con ciertos datos almacenados previamente por el usuario para comprobar si la persona que intenta entrar en el sistema es realmente quien dice ser. - ID: Indica si la técnica biométrica está capacitada para la identificación. Este es el proceso mediante el cual los datos adquiridos de la persona que intenta acceder al sistema son comparados con un gran bloque de datos almacenado previamente, proveniente de muchos usuarios, para determinar de qué usuario se trata. - Accuracy (efectividad): Hace referencia a la eficiencia de la tecnología a la hora de distinguir a los diferentes individuos. En cierto modo, este parámetro se determina a través de la cantidad de información obtenida de los usuarios, así como también del número de posibles resultados diferentes que se pueden obtener. - Reliability (fiabilidad): Este parámetro establece en qué medida la técnica biométrica es adecuada para sistemas de reconocimiento. - Error rate (tasa de error): Parámetro que se calcula a partir del punto de intersección entre las curvas FAR y FRR, como ya se ha explicado en apartados anteriores. - Errors (errores): Indica las principales fuentes de error que afectan a la efectividad de la tecnología en cuestión. - False Pos. (FAR): Este parámetro indica cuánto de fácil es para un usuario o impostor tomar la identificación de un usuario legítimo del sistema. - False Neg. (FRR): Indica la facilidad con la que un usuario legítimo del sistema no es capaz de identificarse como sí mismo al intentar ingresar el sistema de reconocimiento. Existen otras muchas formas de caracterizar a las diferentes tecnologías biométricas. Parámetros como el coste del hardware requerido, aceptación por parte de los usuarios, intrusismo o la facilidad de su uso o aplicación pueden ser factores determinantes a la hora de decantarse por una u otra tecnología; todo dependerá, como se ha dicho anteriormente, del escenario real en el que se vaya a poner en práctica la técnica. A continuación se detallan estas y otras características aplicadas a las técnicas biométricas indicadas en el cuadro anterior: _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 8 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 2.4.2 Otras características de las tecnologías biométricas - Security level: Indica el máximo nivel de seguridad al que se puede llegar con esta técnica. - Long-term stability (estabilidad a largo plazo): Establece hasta qué punto esta tecnología es capaz de mantener un correcto funcionamiento sin actualizaciones o modificaciones durante largos períodos de tiempo. - User Accpetance: Indica la disponibilidad que, por norma general, tiene el usuario a usar un sistema basado en esta tecnología. - Intrusiveness (intrusismo): En ciertas ocasiones, el uso de ciertas tecnologías biométricas puede suponer la invasión de la privacidad del usuario. Este parámetro indica en qué medida el uso de un sistema basado en esta técnica requiere de suficiente interacción con el usuario como para ser considerado intrusivo u ofensivo. - Ease of use (facilidad de uso): Indica la facilidad con que esta técnica es implementada y usada en un sistema real. - Low Cost: Indica si la tecnología es apropiada para aplicaciones que requieren bajo coste. - Hardware: El tipo y coste de los equipos y dispositivos necesarios para la implementación de la tecnología. - Standards: Si existen o no standards aplicados a la tecnología. En los siguientes apartados se da una explicación más detallada de las diferentes tecnologías biométricas usadas en la actualidad y en proceso de desarrollo. _________________________________________________________________________________ Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea 9 RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2.4.1 Huellas dactilares Las huellas dactilares, como tecnología biométrica, es probablemente el sistema más extendido y conocido en este campo. Los sistemas de reconocimiento de huellas dactilares se basan en las características encontradas en la impresión de las diferentes ondulaciones sobre la yema de los dedos. Existen dos tipos diferentes de huellas dactilares, planas y balanceadas. Las primeras se realizan sólo imprimiendo la parte central del dedo, mientras que en el segundo caso se capturan ondulaciones en los extremos de los dedos así como también en la parte central. Las imágenes de las huellas dactilares son escaneadas, procesadas y convertidas en modelos o patrones para su uso en comparaciones con otras huellas. Los patrones son almacenados en bases de datos gigantescas para su uso policial, generalmente. Para el registro de las huellas, el usuario debe presionar sobre una superficie lectora, generalmente silicio o material óptico durante unos dos segundos. El lector, que se encuentra conectado generalmente a una red u ordenador, envía los datos obtenidos al sistema, el cual se encarga de compararlos con los almacenados en la base de datos. Esto requiere habitualmente mantener el dedo sobre el lector algunos segundos. Para evitar diferentes técnicas de ataques al sistema, los lectores suelen estar preparados también para detectar la presión sanguínea y otras características como la correcta alineación de las ondulaciones en las huellas. Las huellas dactilares comenzaron a usarse como método en el siglo XIV en China, por los padres para diferenciar a sus hijos de otros. Los ingleses las comenzaron a usar hacia 1858, cuando Sir William Herschel, magistrado del distrito de Hooghly en Jungipoor (India), comenzó a realizar impresiones de huellas en los contratos realizados con los nativos locales. En la segunda mitad del siglo XIX, Richard Edward Henry, inspector de Scotland Yard, desarrolló un método para indexar e identificar marcas en las huellas dactilares. Este método, una versión avanzada del utilizado por Francis Galton en1882, se utilizó de forma experimental y demostró ser extremadamente eficiente. Las huellas dactilares como tecnología biométrica es la opción más viable para muchas agencias federales, gracias al desarrollo de scanners y otros dispositivos de alta precisión. Con una gran efectividad y relativa simpleza, el uso de las huellas dactilares va a mantenerse en uso durante muchos años. En uso para investigaciones criminales durante unos 100 años, el uso de huellas dactilares parece expandirse sin límites. En la actualidad es un método muy común de acceso a edificios o redes corporativas o policiales. Recientemente, diversas entidades bancarias han comenzado a emplear este método para identificar a algunos de sus clientes. _________________________________________________________________________________ 10 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ El límite del uso de esta tecnología biométrica parece estar sólo en la disposición del usuario a someterse a un scanner de sus huellas. Está demostrado que el uso de varios dedos en el proceso de escaneado aumenta la efectividad del sistema exponencialmente. Debido a la cantidad de información contenida en una huella dactilar es muy improbable (1 posibilidad entre 64 billones) que dos huellas dactilares sean idénticas e imposibles de distinguir. Otra de las ventajas derivadas del uso de las huellas dactilares radica en el pequeño tamaño de almacenamiento que requieren para su uso como patrones biométricos, reduciendo así el tamaño requerido para la base de datos correspondiente. Es también uno de los sistemas biométricos con más desarrollo, historia, investigación y diseño. 2.4.2 Biometría facial Las tecnologías de reconocimiento de rostros tratan de identificar a los individuos por medio del análisis de ciertas características o rasgos clave tales como la distancia entre los ojos o anchura de la nariz. Habitualmente, los métodos de reconocimiento facial comparan una persona con un modelo o patrón almacenado previamente, si bien se emplean también para la comparación entre imágenes y patrones estáticos. Esta tecnología funciona igualmente para verificación e identificación y, además, es el único sistema biométrico que puede usarse de forma secreta, para vigilancia, ya que un rostro puede ser capturado fácilmente por diferentes tecnologías de vídeo. El funcionamiento de este tipo de sistemas suele ser con el usuario a poca distancia del capturador; durante unos segundos el sistema localiza el rostro del individuo, determina las características claves y realiza una comparación con el resto de los patrones almacenados en la base de datos del sistema. Para evitar intentos de acceso fraudulentos a este tipo de sistemas, los dispositivos suelen requerir la realización de diversos gestos por parte del individuo que intenta acceder, tales como sonrisas y guiños, que aseguran que es realmente una persona quien intenta acceder al sistema. Esta tecnología tiene, usualmente, un grado muy bajo de fallo a la hora de adquisición de los datos para su uso posterior. Sin embargo, la efectividad de los sistemas de reconocimiento facial depende del entorno y la aplicación específicos. Diversas pruebas de reconocimiento facial en aeropuertos han dado como resultado una tasa de fallos de reconocimiento ente un 0.3% y 5%, mientras que la tasa de falsa aceptación se sitúa ente un 5% y 45%. Los aspectos del entorno influyen decisivamente en estas tasas, ya que aspectos tales como efectividad de las cámaras, posición del rostro, expresión de la cara y ciertos rasgos particulares afectan decisivamente a los _________________________________________________________________________________ 11 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ algoritmos de reconocimiento empleados en estos sistemas. Otros aspectos, como la edad a la que se tomó el patrón, pueden degradar también la efectividad del sistema. Uno de los aspectos fuertes de la biometría facial es su no intrusismo. La verificación identificación puede realizarse a no mucha distancia del receptor y sin requerir mucho tiempo por parte del individuo. Sin embargo, este no intrusismo también puede llegar a ser una desventaja a la hora de su evaluación por parte de la opinión pública. Muchos han expresado su preocupación acerca del potencial que, el uso de cámaras y sistemas de reconocimiento facial distribuidos sin previo aviso en ciudades y edificios, puede tener a la hora de identificar personas sin su conocimiento o consentimiento. Sin embargo, las dificultades inherentes a la hora de realizar una identificación positiva (requerimientos de luz, posición del rostro, etc.) son muchos, y hacen de esta tecnología mucho más apropiada para sistemas de verificación, más que para identificación. Las tecnologías de reconocimiento facial pueden llegar a ser muy caras. Un sistema de reconocimiento facial, controlando el acceso a unas 30,000 personas, puede llegar a costar alrededor de $15,000 (fuentes 2004). Dependiendo del número de puntos de acceso instalados para los dispositivos de reconocimiento, el coste de las licencias de software necesarias puede variar entre $650 y $4,500. A medida que se requiera una ampliación de las bases de datos, el coste global del sistema se dispara. En los casos en los que se requiere la instalación de un sistema CCTV (circuito cerrado de televisión) usado en conjunto con un sistema de reconocimiento de rostros, el coste del sistema puede variar entre $10,000 y $200,000, dependiendo del tamaño del sistema y el tipo de monitorización requerida. El uso adicional de cámaras CCTV puede variar entre $125 y $500, llegando a $2,500 si poseen características específicas. 2.4.3 Geometría de la mano Las técnicas biométricas que utilizan la geometría de la mano se basan en las medidas de la anchura, altura, longitud de los dedos, distancias entre articulaciones y forma de los nudillos. Para el desarrollo de este tipo de sistemas se emplean cámaras ópticas y diodos emisores de luz que cuentan con espejos y reflectores, para obtener, habitualmente, dos imágenes ortogonales en dos dimensiones de la parte trasera y los laterales de la mano. Tomando como base las imágenes obtenidas, alrededor de unas 100 mediciones se calculan y convierten en un patrón para su uso posterior en la base de datos correspondiente. La mayoría de los lectores cuentan con mecanismos para fijar la mano al lector y facilitar así el proceso de reconocimiento. Esto conlleva una lectura consistente de las diferentes muestras, lo que reduce en gran medida la tasa de errores dada por el sistema _________________________________________________________________________________ 12 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Los sistemas de reconocimiento por geometría de la mano se perciben como sistemas muy fiables y se han venido utilizando en una gran variedad de empresas para regular el control de acceso durante más de 30 años. Es muy útil para determinar y establece restricciones de acceso o manejo de ciertos sistemas o redes. Se trata de una tecnología relativamente estable; las primeras unidades, instaladas hacia 1991 se encuentran aun en funcionamiento y las actualizaciones de este tipo de sistemas no requieren un coste excesivamente elevado. El acceso a numerosas instalaciones importantes se basa en este tipo de sistemas; podemos citar como ejemplo el aeropuerto de San Francisco, el puerto de Rótterdam, la Base de las Fuerzas Aéreas en Escocia y también se emplea en la Universidad de Oklahoma. Tras su uso durante más de dos décadas, se ha demostrado que es una tecnología ampliamente aceptada por los usuarios. Debido a que la captura de la imagen de una mano se ve como algo menos intrusivo que otras tecnologías, la mayoría de los individuos aceptan ingresar en las bases de datos que se basan en estos sistemas. Otro aliciente más de esta tecnología es que permite a los usuarios de ciertas instalaciones prescindir de tener que llevar consigo llaves, tarjetas de acceso, etc. Se planea su uso futuro en numerosas instalaciones y universidades y, en la actualidad, se viene empleando en unas 15,000 aplicaciones bancarias. Esta tecnología tiene grandes ventajas que la hacen un punto fuerte. Es muy sencillo para trabajadores y miembros el uso del sistema; no requiere más que poner la mano sobre el dispositivo y esperar unos pocos segundos. Por otra parte, la cantidad de información necesaria para la comparación e identificación es bastante pequeña comparada con la de otras tecnologías. También es bastante robusta ante intentos de usos fraudulentos o engaños del sistema. También, el uso de esta técnica presenta diferentes desventajas que han de señalarse también. Entre éstas podemos incluir el coste del hardware para el propietario que instala el sistema. Los lectores de este tipo suelen costar entre $2,000 y $4,000. También existen factores que pueden afectar a la efectividad el sistema, tales como heridas o desgastes producidos en la palma de la mano. Otra de las desventajas importantes en este tipo de sistemas es la cantidad de información adquirida en el proceso de toma de datos. Esto hace que sea posible la existencia de dos muestras iguales en la base de datos, lo que puede conducir a error. Esto hace que este tipo de sistemas sean preferente utilizados para tareas de verificación, eliminando la posibilidad de ser empleados en sistemas de identificación. _________________________________________________________________________________ 13 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2.4.4 Reconocimiento de voz Las tecnologías de reconocimiento a través de la voz se basan en las diferentes características presentes en la voz de las personas, resultantes de la distinta fisiología en las cuerdas vocales y los hábitos del habla. El reconocimiento de voz hace uso de los estudios y conocimientos que se tienen en los mecanismos de producción de la voz: Figura 2.4.4.1 Sistema de producción de la voz El proceso de producción de la voz es, a grandes rasgos: 1. Los pulmones expiran aire a través de la traquea. 2.a. El aire pone en vibración las cuerdas vocales (sonoros). La tensión de las cuerdas determina el tono (frecuencia fundamental de la vibración). 2.b. El sonido se produce por turbulencias en una constricción (sordos). 3. La configuración de las cavidades acústicas (faríngea, vocal y nasal), llamadas tracto vocal, determinan el timbre (formantes), permitiéndonos diferenciar entre sonidos. Los sistemas de reconocimiento de voz hacen uso de todas estas características; formantes, timbre, frecuencia fundamental, tono, etc., para la distinción entre los individuos. Cuando un usuario ingresa en la base de datos, el sistema captura su voz a partir de una cierta frase o palabra predeterminada, que es pronunciada y dirigida a un micrófono o teléfono en varias ocasiones. Esta palabra o frase se conoce como palabra clave, si bien existen sistemas que son capaces de funcionar sin la necesidad de una frase o palabra predeterminada. _________________________________________________________________________________ 14 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Las frases pronunciadas son digitalizadas y sus diferentes características son procesadas y extraídas para ser usadas en modelos o patrones de comparación. Esto requiere una gran capacidad de almacenamiento, si bien es una tecnología que puede usarse tanto para verificación como para la identificación Las tecnologías de reconocimiento de voz requieren un mínimo proceso de entrenamiento (training set) para el sistema y se considera una tecnología con un bajo grado de intrusismo. Sin embargo, una de las grandes desventajas de este tipo de sistemas es que, bajo ciertos entornos, no resulta demasiado fiable y, especialmente, funciona con muy poco rendimiento en ambientes ruidosos, como por ejemplo zonas de entrada a edificios. 2.4.5 Reconocimiento mediante escaneado del iris La idea de usar los patrones presentes en el iris como método para la identificación personal fue originalmente propuesta en 1936 por el oftalmólogo Frank Burch. En los años 80, la idea había ya aparecido como ciencia ficción en algunas películas del conocido personaje James Bond. Fue en 1987, cuando los oftalmólogos Aran Safir y Leonard Flor patentaron la idea y, dos años más tarde, recurrieron al profesor John Daugman (Universidad de Harvard) para crear algoritmos encaminados al reconocimiento del iris. Estos algoritmos, patentados en 1994 y propiedad de Iridian Technologies, son la base para los sistemas de reconocimiento por iris que existen en la actualidad. Los escáners de retina miden el patrón venoso que existe en la parte posterior del ojo, el cual se obtiene mediante la proyección de una luz infrarroja a través de la pupila. El escaneado de retina se realiza mediante una videocámara, con la cual se estudian los patrones de color únicos de los surcos de la zona coloreada de nuestros ojos, y que son diferentes en cada persona. La utilización de los escáners de iris está bastante limitada en la actualidad, puesto que es una tecnología aún en fase de maduración y desarrollo. Está empezando a utilizarse para la seguridad en diversos aeropuertos y, en algunos, se están sustituyendo los mostradores de facturación por estos escáners. _________________________________________________________________________________ 15 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ La tecnología que hace uso del escáner del iris se considera bastante intrusiva y poco habitual, si bien se emplea para restringir el acceso a algunas instalaciones militares, importantes laboratorios de investigación y otras zonas de alta seguridad. Los escáners de iris y retina son considerados uno de los sistemas biométricos más seguros, pero no siempre funcionan de forma fiable. No funcionarán en personas con problemas de visión y se pueden ver afectados por condiciones ambientales como la luz ambiental, ángulo de posicionamiento, etc. Otros factores que también pueden afectar de forma determinante son la raza y el color de los ojos. 2.4.6 Reconocimiento mediante análisis de ADN En los últimos años, los análisis de ADN han comenzado a jugar un importantísimo papel en los sistemas judiciales de muchos países. Ha permitido dar pruebas fehacientes de la implicación de sospechosos en crímenes así como también exculpar a inocentes que, injustamente, habían sido encarcelados. En los Estados Unidos, ha sido determinante en el esclarecimiento de importantísimos casos, incluyendo el juicio contra O.J. Simpson y la investigación, en 1996, del asesinato de JonBenet Ramsey. A grandes rasgos, se puede definir el ADN como una especie de “manual de construcción” de nuestro cuerpo. Una molécula de ADN es una larga cadena enrollada en forma de doble hélice. Es una estructura bastante compleja, si bien principalmente está compuesta de cuatro ingredientes principales (nucleótidos): Adenina, Citosina, Guanina y Timina. Estos nucleótidos existen como pares de una base y se enlazan siempre juntos. La adenina y timina siempre están enlazadas entre sí, y ocurre lo mismo con la guanina y la citosina. Mientras que la mayor parte de la secuencia del ADN no difiere en nada entre dos personas existen 3 millones de pares (0.1% del genoma) que sí lo hacen. En las células humanas, el ADN está contenido en 23 pares de cromosomas. Cada par proviene, uno de la madre y otro del padre. A no ser que una persona posea un gemelo idéntico, el ADN es absolutamente único en cada persona. Esta es la característica que hace del análisis de ADN una potente herramienta de identificación. El ADN es extraído a través del análisis de muestras de sangre, saliva, cabello, piel, etc. Las longitudes y secuencias de las proteínas presentas en diferentes secciones claves del ADN se analizan y estudia para generar un perfil o patrón de ADN, que es el que posteriormente se emplea para la comparación con el resto de los individuos. _________________________________________________________________________________ 16 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ La tecnología de identificación personal a través del análisis del ADN se considera extremadamente intrusiva, por lo que en la actualidad es únicamente usada en pruebas de paternidad y en investigaciones criminales. Casi todos los estados norteamericanos recogen muestras de ADN de los condenados por crímenes violentos, y cuatro estados también las toman a todos los arrestados, según DNA Resource. Se estima que Estados Unidos cuenta con una base de datos de unas 2.1 millones de muestras de ADN. Las autoridades competentes pueden extraer ADN prácticamente de cualquier fuente; un pañuelo, pelo, uñas, huesos, dientes y todo tipo de fluidos corporales. En las ocasiones en las que los investigadores tienen evidencias basadas en el ADN pero no sospechosos, se recurre a la comparación del ADN obtenido en la escena del crimen con los patrones almacenados en la base de datos correspondiente. La base de datos más común empleada en Estados Unidas es la CODIS (Combined DNA Index Systems). Está base de datos es mantenida y actualizada por el FBI. Por ley, las autoridades en los 50 estados deben toman muestras del ADN de todos los condenados por delitos sexuales, para su inclusión en la CODIS. Recientemente, en España se ha aprobado el proyecto de ley que unificará las bases de datos de muestras de ADN en posesión de la Policía y la Guardia Civil. El principal objetivo de esta ley será integrar en una base única los datos en el Ministerio del Interior todos los datos existentes con el fin de prevenir, detectar y esclarecer delitos de especial gravedad, como los delitos contra la vida, la libertad sexual, el robo con fuerza o violencia, así como los delitos de terrorismo y los casos de delincuencia organizada. Para impulsar esta base de datos, la Secretaría de Estado de Seguridad dispondrá de un programa -CODIS- facilitado gratuitamente por la Oficina Federal de Investigaciones (el FBI) de Estados Unidos. Las pruebas de ADN han permitido resolver en España desde 1996 cerca de una quincena de casos, bien por la identificación de cadáveres o por la de los autores de los crímenes. 2.4.7 Estándares asociados a las tecnologías biométricas El desarrollo incipiente de las tecnologías biométricas ha aumentado la preocupación de las organizaciones reguladoras respecto a la creación de estándares relativos el uso de estas técnicas aplicadas al ámbito de las tecnologías de la información. Esto no es sino el reflejo del creciente interés de las industrias por este campo y a los múltiples beneficios que puede aportar su correcto uso. La deficiente estandarización en la actualidad tiene como resultado el que los proveedores de soluciones basadas en la biometría suministren interfaces de software propietarios para sus productos, lo que dificulta el cambio de producto o vendedor. _________________________________________________________________________________ 17 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ A nivel mundial el principal organismo que coordina las actividades de estandarización biométrica es el Sub-Comité 17 (SC17) del Joint Technical Committee on Information Technology (ISO/IEC JTC1), del International Organization for Standardization (ISO) y el International Electrotechnical Commission (IEC). En Estados Unidos desempeñan un papel similar el Comité Técnico M1 del INCITS (InterNational Committee for Information Technology Standards), el National Institute of Standards and Technology (NIST) y el American National Standards Institute (ANSI). Existen además otros organismos no gubernamentales impulsando iniciativas en materias biométricas tales como: Biometrics Consortium, International Biometrics Groups y BioAPI (este último compuesto por las empresas Bioscrypt, Compaq, Iridiam, Infineon, NIST, Saflink y Unisis). Los estándares más importantes son: - Estándar ANSI X.9.84 Estándar creado en 2001, por la ANSI (American National Standards Institute) y actualizado en 2003, define las condiciones de los sistemas biométricos para la industria de servicios financieros haciendo referencia a la transmisión y almacenamiento seguro de información biométrica, y a la seguridad del hardware asociado. - Estándar ANSI / INCITS 358 Estándar creado en 2002 por ANSI y BioApi Consortium, que presenta una interfaz de programación de aplicación que garantiza que los productos y sistemas que cumplen este estándar son interoperables entre sí. - Estándar NISTIR 6529 También conocido como CBEFF (Common Biometric Exchange File Format) es un estándar creado en 1999 por NIST y Biometrics Consortium que propone un formato estandarizado (estructura lógica de archivos de datos) para el intercambio de información biométrica. _________________________________________________________________________________ 18 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 3. Reconocimiento de pisadas La forma de andar es una característica diferente en cada persona. Aspectos como área de las pisadas, puntos de presión, velocidad de pisada, ángulo, etc., son circunstancias que varían de una persona a otra. En este proyecto se va a estudiar la posibilidad de emplear el reconocimiento de pisadas como método biométrico para el reconocimiento e identificación de personas. Esta tecnología se encuentra en fase de desarrollo e investigación. A continuación se detallan los estudios más importantes que se han hecho en este campo y sobre los que se basa este proyecto. 3.1 The ORL Active Floor (1997) Se trata de los primeros estudios realizados relacionados con el campo de reconocimiento de pisadas. La tecnología empleada consistía en un panel en el que se situaban sensores de presión en la esquina de cada “baldosa”. El sistema daba una medición correspondiente a cada baldosa. Cada una era la suma de la contribución de los 4 sensores de presión situados en cada una de las esquinas. Para llevar a cabo los experimentos se empleaba un panel cuadrado de 50 cm de lado y se escogió una tasa de muestreo de 500 Hz. Figura 3.1.1 Instrumental del experimento Se llevó a cabo una base de datos compuesta por 300 pisadas pertenecientes a 15 sujetos diferentes. Como algoritmo principal de identificación se emplearon los métodos de Markov (Hiden Markov Model). Con estos experimentos se llegó a alcanzar una tasa de reconocimiento del 91.33% Figura 3.1.2 Panel de baldosas 3.2 The Smart Floor (2000) Este experimento se llevó a cabo en el Instituto Tecnológico de Georgia. El sistema fue diseñado con el objeto de estudiar las posibilidades de identificar sujetos a partir de los perfiles de fuerza de las pisadas de cada uno de ellos. El estudio logró obtener una tasa de reconocimiento en torno al 93% y permitió demostrar que el efecto de los zapatos es despreciable en los sistemas de reconocimiento de personas a través de las pisadas. _________________________________________________________________________________ 19 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Para llevar a cabo el experimento se dispuso de una baldosa de acero con un sensor de presión en cada esquina y un sistema de adquisición de datos. El objetivo básico fue el estudio del perfil de la GRF (Ground Reaction Force) de cada uno de los individuos. Entre las características estudiadas y contrastadas en los diferentes perfiles obtenidos se encontraban el valor medio, desviación estándar, longitud, coordenadas de máxima presión, etc.… del perfil. Figura 3.2.1 Baldosa y sensor de presión del experimento Se tomaron muestras de 15 individuos diferentes, 12 hombres y 3 mujeres, con diferentes tipos de zapatos. A la hora de llevar a cabo la identificación y comparación de los datos se empleó la distancia euclídea de los vectores de datos, comparando la pisada “desconocida” con las ya almacenadas en la base de datos del sistema. En total se tomaron 1680 muestras diferentes; los resultados obtenidos demostraron que el efecto producido por el tipo de zapato empleado en los experimentos era despreciable a la hora de calcular la tasa de efectividad del sistema, lo cual es un resultado extremadamente importante a la hora de la investigación de la viabilidad de uno de estos sistemas. Ymax1 Area Ymax2 Ymin mean standard deviation Xmax1 Xmin Xmax2 length Figura 3.2.1 Perfil típico de la GRF en una pisada y sus puntos más importantes _________________________________________________________________________________ 20 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 3.3 The UBi Floor, Korea (2003) El sistema propuesto consistía en una “alfombra” compuesta de sensores de presión ON/OFF conectados a un ordenador y un sistema de procesamiento de datos. Estos sensores transmitían la posición del usuario continuamente al ordenador. Se desarrollaron dos paquetes de software, uno para extraer los patrones de datos de los usuarios del sistema y el segundo para llevar a cabo la identificación mediante la comparación de los bloques de datos. El sistema consistía, en total, de 144 sensores ON/OFF y una placa que transmitía el estado de los sensores a un ordenador. La medida de cada uno de los sensores era de 14cm por 2.5cm. Se dispusieron cuatro sensores en cada una de las celdas (30cm por 30cm) para cubrir un área correspondiente al tamaño estándar del pie de una persona. El sistema se agrupó en un array de 12 por 3 celdas, cubriendo un área total de 3m por 1m. Figura 3.3.1 Sistema UBi floor A la hora de llevar a cabo el proceso de identificación, debido a que solamente se usaron sensores ON/OFF, el sistema no utilizaba la presión sobre la superficie, sino la posición relativa de los diferentes pasos al andar. En el proceso de extracción de características, se emplearon fundamentalmente cuatro características diferentes: El sensor activo más adelantado, el sensor activo más atrasado, el número de sensores activados en cada momento y el tipo de pisada (posición relativa entre las pisadas). Tras cada proceso de recolección de datos, estas cuatro características suponían la entrada al sistema de clasificación y comparación empleado. Figura 3.3.2 Componentes del sistema a) Sensor on/off b)Tamaño de celda c)disposición de las celdas Para la realización del estudio se contó con una base de datos en la que participaron 10 personas diferentes. Se tomaron 50 muestras diferentes para cada persona. El sistema demostró ser capaz de alcanzar una tasa efectiva de reconocimiento del 92%. _________________________________________________________________________________ 21 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 3.4 The EMFi floor, Finlandia (2004) El EMFi (ElectroMecanical film) es un material eléctrico flexible, fiable y de bajo coste que consiste en una película de polipropileno orientada biaxialmente y cubierta por electrodos de metal. En el proceso de creación del material, la estructura interna de polipropileno hace posible la capacidad de mantener carga almacenada en la película. Una fuerza externa aplicada sobre el material provoca un cambio en el espesor de la película, lo cual se traduce en un cambio en la carga almacenada en las capas conductoras del material. Se utilizó, en laboratorio, un sistema que permitía cubrir un área de unos 100 metros cuadrados. Para la creación de la base de datos se tomaron 40 muestras de 11 personas diferentes. Para el análisis y comparación de los datos se utilizaron diferentes métodos combinados entre sí; principalmente los conocidos como HMM (Hidden Harkov Models), LVQ Learning Vector Quantisation) y sus variantes, (Reject optional LVQ y Distinction Sensitive LVQ). Figura 3.4.1 El sistema puede disponerse en un laboratorio bajo el suelo Se realizaron numerosas pruebas y experimentos con este sistema, llegándose a una tasa máxima de reconocimiento del 89%. Figura 3.4.1 Sección de material EMFi _________________________________________________________________________________ 22 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 4. Sistema empleado en el proyecto 4.1 Introducción al sistema del laboratorio Este proyecto ha sido realizado en el departamento de procesado de imagen y sonido en la Universidad de Swansea (Reino Unido). El trabajo se ha realizado en el laboratorio de biometría, en el cual se encuentra el instrumental que se ha empleado para el desarrollo del proyecto. La base de datos con la que se cuenta en el laboratorio no es sólo de pisadas, sino que también contiene voz e imágenes para la identificación de los individuos. El sistema, en funcionamiento las 24 horas, consiste en un panel de 88 sensores de presión conectado a un ordenador, con un software específico para la captura de datos y su tratamiento. El usuario, en cada muestra, debe pisar sobre el panel, situado bajo el suelo, y pronunciar un número de cuatro dígitos al lado de un micrófono con webcam situado también en el laboratorio. Esto permite organizar e identificar a los usuarios dentro de una base de datos formada por pisadas, voz y vídeo. BASE DE DATOS VOZ PISADAS VÍDEO Figura 4.1.1 Esquema básico del sistema empleado en laboratorio para la captura de datos _________________________________________________________________________________ 23 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 4.2 El panel de sensores El panel que se ha utilizado en el proyecto consiste en una placa rectangular de 30.48 x 45.72 cm2. Sobre él se han dispuesto 88 sensores circulares de presión tal y cómo se indica en la figura. Figura 4.2.1 Esquema del panel de sensores de presión Cada sensor proporciona la variación o diferencial de la presión en cada momento. Con estas señales podemos extraer información acerca de las dinámicas de las pisadas. Sin embargo, este proyecto se va a centrar en la obtención de características geométricas de algunos de los puntos más importantes que se van a estudiar a partir del procesado de las señales enviadas por el panel de sensores. Estos aspectos serán, principalmente: - Curvas de presión en un cierto instante determinado. - GRF (Ground Reaction Force) correspondiente a cada proceso de pisada. - Gráficas de presión para los diferentes sensores. - Energía acumulada en la superficie del panel tras la pisada. Entre las características geométricas más importantes que se van a estudiar en este proyecto se encuentran: - Área de la pisada - Forma de la pisada - Picos de presión. - Ángulo de pisada. - Velocidad de la pisada. _________________________________________________________________________________ 24 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5. Trabajo con datos simulados 5.1 Introducción La primera parte de este proyecto se ha desarrollado a partir de datos simulados, proporcionados por el departamento de ingeniería de la Universidad de Swansea. Dichos datos vienen dados en el mismo formato que posteriormente se utilizará con las muestras reales dadas por el panel de sensores. El objetivo de esta primera parte ha sido programar los scripts y herramientas necesarias para el procesado de los datos, obtención de gráficas, curvas, superficies, imágenes, etc., para su posterior aplicación a las muestras reales obtenidas con el panel de sensores real, una vez puesto en funcionamiento. Todos los programas han sido inicialmente probados con los datos simulados para comprobar su correcto funcionamiento. 5.2 Estructura de los datos A la hora de generar los datos simulados se ha supuesto una duración estándar de la pisada de 0.5 segundos. Teniendo en cuenta la frecuencia de muestreo del sistema empleado, 1000 Hz, cada bloque de datos correspondiente a una pisada cuenta, por tanto, con 500 muestras. Considerando que el panel está formado por 88 sensores, los datos se estructuran en una matriz, tal como se indica en la figura: La matriz consta de 500 filas y 88 columnas. Cada columna contiene todos los datos pertenecientes al sensor correspondientes. Cada fila contiene cada uno de los 500 datos correspondientes a las 500 muestras de las que consta cada pisada, esto es, 0.5 segundos. Se ha dispuesto de 240 sets de datos simulados (240 pisadas simuladas) almacenadas en archivos de la forma step_data_n, con n el número de la pisada. Figua 5.2.1 Estructura de los datos simulados _________________________________________________________________________________ 25 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.3 Modelado aproximado del panel de sensores 5.3.1 Introducción El desarrollo de este proyecto se ha llevado a cabo bajo entorno MATLAB® en todo momento. El primer paso para comenzar a procesar los datos y obtener resultados ha sido el desarrollar un método que permitiera trabajar con los datos en Matlab, un método que ofreciera comodidad y claridad a la hora de trabajar con los datos. Para ello se han llevado a cabo dos procesos de modelado diferentes del panel de sensores, uno aproximado, que permitiera obtener algunos resultados con rapidez, sin necesidad de un gran coste computacional, y otro, real, que permitiera obtener imágenes reales del panel para obtener las características geométricas necesarias para el estudio. Se ha demostrado, a lo largo del desarrollo de este trabajo, que el modelado aproximado del panel es más que suficiente para la obtención de muchos de los resultados que se han venido utilizando. En otros casos ha sido necesario recurrir a un modelo real del panel. En este apartado se explica el proceso de modelado aproximado del panel, así como los resultados obtenidos a partir del uso del modelo matemático empleado; gráficas, curvas, etc. 5.3.2 Modelado aproximado El panel cuenta con 88 sensores de presión distribuidos como ya se ha indicado previamente. A la hora de modelar el panel se ha llevado a cabo un proceso de mapeo de la información en una matriz rectangular. Para tener en cuenta la distribución de los sensores a lo largo del panel, y la existencia de una región del panel carente de sensores, en la parte inferior derecha (usada originalmente en el diseño para la inclusión de conectores y un filtro); se han incluido ceros o espacios en blanco en la matriz, espacios que no se van a usar pues no existen sensores en dichas posiciones. Por tanto, cada matriz obtenida tras este proceso de mapeo contiene los datos correspondientes a la presión diferencial que están proporcionando todos los sensores del panel en un instante determinado del tiempo; es decir, la matriz representa de algún modo la captura de todos los datos proporcionados en un instante por el panel. Así, todo el trabajo realizado se va a basar en el uso de matrices y su procesado a lo largo del tiempo. En resumen, el proceso de modelado se realiza de la siguiente manera: 1. Se leen los datos del fichero que contiene todos los datos correspondientes a todos los sensores a lo largo de las 500 muestras (matriz de 500x88). 2. Se selecciona el instante de tiempo en el cual se desea mapear los datos proporcionados por el panel. 3. Se transfieren dichos datos a la matriz que se emplea para la obtención de la información. _________________________________________________________________________________ 26 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ La no existencia de sensores en estos puntos se modelan con “ceros” en la matriz del modelo. Por motivos de diseño, no se pudieron incluir sensores en esta zona. También se han modelado como ceros en la matriz. Figura 5.3.2.1 Esquema del modelado aproximado del panel de sensores _________________________________________________________________________________ 27 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ El resultado que se obtiene de este proceso es una matriz de 14 filas por 13 columnas que contienen los datos de presión diferencial dadas por los sensores en un instante determinado. 14 columnas 13 filas Figura 5.3.2.2 Matriz de modelado aproximado del panel Los números indicados en la figura hacen referencia al número de sensor cuya información se guarda en esa celda. Las celdas en blanco contienen ceros en todo momento y su valor no se altera en ningún momento; estos ceros sirven para mantener una relación de aspecto aproximada a la hora de generar curvas tridimensionales de presión y energía sobre la superficie del panel. En realidad, el primer elemento de una matriz siempre es el que se encuentra en la esquina superior izquierda de la misma, por lo que, a la hora de generar superficies y curvas de presión, para obtener una superficie orientada de forma correcta con respecto al panel, debemos invertir la matriz anterior en torno a la coordenada Y. Por lo que, finalmente, la matriz utilizada para el procesado en Matlab es la indicada en la figura: X Y Figura 5.3.2.3 Matriz utilizada para el procesamiento en Matlab _________________________________________________________________________________ 28 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4 Análisis de los datos simulados 5.4.1 Introducción A continuación, se presentan los resultados obtenidos a partir del trabajo con los datos simulados proporcionados por el personal del departamento de investigación de la Universidad de Swansea. En principio, se van a detallar los procedimientos llevados a cabo utilizando el modelo aproximado del panel presentado en el apartado anterior. Primero se van a estudiar los resultados correspondientes al análisis de los sensores de forma independiente, para después proceder al estudio de la información obtenida a partir del procesado de los datos de todos los sensores, teniéndolo en cuenta como un sistema completo. Para el desarrollo y obtención de todos los resultados presentados se han realizado programas en Matlab, cuyos códigos y detalles de presentan en el apéndice, al final de esta memoria. 5.4.2 Análisis de los sensores de forma independiente El primer paso ha sido comenzar a analizar los sensores de forma independiente; lo primero es obtener la forma de onda proporcionada por uno de los sensores (que esté activo durante algún instante en la pisada). Podemos tomar como ejemplo la pisada simulada número 4, cuyo mapa de actividad de sensores se indica en la figura: Figura 5.4.2.1 Mapa de actividad de sensores para el archivo step_data_4 _________________________________________________________________________________ 29 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Mediante la función plotDifferential podemos visualizar la forma de onda correspondiente a cualquier sensor. Tan sólo hemos de especificar el archivo correspondiente y el número de sensor cuya actividad, con respecto al tiempo, queremos visualizar en pantalla. Por ejemplo, podemos analizar la forma de onda proporcionada por los sensores número 37, 51 y 66: Figura 5.4.2.2 Gráfica de presión diferencial para el sensor número 37 (step_data_4) Las formas de onda proporcionadas muestran la actividad de los sensores a lo largo del proceso de pisada, con respecto al tiempo (500 samples). La presión proporcionada es relativa y, por tanto, no corresponden a ninguna unidad determinada. Por ello, en resultados posteriores, se han normalizado los resultados obtenidos, para obtener relaciones de interés entre las magnitudes representadas. Las gráficas muestran un pico inicial, que corresponde al intervalo de tiempo en el que el sensor es excitado; posteriormente se mantiene una forma de onda relativamente estable, que indica el tiempo en el cual, por el proceso de pisada, el sensor se mantiene bajo la presión del pie; finalmente el pico negativo indica el levantamiento del pie del sensor (disminución rápida de presión), como resultado del final del proceso de pisada. _________________________________________________________________________________ 30 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.2.3 Gráfica de presión diferencial para el sensor número 51 (step_data_4) Figura 5.4.2.4 Gráfica de presión diferencial para el sensor número 66 (step_data_4) _________________________________________________________________________________ 31 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Como se ha dicho, los sensores proporcionan el diferencial de presión. La integración a lo largo del tiempo de la señal proporcionada por los sensores nos conduce a un resultado bastante interesante; la fuerza de reacción del suelo o Ground Reaction Force (GRF), concepto que se va a introducir en el siguiente apartado. A grandes rasgos, no es sino la presión instantánea ejercida sobre la superficie sobre la que se ejerce la fuerza, en este caso, el suelo o panel sobre el que se pisa. Se puede, por tanto, obtener la GRF correspondiente a los sensores del ejemplo anterior, sin más que integrar las formas de onda obtenidas, con respecto al tiempo, entre los instantes inicial y final, esto es, entre t0=0 y t1=500. La función plotSensor toma como parámetros el nombre del fichero a analizar y el sensor cuya GRF se pretende calcular y visualizar. El resultado se da en forma de vector, el cual se puede visualizar en forma de onda o ser utilizado para cálculos posteriores. A continuación se muestran las gráficas de las GRF correspondientes a los sensores y fichero utilizados en los tres ejemplos anteriores. Los valores se han normalizado para facilitar los cálculos y la interpretación de los resultados. El pie presiona el sensor El pie se levanta del sensor Figura 5.4.2.5 GRF para el sensor 37 (step_data_4) _________________________________________________________________________________ 32 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.2.6 GRF para el sensor 51 (step_data_4) Figura 5.4.2.7 GRF para el sensor 66 (step_data_4) _________________________________________________________________________________ 33 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.3 Análisis del panel como sistema El análisis de las señales proporcionadas por los sensores de forma independiente es interesante desde el punto de vista teórico, pero su análisis aislado no conduce a resultados de interés, puesto que al pisar sobre el panel se activan varios sensores al mismo tiempo, produciendo unas salidas cuyas características son sólo analizables si consideramos el panel como un sistema en su totalidad. De esta forma, vamos a considerar el panel como una caja negra cuyas entradas son ciertas señales, en este caso las fuerzas de presión que actúan sobre la superficie de los diferentes sensores, y unas salidas, que son las señales que se van a analizar y procesar. Presión Salida PANEL PROCESADO RESULTADOS Ground Reaction Force Presión Energía En los siguientes apartados se van a presentar los resultados obtenidos analizando el panel de esta manera. Primero se va a realizar una introducción teórica al concepto de Ground Reaction Force, para mostrar su aplicación al panel en concreto que estamos analizando. Posteriormente se obtendrán curvas de presión y energía y se procesarán estas imágenes para la extracción de características. _________________________________________________________________________________ 34 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.4 Ground Reaction Force De acuerdo a la Ley de Gravitación de Newton, cualesquiera dos objetos con cierta masa se atraen el uno al otro con una fuerza que es proporcional al producto de sus masas e inversamente proporcional al cuadrado de la distancia entre los mismos. Esta afirmación es también válida para la fuerza gravitatoria entre la tierra y cualquier objeto sobre ella. La fuerza gravitatoria ejercida por la tierra sobre cualquier objeto se conoce como gravedad o, de otra forma, como el peso del objeto. Puesto que existe contacto con el suelo debido a la fuerza de gravedad, hay siempre un proceso de interacción entre nuestros cuerpos y el suelo sobre el que pisamos. De acuerdo con la Ley de Reacción de Newton, para cualquier acción, hay una fuerza de reacción opuesta de igual magnitud a la fuerza inicial ejercida. En otras palabras, la fuerza ejercida por nuestros pies sobre el suelo viene siempre acompañada por una fuerza de reacción del mismo de igual magnitud a la fuerza de pisada. Esta fuerza de reacción del suelo se conoce como Ground Reaction Force (GRF). Esta fuerza es un factor externo importante que actúa de forma natural cuando el cuerpo humano está en movimiento. Usamos esta fuerza de forma instintiva para iniciar y controlar todos nuestros movimientos. Vamos a considerar la GRF como un vector vertical en dirección opuesta al suelo, con una sola componente (eje Z), con lo cual podremos representarla como una forma de onda con respecto al tiempo. GRF El vector de la GRF “pasa” a través del pie en dirección vertical y produce movimiento debido al contacto de cada parte del pie que impacta contra el suelo en el movimiento. La GRF no es sino la reflexión de todas las fuerzas actuando sobre el suelo durante el movimiento y, por tanto, representa el total de la suma neta de todas las fuerzas musculares y gravitatorias actuando en un momento determinado del movimiento de nuestro cuerpo. _________________________________________________________________________________ 35 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.4.1 a) Coordenadas X Y Z b),c) Fuerzas de reacción del suelo sobre el pie d) GRF como suma de todas las fuerzas de reacción Figura 5.4.4.2 Perfil típico de la GRF 2 _________________________________________________________________________________ 36 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ La figura 5.4.4.2 muestra un perfil típico de la GRF para una pisada de una persona con peso y características estándar. Se aprecian dos picos en la gráfica. El primero (P1) corresponde al pico de impacto y el segundo (P2) se conoce como pico de impulso. El pico de impacto está asociado al momento de impacto del pie con el suelo en la primera fase de la pisada, o fase de contacto de pie con el suelo. El pico de propulsión está asociado con el impulso del cuerpo hacia delante al final de la pisada. Es uno de los parámetros más usadas por los ingenieros a la hora del diseño de calzados que reduzcan los picos de impacto y mantengan las características relacionadas con los picos de impulso. La GRF máxima suele variar entre 1 y 1.5 veces el peso del cuerpo. Algunos factores que afectan a estas magnitudes pueden ser el estilo al andar, velocidad, calzado, superficie e inclinación del suelo…, etc. T1 y T2 hacen referencia a los momentos en los que se producen los picos de impacto e impulso, y también son factores importantes a la hora del estudio de la forma de andar. Figura 5.4.4.3 Dinámicas presentes al andar _________________________________________________________________________________ 37 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.5 Obtención de la GRF En este apartado se va a detallar cómo se ha obtenido las curvas referentes a la Ground Reaction Force a partir de los datos simulados. Se aplicarán los mismos procedimientos a los datos reales obtenidos posteriormente. Se usarán diferentes modelos de pisadas sobre el panel, para ilustrar los diferentes resultados que se van a obtener. - Procedimiento: Cada sensor presenta una curva diferente de GRF, debido a que cada uno se encuentra excitado por una parte diferente del pie y, por tanto, se verá afectado por fuerzas diferentes. Como se ha dicho, la GRF es la suma total de las fuerzas de reacción que actúan sobre el pie en la pisada; por tanto, la GRF que deseamos calcular no es sino la suma de todas las GRF de cada uno de los sensores excitados durante el proceso de la pisada. GRF0 GRF1 GRF2 GRF87 En resumen, el procedimiento seguido para calcular la GRF de una pisada es el siguiente: 1. Se extraen las señales proporcionadas por cada uno de los sensores excitados tras la pisada. 2. Se integran cada una de estas señales con respecto al tiempo, para obtener la presión instantánea o GRF de cada uno de los sensores. 3. La suma de todas las GRF de cada uno de los sensores da como resultado la curva que estamos buscando. La función showForce toma como parámetros el nombre del archivo de datos que queremos procesar y, mediante el proceso indicado anteriormente, calcula un vector que contiene los datos correspondientes a las 500 muestras de la GRF correspondientes a la pisada. La función visualiza la curva en pantalla. A continuación se presentan los mapas de actividad de sensores de diferentes modelos de pisadas y sus curvas de GRF calculadas. _________________________________________________________________________________ 38 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.5.1 Mapa de actividad de sensores para el archivo step_data_1 Pico de impacto Pico de impulso Figura 5.4.5.2 Ground Reaction Force para la pisada 1 _________________________________________________________________________________ 39 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.5.3 Mapa de actividad de sensores para el archivo step_data_34 Figura 5.4.5.4 Ground Reaction Force para la pisada 34 _________________________________________________________________________________ 40 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.5.5 Mapa de actividad de sensores para el archivo step_data_200 Figura 5.4.5.6 Ground Reaction Force para la pisada 200 _________________________________________________________________________________ 41 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.5.7 Mapa de actividad de sensores para el archivo step_data_237 asdf Figura 5.4.5.8 GRF para la pisada 237 _________________________________________________________________________________ 42 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ - Estudio de la GRF: Las curvas presentadas en los ejemplos anteriores representan uno de los parámetros más importantes a tener en cuenta a la hora de obtener resultados que nos permitan obtener datos que sean de utilidad para el desarrollo de un sistema que sea capaz de identificar sujetos automáticamente. Sin embargo, estas curvas por sí solas no pueden ser utilizadas por ningún sistema y requieren, por tanto, de un proceso de interpretación y extracción de características para que sean realmente útiles. Los sistemas de identificación biométricos se valen, por norma generalmente, de lo que se conoce por clasificador, que es normalmente un software que procesa los patrones obtenidos a partir de los diferentes datos biométricos para calcular las similitudes con otros patrones presentes en la base de datos. Esto requiere, por tanto, la extracción de datos o características a partir de las curvas de GRF (y otros parámetros) que puedan ser usadas por estos clasificadores. En el caso de las curvas de GRF, las características que se van a extraer fundamentalmente a partir de las curvas van a ser: - Relación entre pico de impacto y pico de impulso. Tiempos y relación de tiempos para los picos de impacto e impulso. Valor medio de la señal. Desviación estándar de la señal. Relación entre valor mínimo y pico de impacto. Relación entre valor mínimo y pico de impulso. Área bajo la curva de la señal. Estas características serán diferentes según la pisada (que variará según la persona que pise) y serán de gran utilidad para el proceso de desarrollo del sistema. Se ha optado por normalizar las señales mediante el método del máximo valor, para minimizar la influencia que pueda tener en los resultados las variaciones que pueda sufrir el rendimiento de los componentes utilizados para la fabricación del panel de sensores a lo largo del tiempo. Se estudiarán, para este y el resto de los parámetros hallados, las relaciones principales entre las magnitudes más importantes, más que los valores absolutos obtenidos. A continuación se muestra una de las curvas de la GRF obtenidas en el laboratorio y sus principales puntos de interés señalados en la misma. El proceso de extracción de estas características se realizará igualmente para los datos reales obtenidos posteriormente provenientes del panel una vez instalado. _________________________________________________________________________________ 43 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Relación entre picos Área Razón Min/Max Valor medio Desviación estándar Tiempo entre picos Figura 5.4.5.9 Gráfica de GRF y características a extraer Todas estas características serán calculadas para las muestras reales obtenidas en el laboratorio. Las características extraídas para una pisada son almacenadas en un vector y se pasa como parámetro al clasificador empleado, el cual se encarga de decidir cuáles son las características más importantes, eliminando aquellas que presentan redundancia de información con respecto a otras (no son linealmente independientes). El cálculo del valor medio y desviación estándar se hace directamente empleando las funciones incluidas en Matlab; mean y std, a partir del vector de la GRF calculado. La relación entre picos es simple una operación de comparación entre los máximos y mínimos, al igual que el cálculo de la relación de tiempos, mientras que el área es simplemente una integral de la curva obtenida. En nuestro caso, al trabajar con valores discretos se traduce en la suma de todos los valores del vector de la GRF (integral discreta). _________________________________________________________________________________ 44 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.6 Obtención de superficies de presión y energía A la hora de obtener algoritmos y procedimientos que den una tasa de reconocimiento efectivo lo más alta posible, conviene contar con el mayor número de características identificativas que puedan aumentar la información disponible y, mejorar así, nuestro sistema. En este proyecto se ha pretendido llegar más allá del mero estudio de las curvas de GRF y, por tanto, se han desarrollado algoritmos para la obtención y procesado de curvas tridimensionales de presión y energía resultantes tras el proceso de pisada. En primer lugar, se van a detallar los pasos llevados a cabo para obtener dichas curvas utilizando el modelo aproximado del panel descrito apartados anteriores. Para algunos de los datos que nos interesan, este modelo bastará a la hora del estudio de estas curvas. Cuando se proceda a estudiar en detalle características geométricas más detalladas de estas curvas, se empleará el modelo real, el cual se explica en apartados posteriores. Y X En ambos casos, los fundamentos del procedimiento consisten en la integración de las señales proporcionadas por los sensores y su integración en el tiempo, para después ser representadas a lo largo de una superficie, cuyas direcciones X e Y van a ser las direcciones X e Y del panel de sensores. El eje Z representará la magnitud de la superficie, normalizada a 1, por los motivos que ya se han explicado anteriormente. _________________________________________________________________________________ 45 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Y X X Y Figura 5.4.6.1 Origen de coordenadas en el panel y coordenadas en la matriz usada en Matlab A la hora de representar las curvas calculadas se va a seguir el sistema de coordenadas indicado en la figura. El trabajar con la matriz indicada va a facilitar mucho las cosas a la hora de representar las curvas, ya que, mediante el comando surf de Matlab, podemos representar directamente una matriz como una superficie tridimensional con origen de coordenadas el elemento A11. Dicho comando genera una superficie en la que la altura y color en el eje Z son proporcionales a la intensidad del valor de la matriz; Matlab genera superficies entre cada cuatro puntos o esquinas en la matriz, por lo que, lo que vamos a obtener en los siguientes apartados van a ser superficies en las que podremos distinguir secciones con diferente presión o energía, según el caso. _________________________________________________________________________________ 46 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.7 Curvas de presión – modelo aproximado Para la obtención de las curvas de presión en el modelo aproximado se ha diseñado la función showForce3D. Esta función representa la superficie de presión instantánea de una pisada en cierto instante del tiempo. Toma como parámetros el nombre del archivo de datos a procesar y el instante de tiempo en el cual se representa la superficie de presión. La función calcula la integral de las señales proporcionadas por los sensores hasta el instante especificado y, tras normalizar la matriz con los resultados de dicha integración, almacena el resultado en una matriz del mismo tamaño que la original y la representa en una superficie. ∫(·) surf A continuación se muestran algunos ejemplos de estas superficies obtenidas mediante el modelo aproximado. Se ha empleado también un filtro de suavizado para ayudar a obtener superficies menos abruptas. _________________________________________________________________________________ 47 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.7.1 Mapa de actividad de sensores para el archivo step_data_27 Figura 5.4.7.2 Curva de presión instantánea para la muestra 250 – pisada 27 _________________________________________________________________________________ 48 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.7.3 Curva de presión instantánea para la muestra 250 – pisada 27 – vista superior Figura 5.4.7.4 Curva de presión instantánea para la muestra 250 – pisada 27 – Con filtro de suavizado gaussiano _________________________________________________________________________________ 49 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.4.8 Curvas de energía – modelo aproximado El proceso de obtención de la superficie de energía acumulada para una pisada es un proceso totalmente análogo al seguido en el apartado anterior. La principal diferencia estriba en que, en el caso anterior, existe una curva de presión diferente para cada instante del tiempo mientras que en este existe sólo una curva única de energía para cada pisada. El proceso de cálculo de la matriz de energía de la pisada consiste en el cálculo iterado de la energía acumulada para cada uno de los sensores. Estas energías, una vez calculadas, se vuelcan en la matriz de energía final, de la que se visualiza la superficie en Matlab. ∫(·) ∫(·) SENSOR GRF ENERGIA El proceso seguido se indica en la figura: 1. Se integran las señales procedentes de cada sensor, para calcular la GRF. 2. Una vez obtenida la GRF, el área bajo la curva es el valor de la energía asociada a ese sensor. Para calcular dicho área se vuelve a integrar la curva obtenida en el paso anterior. 3. El proceso se repite iteradamente para cada uno de los sensores, y los valores se vuelcan a una matriz del mismo tamaño que la original. 4. Se representa la curva mediante el comando surf. Las curvas de presión asociadas a cada una de las pisadas pueden constituir un elemento importante para el estudio, ya que la pisada de cada persona acumulará la energía de una forma diferente; estará distribuida de manera distinta sobre la superficie del panel. Así pues, la curva de energía puede constituir una “firma” o característica única de la pisada, y puede utilizarse para ser comparada con otras curvas de energía, a fin de determinar el grado de similitud con el objetivo de llevar a cabo procesos de identificación o verificación. A continuación se presentan algunos ejemplos de estas curvas de energía calculadas. Esto se realiza por medio de la función showEnergy, que toma como parámetro el nombre del fichero a analizar. _________________________________________________________________________________ 50 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.8.1 Mapa de actividad de sensores para la pisada 118 Figura 5.4.8.2 Superficie de energía para la pisada 118 _________________________________________________________________________________ 51 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.8.3 Superficie de energía para la pisada 118 – vista superior Figura 5.4.8.4 Superficie de energía para la pisada 118 – suavizado con filtro gaussiano e invertida _________________________________________________________________________________ 52 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.8.5 Mapa de sensores de actividad para la pisada 213 Figura 5.4.8.6 Superficie de energía para la pisada 213 _________________________________________________________________________________ 53 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.4.8.7 Superficie de presión para la pisada 213 – vista superior Figura 5.4.8.8 Superficie de presión para la pisada 213 – filtro gaussiano e invertida _________________________________________________________________________________ 54 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ - Estudio de las curvas de presión y energía (modelo aproximado): La representación de las superficies de presión y energía obtenidas en los apartados anteriores es de gran utilidad a la hora de identificar aquellas características que pueden ser de interés para su uso como datos importantes en el proceso de identificación o verificación de la persona. Las superficies de presión instantánea anteriores pueden ser útiles para visualizar puntos de máxima o mínima presión y los instantes en los que tienen lugar dichos máximos/mínimos. También son de utilidad para monitorizar la actividad de los sensores en ciertos instantes de tiempo. Las superficies de energía acumulada son un elemento que pueden constituir una herramienta útil para la comparación entre la forma de andar de una persona y el resto de los patrones almacenados en el sistema. Estas superficies nos pueden indicar, además, cuales son los puntos o picos de presión al pisar, área de la pisada y otras características geométricas que pueden ser deterministas según la persona. Sin embargo, las superficies obtenidas en los apartados anteriores se encuentran limitadas por el modelo que se ha utilizado. En él, cada sensor se ha considerado como una celda en una matriz y, por consiguiente, las superficies representadas a partir del modelo son de una resolución insuficiente para la extracción de características geométricas que puedan ser de verdadera utilidad. De todas formas, estas representaciones requieren un bajo tiempo de computación y pueden arrojar algunos datos de importancia. Pero su principal utilidad va a ser el hecho de que van a constituir el paso a previo para la obtención del modelo a escala (o modelo real) del panel, del que vamos a poder obtener características geométricas fiables. En los siguientes puntos se van a detallar los pasos y algoritmos seguidos para la obtención del modelo real del panel. Posteriormente se mostrarán los resultados que se obtienen al aplicar los mismos procedimientos que se han llevado a cabo para obtener las superficies de presión y energía descritas en este apartado. Finalmente se describirán las características más importantes que se pueden obtener de estas curvas y los procesos llevados a cabo para ello. _________________________________________________________________________________ 55 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ El filtro empleado para suavizar las imágenes no es más que un típico filtro paso de baja de 3x3: 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 _________________________________________________________________________________ 56 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5 Modelado a escala del panel 5.5.1 Introducción En el desarrollo del trabajo realizado hasta ahora se ha venido utilizando un modelo matemático del dispositivo que se ha empleado en laboratorio. Este modelo matemático es lo que nos permite obtener resultados numéricos a partir del dispositivo meramente electrónico, y producir las correspondientes curvas y superficies después. Hay muchas maneras de modelar matemáticamente un sistema, dependiendo de los objetivos, requerimientos, tiempo de computación que se desea emplear, etc. El modelo que se ha venido utilizando hasta el momento es útil para aportar algunos datos pero insuficiente para el análisis de características geométricas, debido a la baja resolución que permite obtener. Esto es debido, fundamentalmente, a que se ha aproximado cada sensor, que tiene una forma circular con un cierto área de presión contenida en él, como un punto único en una matriz. Esto hace perder gran cantidad de información a la hora del análisis. El siguiente objetivo es la mejora del modelo obtenido en los apartados anteriores para lograr otro que proporcione unas superficies lo más exactas y fiables posible, dentro de los propios límites que el panel de sensores tiene. Básicamente, el concepto del modelo a escala del panel va a ser la obtención de una matriz, de tamaño considerablemente mayor a la que se ha venido empleando. En esta nueva matriz, cada celda va a ser un píxel, es decir, lo que vamos a tener va a ser la matriz de una superficie tridimensional en la que cada celda va a contener la magnitud en el eje Z del valor de presión o energía (según el caso) en ese punto de la imagen. En nuestro nuevo modelo, cada mm2 del panel se va a considerar como un píxel dentro de la nueva matriz obtenida. Por tanto, la superficie obtenida va a ser una representación a escala real (dentro de los límites propios del sistema) de la presión o energía en el panel de sensores. Se ha optado por escoger una resolución de 1 mm2, ya que ofrece resultados de alta resolución y tiempo de computación aceptable. El proceso, que se detalla en los apartados siguientes, consta básicamente de cuatros pasos: 1. Los valores de presión o energía son obtenidos de la matriz del modelo aproximado, esto es, el que se ha venido utilizando hasta el momento; la matriz de 14x13. 2. Mediante una función implementada, se mapean las coordenadas correspondientes al punto central de cada sensor en la nueva matriz. 3. Se barre la nueva matriz, rellenando las áreas correspondientes a los sensores con los valores obtenidos de la matriz inicial. 4. Mediante un proceso de filtrado y convolución, se interpolan las áreas en blanco entre los sensores para obtener una imagen continua de la energía o presión. _________________________________________________________________________________ 57 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.2 Matriz del modelo a escala del panel Puesto que vamos a hacer una representación a escala de la presión sobre la superficie del panel necesitamos conocer aproximadamente las medidas y distancias más importantes en la placa de sensores. Las figuras muestran las medidas, contorno y distancias relevantes dentro del panel. A la hora de realizar el modelo a escala se han ignorado las distancias existentes entre el contorno de los sensores y los límites del panel, en dirección horizontal. Por tanto, las distancias relevantes en el modelado van a ser el diámetro de los sensores (de forma circular), y las distancias entre los centros de sensores en filas o columnas consecutivas, en dirección horizontal y vertical. Estas distancias mostradas en mm son los números enteros más próximos a las distancias reales; si bien el error cometido es bajo pues dichas distancias reales se acercan en gran medida a los valores enteros utilizados. Debemos utilizar números enteros ya que, al traducir distancias milimétricas en píxeles, sólo podemos utilizar un número entero de píxels (no podemos dividir un píxel en una unidad más pequeña). _________________________________________________________________________________ 58 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Al igual que en el caso del modelo aproximado emplearemos una matriz de tamaño fijo para el almacenamiento de todos los datos y la representación de las superficies. Para calcular el tamaño de la matriz no tenemos más que emplear las distancias mostradas en la figura anterior. Teniendo en cuenta que existen 13 columnas de sensores y que, como máximo, hay 7 sensores en cada columna, el tamaño necesario de la matriz final (en mm o píxels) en horizontal (DH) y vertical (DV) se calcula: DH=13·(27 mm) + 12·(7 mm) = 435 mm (píxels) DV=7·(27 mm) + 6·(11 mm) + 19 mm = 274 mm (píxels) Donde las distancias empleadas en este cálculo se derivan de las mostradas en la figura anterior, como se indica nuevamente: 7 mm 11 mm 19 mm Para hallar el resultado final se han utilizado las distancias mostradas en la figura. 11 mm es la distancia entre los contornos de los sensores siguiendo la línea que une sus centros en dirección vertical. 7 mm es la distancia entre los contornos de los sensores siguiente la línea que une sus centros en dirección horizontal. Por último, la distancia entre el contorno de un círculo y el límite del panel, en dirección vertical, es de 19 mm. _________________________________________________________________________________ 59 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.3 Obtención de valores y mapeado en la matriz final Antes de mapear los valores de presión o energía en la matriz final debemos obtener dichos resultados. Esto no es más que obtener los resultados de presión o energía y almacenarlos en la matriz del modelo aproximado descrito en los apartados anteriores. Partiremos de esta matriz para mapear los valores en la matriz del modelo a escala. En primer lugar, debemos tener en cuenta la posición de los sensores dentro del panel y, por tanto, determinar la posición que tendrán dentro de la matriz de píxeles. Para ello se ha implementado la función getCentroids, que calcula la coordenada del punto central correspondiente a cada uno de los sensores en la matriz de píxeles. Una vez hallados los centros de cada uno de los círculos, se procede a mapear las áreas correspondientes a los círculos con el valor de presión o energía correspondiente a cada sensor; el área de cada sensor contendrá, por tanto, un único valor. Figura 5.5.3.1 Proceso de mapeado de un sensor en la matriz de píxeles Mediante la función fillSensor se barre la matriz de píxeles mapeando las áreas correspondientes con los diferentes valores asignados a los sensores. Nótese que el diámetro de un área circular es de 27 píxeles, incluyendo el punto central, con lo que se tiene un radio de 13 píxeles, que al ser número entero facilita enormemente la implementación de las funciones. A continuación se presentan los resultados, gráficamente, de la aplicación de este modelo a los datos de los que se dispone con diversos ejemplos correspondientes a diferentes pisadas simuladas. _________________________________________________________________________________ 60 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.3.2 Mapa de actividad de sensores para el archivo step_data_12 Figura 5.5.3.3 Energía acumulada empleando el modelo a escala – pisada 12 _________________________________________________________________________________ 61 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.3.4 Mapa de actividad de sensores para el archivo step_data_65 Figura 5.5.3.5 Energía acumulada empleando el modelo a escala – pisada 65 _________________________________________________________________________________ 62 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.3.6 Mapa de actividad de sensores para el archivo step_data_168 Figura 5.5.3.7 Energía acumulada empleando el modelo a escala – pisada 168 _________________________________________________________________________________ 63 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.3.8 Mapa de actividad de sensores para el archivo step_data_225 Figura 5.5.3.9 Energía acumulada empleando el modelo a escala – pisada 225 _________________________________________________________________________________ 64 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.4 Interpolación de la matriz de alta resolución Los resultados anteriores proporcionan una imagen de alta resolución y a escala de la presión o energía a lo largo del panel, por secciones según los sensores excitados en el proceso. Sin embargo, las propias limitaciones físicas del panel de sensores nos impiden obtener una superficie continua, ya que para ello necesitaríamos un número infinito de sensores, infinitamente pequeños, y eso es imposible de obtener en la realidad. El siguiente objetivo es la obtención de una imagen continua, sin espacios en blanco, que nos permita calcular y extraer las características geométricas necesarias para el estudio. Debido a las limitaciones propias del panel, no disponemos de la información que debería estar en las zonas vacías de la matriz, las zonas que se encuentran entre los sensores activados durante el proceso de pisada. La presión de cada sensor está relacionada con la de los demás, debido a la propia naturaleza fisiológica del pie y la forma de pisar de cada persona. Por tanto, la información que debería encontrarse en las áreas en blanco entre los sensores está relacionada con los valores de presión que toman todos los sensores y se verá más afectada por aquellos que se encuentran más cerca de dicho área. En otras palabras, los espacios en blanco deben llenarse teniendo en cuenta la distribución estadística de los valores alrededor de cada píxel vacío que vaya a ser “coloreado”. Figura 5.5.4.1 Objetivo del proceso de interpolación Existen numerosos métodos para interpolar imágenes. Entre los más importantes caben destacar los métodos de interpolación bilineal (promedio de cada 4 píxeles adyacentes al que se desea interpolar), interpolación bicúibca (promedio de los 16 píxeles adyacentes), interpolación en escalera (similar a la interpolación bicúbica), interpolación S-Spline (que determina un píxel a partir de todos los píxeles presentes en la imagen), interpolación por métodos fractales, etc. De entre todas las posibles soluciones estudiadas, se ha optado por la utilización de un método de interpolación estadística por medio del uso de un filtro gaussiano de suavizado que permite, además, la reducción de ruido en la imagen. _________________________________________________________________________________ 65 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.5 Interpolación por filtro de suavizado gaussiano El término interpolación pertenece al subcampo matemático del análisis numérico y hace referencia a la construcción de nuevos puntos, partiendo del conocimiento de un conjunto dado de puntos discretos, en una gráfica, imagen, función, etc. En nuestro caso, vamos a utilizarla para generar nuevos puntos que no conocemos a partir de los datos de presión o energía que conocemos de los diferentes sensores. Esto nos permitirá obtener la imagen continua que estamos buscando. En el caso concreto que nos ocupa, tenemos que llevar a cabo un proceso de interpolación en 2D ya que, recordemos, estamos usando una matriz bidimensional aunque el resultado de representarla gráficamente sea una superficie en 3 dimensiones. Ya que nuestra matriz representa un conjunto de píxeles de una imagen de presión o energía. Podemos emplear, por tanto, alguna de las técnicas existentes para tratamiento y procesado de imágenes. Se va a realizar este proceso mediante la convolución de nuestra matriz original con un filtro de suavizado gaussiano. · Suavizado Suavizado es el proceso mediante el cual una serie de puntos, bien en una gráfica o imagen son promediados con los puntos que los rodean, o puntos vecinos. En nuestro caso nos estamos refiriendo al promediado de los píxeles de nuestra imagen con lo píxeles que los rodean. El suavizado tiene, por tanto, el efecto de difuminar las imágenes y suprimir los bordes. Podemos hablar del proceso de suavizado de una imagen como su filtrado paso de baja, ya que su efecto equivale a filtrar las altas frecuencias de la imagen. Para suavizar líneas se emplea la típica curva o campana de gauss, la cual se utiliza para el cálculo de los nuevos valores, punto a punto. En el caso de llevar a cabo un proceso de interpolación en dos dimensiones, la campana de gauss presentada en la figura adyacente se transforma en un cucurucho o cono, que toma forma de una superficie gaussiana tridemansional. El filtrado de una imagen con esa superficie gaussiana nos dará como resultado la imagen suavizada buscada. a) Figura 5.5.5.1 a) Campana de Gauss b) Cono de Gauss c)Aproximación discreta del cono de gauss b) c) _________________________________________________________________________________ 66 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ · El filtro gaussiano El filtro u operador de suavizado gaussiano se emplea, como se ha dicho, para difuminar o suavizar imágenes y eliminar ruido. Su uso se fundamenta en el concepto de una campana de Gauss tridimensional. La función de distribución gaussiana unidimensional (y con media cero) tiene la forma: En 2D, una función gaussiana isotrópica (con simetría circular) toma la forma: La idea del suavizado mediante filtrado gaussiano radica en el uso de esta función para distribuir los valores de los píxeles a lo largo de la imagen. Dado que nuestra imagen está compuesta por una matriz con un número discreto de píxeles necesitaremos generar una aproximación, también discreta, de esta superficie gaussiana. En teoría, una distribución gaussiana es distinta de cero en todos sus puntos, si bien en la práctica se considera nula más allá de 3σ, con lo cual es posible truncar en este punto nuestra función y generar la aproximación discreta del filtro. Una vez se ha calculado una aproximación discreta adecuada para este tipo de filtros, basta realizar una clásica operación de convolución entre la matriz que representa la imagen original y el filtro calculado para obtener la imagen suavizada que se pretendía lograr. En el caso de matrices, funciones o imágenes de gran tamaño, como el caso que nos ocupa (274x435 píxels) será necesario el cálculo de un filtro discreto empleando técnicas básicas y después hallar un factor de ampliación del filtro para hacerlo útil con la imagen. Una vez calculado el filtro necesario y redimensionado adecuadamente, bastará con realizar una operación de convolución con nuestra matriz para obtener una imagen continua de presión o energía, que es lo que pretendemos calcular. _________________________________________________________________________________ 67 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.6 Cálculo del filtro gaussiano discreto El filtro de suavizado gaussiano discreto que necesitamos puede ser calculado en Matlab. Lo única que necesitamos saber es cuál es la desviación típica del filtro adecuada, para obtener una imagen final adecuada. El tamaño estándar de un filtro discreto suele ser de 3x3, 4x4 o 5x5. En nuestro caso vamos a obtener inicialmente un filtro discreto de 5x5 y luego va a ser redimensionado para ajustarse al tamaño de nuestra matriz. Tras varias pruebas con diferentes filtros y diferentes valores para la desviación estándar se ha optado por tomar un filtro discreto de 5x5 y con desviación estándar σ=1.4. En términos de un operador que podamos emplear en Matlab, un filtro con estas características toma la forma: Podemos calcular un filtro de estas características en Matlab empleando el comando fspecial, sin más que especificar el tamaño y desviación estándar del filtro. Nótese que el filtro empleado posee simetría isotrópica, en todas direcciones, característica que cumplen las curvas de gauss descritas en los apartados anteriores. Una vez obtenido el filtro se ha redimensionado con un factor N=20 para ajustarlo al tamaño de nuestra imagen. A continuación se muestra la representación espacial de este filtro, una vez redimensionado adecuadamente. Figura 5.5.6.1 Representación espacial del filtro de suavizado empleado en la interpolación _________________________________________________________________________________ 68 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.7 Imágenes obtenidas en alta resolución Ahora que hemos obtenido una imagen continua en alta resolución podemos extraer algunas características interesantes de las mismas. A continuación se presentan, a modo de ejemplo, algunas de estas superficies obtenidas. _________________________________________________________________________________ 69 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.1 Mapa de actividad de sensores para el archivo step_data_25 Figura 5.5.7.2 Energía acumulada para la pisada 25 - Invertida _________________________________________________________________________________ 70 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.3 Energía acumulada para la pisada 25 Figura 5.5.7.4 Energía acumulada para la pisada 25 – vista superior _________________________________________________________________________________ 71 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.5 Mapa de actividad de sensores para el archivo step_data_187 Figura 5.5.7.6 Energía acumulada para la pisada 25 - invertida _________________________________________________________________________________ 72 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.7 Energía acumulada para la pisada 187 Figura 5.5.7.8 Energía acumulada para la pisada 187 – vista superior _________________________________________________________________________________ 73 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.9 Mapa de actividad de sensores para el archivo step_data_225 Figura 5.5.7.10 Energía acumulada para la pisada 225 - invertida _________________________________________________________________________________ 74 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.7.12 Energía acumulada para la pisada 225 – vista superior _________________________________________________________________________________ 75 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.8 Umbral mínimo Las matrices calculadas y representadas mediante los métodos de los apartados anteriores son ya imágenes continuas y, por tanto, susceptibles de ser utilizadas y analizadas para obtener y estudiar características geométricas que nos ayuden en el proceso de identificación. Sin embargo, el proceso de interpolación al convolucionar la imagen con el filtro gaussiano ha introducido información en la imagen que debe ser eliminada, pues es información “fantasma” que puede arrojar resultados inexactos o entorpecer el uso de algoritmos de extracción de características que se describirán en los apartados a continuación. Información “fantasma” Estos nuevos datos que han aparecido son el resultado de la interpolación de nuestra imagen original con el filtro; han aparecido nuevos puntos alrededor de los contornos de la pisada, debido a la interpolación de los puntos del contorno de la imagen con el resto de los puntos cuyo valor era cero. Aparecen en la imagen en tonos azul oscuro, claro y tonos verdosos. Corresponden a las intensidades más bajas de la nueva imagen obtenida y dan información falsa, ya que se encuentran en las posiciones ocupadas por sensores que no han sido activados. Esta nueva información debe ser eliminada de la imagen antes de que podamos utilizarla convenientemente. Para poder hacerlo, se debe establecer un límite o umbral mínimo óptimo que permita seleccionar los píxeles de la imagen por encima de cierta intensidad; aquellos que contengan información relevante y fiable. A continuación se deducirá un umbral mínimo, de forma experimental, para las imágenes calculadas, bajo el cual todas las componentes serán eliminadas. Este umbral dependerá de las características estadísticas de cada imagen y, por tanto, deberá ser calculado antes de filtrar nuevamente cada imagen. _________________________________________________________________________________ 76 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.9 Obtención del umbral mínimo Con el umbral mínimo vamos a establecer el valor de intensidad de píxel bajo el cual vamos a anular todos los valores en nuestra imagen, a fin de quedarnos con la información verdaderamente relevante. Para obtener este valor vamos a analizar la distribución estadística del histograma de la imagen. A modo de ejemplo vamos a utilizar la superficie obtenida a partir de la pisada número 187 y su histograma, presentado en las figuras adjuntas. El histograma es la representación de la frecuencia relativa de los diferentes niveles presentes en nuestra imagen; como ésta está normalizada dichos niveles variarán en el intervalo comprendido en [0 1]. También se ha representado el histograma en barras y la curva de distribución. Histograma de la imagen Histograma y curva de distribución A la hora de calcular el umbral debemos tener en cuenta que los valores que no nos interesan se encuentran concentrados en la zona del histograma donde éste toma sus valores más altos, es decir, los valores que más frecuencia relativa presentan. Son los valores más bajos de la señal, como muestran los histogramas. Tendremos que buscar el umbral atendiendo a la forma de la distribución estadística de las frecuencias relativas en los niveles de nuestra señal, indicada en la curva roja de la gráfica adyacente. Debemos, por tanto, identificar los valores clave en esta distribución estadística, esto es, la media y la desviación típica, a parte de un coeficiente de ajuste que usaremos para determinar el umbral buscado. Figura 5.5.9.1 Superficie de energía e histogramas de la imagen _________________________________________________________________________________ 77 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ µ σ Th Figura 5.5.9.2 Distribución normal del histograma y umbral calculado La figura muestra la curva de distribución normal del histograma de la imagen empleada como ejemplo y el umbral, calculado para ella. La determinación del umbral se ha hecho de forma experimental, por métodos de prueba y error, hasta obtener una imagen que mantuviera toda la información útil y descartara aquella que no nos interesaba. Estaba claro que el umbral calculado tenía que ser mayor que la media de la distribución del histograma, puesto que los puntos de interés se encuentran muy por encima de ese valor, tal y como se puede apreciar en los histogramas de la página anterior. Se optó, por tanto, por emplear la suma de la media y la desviación estándar inicialmente como umbral. Para ajustar este valor adecuadamente se ha empleado el Coeficiente de Variación de Pearson (CV) de la distribución. Éste representa el número de veces que la desviación típica contiene a la media aritmética y por tanto, cuanto mayor es el CV mayor es la dispersión y menor es la representatividad de la media. Es el caso del tipo de distribuciones que estamos empleando; en nuestras imágenes la media aritmética del valor de los píxels es poco representativa en la distribución. Este coeficiente de variación viene dado por: CV = σ µ Con lo que, finalmente, la fórmula utilizada para el cálculo del umbral es: Th = µ + σ ⋅ CV _________________________________________________________________________________ 78 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 5.5.10 Superficies tras aplicación del umbral A continuación se presentan algunas imágenes obtenidas tras aplicar el umbral obtenido en el apartado anterior. Figura 5.5.10.1 Superficie de energía para la pisada 4 antes y después de la aplicación del umbral _________________________________________________________________________________ 79 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.10.2 Superficie de energía para la pisada 8 antes y después de la aplicación del umbral _________________________________________________________________________________ 80 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 5.5.10.3 Superficie de energía para la pisada 103 antes y después de la aplicación del umbral _________________________________________________________________________________ 81 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6. Extracción de características En los apartados anteriores se han descrito los procedimientos llevados a cabo para obtener una imagen continua de la superficie de presión y energía resultante del proceso de pisada sobre el panel de sensores. Tras la interpolación y aplicación del umbral sobre la imagen ya podemos emplearla para comenzar el proceso de extracción de características. Al hablar de características nos estamos refiriendo a cualidades o elementos puntuales de interés en nuestras curvas o superficies (área, puntos máximos y mínimos, etc) que dependan directamente de la persona, en este caso de la forma de presionar la superficie del panel al andar. Estos elementos van a proporcionar la información necesaria que nuestro modelo necesita para ser capaz de identificar o verificar a los usuarios dentro de la base de datos que se vaya a crear. Se necesitará, por tanto, generar una colección de características para tener la máxima cantidad de información posible y minimizar la tasa de error efectiva del sistema. df Estas características, una vez encontradas y analizadas, se envían a lo que se conoce como clasificador. Se trata de un sistema encargado de analizar los datos que representan las características, para determinar la validez de los datos y la posible dependencia que pueda existir entre unos y otros. Básicamente, el clasificador es el sistema que finalmente se encarga de procesar estas características para usarlas en el proceso de verificación e identificación. La forma en la que funciona un clasificador queda fuera del alcance de este proyecto. Nos vamos a centrar en los algoritmos que vamos a aplicar a nuestras curvas y superficies para encontrar y obtener las características que, posteriormente, enviaremos al clasificador. A continuación se van a describir los algoritmos empleados para la obtención de las siguientes características: - Área de la pisada. Picos máximos de presión. Ángulo de la pisada. Forma de la superficie de energía de la pisada. Para esta última se realizará la correlación de las superficies entre diferentes pisadas para obtener el grado de similitud. _________________________________________________________________________________ 82 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.1 Área de la pisada A partir de la superficie de energía acumulada tras una pisada podemos determinar el área aproximada de la pisada. Se puede calcular aproximadamente, en mm2, sin más que realizar un barrido de la imagen y contar el número de píxeles activos para la superficie de energía. Figura 6.1.1 Cálculo del área de pisada para la pisada 116 El algoritmo es muy sencillo y consiste simplemente en contar los píxeles activos y el resultado es, por tanto, el área en mm2. Esta medida tiene por tanto, un error derivado del proceso de tratamiento de las imágenes (interpolación, cálculo del umbral, etc.). El resultado también depende del umbral empleado, ya que existirán más o menos píxeles activos dependiendo del umbral calculado anteriormente. Para obtener resultados consistentes en el caso de aplicar esta características se deberá emplear el mismo filtro de interpolación y exactamente el mismo umbral con todas las superficies procedentes de las distintas pisadas. _________________________________________________________________________________ 83 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.2 Determinación de picos de presión La determinación de los puntos de máxima presión (o energía) en la pisada es muy importante, ya que su localización depende directamente de la fisonomía del pie y la forma de andar. Se va a obtener la ubicación de los dos puntos máximos de presión, a partir de la superficie de energía acumulada; el primero de ellos estará localizado en la zona central del talón mientras que el segundo en la parte media/delantera del pie, parte central. Su ubicación, distancia y relación entre estos dos máximos van a ser características de importancia que vamos a extraer. Puntos de presión máxima Figura 6.2.1 Esquema de puntos de alta presión en el pie y ejemplo de imagen tomada de un estudio médico Por la fisonomía del pie y la forma de andar de las personas, los puntos de máxima presión al andar se encuentran situados en las zonas marcadas con círculos de color rojo, tal y como indica la figura superior. El hecho de llevar calzado puesto no influye en la localización de estos puntos, puesto que las zonas de más alta presión se van a concentrar en los mismos lugares. Estos picos de presión aparecen en las superficies de energía acumulada que hemos ido obteniendo a lo largo de apartados anteriores, tal y como se muestra en la siguiente figura. Dado que se acumulará mayor energía en las zonas donde se haya hecho mayor presión, se pueden obtener estos puntos a partir de las superficies de energía. El algoritmo que se ha diseñado utiliza como punto de partida la superficie de energía acumulada tras el proceso de pisada, una vez que se le ha aplicado el filtro de interpolación gaussiano y el umbral descrito en los apartados anteriores, si bien el algoritmo diseñado no depende del valor de este umbral. A continuación de detalla el algoritmo diseñado. _________________________________________________________________________________ 84 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Puntos de presión máxima Figura 6.2.2 Superficie de energía con los puntos de presión máxima presión indicados · Descripción del algoritmo El primer paso consiste en calcular todos los máximos relativos dentro de la superficie de energía; hay que tener en cuenta que habrá varios máximos y se deben diferenciar ambos máximos buscados, los cuales se van a encontrar en las dos zonas de alta presión, planta y parte delantera. Para la obtención de los máximos relativos de la matriz se ha empleado la función imregionalMax, que ya viene implementada en Matlab. Esta función crea una matriz del mismo tamaño que la que se pasa como parámetro, con 1’s en aquellas posiciones correspondientes a máximos relativos, esto es, puntos rodeados por valores inferiores. Figura 6.2.3 Funcionamiento de la función imregionalMax Una vez obtenidos todos los máximos relativos de la función debemos tener en cuenta la existencia de diferentes máximos dentro de cada una de las dos zonas de alta presión de las superficies que estamos estudiando. _________________________________________________________________________________ 85 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ De hecho habrá casos en los que existirán máximos relativos dentro de la zona del talón mayores que el máximo absoluto de la zona delantera y viceversa. Para diferenciar los dos máximos absolutos dentro de cada zona, talón y parte delantera, se sigue el procedimiento: 1. Nos posicionamos sobre la coordenada dentro de nuestra matriz que contiene el mayor valor, que al estar normalizada, será 1. 2. Barremos en espiral, partiendo de ese punto, la matriz para obtener la coordenada del punto más cercano al máximo absoluto encontrado, cuyo valor sea cero, esto es, la coordenada más cercana al máximo absoluto que se encuentra en el borde del pie. 3. Calculamos la distancia entre estos dos puntos. Por la fisonomía del pie, la segunda zona de alta presión se encuentra siempre a una distancia mayor que la calculada, por lo que no tomaremos ningún otro máximo dentro de un círculo cuya distancia sea menor a la calculada. Figura 6.2.4 Distancia empleada según la posición del máximo absoluto y barrido de la matriz en espiral Una vez calculadas las posiciones de los dos máximos absolutos buscados, se obtiene la relación y distancia entre ellos, datos que serán empleados como características de interés en los estudios posteriores. La función findPeaks se ha diseñado para realizar todo el proceso descrito en este apartado. _________________________________________________________________________________ 86 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 6.2.5 Cálculo automático de los máximos para las pisadas 187 y 103 _________________________________________________________________________________ 87 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.3 Ángulo de pisada En la función implementada para la obtención de los picos máximos de presión se han incluido líneas de código para calcular el ángulo relativo de pisada. La obtención de éste es directa a partir de los puntos de alta presión, puesto que el ángulo de pisada viene dado por el ángulo formado entre la coordenada X en el tablón y la línea que une los puntos de alta presión. β El ángulo de pisada es interesante ya que, al andar, cada persona orienta los pies de forma diferente con respecto a la línea recta que describe su trayectoria en cada momento. También puede ser útil para comparar los ángulos con los que se pisa con ambos pies, aunque en este caso habría que realizar estudios diferentes según el pie izquierdo y el derecho. En cualquier caso, el ángulo de pisada depende de varios factores y puede verse alterado con respecto a ellos. La orientación del panel de sensores y la trayectoria del usuario con respecto al panel pueden alterar la medida del ángulo relativo de la pisada, por lo que se requeriría “obligar” a los usuarios a pisar el tablón siguiendo una trayectoria determinada con respecto a él para obtener resultados consistentes. La aplicación más importante del ángulo de pisada va a ser, no obstante, su utilización en el apartado siguiente, en el que se ha diseñado un algoritmo para alinear y solapar unas imágenes sobre otras para correlar diferentes pisadas y obtener el grado de similitud entre ellas. En la figura adjunta se muestra cómo se emplea la función diseñada para el cálculo del ángulo. La función proporciona las coordenadas de los máximos de presión, sus valores y el ángulo relativo de pisada (26.95º, 0.47 radianes), su tangente y además la distancia entre ambos puntos de máxima presión (132.37 mm). Figura 6.3.1 Cálculo del ángulo de pisada _________________________________________________________________________________ 88 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.4 Comparación entre superficies de energía En este apartado se va a describir cómo emplear la superficie de energía obtenida en toda su extensión, para su uso a la hora de un proceso de identificación o verificación. La idea básica va a consistir en comparar la forma que toman estas curvas; al intentar acceder al sistema, éste va a generar la superficie de energía resultante del proceso de pisada y la va a comparar con todas las superficies de energía almacenadas en la base de datos, pertenecientes a todos los usuarios registrados en el sistema al que se pretende acceder. El principal problema que se plantea en esta situación es el hecho de que cada pisada tiene una orientación y posición diferente dentro del panel de sensores. Será necesario, por tanto, alinear las superficies espacialmente, unas con otras, para que puedan ser comparadas. Figura 6.4.1 Rotación y comparación entre superficies de energía de diferentes pisadas Para poder comparar las superficies de energía debemos hacer rotar la superficie, sin alterar el tamaño de la imagen, y trasladar la superficie de forma que ambas estén alineadas; para optimizar así el proceso de comparación. Éste se va a llevar a cabo mediante una correlación de las superficies resultantes después del proceso de rotación y traslación. _________________________________________________________________________________ 89 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.4.1 Rotación y traslación de la superficie de energía La operación de rotación de nuestra imagen puede parecer trivial a simple vista, ya que tenemos la herramienta necesaria para calcular el ángulo de orientación y en, en principio, sólo habría que rotar la imagen ese ángulo. Sin embargo, es necesario que las matrices resultantes de este proceso tengan el mismo tamaño que la original, para no desvirtuar el modelo empleado. Primero se lleva a cabo la rotación de la imagen y, posteriormente, se trasladan los píxeles para alinearlos, tal y como se describe: · Rotación En principio se ha empleado la función imrotate, que viene implementada en Matlab para rotar nuestra imagen; se tanto como indica el ángulo relativo para ser alineada con el eje X. Sin embargo, esta función no respeta los tamaños de las imágenes por lo que, al ser rotada, la matriz resultante posee un tamaño diferente a la anterior, como resultado del proceso de interpolación que se realiza automáticamente al rotar. El aumento de tamaño va a consistir en la aparición de filas y columnas de valor cero en nuestra matriz, ya que la información importante se encuentra rodeada de píxeles de valor nulo (áreas que no han sido activadas en el panel de sensores). Por tanto, el proceso que se sigue después de rotar la imagen es barrer la nueva matriz, eliminando filas y columnas a ambos lados hasta obtener una matriz del mismo tamaño que la original (274x435). 435 + N píxels 274 + M píxels Figura 6.4.1.1 Supresión de filas y columnas de la matriz resultado de la rotación Una vez se obtiene la matriz con el tamaño de la original, se procede a la traslación de los píxeles a lo largo de la matriz, para colocarlos en una posición lo más centrada posible. _________________________________________________________________________________ 90 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ · Traslación A la hora de alinear las superficies, la intención es hacer que se solapen lo máximo posible para poder compararlas con la mayor exactitud posible. Para ello se ha de buscar un punto de referencia, que actúe como punto de alineación para las superficies. La función implementada (rotateFootstep) se ha diseñado para funcionar con una matriz de cualquier tamaño, por lo que el punto de alineación se toma como el entero más cercano a la división por 2 del tamaño de la matriz de entrada, en el caso de la matriz de 274x435 el punto de alineación es [137,218]. C P Figura 6.4.1.2 Traslación de los píxeles activos a la posición central de la matriz Para calcular la distancia adecuada que deben recorrer todos los píxels en activo hasta la zona central de la matriz; se toma con referencia, en todas las pisadas, el punto P indicado en la figura. Este es el punto medio de la línea que une los dos picos de presión previamente calculados y, por tanto, es el punto que mejor va a permitir una correcta alineación. Por tanto, todos los píxeles en activo se trasladan una distancia equivalente a la existente entre ese punto y el punto C, que es el punto central de la matriz. _________________________________________________________________________________ 91 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 6.4.2 Correlación de superficies de energía Una vez las superficies están alineadas podemos calcular la correlación y convolución entre ellas para determinar el grado de similitud que presentan. La correlación de dos superficies de energía nos dará como resultado otra matriz, del mismo tamaño, como se indica en las siguientes figuras. Figura 6.4.2.1 Correlación de las pisadas 27 y 168 después de rotar y alinear _________________________________________________________________________________ 92 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 6.4.2.2 Correlación de las pisadas 27 y 168 sin rotar ni alinear Cuanto mayor es la similitud entre las superficies de energía, más está concentrada la imagen resultante de realizar la correlación, como se muestra en las figuras, al calcular la correlación de dos superficies de energía, alineándolas y posteriormente sin hacerlo. _________________________________________________________________________________ 93 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Para facilitar la interpretación de la comparación entre superficies de energía, es más útil y sencillo emplear el coeficiente de correlación. En la correlación entre dos matrices de igual tamaño, A y B, éste se define como: Donde A y B representan la media de las matrices A y B El coeficiente de correlación es un valor comprendido entre 0 y 1 que mide el grado de similitud entre las dos matrices (en nuestro caso las matrices que contienen los valores de superficies de energía o presión). El objetivo de utilizar el cálculo de este cociente es de establecer un umbral mínimo de similitud, bajo el cual, se considera que la pisada que se está analizando no corresponde de ningún modo con ninguna de las que se encuentran almacenadas en la base de datos. Figura 6.2.2.3 Coeficiente de correlación para las pisadas 27 y 168 sin alinear (izqda) y alineando (dcha) _________________________________________________________________________________ 94 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7. Trabajo con datos reales 7.1 Introducción En el presente capítulo se detallan y explican los algoritmos y procesos seguidos para la obtención de resultados a partir de datos reales de pisadas reales, tomados del panel de sensores una vez instalado. Para tomar y procesar los datos se requieren 6 placas controladoras conectadas al panel, cada una de las cuales tiene capacidad para muestrear y enviar los datos pertenecientes a 16 sensores activos en un momento determinado. La tasa de muestreo del sistema es de aproximadamente 1KHz, con lo que, en sucesivos apartados, consideraremos que 1000 muestras equivalen aproximadamente a 1 segundo. El panel de sensores se encuentra conectado a un ordenador, en el que se almacenan los datos tomados en formato binario. Estos archivos son los que se van a procesar en MATLAB para obtener información relevante de las pisadas. Se realizarán tareas de filtrado, eliminación de ruido y offset, extracción de datos, etc. para acondicionar las señales antes de poder trabajar definitivamente con ellas. Figura 7.1.1 El panel de sensores antes de ser instalado En los sucesivos apartados se van a explicar los procesos seguidos con un set de 16 señales capturadas por una de las controladoras. El proceso es extensible y se puede generalizar al llevado a cabo con la totalidad de los sensores en activo. _________________________________________________________________________________ 95 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.2 Señales adquiridas del tablón de sensores El tablón se conecta a un ordenador para capturar las señales procedentes de los sensores de presión de forma continua, durante un determinado espacio de tiempo. Las señales de guardan en ficheros en formato binario, los cuales se transfieren posteriormente al servidor de la universidad para ser accesibles desde cualquier terminal del laboratorio. De esta forma se procesan con MATLAB de forma inmediata. Figura 7.2.1 El panel de sensores, una vez instalado Una imagen de un set de pisadas obtenidas del tablón se muestra en la figura de la siguiente página. Como puede apreciarse en la imagen, se han tomado 7 pisadas diferentes a lo largo de 20,000 muestras (aproximadamente unos 20 segundos). Debido a la naturaleza física de los componentes electrónicos del panel las señales se van a ver afectadas por factores como ruido y offset que van a hacer que los resultados no sean exactamente los mismos que los que se han venido obteniendo con los datos simulados. Por ello, lo primero que se va a hacer es acondicionar las señales para que puedan ser procesadas convenientemente para la obtención de características biométricas de las pisadas. _________________________________________________________________________________ 96 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.3 Acondicionamiento de las señales Las señales obtenidas directamente desde los sensores del panel requieren cierto procesado antes de ser utilizadas, ya que contienen ruido y offset que debe ser eliminado. _________________________________________________________________________________ 97 Figura 7.3.1 Aspecto de las señales entregadas por el panel de sensores Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.3.2 Visión ampliada de las señales transmitidas que muestra el rizado Figura 7.3.3 Ruido presente en las señales captadas por los sensores _________________________________________________________________________________ 98 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Para eliminar el rizado presente en las señales se ha optado por utilizar un filtro Chebyshev. Se ha elegido este tipo de filtros, ya que permiten una caída de la respuesta en frecuencias bajas más pronunciadas debido a que permiten más rizado que otros filtros en alguna de sus bandas. Se ha decidido utilizar un filtro Chebyshev de tipo II, ya que, diferencia de los Chevyshev I, presentan ceros y polos, su rizado es constante en la banda no pasante y además presentan una caída monotónica en la banda pasante. En concreto, se ha empleado un filtro con orden N=2, Atenuación=60dB en la banda de rechazo y frecuencia=350Hz. Se ha decidido tomar un valor de N bajo, ya que un valor pequeño del orden suaviza el rizado en la banda pasante del filtro. Figura 7.3.4 Señales del panel de sensors después de eliminar el rizado con filtro Chebyshev Para generar el filtro Chebyshev en MATLAB basta con usar el comando cheby2. Este comando genera la matriz de coeficientes necesaria que debe ser utilizada para filtrar la señal original. Por tanto, para llevar a cabo el filtrado, basta con generar la secuencia de comandos: [b,a]=cheby2(2,60,350/512); filter(b,a,datos); _________________________________________________________________________________ 99 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ El ruido también se suaviza el proceso de filtrado, si bien, es prácticamente imposible eliminarlo del todo sin que la señal de interés se vea afectada. Cuando se tenga toda la información correspondiente a una pisada se llevarán a cabo nuevos procedimientos para eliminar el ruido. Figura 7.3.5 Perfil de ruido tras filtrar También existe una cierta componente de offset entre las señales debido a la diferencia entre los voltajes de offset de los diferentes sensores del panel. Para eliminar esta componente de offset basta con calcular la media de todas las señales y luego restar este valor a cada una de las curvas de presión dadas por los sensores. _________________________________________________________________________________ 100 Figura 7.3.6 Señales después de filtrar y eliminar el Antonio offset Escuela Superior de Ingenieros de Sevilla González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.4 Extracción de pisadas individuales de los ficheros El sistema del que se dispone en el laboratorio permite capturar pisadas de forma continua, lo que permite ahorrar tiempo. Sin embargo, es necesario tener ficheros que contengan pisadas individuales para poder organizar las muestras en una base de datos, según los individuos de los que se toman las pisadas. Para ello, se ha desarrollado la función getFootsteps, que identifica y extrae las pisadas dentro del fichero dado por el tablón de sensores. Cada pisada es almacenada en un fichero individual con el mismo formato que el fichero original, esto es, formato binario big-endian, de forma que se puedan emplear las mismas funciones para la lectura de datos que se utilizan con los ficheros dados por el tablón. El proceso llevado a cabo es el siguiente: 1. Se analizan las primeras 1000 muestras del fichero que contiene todas las pisadas. Estas 1000 muestras contienen sólo ruido, por lo que el propósito es el de obtener información acerca del ruido. Tras analizar estas muestras de ruido se toma el valor máximo del ruido en este intervalo. Valor maximo de ruido en T=[0,1000] Figura 7.4.1 Obtencion del valor maximo del ruido como umbral minimo Este valor máximo de ruido se va a considerar el umbral mínimo a partir del cual consideramos que empieza una pisada. Es decir, no se considera que comienzan los datos correspondientes a una pisada hasta que todas las señales están por encima de ese umbral de ruido. _________________________________________________________________________________ 101 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 2. Se realiza un barrido progresivo del fichero hasta que se identifica el punto de comienzo de una pisada, es decir, momento en el que todas las señales se encuentran por encima del valor de ruido identificado en el punto anterior. Sin embargo, para evitar perder algunas muestras de la señal, el puntero utilizado para ir barriendo la señal se retrasa unas muestras antes del punto de comienzo, para coger la señal de la pisada en su totalidad. Se ha decidido tomar un valor fijo de N=30 como corrección del puntero. Condición de comienzo de la pisada Figura 7.4.2 Detección de condición de comienzo de una pisada Se emplea un puntero o índice para ir recorriendo el archivo. Para cada instante de tiempo se leen todos los valores correspondientes a las señales en ese momento y se transfieren a un vector. En cada iteración se comprueba si se cumple la condición de comienzo de la pisada. Al verificar la condición se retrasa el puntero un valor de N muestras (se ha tomado N=30) para empezar a leer desde ahí. Por comprobación de numerosas muestras obtenidas se ha verificado el hecho de que las pisadas no suelen durar más de ¾ de segundo. Por ello se van a tomar archivos de pisadas compuestos por T=1000 muestras (aproximadamente un segundo). De esta forma, todos los archivos obtenidos van a tener una duración y formato idénticos, lo cual facilitará en gran medida el procesado posterior. _________________________________________________________________________________ 102 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ T=1000 Retraso de N=30 muestras Figura 7.4.3 Proceso de extracción de la pisada del archivo Para realizar el proceso con todas las pisadas presentes en el archivo se ha utilizado una variable de tipo bandera para identificar si, en cada momento, se está buscando el comienzo o el final de una pisada. El proceso se va repitiendo iterativamente hasta que se llega al final del archivo. Cada vez que se identifica el comienzo de una pisada y se retrasa el índice las N muestras indicadas, se almacenan todos los datos correspondientes a las siguientes T=1000 muestras en una matriz que hace las veces de buffer de memoria. Mediante los comandos fopen y fwrite incluidos en MATLAB es posible volcar el contenido de esta matriz en un archivo binario, del mismo formato que el original, sin más que especificar el formato deseado. fid=fopen(sprintf('%s%s%d',filename,'_FOOTSTEP_',n),'wb'); fwrite(fid,aux','int16','b'); fclose(fid); _________________________________________________________________________________ 103 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Archivos creados Figura 7.4.4 Ventana de comandos para la extracción de las pisadas del archivo Todos los nuevos archivos creados tienen un tamaño estándar de 32 KB cada uno y el mismo formato. Esto facilitará tareas de procesamiento y comparación entre ellos. _________________________________________________________________________________ 104 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.5 Obtención de muestras completas Una vez todas las controladoras conectadas al tablón han sido instaladas adecuadamente, se puede proceder a la obtención de muestras completas pertenecientes a las pisadas de diferentes individuos. En el caso que nos ocupa se han tomado varias muestras de pisadas correspondientes a varias personas de diferentes sexos, para contar con una mayor variedad de resultados. En el apartado siguiente se muestra la representación de las señales obtenidas al procesar las señales dadas por los sensores y las curvas de GRF asociadas a algunas de esas muestras de datos reales. Como se dijo en apartados anteriores, el funcionamiento del panel requiere de la presencia de controladores conectados a los sensores del panel. Cada uno de ellos tiene capacidad para capturar, procesar y enviar las señales correspondientes a 16 sensores al mismo tiempo, con lo cual los datos son enviados en bloques de 16 en 16. Dichos bloques de 16 son almacenadas en archivos en formato binario, de forma separada, por lo que se ha diseñado la función blendData.m para leer los archivos de forma secuencial y almacenar el contenido de la información de los sensores a lo largo del período de toma de muestras en una matriz. Matriz que contiene las muestras tomadas a lo largo de 20 seg. Archivos dados por el panel de sensores Figura 7.5.1 Ventana de comandos para la obtención de las muestras de pisadas _________________________________________________________________________________ 105 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ En la figura anterior se muestra la ventana de comandos para la obtención de la matriz que contiene los datos dados por los sensores a lo largo de un período de muestra de 20,000 samples (Aproximadamente 20 segundos). Cada fila de la matriz corresponde a los datos muestreados en ese instante de tiempo. Nótese que la matriz posee 96 columnas, cuando en realidad existen sólo 88 sensores. Esto es debido a que cada controlador proporciona, como se ha indicado anteriormente, datos correspondientes a bloques de 16 sensores. Como 88 no es múltiplo de 16, el último controlador proporciona los datos correspondientes a 8 sensores, mientras que las otras 8 señales quedan en blanco. Mediante una sencilla función, estas últimas 8 columnas sobrantes son eliminadas de la matriz, obteniendo así una dimensión de 88 columnas, cada una de las cuales corresponde a cada uno de los sensores del panel. Figura 7.5.2 Visualización de las muestras tomadas por el panel de sensores a lo largo de los 20 segundos En la figura 7.5.2 se muestra la representación en pantalla, con respecto al tiempo, de las señales de presión proporcionadas por el panel de sensores a lo largo de un proceso de muestra de unos 20 segundos. Como los datos son tomados de forma continua, las pisadas deben ser separadas y guardadas de forma independiente para poder ser analizadas posteriormente. _________________________________________________________________________________ 106 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Se ha diseñado una versión mejorada de la función getFootsteps.m, para utilizarla con datos reales. Para facilitar el manejo de las muestras se ha seguido considerando una longitud fija de pisada de T=1000 muestras. En este caso, la condición de final de pisada se calcula con respecto al umbral, y el resto de información se rellena con ceros hasta completar una longitud de 1000 samples. En el caso de que la pisada haya durado más de 1 segundo (caso muy improbable), se eliminan las muestras sobrantes hasta tener el tamaño de 1000 muestras; esto no afecta a la información obtenida ya que la parte final de las pisadas son señales producidas por el efecto de descarga de los condensadores que componen los sensores. T=1000 Rellenado con ceros Condición de final de pisada Retraso de N=30 muestras Figura 7.5.3 Proceso de extracción de pisadas con la función mejorada Una vez las muestras completas se han aislado y almacenado en ficheros independientes ya es posible su visualización y procesado; obtención de las curvas GRF, superficies, etc. _________________________________________________________________________________ 107 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.6 Ejemplos de muestras reales y curvas GRF asociadas En este apartado se muestran ejemplos de pisadas de 3 personas distintas, con todos los sensores en funcionamiento, y curvas GRF asociadas a algunas de ellas, calculadas con los datos reales. ● Persona 1: Figura 7.6.1 Muestra 1 del voluntario 1 Figura 7.6.2 Muestra 2 del voluntario 1 _________________________________________________________________________________ 108 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.6.3 Muestra 3 del voluntario 1 Figura 7.6.4 Curva GRF de la muestra 3 del voluntario 1 _________________________________________________________________________________ 109 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ ● Persona 2: Figura 7.6.5 Muestra 1 del voluntario 2 Figura 7.6.6 Muestra 2 del voluntario 2 _________________________________________________________________________________ 110 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.6.7 Muestra 3 del voluntario 2 Figura 7.6.8 GRF calculada para la muestra 3 del voluntario 2 _________________________________________________________________________________ 111 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ ● Persona 3: Figura 7.6.9 Muestra 1 del voluntario 3 Figura 7.6.10 Muestra 2 del voluntario 3 _________________________________________________________________________________ 112 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.6.11 Muestra 3 del voluntario 3 Figura 7.6.12 GRF de la muestra 3 del voluntario 3 _________________________________________________________________________________ 113 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.7 Superficies de energía con muestras reales En este apartado se muestran los resultados obtenidos al aplicar las herramientas de procesado diseñadas para la generación de superficies de energía y presión para las muestras de pisadas reales de las que se dispone. En este caso de ha dispuesto de muestras pertenecientes a cuatro individuos. ● Persona 1: Figura 7.7.1 Muestra tomada del voluntario 1 Figura 7.7.2 Superficie de energía para la muestra del voluntario 1 _________________________________________________________________________________ 114 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.7.3 Mapa de actividad de sensores para la muestra del voluntario 1 En la figura 7.7.3 se muestra el mapa de actividad total de los sensores a lo largo del proceso de pisada. La zona del panel correspondiente al grupo de sensores sobre el que se ha pisado se ha resaltado en la figura. Mediante esta representación del mapa de sensores queda patente la presencia y existencia de ruido en los dispositivos que conforman los sensores del panel de presión. Se puede observar actividad presente en gran parte de los sensores, aún cuando no se han visto activados en la toma de la muestra. Una característica inherente a todo sistema electrónico es la generación de señales ruidosas por parte de los componentes electrónicos que lo conforman. Este hecho queda demostrado en la figura, en la que se aprecia que todo sensor está aportando una componente de ruido que se va a sumar a la señal resultante y que inevitablemente afectará a los resultados prácticos obtenidos. _________________________________________________________________________________ 115 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ ● Persona 2: Figura 7.7.4 Muestra del voluntario 2 Figura 7.7.5 GRF calculada para la muestra del voluntario 2 _________________________________________________________________________________ 116 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.7.6 Superficie de energía para la muestra del voluntario 2 ● Persona 3: Figura 7.7.7 Muestra del voluntario 3 _________________________________________________________________________________ 117 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.7.8 Mapa de actividad de sensores calculado para la muestra 3 Figura 7.7.9 Superficie de energía para la muestra del voluntario 3 _________________________________________________________________________________ 118 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ De la superficie obtenida en la figura 7.7.9 podemos deducir que las representaciones obtenidas en 3 dimensiones con las herramientas diseñadas van a depender en gran medida del tipo de calzado empleado por el usuario, en cuanto a la forma de superficie de energía se refiere. Va a existir una gran diferencia de presión entre los puntos altos de presión (talón y parte central del pie) y la parte central del mismo, lo cual va a dar lugar a superficies seccionadas, es decir, con los resultados prácticos no vamos a obtener una imagen totalmente continua, sino dos secciones de presión bien diferenciadas, cada una de las cuales va a corresponder a la parte trasera y delantera del pie. Aunque no va a ser posible calcular el área de pisada con los datos prácticas, va a ser perfectamente viable la determinación de los puntos de máxima presión, ángulo de pisada y, muy importante, distancia entre ambos puntos de máxima presión, característica que va a ser determinista según las características físicas de cada persona. ● Persona 4: Figura 7.7.10 Muestra correspondiente al voluntario 4 _________________________________________________________________________________ 119 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.7.11 Superficie de energía para la muestra anterior – vista superior Figura 7.7.12 Superficie de energía para la muestra anterior – vista lateral _________________________________________________________________________________ 120 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.8 Umbral mínimo con muestras reales Siguiendo el mismo procedimiento que para los datos simulados, y usando las mismas herramientas diseñadas, se va a eliminar la información “fantasma” presente en las superficies tras el proceso de interpolación. Es el paso previo a la extracción de algunas de las características de las superficies. A continuación se ilustra el proceso con un ejemplo realizado con una muestra real. Figura 7.8.1 Superficie antes del cálculo del umbral mínimo 7 Figura 7.8.2 Superficie tras el cálculo del umbral mínimo 7 _________________________________________________________________________________ 121 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 7.9 Extracción de características Aplicando exactamente los mismos algoritmos y funciones diseñadas para los datos simulados, se presentan en este apartado un par de ejemplos en los que calcula el ángulo de pisada, localización de los puntos de máxima presión y distancia entre ellos con muestras de pisadas reales tomadas en el laboratorio. Matriz de resultados Figura 7.9.1 Muestra y extracción de características correspondiente _________________________________________________________________________________ 122 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Figura 7.9.2 Superficie de una muestra y extracción de características correspondiente _________________________________________________________________________________ 123 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ La matriz de resultados del proceso de extracción de características se da en la siguiente forma: a11 a12 a13 a21 a31 a41 a22 a32 a42 a23 a33 a43 Donde: · a11: Coordenada X del punto de máxima presión. · a12: Coordenada Y del punto de máxima presión. · a13: Valor normalizado del punto de máxima presión (la unidad). · a21: Coordenada X del segundo punto de máxima presión. · a22: Coordenada Y del segundo punto de máxima presión. · a23: Valor normalizado del segundo punto de máxima presión. · a31: Ángulo en grados de la pisada. · a32: Ángulo en radianes de la pisada. · a33: Tangente del ángulo de pisada. · a41: Distancia entre ambos puntos de máxima presión (en mm). · a42: Coordenada X del punto medio entre ambos puntos de máxima presión. · a43: Coordenada Y del punto medio entre ambos puntos de máxima presión. _________________________________________________________________________________ 124 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ 8. Conclusiones A lo largo del desarrollo de esta memoria se han ido mostrando los pasos seguidos, cronológicamente, para la obtención de resultados que permitieran sentar las bases para el diseño de un futuro sistema que sea capaz de identificar individuos a través de la forma de andar. En los primeros capítulos se mostraron los procedimientos que se llevaron a cabo con datos simulados; obteniendo primero curvas GRF con datos ideales y después superficies de presión y energía, primero en baja resolución y posteriormente en alta resolución mediante procesos de interpolación. Estos resultados reflejaban exactamente lo que cabía esperar ya que, al emplear pisadas simuladas, la no existencia de ruido y otros factores permitió la obtención de curvas y superficies que no se vieron alteradas por la presencia de éstos. A la vista de los resultados que se han dado con muestras reales tomadas en laboratorio con diferentes voluntarios, queda patente la existencia de una considerable diferencia entre la teoría y la puesta en práctica de un proyecto. No sólo quedó demostrada la presencia de factores tales como ruido aditivo y offset en las señales que proporcionaba el panel de sensores, sino que también existen innumerables factores que pueden afectar a la calidad o fiabilidad del estudio de pisadas. Entre dichos factores debemos tener en cuenta el propio proceso de toma de muestras en laboratorio. La forma de pisar en determinado momento, el calzado empleado en la toma de muestras e incluso la correcta calibración de los sensores y comportamiento de los componentes electrónicos que forman el panel a lo largo del tiempo, afectan de forma decisiva el proceso de estudio con datos reales. Por ello, sería conveniente el establecer un proceso o método más riguroso de toma de muestras, que requeriría de más tiempo del que se ha dispuesto para la recogida de datos en relación a este proyecto. A pesar de todos estos elementos que afectan a la obtención de la información requerida a partir de las muestras, se puede afirmar que los resultados obtenidos con datos reales son, en principio, bastante satisfactorios. Las curvas GRF obtenidas a partir de los voluntarios se ajustan perfectamente a los perfiles típicos de este tipo de gráficas, y permiten por tanto la extracción de un buen número de características siguiendo los procedimientos explicados en el apartado 5.4.5. Éstas pertenecen, como ya se indicó, al grupo de características geométricas, y pueden ser herramientas muy útiles para mejorar el rendimiento del futuro sistema. En el caso de la obtención de las superficies de energía, los resultados presentan una mayor variación con respecto a los obtenidos con datos ideales. Esto, sin embargo, es perfectamente comprensible teniendo en cuenta el calzado empleado, la forma de pisar y la sensibilidad de los sensores que conforman el panel. Aunque no es viable la utilización de estas superficies para ser comparadas entre ellas, es perfectamente posible la obtención de otras características geométricas muy importantes de ellas; ángulo de pisada y distancia entre los puntos máximos de presión; esta última con mayor relevancia ya que es una característica física que varía de persona a persona. Este proyecto ha intentado sentar las bases de lo que sería el proceso de extracción de características esenciales para la consecución de un sistema biométrico, si bien la realización del mismo requiere de una gran cantidad de procesos y fases, cuyo tiempo necesario queda fuera del alcance de este trabajo. _________________________________________________________________________________ 125 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Apéndice I. Funciones para los datos simulados I1. Listado de funciones • correlateFootsteps: Calcula la correlación entre dos pisadas. • energySensor: Proporciona el valor de energía acumulada para un sensor. • fillSensor: Mapea un determinado valor de presión o energía en un sector circular de radio 13mm alrededor de un punto especificado mediante sus coordenadas X e Y, centro del sensor. • filterHP: Aplica un filtrado paso de alta a la matriz de entrada, con objeto de obtener bordes y límites en la imagen de la pisada. • filterLP: Aplica un filtrado paso de baja a la matriz de entrada; elimina ruido y suaviza la representación de ciertas superficies. • findArea: Calcula el área de una pisada, en mm2, contando el número de píxeles activos en la matriz a escala. • findPeaks: Procesa la matriz de energía acumulada y da como resultado una matriz que contiene los dos puntos de máxima presión (talón y parte frontal del pie), localización de los puntos, ángulo de pisada y coordenadas del centro de la recta que une ambos puntos de máxima presión. • getCentroids: Obtiene las coordenadas del centro de cada sensor de presión en la matriz a escala del panel, de tamaño 274x435. • labelFigure: Esta función se utiliza meramente para facilitar la representación de algunas superficies. Visualiza en pantalla, sobre las coordenadas de los sensores correspondientes, los números de éstos, tal y como están situados originalmente en el diseño del panel. • mapMatrix: Lee los datos correspondientes a presión o energía y los mapea en la matriz del modelo aproximado del panel, de tamaño 14x13. • normalizeMatrix1: Normaliza la matriz de entrada por el método del valor máximo, de forma que todos los valores son relativos al máximo, de módulo 1. • plotCircles: Obtiene y representa en pantalla las superficies circulares de presión e energía correspondientes a la actividad de los sensores del panel. • plotDifferential: Representa en pantalla la presión diferencial de un sensor a lo largo del tiempo. • plotFootstep: Obtiene los datos necesarios de presión o energía, reserva espacio para la matriz del modelo a escala, mapea y transfiere los datos y tras interporlar en las áreas en blanco representa la superficie a escala de energía o presión, según el caso. _________________________________________________________________________________ 126 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • plotSensor: Representa la variación de presión en un sensor con respecto al tiempo. Para ello integra la presión diferencial dada por los sensores hasta el instante en el cual se quiere representar la presión. • pressureSensor: Proporciona la energía acumulada en el sensor especificado en un instante determinado del tiempo. • readSim: Esta función se diseñó con el propósito de obtener una herramienta que permitiera leer los datos simulados de forma automática. Mediante el uso de los comandos fopen y fread y el empleo de punteros, lee los datos de los ficheros de pisadas simuladas y los transfiere a la matriz de tamaño 500x88, explicada en el apartado de datos simulados. • rotateFootstep: Este código permite rotar y alinear las imágenes de presión de las pisadas para su posterior comparación empleando operaciones de correlación y convolución entre imágenes. • sensorNumber: Obtiene las coordenadas para los diferentes sensores en la matriz del modelo aproximado del panel. • showEnergy: Calcula la energía acumulada para el panel de sensores hasta un cierto instante del tiempo. Dicha energía es representada en una superficie. • showForce: Calcula y representa la curva de la GRF (Ground Reaction Force) para una pisada. • showForce3D: Calcula y representa la superficie de presión para una pisada en el instante de tiempo especificado. • threshold: Calcula el umbral mínimo para la imagen de presión de las pisadas y devuelve la matriz resultante de la aplicación de este valor umbral. _________________________________________________________________________________ 127 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ I2. Códigos de las funciones • correlateFootsteps % this function calculate correlation over time of two different footsteps % % The result is presented as a function over the whole process % % 1 indicates maximum correlation between images whereas 0 indicates no likeness % function h = correlateFootsteps(filename1,filename2) T=500; Ni=274; Nj=435; h=zeros(1,T); value=0; coordinates=[0 0]; smoothingFilter=(1/115)*[2 4 5 4 2;4 9 12 9 4;5 12 15 12 5;4 9 12 9 4;2 4 5 4 2]; N=20; % resizing factor for the filter % smoothingFilter = imresize(smoothingFilter,N,'bicubic'); M1=zeros(Ni,Nj); M2=zeros(Ni,Nj); data1=readSim(filename1); data2=readSim(filename2); p1=mapMatrix(data1,1); p2=mapMatrix(data2,1); for t=0:87 coordinates=sensorNumber(t); value=p1(coordinates(1),coordinates(2)); coordinates=getCentroids(t); M1=fillSensor(M1,value,coordinates(1),coordinates(2)); end M1=imfilter(M1,smoothingFilter,'conv'); M1=normalizeMatrix1(M1); M1=threshold(M1); M1=rotateFootstep(M1); for t=0:87 coordinates=sensorNumber(t); value=p2(coordinates(1),coordinates(2)); coordinates=getCentroids(t); M2=fillSensor(M2,value,coordinates(1),coordinates(2)); end M2=imfilter(M2,smoothingFilter,'conv'); M2=normalizeMatrix1(M2); M2=threshold(M2); M2=rotateFootstep(M2); h(1)=corr2(M1,M2); _________________________________________________________________________________ 128 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ % correlation loop % for t=2:T p1=mapMatrix(data1,t); p2=mapMatrix(data2,t); for k=0:87 coordinates=sensorNumber(k); value=p1(coordinates(1),coordinates(2)); coordinates=getCentroids(k); M1=fillSensor(M1,value,coordinates(1),coordinates(2)); end M1=imfilter(M1,smoothingFilter,'conv'); M1=normalizeMatrix1(M1); M1=threshold(M1); M1=rotateFootstep(M1); for k=0:87 coordinates=sensorNumber(k); value=p2(coordinates(1),coordinates(2)); coordinates=getCentroids(k); M2=fillSensor(M2,value,coordinates(1),coordinates(2)); end M2=imfilter(M2,smoothingFilter,'conv'); M2=normalizeMatrix1(M2); M2=threshold(M2); M2=rotateFootstep(M2); h(t)=corr2(M1,M2); fprintf('\r'); fprintf('%f',(t/T)*100); fprintf('%%'); end _________________________________________________________________________________ 129 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • energySensor % gives the energy for a sensor accumulated % function finalValue = energySensor(data, sensor) coordinates=sensorNumber(sensor); i=coordinates(1); j=coordinates(2); Ni=14; Nj=13; T=500; aux=zeros (Ni,Nj); m=0; for n=1:T if (n~=1) aux = mapMatrix(data, n); pressure(n)=aux(i,j)+pressure(n-1); else aux=mapMatrix(data,1); pressure(1)=aux(i,j); end end finalValue=pressure(1); for i=2:T finalValue=finalValue+pressure(i-1); end finalValue=finalValue+pressure(T); finalValue; _________________________________________________________________________________ 130 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • fillSensor % this function maps "value" into a circular area inside a matrix % % mapping process is carried out inside a square, discarding those points % % which are beyond the sensor radius % % x and y coordinates are for the centroid of the sensor % function matrix = fillSensor(matrix,value,x,y) R=13; % sensor radius % for i=(x-R):(x+R) for j=(y-R):(y+R) d=sqrt( (x-i)^2 + (y-j)^2 ); % Euclidean distance to center % if ( d<R ) matrix(i,j)=value; end end end _________________________________________________________________________________ 131 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • filterHP % Applies a High Pass Filter to obtain the edges % function filtered = filterLP(matrix) HPfilter=[0 -1 0;-1 4 -1;0 -1 0]; %LPfilter=(1/273)*[1 4 7 4 1;4 16 26 16 4;7 26 41 26 7;4 16 26 16 4;1 4 7 4 1]; filtered=imfilter(matrix,HPfilter,'conv'); %filtered=imfilter(filtered,LPfilter,'conv'); filtered=normalizeMatrix1(filtered); filtered=abs(filtered); surfc(filtered); • filterLP % Applies a Low Pass Filter to obtain the edges % function filtered = filterLP(matrix) noiseFilter=[1/9 1/9 1/9;1/9 1/9 1/9;1/9 1/9 1/9]; filtered=imfilter(matrix,noiseFilter,'conv'); filtered=normalizeMatrix1(filtered); surfc(filtered); _________________________________________________________________________________ 132 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • findArea % finds the Area for the footstep once the image has been thresholded % function area = findArea(matrix) dataSize=size(matrix); area=0; for i=1:dataSize(1) for j=1:dataSize(2) if ( matrix(i,j)~=0 ) area=area+1; end end end _________________________________________________________________________________ 133 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • findPeaks % % % % % this function finds the peaks in the pressure surface % it stores all the maximums and its coordinates in a matrix % matrix should be a thresholded image % Then we just select the two maximum values % it also determines the angle % function Peaks = findPeaks(matrix) dataSize=size(matrix); Ni=dataSize(1); Nj=dataSize(2); ni=1; peaks % mi=1; hi=1; k=1; d=0; s=1; p=1; angle=0; % index for the matrix that stores the % % % % % % % auxiliar index for the first max peak % auxiliar index for the second peak % auxiliar index for T % distance % coefficient for the spiral movement % pointer in the spiral movement % step angle % Peaks=zeros(4,3); T=zeros(4,3); B=imregionalmax(matrix); % 1 if there's a maximum % for i=1:Ni for j=1:Nj if ( B(i,j)==1) P(ni,1)=i; P(ni,2)=j; P(ni,3)=matrix(i,j); ni=ni+1; end end end % we go to the absolute maximum peak % % mi will contain the index of absolute maximum peak in the peak matrix % dataSize=size(P); for ni=1:dataSize(1) if ( P(ni,3)>P(mi,3) ) mi=ni; end end _________________________________________________________________________________ 134 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ % now we measure the distance from the coordinates in the footstep matrix % to the (approximate) nearest zero point % i=P(mi,1); j=P(mi,2); while ( matrix(i,j)~=0 ) if ( rem(s,4)==1 ) j=j+p; s=s+1; end if ( rem(s,4)==2 ) i=i+p; s=s+1; end if ( rem(s,4)==3 ) j=j-(p+1); s=s+1; end if ( rem(s,4)==0 ) i=i-(p+1); s=s+1; p=p+2; end end % we calculate the distance from that zero point to the maximum peak and % then choose the peak we want % d=sqrt( ( P(mi,1)-i )^2 + ( P(mi,2)-j )^2 ); for ni=1:dataSize(1) if ( (sqrt( ( P(ni,1)-i )^2 + ( P(ni,2)-j )^2 ) )>d ) T(k,1)=P(ni,1); T(k,2)=P(ni,2); T(k,3)=P(ni,3); k=k+1; end end dataSize=size(T); for k=1:dataSize(1) if ( T(k,3)>T(hi,3) ) hi=k; end end Peaks(1,1)=P(mi,2); Peaks(1,2)=P(mi,1); _________________________________________________________________________________ 135 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Peaks(1,3)=P(mi,3); Peaks(2,1)=T(hi,2); Peaks(2,2)=T(hi,1); Peaks(2,3)=T(hi,3); tg=( Peaks(2,2)-Peaks(1,2) )/( Peaks(2,1)-Peaks(1,1) ); Peaks(3,1)= ( atan(tg)*180 )/(pi); Peaks(3,2)=atan(tg); Peaks(3,3)=tg; text(Peaks(1,1),Peaks(1,2),1,'*','Color',[0.6 0.5 0.7], 'FontWeight', 'bold'); text(Peaks(2,1),Peaks(2,2),1,'*','Color',[0.6 0.5 0.7], 'FontWeight', 'bold'); % distance between the two peaks % Peaks(4,1)=sqrt( (Peaks(1,1)-Peaks(2,1))^2 + (Peaks(1,2)-Peaks(2,2))^2 ); MCx=( Peaks(1,1)+Peaks(2,1) )/2; MCy=( Peaks(1,2)+Peaks(2,2) )/2; % Middle Point % Peaks(4,2)=MCx; Peaks(4,3)=MCy; text(Peaks(4,2),Peaks(4,3),1,'x','Color',[0.6 0.5 0.7],'FontWeight','bold'); % line( [Peaks(1,1) Peaks(2,1)], [Peaks(1,2) Peaks(2,2)], [1 1],'Color',[0.6 0.5 0.7]); _________________________________________________________________________________ 136 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • getCentroids % this script gets the coordinates for the center of the sensors % function coordinates = getCentroids(sensor) Ni=274; Nj=435; % C=1; % N=0; % coordinates=[0 0]; R=13; % D=19; % the board % Dy=38; % consecutive sensors % Dx=34; % consecutive sensors % i=R+1; j=R+1; 274x435 image matrix % Number of Column in sensor board % sensor number which is being analysed % sensor radius % distance from the sensor border to the edge of Vertical distance between centroids of two Horizontal distance between centroids of two % we start in the center of sensor ZERO % if (sensor==0) coordinates=[i j]; else while (N<sensor) i=i+Dy; % we move to the next centroid % if (i>=Ni) j=j+Dx; C=C+1; if ( rem(C,2)==0 ) i=D+R+1; % even column % else i=R+1; end if ( (C==9) || (C==11) || (C==13) ) % columns with only 6 sensor % i=i+Dy; end end N=N+1; end end coordinates = [i j]; _________________________________________________________________________________ 137 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • labelFigure % labels the current figure with the sensor numbers % function labelFigure(ratio) Ni=14; Nj=13; coor=[0 0]; N=88; for i=0:N-1 coor=sensorNumber(i); if (ratio~=1) text(coor(2)*(ratio-1),coor(1)*(ratio-1),1.1,num2str(i),'Color',[0.6 0.5 0.7], 'FontWeight', 'bold'); else text(coor(2),coor(1),1.1,num2str(i),'Color',[0.6 0.5 0.7], 'FontWeight', 'bold'); end end _________________________________________________________________________________ 138 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • mapMatrix % This function is to create a mapped matrix from the sensor board % % It's a 14*13 matrix, containing one zero in those columns in which there % are six sensors % function mappedMatrix = mapMatrix(data, time) Ni=14; Nj=13; mappedMatrix = zeros(Ni,Nj); jdata=1; N=1; flag=0; % from 1 to 91 % for j=1:Nj if ( rem(j,2)==0 ) % if it's an even column first sensor is % in the second position % i=2; else i=1; end while (i<=Ni) if ( (N == 57) || (N == 70) || (N == 83) ) mappedMatrix(i,j)=0; N=N+1; i=i+2; else mappedMatrix(i,j)=data(time, jdata); jdata=jdata+1; N=N+1; i=i+2; % there's at least one empty cell every two cells end end end _________________________________________________________________________________ 139 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • normalizeMatrix1 % Normalizes matrix using the MaxOne Method % function normalized = normalizeMatrix1(matrix) dataSize=size(matrix); Ni=dataSize(1); Nj=dataSize(2); maximum=0; for i=1:Ni for j=1:Nj aux=abs(matrix(i,j)); if (aux>maximum) maximum=aux; end end end if (maximum==0) normalized=matrix*0; else normalized=matrix*(1/maximum); end _________________________________________________________________________________ 140 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • plotCircles % These will create an accurate image of the footstep % function footstep = plotCircles(filename) Ni=274; Nj=435; coordinates=[0 0]; smoothingFilter=(1/115)*[2 4 5 4 2;4 9 12 9 4;5 12 15 12 5;4 9 12 9 4;2 4 5 4 2]; N=20; % resizing factor for the filter % % 1. We obtain the pressure values using the function showEnergy % A=showEnergy(filename,0); % 2. We create the 274x435 array for the final image % footstep=zeros(Ni,Nj); % 3. We map and scan the values and store them into the matrix % for i=0:87 coordinates=sensorNumber(i); value=A(coordinates(1),coordinates(2)); coordinates=getCentroids(i); footstep=fillSensor(footstep,value,coordinates(1),coordinates(2)); end _________________________________________________________________________________ 141 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • plotDifferential % Plot the differential pressure of a sensor over time % function differential = differential(filename,sensor) data=readSim(filename); Ni=14; Nj=13; T=500; matrix=zeros(Ni,Nj); coordinates=sensorNumber(sensor); i=coordinates(1); j=coordinates(2); for n=1:T matrix=mapMatrix(data,n); differential(n)=matrix(i,j); end % differential=normalizeMatrix1(differential); % set(gca,'xlim',[0 500],'ylim',[-1 1],'NextPlot','replace','Visible','on'); plot (differential); title (['DIFFERENTIAL PRESSURE FOR SENSOR ',num2str(sensor)]); _________________________________________________________________________________ 142 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • plotFootstep % This will create an accurate image of the footstep % function footstep = plotFootstep(filename) Ni=274; Nj=435; coordinates=[0 0]; smoothingFilter=(1/115)*[2 4 5 4 2;4 9 12 9 4;5 12 15 12 5;4 9 12 9 4;2 4 5 4 2]; N=20; % resizing factor for the filter % % 1. We obtain the pressure values using the function showEnergy % A=showEnergy(filename,0); % 2. We create the 274x435 array for the final image % footstep=zeros(Ni,Nj); % 3. We map and scan the values and store them into the matrix % for i=0:87 coordinates=sensorNumber(i); value=A(coordinates(1),coordinates(2)); coordinates=getCentroids(i); footstep=fillSensor(footstep,value,coordinates(1),coordinates(2)); end % 4. Smoothing % smoothingFilter = imresize(smoothingFilter,N,'bicubic'); footstep=imfilter(footstep,smoothingFilter,'conv'); footstep=normalizeMatrix1(footstep); _________________________________________________________________________________ 143 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • plotSensor % plot de pressure for one sensor against time % function pressure = sensor(filename,sensor) data=readSim(filename); coordinates=sensorNumber(sensor); i=coordinates(1); j=coordinates(2); Ni=14; Nj=13; aux=0; T=500; for n=1:T if (n~=1) aux = mapMatrix(data, n-1); pressure(n)=aux(i,j)+pressure(n-1); else aux=mapMatrix(data,1); pressure(1)=aux(i,j); end end pressure=pressure*(-1) pressure=normalizeMatrix1(pressure); set(gca,'xlim',[0 500],'ylim',[-1 1],'NextPlot','replace','Visible','on'); plot (pressure); title (['PRESSURE FOR SENSOR ',num2str(sensor)]); _________________________________________________________________________________ 144 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • pressureSensor % gives the energy for a sensor accumulated % function finalValue = pressureSensor(filename, sensor) data=readSim(filename); coordinates=sensorNumber(sensor); i=coordinates(1); j=coordinates(2); Ni=14; Nj=13; T=500; aux=zeros(Ni,Nj); for n=1:T if (n~=1) aux = mapMatrix(data, n); pressure(n)=aux(i,j)+pressure(n-1); else aux=mapMatrix(data,1); pressure(1)=aux(i,j); end end finalValue=pressure(1); for i=2:T finalValue=finalValue+pressure(i-1); end finalValue=finalValue+pressure(T); finalValue _________________________________________________________________________________ 145 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • readSim function data = readSim(filename) fileId = fopen(filename,'r','b'); dataIn = fread(fileId,inf,'int16'); fclose(fileId); sampleCount = max(size(dataIn))/88; data = zeros(sampleCount,88); pointer = 1; for i= 1:sampleCount for j = 1:88 data(i,j) = dataIn(pointer); pointer = pointer + 1; end end _________________________________________________________________________________ 146 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • rotateFootstep % % % % % % This function will rotate a footstep image so that footstep is placed in the center of screen and aligned horizontally (0 degrees angle) M is the footstep Matrix % M needs to be thresholded before being passed as a parameter to this function function rotated = rotateFootstep(M) S=zeros(4,3); mpoint=[0 0]; % middle point of footstep % cpoint=[0 0]; % center screen point % D=[0 0]; % transfer distance % angle=0; dataSize=size(M); rotated=zeros(dataSize(1),dataSize(2)); buffer=zeros(dataSize(1),dataSize(2)); % buffer matrix % Ni=dataSize(1); Nj=dataSize(2); cpoint=[int16(Ni/2) int16(Nj/2)]; rotated=zeros(Ni,Nj); S=findPeaks(M); % ROTATION % angle=(S(3,1)); rotated=imrotate(M,angle); rotatedSize=size(rotated); % after rotating we want the matrix to have the original NixNj size % while ( rotatedSize(2)~=Nj && rotatedSize(2)~=(Nj+1) && rotatedSize(2)~=(Nj-1) ) rotated(:,rotatedSize(2))=[]; rotated(:,1)=[]; rotatedSize=size(rotated); end _________________________________________________________________________________ 147 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ while ( rotatedSize(1)~=Ni && rotatedSize(1)~=(Ni+1) && rotatedSize(1)~=(Ni-1) ) rotated(rotatedSize(1),:)=[]; rotated(1,:)=[]; rotatedSize=size(rotated); end rotatedSize=size(rotated); % if size is Ni+1 we delete a column % if ( rotatedSize(1)>Ni ) rotated(1,:)=[]; end % if size is Ni-1 we add a column with zeros % if ( rotatedSize(1)<Ni ) h=zeros(Ni,1); rotated=cat(2,rotated,h); end % if size is Nj+1 we delete a column % if ( rotatedSize(2)>Nj ) rotated(:,1)=[]; end % if size is Nj-1 we add a column if ( rotatedSize(2)<Nj ) h=zeros(1,Nj); rotated=cat(1,rotated,h); end buffer=rotated; rotated=zeros(Ni,Nj); _________________________________________________________________________________ 148 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ % DATA TRANSFER % S=findPeaks(buffer); mpoint=[int16(S(4,3)) int16(S(4,2))]; D=[(cpoint(1)-mpoint(1)) (cpoint(2)-mpoint(2))]; % distance that pixels must 'travel' % for i=1:Ni for j=1:Nj if (buffer(i,j)~=0) rotated(i+D(1),j+D(2))=buffer(i,j); end end end _________________________________________________________________________________ 149 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • sensorNumber % Retrieves the coordinates in the mapped matrix from the sensor number % function coordinates = sensorNumber(sensor) Ni=14; Nj=13; % original 14X13 board N=0; i=1; j=1; if (sensor==0) i=1; j=1; else while (N<sensor) i=i+2; if (i>Ni) i=1; j=j+1; if ( rem(j,2)==0) % even column % i=i+1; end if ( (j==9) || (j==11) || (j==13) ) sensor % % columns with only 6 i=i+2; end end N=N+1; end end coordinates(1)=i; coordinates(2)=j; _________________________________________________________________________________ 150 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • showEnergy % Calculates an array of energy for every sensor over time % function energyMatrix = showEnergy(filename,flag) data=readSim(filename); Ni=14; Nj=13; coor=[0 0]; energyMatrix=zeros(Ni,Nj); pressure=0; for i=0:87 coor=sensorNumber(i); energyMatrix(coor(1),coor(2))=abs(energySensor(data,i)); end energyMatrix=normalizeMatrix1(energyMatrix); if (flag==1) surfc(energyMatrix); labelFigure(1); end _________________________________________________________________________________ 151 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • showForce % This function is to plot the Force against Time % function force = ShowForce (filename) data = readSim (filename); dataSize=size(data); force=0; for i=1:dataSize(1) aux=0; for j=1:dataSize(2) aux=aux+sum(data(i,j)); end if (i==1) force (i)=aux; else force(i)=aux+force(i-1); end end plot (force); _________________________________________________________________________________ 152 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • showForce3D % This function is to create a 3-D graph for the Force (Intensity) % % time is the moment at which we're plotting the graph % function matrix3D = showForce3D(data,time) matrix3D=mapMatrix(data,time); dataSize=size(matrix3D); Ni=dataSize(1); Nj=dataSize(2); aux=zeros(Ni,Nj); for n=1:time if (n~=1) matrix3D = matrix3D+mapMatrix(data,n-1); else matrix3D=mapMatrix(data,1); end end matrix3D=matrix3D*(-1); matrix3D=normalizeMatrix1(matrix3D); surfc(matrix3D); set(gca,'xlim',[0 16],'ylim',[0 16],'zlim',[-1 1],'NextPlot','replace','Visible','on'); _________________________________________________________________________________ 153 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • threshold % Thresholds the matrix with the average value % function matrix = threshold(matrix) dataSize=size(matrix); Ni=dataSize(1); Nj=dataSize(2); n=1; h = zeros(Ni*Nj,1); % we calculate the histogram of the image % for i=1:Ni for j=1:Nj if ( matrix(i,j)~=0 ) h(n)=matrix(i,j); n=n+1; end end end % we calculate the Threshold as T = mean + stdv*CV % % where CV=stdv/mean (dispersion coefficient) % Th=mean(h) + std(h)*( std(h)/mean(h) ); for i=1:Ni for j=1:Nj if ( matrix(i,j)<=Th ) matrix(i,j)=0; end end end _________________________________________________________________________________ 154 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Apéndice II. Funciones para las muestras reales II1. Listado de funciones • blendData: Esta función se ha diseñado con el propóstio de leer los datos tal y como vienen dados por el panel de sensores. Éste proporciona la información seccionada en ficheros en formato binario, cada uno de los cuales contiene los datos correspondientes a 16 sensores. La función lee todos estos ficheros, ordena los datos y los almacena en una matriz con tantas columnas como sensores y tantas filas como instantes de muestreo. • getFootstepsR: Se trata de una versión mejorada de la función comentada en apartados anteriores getFootsteps. La función identifica, dentro de un fichero, las secciones de datos pertenecientes a las diferentes pisadas. Las pisadas identificadas en el fichero son aisladas y almacenadas en archivos independientes, todos ellos de la misma duración. En principio se ha optado por una duración estática de 1000 muestras para cada pisada, aunque si la condición resulta demasiado restrictiva se puede optar por una duración dinámica. • readData88: Este script se encarga de leer los datos correspondientes a una pisada, una vez se ha aplicado la función anterior; es decir lee los datos correspondientes a los 88 sensores y los almacena en una matriz de 1000x88 (1000 muestras y 88 sensores). • readDataNw: Se emplea para leer los datos en bloques de 16, antes de que los datos se ordenen y se almacenen en archivos de pisadas independientes. • reduceFootstep: Esta función elimina las columnas sobrantes que no contienen datos, una vez se han leído de los ficheros proporcionados por el panel. Recordemos que al leer datos en bloque de 16 se obtiene una matriz de 96 colunas, las últimas de las cuales no contienen información, por lo que mediante este script se reduce su tamaño a 88. • setUp: En esta función se han implementado los procesos de acondicionamiento de señal; elminación de ruido y offset y filtrado. • swapSens: Debido al modo en que se ha conectado el panel, los datos de los sensores vienen dados en orden inverso al que nos interesa para trabajar con ellos. Esta función toma los datos proporcionados y los ordena adecuadamente. _________________________________________________________________________________ 155 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ II2. Códigos de las funciones • blendData: function blendedData = blendData() dirList = dir('*.dat') insertCntr = 1; data = readDataNw(dirList(1).name); blendedData = zeros(length(data),length(dirList)*16); for i=1:length(dirList) data = readDataNw(dirList(i).name); %for j=1:16 % data(:,j) = data(:,j)-mean(data(1:50,j)); %end blendedData(:,insertCntr:insertCntr+15) = data; insertCntr = insertCntr + 16; end _________________________________________________________________________________ 156 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • getFootstepsR: % Retrieves footsteps from the file provided by the sensor % function getFootstepsR(M,filename) M=setUp(M); T=1000; % 1000, 1500, 2000 possible values dataSize=size(M); noiseMatrix=zeros(T,dataSize(2)); first T samples % contains noise values for the p=1; % pointer to go across file pstart=0; pend=0; the current footstep % pointers to the start and end of flag=1; searching for footstep start % indicates state. flag=1 % flag=0 searching for footstep end. N=30; % correction value for the pointer n=1; % current footstep h=zeros(1,dataSize(2)); it we have to increase size % We will use this to cat matrixes sizz=zeros(1,2); % This will measure the size of the gathered footstep before writting file aux=[]; % this matrix will contain T samples to be written in a binary file values=zeros(1,dataSize(2)); signals in one moment in time % contains the values of all the for i=1:T for j=1:dataSize(2) noiseMatrix(i,j)=M(i,j); end end Th=max(max(noiseMatrix)); Th=Th+Th*1.5; to small variations % We add 33% to avoid sensitivity while ( p<=dataSize(1) ) % loop to sweep the file _________________________________________________________________________________ 157 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ for j=1:dataSize(2) values(1,j)=M(p,j); end if (flag==1) % searching for start of footstep if ( max(abs(values))>Th ) % start of footstep has been found pstart=p-N; flag=0; % change flag end end if (flag==0) % calculating end of footstep if ( max(abs(values))<Th ) % end of footstep has been found pend=p+N; flag=1; % change flag p=pstart; % Go back to the start of footstep for i=1:(pend-pstart) for j=1:dataSize(2) aux(i,j)=M(p,j); end p=p+1; end aux=round(aux); % Now we make sure the length of the footstep is no more or less % than T sizz=size(aux); if ( sizz(1)>T ) % Footstep is longer than T while ( sizz(1)>T ) aux(sizz(1),:)=[]; sizz(1)=sizz(1)-1; end elseif ( sizz(1)<T ) % Footstep is shorter than T _________________________________________________________________________________ 158 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ while ( sizz(1)<T ) aux=cat(1,aux,h); sizz(1)=sizz(1)+1; end end fid=fopen(sprintf('%s%s%d',filename,'_FOOTSTEP_',n),'wb'); fwrite(fid,aux','int16','l'); fclose(fid); n=n+1; p=pend; after the footstep flag=1; % next footstep number % we make sure we set the pointer % change flag to go for the next step end end p=p+1; end _________________________________________________________________________________ 159 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • readData88: function ddaa = readData88(filename) fid = fopen(filename,'r','b'); %dSize = length(fread(fid,inf,'uchar')); %frewind(fid); %counter = 3; %foundbegin = 0; %data = fread(fid,10,'uchar'); % while((counter<10)&&(~foundbegin)) %%% % if((data(counter)==170)&&(data(counter1)==170)&&(data(counter-2)==170)) %% foundbegin=1; % else % counter = counter + 1; % end % end % if(foundbegin) % frewind(fid); data = fread(fid, inf, 'int16',0,'l'); fclose(fid); sizz = size(data)/88; sizz = sizz(1) counter =1; ddaa = zeros(sizz,88); for i=1:sizz for j=1:88 ddaa(i,j)=data(counter); counter = counter + 1; end end % end _________________________________________________________________________________ 160 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • readDataNw: function ddaa = readDataNw(filename) fid = fopen(filename,'r','b'); %dSize = length(fread(fid,inf,'uchar')); %frewind(fid); %counter = 3; %foundbegin = 0; %data = fread(fid,10,'uchar'); % while((counter<10)&&(~foundbegin)) %%% % if((data(counter)==170)&&(data(counter1)==170)&&(data(counter-2)==170)) %% foundbegin=1; % else % counter = counter + 1; % end % end % if(foundbegin) % frewind(fid); data = fread(fid, inf, '16*int16=>int16',0,'l'); fclose(fid); sizz = size(data) / 16; sizz = sizz(1) counter =1; ddaa = zeros(sizz,16); for i=1:sizz for j=1:16 ddaa(i,j)=data(counter); counter = counter + 1; end end _________________________________________________________________________________ 161 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ • reduceFootstep: function M = reduceFootstep (M) dataSize=size(M); while ( dataSize(2)>=89 ) M(:,dataSize(2))=[]; dataSize(2)=dataSize(2)-1; end • setUp: % This function eliminates the offset and filters the signals coming from % the sensor panel. It sets the signals up. function data_out=setUp(data_in) dataSize=size(data_in); data_out=zeros(dataSize(1),dataSize(2)); m=mean(mean(data_in)); % offset (average) [b,a]=cheby2(2,60,350/512); % filter chebyshev data_out=data_in-m; data_out=filter(b,a,data_out); data_out=round(data_out); • swapSens: function data = swapSens(gData) gData(:,49:64) = gData(:,64:-1:49); gData(:,33:48) = gData(:,48:-1:33); gData(:,17:32) = gData(:,32:-1:17); gData(:,1:16) = gData(:,16:-1:1); gData(:,65:80) = gData(:,80:-1:65); gData(:,81:96) = gData(:,96:-1:81); data = gData; _________________________________________________________________________________ 162 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Bibliografía David Zhang, Xiaoyuan Jing, Jian Yang, “Biometric Image Discrimination Technologies”, IDEA GROUP PUBLISHING, 2006 Leandro Rodríguez Liñares, Carmen García Mateo, José Luis Alba Castro, “On combining classifiers for speaker authentication”, PATTERN RECOGNITION, 2001 H. Kang, T.F. Cootes, C.J. Taylor, “A Comparison of Face Verification Algorithms using Appearance Models”, DEP. IMAGING SCIENCE AND BIOMEDICAL ENGINEERING, UNIVERSITY OF MANCHESTER UK K. Messer, J. Matas, J. Kittler, “XM2VTSDB: The Extended M2VTS Database”, SECOND INTERNATIONAL CONFERENCE ON AUDIO AND VIDEO-BASED BIOMETRIC PERSON AUTHENTICATION, WASHINGTON D.C. 1999 Jaakko Suutala, Susanna Pirtikkangas, Jukka Riekki, Juha Röning, “Reject-optional LVQ-based Two-level Classifier to Improve Reliability on Footstep Identification”, INTELLIGENT SYSTEMS GROUP, UNIVERSITY OF OULU, FINLAND Michael D. Addlesse, Alan Jones, Finnbar Livesey and Ferdinando Samaria, “The ORL Active Floor”, OLIVETTY AND ORACLE RESEARCH LABORATORY, IEEE PERSONAL COMMUNICATIONS, 1997 Robert J. Orr, Gregory D. Abowd, “The Smart Floor: A Mechanism for Natural User Identification and Tracking”, GRAPHICS, VISUALIZATIONS AND USABILITY CENTER, GEORGIA INSTITUTE OF TECHNOLOGY, ATLANTA Jaakko Suutala, Juha Röning, “Towards the Adaptative Identification of Walkers: Automated Feature Selection of Footsteps”, INTELLIGENT SYSTEMS GROUP, UNIVERSITY OF OULU, FINLAND Lee Middleton, Alex A.Buss, Alex I. Bazin, Mark S. Nixon, “A Floor System for Gait Recognition”, SCHOOL OF ELECTRONICS AND COMPUTER SCIENCE, UNIVERSITY OF SOUTHAMPTON UK Javier Ortega García, “Modalidades en los Sistemas de Autenticación Biométrica”, LABORATORIO DE IDENTIFICACIÓN BIOMÉTRICA, ÁREA DE TRATAMIENTO DE VOZ Y SEÑALES, UNIVERSIDAD POLITÉCNICA DE MADRID. Wende Zhang, Yao-Jeng Chang, Tsuhan Chen, “Optimal Thresholding for Key Generation Based on Biometrics”, CARNEGIE MELLON UNIVERSITY, INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE, TAIWAN _________________________________________________________________________________ 163 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea RECONOCMIENTO AUTOMÁTICO DE PISADAS ______________________________________________________________________________________________ Nikolaos V. Boulgouris, Dimitrios Hatzinakos, Konstantinos N. Plataniotis, “Gait Recognition: A Challenging Signal Processing Technology for Biometric Authentication”, IEEE SIGNAL PROCESSING MAGAZINE, NOVEMBER 2005 Yasuhiro Shoji, Takashi Takasuka, Hiroshi Yasukawa, “Personal Identification Using Footstep Detection”, AICHI PREFECTUAL UNIVERSITY, NAGAKUTE, AICHI, JAPAN, IEEE 2004 Jaakko Suutala, Juha Röning, “Combining Classifiers with Different Footstep Feature Sets and Multiple Samples for Person Identification”, INTELLIGENT SYSTEMS GROUP, UNIVERSITY OF OULU FINLAND Jae-Seok Yun, Seung-Hun Lee, Woon-Tack Woo, Je-Ha Ryu, “The User Identification System Using Walking Pattern over the UbiFloor”, DEPARTMENT OF MECHATRONICS, GWANJU KOREA, ICCAS 2003 Kalle Koho, Jaakko Suutala, Tapio Seppänen, Juha Röning, “Footstep Pattern Matching from Pressure Signal Using Segmental Semi-Markov Models”, INTELLIGENT SYSTEMS GROUP, UNIVERSITY OF OULU FINLAND _________________________________________________________________________________ 164 Escuela Superior de Ingenieros de Sevilla Antonio González Mirón University of Wales, Swansea