Una selfie y un Login biométrico

Tengo un serio conflicto con los passwords: no me los acuerdo. Nunca; y día a día los canales digitales te piden más y más passwords.

Selfies y reconocimiento facial

No descubro nada si digo que hoy por hoy hay tecnología de sobra para poder hacer reconocimiento facial y con eso evitar un login con datos y hacerlo con una foto. Tecnologías como Google Vision , Amazon Recognition o OpenCV permiten construir soluciones de reconocimiento fácil por lo que parte del camino está recorrido. Algo estuve contando hace unos días por acá

Si a muchas personas no les molesta sacarse selfies todo el tiempo, podríamos usar ese “hábito” para algo más que llenar las redes sociales de fotos!

Prototipo

Pasando del dicho al hecho, me propuse a armar un prototipo haciendo uso de estas dos oportunidades: tecnología disponible + furor por las selfies (no el mío). ¿Por qué armar un prototipo para esto?

  1. Porque es un problema real que merece una solución.
  2. Just because I can.

El concepto era simple y concreto: el prototipo debía permitir a un usuario realizar 2 operaciones básicas Onboarding (registrase) y login (sacarse una selfie ¡Cuac!):

Onboarding: registrarse utilizando una foto de su DNI y una selfie. Extraer del DNI los datos básicos de la persona utilizando el código de barras del DNI (gracias Pablo Nieloud).

Paso siguiente se extraen todos los datos del DNI y se realiza la validación de las fotos de la persona, tanto para comparar DNI + selfie, como para indexar algún gesto (por ejemplo un ojo en guiño). En el prototipo extraigo todos los gestos. Después para algún caso concreto se determinará cuál es el más significativo.

Además de detectar el rango de edad de la persona de la foto y el sexo, podemos sacar cosas, como si se está riendo o si tiene anteojos de sol (para algo servirá…)

Luego se realizan una serie de preguntas de validación de identidad, utilizando alguna de las APIs que existen en Argentina para esto.

Por último, un ok final que confirma que el proceso fue terminado.

Login full: el onboarding técnicamente detecta las caras de la persona (post comparación) e indexa la cara de la persona en la plataforma, asignándole un ID (además de guardar el gesto, por ejemplo: guiño). Para implementar un login solo alcanza con que la persona se saque una selfie (con el gesto que hizo en el onboarding o ningún gesto, si no se hizo ninguno) y realizar una identificación biométrica positiva.

Ejemplo (no pongo la captura con mi selfie porque asusta):

Taran!!!!!!!!!!!

Administración backoffice: por otra parte, tuve que crear algunas funcionalidades para poder indexar usuarios “a manopla” y tener masa crítica de caras ya registradas para salir a probarlo internamente en Flux IT. Para eso tomé las fotos de perfil que todos los fluxers tienen y creé una app web que permite subir una foto de una cara y “decirle” al sistema quién es.

Tecnologías

Para este prototipo utilice las siguientes tecnologías:

AWS Recoognition, para el indexado de las caras y el reconocimiento directo o por comparación.

Node.js/Express, para construir el backend y todas sus APIs.

S3 Buckets, para guardar las imágenes de los perfiles. No es necesario guardarlas dado que AWS recognition no requiere guardarlas, pero el prototipo quería que cuando te identifica (por ejemplo en el login only foto) te muestre tu foto original.

AWS Beanstak, para correr el backend de administración y algunas de las APIs internas.

IONIC2/Angular 2, para crear la aplicación mobile híbrida, en este caso.

IONIC Build Cloud, para realizar el ensamblado y compilación de la app mobile, para su distribución.

Python OPENCV, para implementar un backend alternativo a AWS, que también funciona muy bien !! (aunque un poco más lento).

Docker, para empaquetar toda la solución del backend Node.js y la versión Python también, e instalarla en otro server sin tener que instalar todos los paquetes.

Rancher, el server de Docker que utilizamos en Flux IT y que armó "el Nene" Anselmo Abadía y que tantas alegrías nos está dando.

¿Y ahora qué ?

Luego de armarlo y divertirme un rato con la tecnología, lo salí a probar. Primero internamente en Flux IT, y luego con algunos clientes. Ahora estamos por empezar a implementarlo como mecanismo de login alternativo en aplicaciones internas de Flux IT, y ya estamos hablando con algunos clientes para incorporarlo como proceso de onboarding digital de nuevos clientes en Bancos. Próximamente mas novedades de cómo se comporta esto en la vida real. Pase lo que pase, el proceso fue divertido.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.