martes, 7 de enero de 2014

Pero...¿por qué ahora?

Una de las razones por las que nos hemos animado a volver a escribir en este blog es que recibimos un correo de una persona que estaba interesada en la verificación biométrica pidiéndonos ayuda, pues estaba realizando un proyecto similar. Gracias a que, para ayudar a esta persona, tuvimos que desenterrar conceptos, scripts y documentos que teníamos guardados desde hacía tiempo, empezamos a recordar nuestro trabajo, y finalmente decidimos escribir unas entradas a modo de conclusión y recuerdo


domingo, 15 de diciembre de 2013

El principio

Cuando empezamos, no teníamos mucha idea de todos los temas que acabamos tocando. Sí, uno de nosotros tenía experiencia previa en programación web, y sí, habíamos ejecutado algún script en Matlab,  pero no sabíamos nada de identificación biométrica, qué parámetros se pueden usar para identificar a una persona sin necesidad de un login y una contraseña, etc. Aunque nuestro proyecto iba sobre verificación, no sobre identificación, que siempre resulta más sencillo, aprendimos conceptos clave que nos adentraron en este mundo tan amplio y complejo, y que se encuentra cada vez más presente en la actual sociedad de la información.


Así que allá fuimos, un poco a ciegas al principio, pero con el paso del tiempo con las cosas cada vez más claras.


lunes, 9 de diciembre de 2013

¡Volvemos!

Han pasado casi dos años desde que empezamos este proyecto, y creemos que es un buen momento para mirar hacia atrás y analizarlo, ya con perspectiva.

En los próximos días publicaremos entradas en las que analicemos distintos asuntos que fueron significativos en el proyecto o simplemente recuerdos que guardemos del tiempo que invertimos en esta tarea.

Un saludo


sábado, 26 de mayo de 2012

Demostración final

Buenas

La demostración final la podéis ver aquí:

https://dl.dropbox.com/u/64185860/XT-5.wmv [Enlace corregido]

Cuando sea colgada por la cuenta de lsed de YouTube, pondremos directamente el video.

Finalmente, queríamos agradecer a los usuarios de prueba su ayuda: Ana, Belén, Carlos, Cecilia, Claudia, Cristina, Jesús, Juan, Luis Fernando, Manolo, Manuel, Nacho, Paqui, Rebecca y Samuel.

Un saludo


martes, 15 de mayo de 2012

Atando hilos

A menos de una semana de la entrega final, nos queda una parte muy importante: asegurarnos de que todo funciona bien e intentar mejorarlo para evitar cualquier posible fallo o imprevisto en el resultado final.

Con toda la interfaz web ya terminada, nuestro objetivo es estudiar en detalle los sistemas de reconocimiento que hemos construido. Para ello tenemos que realizar más pruebas de las que ya habíamos hecho con más personas. Con estas pruebas obtendremos una tasa de error, en función de la cual nos daremos por satisfechos o buscaremos cómo mejorarlo.

Además, es importante que lo hagamos en situaciones variadas: diferentes condiciones de iluminación para el reconocimiento facial y diferentes micrófonos o condiciones de ruido en el de voz.

Hemos añadido un par de mejoras que serán comentadas en detalle en el futuro. Os dejo con las ganas por ahora.


Esta parte de hoja de cálculo es una parte de las pruebas que estamos haciendo para el reconocimiento de voz. Estamos usando todas las grabaciones de las que disponemos y que hemos ido recopilando en los últimos meses.

Ya hemos pensado una técnica para mejorar el reconocimiento de voz, por lo que en la versión final esperamos que haya menos números rojos (fallos).

En cuanto al reconocimiento facial, finalmente nos decantamos por el método de mirar todas las fotografías de la base de datos y, si la foto más parecida corresponde al DNI introducido, permitir el acceso. Conseguimos ejecutar el script de Matlab que realiza el reconocimiento en la página web y ahora estamos también haciendo pruebas para determinar la tasa de error. En cuanto tengamos algún resultado lo publicaremos por aquí.


miércoles, 25 de abril de 2012

Impostores al acecho

Actualizado 5/4/2012



No sólo estamos haciendo un sistema de verificación, también un sistema de seguridad contra personas externas o impostores.

No basta con dar una solución tan simple como si una grabación de audio se parece lo suficiente o no a un usuario como para garantizar que es él. Pongamos un ejemplo. He usado personajes famosos para atraer la atención, pero después hay una explicación más técnica para el caso de reconocimiento por voz.

Eddard Stark tiene un usuario en nuestro sistema y quiere reservar un puesto de laboratorio porque no le funciona la reverberación del ecualizador de LSED. Usa el login por voz, obteniendo un score final de 0.6. Como el score supera el umbral (a cero), se le permite acceder al sistema.

Al día siguiente, Tyrion Lannister decide que va a intentar reservar puesto de laboratorio haciéndose pasar por Eddard, simplemente para probar lo segura que es nuestra práctica.

Ambos hombres tienen una voz parecida, por lo que Tyrion obtiene una puntuación de 0.4. Como supera el umbral, se le da acceso, por lo que el sistema ha fallado. Tyrion es inmensamente rico (Have you ever heard the phrase "Rich as a Lannister?"), pero viendo el fracaso de la identificación biométrica, no invierte en nuestro proyecto. Desastre.

Cuando Tyrion hace login, es un impostor. Tenemos que tomar medidas contra él. No podemos luchar contra que su voz grabada sea parecida a la de Eddard, pero sí podemos compararla con otras voces.

Si Eddard hace login, obtendrá la máxima puntuación cuando comparemos con su propio modelo, y el parecido será menor al compararle con otras personas. Por otro lado, si Tyrion hace login, es posible que se parezca a Eddard y saque un 0.4, pero también es posible que se parezca a otras personas más que a Eddard (scores más altos). Si sucede esto, podríamos deducir que la grabación no es del usuario verdadero.



lunes, 23 de abril de 2012

Avanzando en el reconocimiento facial

A lo largo de la semana pasada tuvimos varios avances en la parte de reconocimiento facial.

Para empezar tuvimos que modificar el programa original en varios aspectos para que, por ejemplo, los métodos pudieran tomar el dni que el alumno ha introducido como parámetro para realizar las comparaciones o que devolviesen la distancia mínima a la cara elegida como "más parecida" para poder usarla también para la toma de decisiones.

Finalmente nos decidimos por colocar un recuadro encima de una zona del cuadro de captura para que el usuario coloque su cara ahí y luego recortarla. Esta decisión fue debida a que, en caso de usar software, el tiempo de detección de caras era demasiado alto, y la probabilidad de error no demasiado buena.

Como ya comentamos en la presentación y en una entrada anterior, tenemos dos formas de realizar la comprobación de que la persona es quien dice ser. Ambas tienen sus ventajas y sus inconvenientes, y por lo tanto no descartamos a priori ni la una ni la otra: