Mirame, Mirame, Mirame

Aventuras con Computer Vision

Esta es una bitácora de las aventuras tratando de hacer algo útil con openCV, es la primera de lo que esperamos sean muchas
entradas del BLOG.

Introducción

Computer Vision es básicamente hacer que una computadora analice y reconozca elementos utilizando procesamiento de imágenes.
Listo, ya está, entendiste todo arranca a programar. ¿No? Bueno seguimos.

La realidad es demasiado compleja para la computadora, por eso en necesario simplificar o acotar la realidad para poder
procesarla y analizarla, algo que yo denomino “Hacer las cosas cuadraditas”.

¿Para qué se usa?

Hace un tiempo tuve que desarrollar una herramienta de reconocimiento de texto de patentes para la entrada de una fábrica,
me encontré con el siguiente problema, como detectar desde el programa donde está la patente del auto/camión/camioneta.
Porque está en distintas posiciones y alturas. Y debía aislar el texto de la patente del resto de la imagen. Normalmente
no apreciamos lo difícil que es procesar imagen porque nuestro cerebro es un gran procesador de imágenes y reconocedor
de patrones. Ahí empezó mi odisea y me encontré con la visión por computadora y que se usa en muchos lados.

  • Seguridad: Las cámaras de vigilancia hogareña tienen algoritmos de detección de movimiento que son computer visión. Tambien
    el reconocimiento facial.
  • Medicina: Análisis de imágenes para diagnóstico. Por ejemplo detectar arterias tapadas y huesos rotos
  • Industria: Control de maquinaria usando imágenes. Controlar que la línea de montaje no tenga problemas.
  • Realidad aumentada: Procesa la imagen percibida y le agrega datos. Esto tiene muchos usos, no solo el pokemon GO

Todo es un número.

En la informática todo se almacena y procesa con representaciones numéricas. Las imágenes no son la excepción, así que cuando
ustedes ver un “verde manzana” la computadora en realidad ve algo como eso [185, 197,88]. Tres valores, cada uno entre
0 y 255 (por que son bytes pero si empiezo a aclarar todo no terminamos mas), separados por comas entre corchetes denominado
array en inglés o en sus diversas traducciones como “Arreglo” o “Vector” para evitar confusiones yo le voy a decir array
y chau picho. ¿Qué son estos tres valores? Son la mezcla de colores rojo, verde y azul o RGB por sus siglas en ingles.

¿Cuántos colores se pueden formar con RGB

256 x 256 x 256 = 16.777.216

Cada pixel, mínima porción de una imagen, está formada por esos tres valores.

Es decir que una imagen es un montón de numeritos juntos

[
[185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88],
[185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88],
[185, 197,88], [185, 197,88], [0  , 0  , 0], [185, 197,88], [185, 197,88],
[185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88],
[185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88], [185, 197,88],
]

Todos los números de la imagen están entre dos corchetes también, es un Array de Arrays o también conocido como matrix,
o matriz, de dos dimensiones.

Esta imagen es de 4 x 5 pixeles verde manzana con un puntito negro en el medio (ese que esta todo en cero).

La bueno de que sean todos números es que podemos operar con ellos buscar cosas, aislar rangos de colores. “Trucos” para
simplificar la realidad y poder jugar al pokemon go… NOOO cosas mas grosas.

Manos a los bytes

Después de esa breve introducción es bueno empezar a codificar un poco y romper. Lo bueno es que ya hay una librería que
tiene todo lo necesario para el procesamiento de

OpenCV

OpenCV es una librería en C++ abierta y multiplataforma (Linux, Windows y Mac) y tiene a INTEL como sponsor. Salvo por el
hecho que esta en C++, OpenCV nos simplifica todo lo relacionado con el procesamiento de imágenes.

Instalar OpenCV

Para los Windows dependientes necesitamos dos cositas:

  • Bajar la última versión para Windows desde acá.
  • Bajar el IDE Visual Studio Comunity Edition desde acá.
Compartit en: Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrEmail this to someonePrint this page

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *