Si usted alguna vez ha estado intrigado en cómo es que funciona la visión por computadora, seguramente sabe que existen una serie de bibliotecas de software que permiten desarrollar aplicaciones que hacen que una máquina, vía una cámara, reconocer rostros, formas, etcétera. Una de las bibliotecas más usadas y más sólidas es Open CV (Open Computer Vision), que es el “caballito de batalla” en muchas aplicaciones. De hecho, los avances en visión por computadora nos hacen pensar que poco a poco este tema se está convirtiendo en algo ordinario, incluso para aquellos que no son expertos en temas como la inteligencia artificial. Por ello, la liberación de la versión 3.0 de esata biblioteca es un hecho importante.
Con OpenCV 3.0 se pueden encontrar bordes en imágenes, detectar rostros, seguir objetos, etcétera, en una aplicación. Esto antes era un trabajo de muchos meses si había que implementarlo de cero, pero con esta biblioteca de funciones las cosas se han simplificado notablemente. En las versiones anteriores e OpenCV había quejas sobre lo difícil que era implementar las funciones, o bien, que la documentación era oscura y difícil de seguir. Hoy en día con la versión 3.0, mucho de este problema se ha aligerado notablemente.
OpenCV 3.0 tiene unos 2500 algoritmos que pueden usarse en sus proyectos de programación. Se puede usar desde C++, C, Java, Python e incluso MatLab. Corre bajo Windows, Android y Mac OS. También permite ahora usar los GPUs, que pueden acelerar los procesos con ayuda de CUDA y OpenCL, pero hay que advertir que aún esto es un trabajo que no está siquiera terminado. Hay sin embargo, cosas que pueden acelerar los procesos en los GPUs.
Entre muchas de las funciones que pueden usarse están:
- Detección de texto,
- Algoritmos de fotografía computacional (HDR, inpainting, edge-aware filters, superpixels, …)
- Seguimiento de objetos y algoritmos de flujo óptico
- Nuevas características, incluyendo descripciones de líneas KAZE/AKAZE
- Optimización en general (programación lineal, hill climbing)
- Soporte mejorado para Python, incluyendo Python 3.0, así como muchos tutoriales sobre como usar OpenCV con Python
Hay también mejoras por parte de la comunidad de código abierto:
- Módulo de visión inspirado en la biología
- Módulo de registro de imágenes, entre otros
Hay una buena cantidad de optimizaciones de las funciones y los APIs. Hay muchas pruebas nuevas que hacen a la biblioteca ahora más robusta y más capaz de hacer cosas, que seguramente llevará a una próxima versión 4.0.
Hay que reconocer que OpenCV es un esfuerzo comunitario que ha permitido introducir a muchos programadores a estos esquemas de reconocimiento visual, de forma que se ha enriquecido el interés por el tema y se ha evitado tener que lidiar con software propietario, en donde los algoritmos usados no están disponibles. Hoy en día OpenCV es responsable de progreso en robótica, fotografía computacional, procesamiento de imágenes médicas e incluso, en la posibilidad de usar todo esto hasta en una Raspberry Pi.
Referencias: