La visión por computador o computer vision en inglés no tiene una definición exacta, pero podríamos decir que es el conjunto de métodos y ténicas que permiten dotar a un computador de la capacidad de «ver». Habitualmente, se entiende que la CV (acrónimo de Computer Vision) hace uso de imágenes para extraer información útil. Es por ello que existen método tanto de corrección de imágenes, como filtros que eliminan ruido o corrigen la orientación de la imagen, métodos de detección de esquinas y bordes, y un sinfin de técnicas que permiten encontrar patrones que luego se utilzarán para dar solución a problemas como conducción autónoma o análisis de imágenes médicas.
AI, Visión por Computador y Machine Learning
Lo primero es entender donde encaja la visión por computador dentro de la inteligencia artificial (IA, o AI del ingés Artificial Intelligence) y qué diferencia tiene con el aprendizaje automático o machine learning (ML).
En la siguiente figura se muestra esto, la AI incluye tanto los métodos de visión por computador como los de machine learning. Inteligencia Artificial se entiende como el conjunto de métodos que dota a un computador de la capacidad de resolver problemas de forma inteligente o autónoma sin que sea el usuario el que tenga que darle las indicaciones precisas de como alcanzar la solución. Es por ello que ésta incluye tanto a CV como a ML, puesto que ambos proveen de herramientas y métodos que permiten resolver problemas de diferente tipo.

En el esquema también se destaca el caso del Deep Learning (DL), el cual es un subconjunto de ML, que además también intersecta con CV, como por ejemplo las arquitecturas CNN (Convolutional Neural Network) que se usan para segmentar objetos en imágenes. La mayor parte de la investigación actual en visión por computador incluye de alguna forma al DL.
Las técnicas en visión por computador
Las principales técnicas que se incluyen en visión por computador se pueden clasificar como:
- Descripción, es decir, encontrar puntos o regiones que sean distintivos y describirlos de alguna forma, como por ejemplo con los colores predominantes, el cambio en el gradiente de color, o la curvatura si hablamos de un dato en 3D.
- Segmentación, que etiqueta cada elemento (píxel de la imagen o voxel 3D) con un identificador. Este identificador depende del problema que tengamos, ya que podemos segmentar por color, así que todos los elementos con el mismo color tendrían la misma etiqueta, o si queremos segmentar por el tipo de objeto, las etiquetas serían coche, calle, perro, farola…
- Procesamiento de imágenes. Aquí se puede hablar de infinidad de métodos, muchos de ellos pensados para modificar los datos (imágenes, volúmenes 3D…). Es por ello que la mayoría se clasifican como filtros, como el filtro de suavizado para hacer una imagen más suave, o filtros de bordes para detectar los contornos de elementos de la imagen, etc.
- Seguimiento o tracking, ya que el término en inglés es el más conocido. Aquí hablamos de técnicas que permiten «seguir» a un elemento, objeto o región en una secuencia de datos. Si pensamos en un video, que es una secuencia de imágenes, podemos seguir una persona a lo largo de la secuencia. Para ello seguramente hagamos uso de descriptores, como los comentados antes que vamos intentando detectar en cada frame, o con técnicas de flujo óptico que evaluan el cambio global entre frames como si de un flujo de píxeles se tratara.
- Registro y alineamiento. El registro de datos en visión por computador se entiende como encontrar la transformación entre dos elementos para que estos formen un único elemento común. Imagina una foto panorama hecha con el móvil. En realidad es una secuencia de imágenes, y entre cada toma, se calculan descriptores, se encuentran aquellos comunes en dos frames, y se calcula una rotación y traslación para «pegarlas» juntas y que formen una imagen más grande. Esto mismo puede hacerse con datos 3D, para crear avatares de personas.
- Clasificación.
Por supuesto que estas no son las únicas técnicas que pertenecen al área de CV, pero sí reunen a la mayoría de métodos existentes que son exclusivamente de visión por computador. Como se puede ver en el esquema anterior, CV y ML tienen una zona común, y esto se debe a que muchos métodos de clasificación aprenden características extraídas mediante descritores. Sin embargo, es importante no confundir las técnias de clasficación puras de CV, puesto que estas no aprenden en base a descriptores, sino que únicamente siguen unas reglas para decidir si esos descriptores se refieres a una clase o la otra.
