Cuando smartphone apareció en nuestras vidas, una auténtica revolución comenzó en la mayoría de los campos. Hacer fotos con el móvil hace un par de décadas era algo impensable y menos aún si hablamos de la calidad con la que se toman las fotos actualmente. Los teléfonos ofrecen, en la actualidad, unas prestaciones y unas funciones de lo más revolucionarias e innovadoras y un ejemplo de ello es el reconocimiento facial que la mayoría de las marcas de móviles son capaces de hacer. ¿Alguna vez te has preguntado cómo los móviles consiguen reconocer tu rostro? En este post podrás descubrir los secretos del reconocimiento facial y sobre la herramienta que lo hace posible: OpenCV.
¿Qué es OpenCV?
OpenCV es una biblioteca de procesamiento de imágenes de código libre que no existiría si no fuera por Intel. Actualmente, Intel ha desarrollado esta funcionalidad para varios lenguajes de programación: C, C++, Pyton y Java. OpenCV es capaz de procesar tanto imágenes de baja calidad, es decir, con una cantidad de píxeles inferior, como otros algoritmos de una mayor complejidad que pueden servir tanto para reconocer y seguir objetos, como reconstruir mediante la tecnología de 3D, aplicar filtros a imágenes y un largo etcétera. Como podemos ver, las funcionalidades del OpenCV son muy amplias y a continuación lo veremos.
Los clasificadores en cascadas de Machine Learning
Gracias a los clasificadores de Machine Learning es posible que un dispositivo detecte si un objeto o una cara pertenece a una categoría de entradas o no. Un ejemplo de ello son los traductores automáticos, que detectan el idioma en el que un texto está elaborado, pero para que funcione es fundamental entrenar al clasificador con una serie de datos, datos de estas categorías. Los clasificadores, por lo tanto, pueden cumplir una gran variedad de funciones y la primera de ellas es el reconocimiento de objetos. Para que el reconocimiento sea posible, es necesario el uso de los clasificadores en cascada, cuyo algoritmo funciona gracias a una gran cantidad de imágenes que contienen ese objeto a identificar.
“Enseñar” al algoritmo
Cuando el algoritmo detecta estas imágenes consigue identificar el objeto en concreto. El nombre de “cascada” se debe a que para que este reconocimiento se realiza es necesario trabajar en varias fases. Es necesario trabajar en varias fases porque las imágenes contienen muchos más elementos además del objeto a identificar, por lo que, cada fase trabaja para identificar si el objeto se ubica o no en la imagen. Para que el algoritmo sepa identificar objetos es fundamental “enseñarle” como hacerlo y esto lo realizaremos facilitándole una gran cantidad de imágenes desde varios ángulos, en caso de que se trate de un objeto complejo, como, por ejemplo, un rostro. Si por ejemplo se trata de un objeto en dos dimensiones, la tarea será mucho más sencilla.