Inteligencia Artificial: La Detección facial y sus aplicaciones

Inteligencia Artificial: La Detección facial y sus aplicaciones

Hoy en día gracias a la inteligencia artificial se pueden desarrollar utilidades que sólo hace unos pocos años parecían ciencia ficción, y que pueden tener multitud de aplicaciones. Desde hace relativamente poco es posible hacer reconocimiento facial e identificar personas, lo que abre un mundo de posibilidades, sobre todo en entornos empresariales con actividad comercial. La capacidad de procesamiento de los ordenadores de hace unos años hacía este proceso costoso, pero hoy en día la evolución del hardware, la aplicación de los algoritmos, y la utilización de ciertos servicios en la nube hacen posible la identificación de personas a tiempo real.

El motor de esta tecnología de reconocimiento facial son servicios cognitivos ofrecidos en la nube, por parte de unos cuantos partners, algunos del nivel de Microsoft, Google, Amazon, IBM, y accesibles bajo pago por uso. Por mencionar algunos nombres tenemos la Face API de Microsoft, Rekognition de Amazon Web Services, Google Cloud Vision, Visual Recognition de IBM Watson, Face++, Kairos, Face Recognition de Animetrics… la lista de proveedores de este servicio no para de crecer. No sólo se centran en detección facial, sino que, dentro de una imagen podemos identificar entre otros, objetos, texto, escenarios o paisajes, comida, o animales.

Entre las posibilidades que ofrecen los servicios cognitivos de detección facial podemos citar:

  • Detección de caras en imágenes: podemos clasificar distintas imágenes en función de si en ella aparece o no alguna cara. O también generar alguna alarma si en un video se detecta una cara.
  • Comparación de caras: de dos imágenes distintas en las que haya una cara podemos saber si pertenecen a la misma persona o no.
  • Búsqueda de caras similares: de una imagen seleccionada podemos conocer la probabilidad de una cara que aparezca en ella pertenezca a una persona de otras imágenes que facilitemos al algoritmo. Con ello podríamos por ejemplo agrupar imágenes de una misma persona.
  • Atributos de una cara: podemos conocer, de una cara o varias que aparezcan en una imagen, si tiene gafas, si lleva barba, el color de ojos y el de su piel, la emoción, el sexo, la edad.
  • Identificación de personas: de una imagen que enviamos al algoritmo nos devuelve una lista de candidatos, con su porcentaje de fiabilidad, de pertenencia a una de las personas que previamente hemos pasado al algoritmo.

Todos estos servicios funcionan de forma parecida, entrenando un modelo de inteligencia artificial, que tiene mayores aciertos cuantos más datos se le añade y más se entrena. Si quisiéramos saber si la cara de una persona que aparece en una imagen pertenece a alguna persona registrada previamente, el proceso sería el siguiente:

1)      La primera vez que aparece esa persona el algoritmo nos diría que no pertenece a ninguna persona, ya que no tiene candidatos.

2)      Lo siguiente sería crear una persona nueva en nuestro ‘banco de personas’, con un nombre que se inventa el algoritmo o que podemos añadir nosotros si queremos. Cada persona tendrá un ‘banco de caras’, con la información de cada una de las caras que previamente hemos registrado. Cuando creamos una persona nueva añadiríamos su cara a ese almacén de caras. La persona ya estaría creada en nuestro ‘banco de personas’, y tras entrenar el ‘banco de personas’ ya podríamos reconocer esta persona en otra imagen.

Banco personas
Banco personas

3)      La siguiente vez que aparezca en una imagen la cara de esa persona, el algoritmo nos dirá que pertenece a esa persona con un porcentaje de fiabilidad, y si queremos, podríamos añadir la información de esa cara al ‘banco de caras’ de esa persona. Cuantas más caras añadamos a ese almacén de caras personal más fiabilidad tendremos a la hora de reconocerla. Tras añadir la cara entrenamos el ‘banco de personas’ de nuevo.

El reconocimiento facial se basa en identificar los atributos de una cara dentro de una imagen, como los ojos, nariz, boca, pelo, orejas… Si de un conjunto de imágenes buscamos las caras que aparecen en ellas y le decimos al algoritmo que aprenda el patrón o características comunes que aparecen en una cara, al final, tras un entrenamiento, el algoritmo será capaz de reconocer si en una foto aparece una cara o no. Podemos hacer lo mismo con fotos con perros, plantas, letras y textos, coches…, el funcionamiento es similar.

En Amura IT somos especialistas en desarrollar e implementar tecnologías de reconocimiento facial o de detección de objetos en imágenes como soluciones en distintos negocios.

Si vamos un paso más allá, una vez que hemos reconocido una cara en una foto, podemos fijarnos en ciertos atributos de unos ojos, como la distancia entre ellos y la distancia a las cejas, su color, si son rasgados o no, su tamaño… Lo mismo con la boca, con la nariz, orejas y demás atributos de una cara. De esta manera podemos llegar a distinguir a una persona de otra, por las características únicas que reúnen sus atributos.

cara AI
cara AI

No siempre es necesario utilizar los servicios de la nube en esta tecnología, puesto que ciertos lenguajes de programación cuentan con algoritmos capaces de hacer este reconocimiento de objetos, siempre que previamente hayamos creado un modelo con un banco de imágenes de fotos con caras, y lo hayamos entrenado. Pero hay que decir que los algoritmos que emplean los servicios de la nube están mucho más desarrollados y suelen tener más fiabilidad que los que entrena uno mismo programando.

Buscando aplicaciones prácticas para esta tecnología dentro de un negocio, con ella podríamos conocer la frecuencia con la que los clientes visitan un local, aunque no hagan ningún tipo de compra, solo con pasar delante de una cámara. Además de registrar cada paso, de esa persona se podría conocer también la edad aproximada, y el sexo, de manera que al final conseguimos un registro detallado de días y hora de visita de una persona (anonimizada).

Otra posible aplicación que podríamos llevar a cabo es conocer la emoción que transmite algo, como un producto, o lo que se proyecta en un monitor, siempre que la persona que lo mira exteriorice en una expresión facial emociones como la felicidad, sorpresa, tristeza, enfado, desprecio, asco, temor, o la neutralidad.  Basta con enfocar una cámara al espectador.

Si tu negocio fuese, por ejemplo, un concesionario de coches, podrías identificar la cara de un cliente que pasa por el servicio postventa y hacer que el comercial que le vendió su coche reciba una alerta, generando la oportunidad de tener un contacto personal.

Las aplicaciones son muchas, es la Ley de Protección de Datos, la RGPD, la que establece los límites de lo que podemos hacer con autorización de un cliente y también sin ella, pero las posibilidades son muchas, aún con datos e imágenes anonimizadas de personas.