Vista Introducción

La vista es uno de los sentidos más difíciles de imitar. La capacidad del ser humano para reconocer objetos es por ahora inimitable. La cantidad de objetos distintos que reconocemos de forma casi instantánea abrumaría a cualquier máquina que tratara de imitarnos. Pero no sólo eso, nuestra capacidad de clasificar objetos nunca vistos o incluso de deducir su función a partir de su forma es un sueño húmedo para cualquier desarrollador de visión por computador. Nuestra capacidad de abstracción es eficaz hasta tal punto que con solo ver un garabato medianamente bien hecho no tenemos problemas en saber de que objeto se trata (lo de medianamente bien hecho es importante como cualquier jugador de Pictionary sabrá)

Por si eso fuera poco humillante para cualquier máquina también les ganamos con sus propios ojos. En cualquier foto o vídeo tomada por una cámara nuestras capacidades se ven menos afectadas por la presencia de ruido o la mala calidad de imagen que cualquier sistema de visión por computador. Cierto que en este campo el procesado de imágenes para mejorar su calidad está logrando grandes avances pero generalmente estas técnicas son demasiado costosas en tiempo para aplicarlas en tiempo real y rara vez dan buenos resultados para todo tipo de imagen. Aun con todas estas limitaciones, y alguna más que veremos, Vamos a intentar que Chispas pueda usar la visión por computador de forma medianamente útil.

Nos vamos a centrar en que sea capaz de detectar diferentes características de la imagen:

  • Movimiento: detectaremos cambios en la imagen que, en caso de que la cámara está estática, indicará que algo se ha movido.
  • Detección de objetos: nos centraremos en detectar caras y manos para permitir al usuario interactuar con gestos con nuestro agente
  • Detección de colores: La usaremos para reconocer marcas o ayudarnos a seguir indicadores en ciertos casos
  • Reconocimiento de caracteres: Útil para leer textos de carteles y fotos
  • Reconocimiento de códigos QR
  • Nivel de luz ambiente

Hay que tener en cuenta las limitaciones del entorno donde se va a ejecutar nuestro agente. La velocidad va a primar sobre la exactitud (hasta un punto razonable, a ver si va a ser muy rápido y no va a dar una).

Otro punto que vamos a intentar alcanzar es la autosuficiencia. Muchos algoritmos necesitan que se introduzcan valores para funcionar correctamente. Muchos de esos valores se ajustan con el engorroso método de prueba y error. Generalmente estos valores dependen mucho del tipo de imagen y su contexto. Por ello vamos a preferir aquellos que tengan métodos para ajustar los valores automáticamente.

No hemos empezado y ya nos hemos rodeado de un montón de complicaciones, así será más divertido….espero.