ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.
Seguro que si has usado Facebook u otras redes sociales te has fijado en cómo se detectan de manera automática las caras en las fotografías, para que podamos “tagear” a los que aparecen en ellas.
Hacer detección de caras en una fotografía arbitraria es algo bastante más complicado de lo que parece. Seguro que conseguirlo desde cero es un estupendo proyecto para un reto personal en los fines de semana. Pero si tenemos que implementarlo en una aplicación real en el trabajo y de manera confiable, será mucho mejor encontrar una solución más rápida.
Existen varias soluciones comerciales y Open Source enfocadas a conseguir precisamente eso. La biblioteca más famosa es sin duda Intel Open Computer Vision que va mucho más allá de la simple detección de caras. Está escrita en C++ y es bastante compleja. Para facilitar su uso desde aplicaciones .NET existe un envoltorio llamado Emgu CV que expone su funcionalidad de manera directa en esta plataforma.

Estas bibliotecas son bastante complejas de aprender y manejar.
Sin embargo existe un proyecto Open Source, menos conocido, pero que nos ofrece ésta y muchas otras funcionalidades expuestas de manera sencilla y rápida de usar. Se trata de Accord.net. Entre sus muchas características tiene capacidades matemáticas, estadísticas, de aprendizaje automatizado y algoritmos neuronales, controles de todo tipo para soportar estas aplicaciones y, por supuesto, lo que nos interesa en este caso: gestión inteligente de imágenes, vídeo y visión artificial.
Gracias a Accord.net es posible implementar la detección de un número cualquiera de caras de personas en una fotografía ¡con tan solo 10 líneas de código!
En este artículo de Dejan Mauer (inglés) nos explica cómo conseguirlo en unos minutos. Incluye código fuente de ejemplo.
Fecha de publicación: