OpenCV es una librería Open Source para la visión artificial o visión por computadora (del inglés computer vision) escrita en C y C++. Corre bajo Linux, Windows y Mac OS X. También se puede utilizar con lenguajes como Python, Ruby, Matlab entre otros.
Esta librería fue desarrollada originalmente por Intel en sus laboratorios de investigación, y fue concebida como una manera de hacer disponible universalmente la infraestructura para la vision artificial.
Con el objetivo de que OpenCV sea utilizada para promover el uso comercial y la investigación, es abierta y libre. Esto quiere decir que puede ser embebida completa o parcialmente en otras aplicaciones sin la obligación de que esas aplicaciones sean abiertas o libres.
Esta librería puede ser encontrada en SourceForge.net donde podrán descargarla o ir a la documentación en línea, la cual es muy completa.
¿Qué se puede hacer con OpenCV? Bueno, las posibilidades solo tienen el límite de quien la utilice, sin embargo algunas de las aplicaciones de esta librería son, principalmente, la detección, reconocimiento y rastreo de objetos.
En este campo de aplicación algunos usos puntuales son por ejemplo la detección de objetos "olvidados" en un aeropuerto, como valijas, bolsas, paquetes, etc. Esto ayuda al personal de seguridad a tomar acciones preventivas contra atentados terroristas. Otro caso muy práctico es la detección de movimiento para sistemas de seguridad en oficinas, bancos, comercios, etc. Se dispone una webcam conectada a una PC y el software con OpenCV es capaz de grabar aquellos frames donde se ha detectado movimiento para que luego el personal de seguridad analice las imágenes para saber quién o qué "anduvo" por el lugar.
Si se realiza una búsqueda en internet sobre el tema verán que otra aplicación muy útil es el reconocimiento de rostros. Parece un concepto muy simple porque nuestro cerebro está preparado para realizar esa tarea desde el momento en que podemos "ver" cuando se es apenas un recién nacido, pero el tema es muy diferente cuando hay que hacer que una computadora realice esa simple tarea.
El reconociento de rostros trae aparejada un gran cantidad de tareas que combinadas logran el objetivo.
Primero hay que "saber" cómo se compone un rostro, qué forma tiene, etc. Parece muy simple ¿no? ... En realidad no tanto.
El software de reconocimiento debe "saber" qué características buscar dentro de una imagen y luego comparar esas características con la imagen para lograr coincidencias y si las hubiere determinar si es o no un rostro. Un software sencillo solo debería considerar que un rostro posee dos ojos, nariz y boca todo circunscripto en una figura geometrica que bien podría ser un círculo o elipse.
Ahora bien, el truco está en que dependiendo del ángulo de la cámara el rostro y todo su "contenido" se deforma, es decir adquiere perspectiva con lo cual el reconocimiento puede complicarse. También debe considerar el tamaño o mejor dicho tiene que poder saber que un rostro pequeño y uno grande siguen siendo rostros no solo porque puede ser el de un niño o el de un adulto sino que puede ser un rostro alejado de la cámara o uno muy cercano.
Las técnicas para el reconocimiento de rostros son diversas, pero todas son un conjunto de fórmulas matemáticas, algunas más complejas que otras.
Bien, ¿para qué podría servir todo esta complejidad para un problema tan simple? sencillo, lamentablemente hay mucha gente que no tiene acceso a la tecnología, por ejemplo a una PC debido a que por algún motivo le es imposible utilizar sus manos ya sea porque le fueron amputadas o por algún tipo de parálisis. Este tipo de software podría ayudar a estas personas.
En un artículo anterior de este blog se ha mencionado un programa que permite manejar el puntero del mouse solamente con la cabeza, puntualmente con la gesticulación del rostro o con el movimiento de la cabeza.
OpenCV es una librería con un potencial muy grande y como se dijo al principio, solo está limitada por quien la utilice.
En próximos artículos se expondrán ejemplos prácticos del uso de esta útil librería.
Esta librería fue desarrollada originalmente por Intel en sus laboratorios de investigación, y fue concebida como una manera de hacer disponible universalmente la infraestructura para la vision artificial.
Con el objetivo de que OpenCV sea utilizada para promover el uso comercial y la investigación, es abierta y libre. Esto quiere decir que puede ser embebida completa o parcialmente en otras aplicaciones sin la obligación de que esas aplicaciones sean abiertas o libres.
Esta librería puede ser encontrada en SourceForge.net donde podrán descargarla o ir a la documentación en línea, la cual es muy completa.
¿Qué se puede hacer con OpenCV? Bueno, las posibilidades solo tienen el límite de quien la utilice, sin embargo algunas de las aplicaciones de esta librería son, principalmente, la detección, reconocimiento y rastreo de objetos.
En este campo de aplicación algunos usos puntuales son por ejemplo la detección de objetos "olvidados" en un aeropuerto, como valijas, bolsas, paquetes, etc. Esto ayuda al personal de seguridad a tomar acciones preventivas contra atentados terroristas. Otro caso muy práctico es la detección de movimiento para sistemas de seguridad en oficinas, bancos, comercios, etc. Se dispone una webcam conectada a una PC y el software con OpenCV es capaz de grabar aquellos frames donde se ha detectado movimiento para que luego el personal de seguridad analice las imágenes para saber quién o qué "anduvo" por el lugar.
Si se realiza una búsqueda en internet sobre el tema verán que otra aplicación muy útil es el reconocimiento de rostros. Parece un concepto muy simple porque nuestro cerebro está preparado para realizar esa tarea desde el momento en que podemos "ver" cuando se es apenas un recién nacido, pero el tema es muy diferente cuando hay que hacer que una computadora realice esa simple tarea.
El reconociento de rostros trae aparejada un gran cantidad de tareas que combinadas logran el objetivo.
Primero hay que "saber" cómo se compone un rostro, qué forma tiene, etc. Parece muy simple ¿no? ... En realidad no tanto.
El software de reconocimiento debe "saber" qué características buscar dentro de una imagen y luego comparar esas características con la imagen para lograr coincidencias y si las hubiere determinar si es o no un rostro. Un software sencillo solo debería considerar que un rostro posee dos ojos, nariz y boca todo circunscripto en una figura geometrica que bien podría ser un círculo o elipse.
Ahora bien, el truco está en que dependiendo del ángulo de la cámara el rostro y todo su "contenido" se deforma, es decir adquiere perspectiva con lo cual el reconocimiento puede complicarse. También debe considerar el tamaño o mejor dicho tiene que poder saber que un rostro pequeño y uno grande siguen siendo rostros no solo porque puede ser el de un niño o el de un adulto sino que puede ser un rostro alejado de la cámara o uno muy cercano.
Las técnicas para el reconocimiento de rostros son diversas, pero todas son un conjunto de fórmulas matemáticas, algunas más complejas que otras.
Bien, ¿para qué podría servir todo esta complejidad para un problema tan simple? sencillo, lamentablemente hay mucha gente que no tiene acceso a la tecnología, por ejemplo a una PC debido a que por algún motivo le es imposible utilizar sus manos ya sea porque le fueron amputadas o por algún tipo de parálisis. Este tipo de software podría ayudar a estas personas.
En un artículo anterior de este blog se ha mencionado un programa que permite manejar el puntero del mouse solamente con la cabeza, puntualmente con la gesticulación del rostro o con el movimiento de la cabeza.
OpenCV es una librería con un potencial muy grande y como se dijo al principio, solo está limitada por quien la utilice.
En próximos artículos se expondrán ejemplos prácticos del uso de esta útil librería.
Comentarios
Publicar un comentario