Visión Computacional

La fantasía de que una máquina es capaz de simular el sistema visual humano es antigua. Hemos recorrido un largo camino desde que aparecieron los primeros trabajos universitarios en la década de 1960, como lo demuestra la llegada de los sistemas modernos trivialmente integrados en las aplicaciones móviles.

Hoy en día, la Visión por Computador es uno de los subcampos más importantes de la Inteligencia Artificial y Machine Learning, dada su amplia variedad de aplicaciones y su tremendo potencial. Su objetivo, replicar las poderosas capacidades de la visión humana.

¿Qué es la Visión por Computador?

La Visión Computacional es el subcampo de la Inteligencia Artificial que intenta imitar las capacidades de la visión humana. Y por visión humano no nos referimos solo a los ojos o a la capacidad de ver imágenes, no es tan trivial como simplemente tomar una foto con el teléfono. El propósito no es imitar solo la vista, sino imitar la percepción, la capacidad de los humanos de dar sentido a lo que ven.

La Visión por Computador se centra en la creación de sistemas digitales que pueden procesar, analizar y dar sentido a los datos visuales, imágenes o videos, de la misma manera que los humanos. El concepto de Visión Computacional se basa en enseñar a los computadores a procesar una imagen a nivel de píxel y a entenderla. Técnicamente, las máquinas intentan recuperar la información visual, manejarla e interpretar los resultados a través de algoritmos de software especiales.

¿Cómo funciona la Visión Computacional?

La tecnología de Visión Computacional tiene a imitar la forma en que funciona el cerebro humano.

¿Pero cómo resuelve nuestro cerebro el reconocimiento visual de objetos? Una de las hipótesis populares afirma que nuestro cerebro depende de patrones para decodificar objetos individuales. Este concepto se utiliza para crear sistemas de visión por computador.

Los algoritmos de Visión Computacional que usamos hoy en día se basan en el reconocimiento de patrones. Entrenamos a los computadores en una gran cantidad de datos visuales, los computadores procesar imágenes, etiquetan los objetos en ellos, y encuentran patrones en esos objetos. Por ejemplo, si enviamos un millón de imágenes de flores, la computadora las analizará, identificará patrones que son similares a todas las flores y, al final de este proceso, creará un modelo “flor”. Como resultado, la computadora será capaz de detectar con precisión si una imagen en particular es una flor cada vez que les enviemos imágenes.

Los métodos y técnicas de Deep Learning han transformado profundamente la Visión Computacional, junto con otras áreas de la Inteligencia Artificial, hasta tal punto que para muchas tareas su uso se considera estándar. En particular, las redes neuronales convolucionales (CNN) han logrado resultados más allá del estado de la técnica utilizando técnicas tradicionales de Visión por Computadora.

Estos cuatro pasos esbozan un enfoque general para construir un modelo de Visión por Computadora utilizando redes neuronales convolucionales (CNN):

  1. Crear un conjunto de datos compuesto de imágenes anotadas o utilizar uno ya existente. Las anotaciones pueden ser la categoría de la imagen, para un problema de clasificación, pares de caja delimitadores y clases, para un problema de detección de objetos, o una segmentación por píxeles de cada objeto de interés presente en una imagen, para problemas de segmentación de instancia.
  2. Extraer, de cada imagen, las características pertinentes a la tarea en cuestión. Este es un punto clave en el modelado del problema. Por ejemplo, los rasgos utilizados para reconocer rostros, rasgos basados en criterios faciales, obviamente no son los mismos que los utilizados para reconocer atracciones turísticas u órganos humanos.
  3. Entrenar un modelo de Deep Learning basado en los rasgos aislados. Entrenas significa alimentar el modelo de Machine Learning con muchas imágenes y aprenderá, basándose en esos rasgos, cómo resolver la tarea en cuestión.
  4. Evaluar el modelo utilizando imágenes que no se utilizaron en la fase de entrenamiento. Al hacerlo la precisión del modelo de entrenamiento puede ser probada.

La estrategia es muy básica, pero sirve bien al propósito. Este enfoque, conocido como Aprendizaje supervisado, requiere un conjunto de datos que abarque el fenómeno que el modelo tiene que aprender.

Tareas típicas de la Visión Computacional

La Visión por Computador se basa en un extenso conjunto de tareas diversas, combinadas para lograr aplicaciones altamente sofisticadas. Las tareas más frecuentes son el reconocimiento de imágenes y video, que básicamente consisten en determinar los diferentes objetos que contiene una imagen.

Clasificación de imágenes

Probablemente una de las tareas más conocidas en la Visión Computacional es la clasificación de imágenes. Permite clasificar una imagen dada como perteneciente a una de un conjunto de categorías predefinidas. Tomemos un simple ejemplo binario, queremos categorizar las imágenes según si contienen una atracción turística o no. Supongamos que se construye un clasificador para este propósito y que se proporciona una imagen.

El clasificador responderá que la imagen pertenece al grupo de imágenes que contienen atracciones turísticas. Esto no significa que haya reconocida necesariamente el lugar, sino más bien que ha visto previamente fotos del sitio y que se le ha dicho que esas imágenes contienen una atracción turística.

Una versión más ambiciosa del clasificador podría tener más de dos categorías. Por ejemplo, podría haber una categoría para cada tipo específico de atracción turística que queramos conocer. En tal escenario, las respuestas por entrada de imagen podrían ser múltiples.

Detección de objetos

La detección de objetos es similar a la clasificación de imágenes, excepto que con la detección de objetos la imagen puede contener muchos objetos que se localizan y clasifican. En este patrón de código de detección de objetos, un modelo está entrenado no solo para clasificar imágenes de Coca Cola, sino también para localizar cada botella dentro de la imagen.

En la siguiente, se ve que se reconocieron tres categorías diferentes de productos de Coca Cola. Además de devolver las etiquetas y la confianza, proporciona coordenadas que permiten a la aplicación dibujar cajas delimitadoras alrededor de cada objeto identificado.

La detección de objetos se utiliza en una amplia variedad de casos de uso en los que lo interesante no es una única clasificación que describa toda la imagen, sino que pueden ser muchos objetos de diferentes categorías en la imagen. Dando a una aplicación la capacidad de identificar, localizar y contar los objetos incrementando las posibles aplicaciones de este tipo de Visión Computacional.

Identificación de objetos

La identificación de objetos es ligeramente diferente de la detección de objetos, aunque a menudo se utilizan técnicas similares para lograr ambas. En este caso, dado un objeto específico, el objetivo es encontrar instancias de dicho objeto en imágenes. No se trata de clasificar una imagen, como vimos anteriormente, sino de determinar si el objeto aparece o no en una imagen y si aparece, especificar el lugar o los lugares donde aparece. Un ejemplo puede ser la búsqueda de imágenes que contengan el logotipo de una empresa determinada. Otro ejemplo es la supervisión de imágenes en tiempo real de cámaras de seguridad para identificar rostros de una persona específica.

Seguimiento de objetos de videos

Cuando se utiliza la detección de objetos en los videos, a menudo se quiere seguir el rastro de los objetos de un fotograma a otro. La detección inicial de objetos se puede hacer extrayendo un fotograma del video y detectando los objetos en el fotograma.

Además de contar los objetos y localizar cada uno de ellos, el seguimiento de los objetos a medida que se desplazan de un fotograma a otro añade otra dimensión a lo que puede hacer.

Casos de uso comercial

Las empresas utilizan cada vez más las aplicaciones de Visión Computacional para responder a las preguntas comerciales o para mejorar sus productos. Probablemente ya forman parte de su vida cotidiana, sin que te des cuenta. A continuación, se presentan algunos casos de uso popular.

Organización de contenidos

Los sistemas de Visión Computaciones ya nos ayudan a organizar nuestro contenido. Apple Photos y Google Photos son un excelente ejemplo, estas aplicaciones tienen acceso a nuestras colecciones de fotos y añaden automáticamente etiquetas a las fotos y nos permite navegar por una colección de fotografías más estructurada. Estas aplicaciones crean una vista curada de tus mejores momentos para ti.

Motores de búsqueda visual

La tecnología de búsqueda visual se puso a disposición del público con la aparición de Google Images en 2001. Un motor de búsqueda visual es capaz de recuperar imágenes que cumplen con ciertos criterios de contenido. La búsqueda de palabras clave es un caso de uso común, pero a veces podemos presentar una imagen de origen y solicitar que se encuentren imágenes similares.

Reconocimiento facial

La tecnología de reconocimiento facial se utiliza para hacer coincidir las fotos de los rostros de las personas con sus identidades. Esta tecnología está integrada en los principales productos que usamos a diario. Por ejemplo, Facebook, está usando la visión computarizada para identificar a las personas en las fotos.

El reconocimiento facial es una tecnología crucial para la autentificación biométrica. Muchos dispositivos móviles disponibles en el mercado hoy en día permiten a los usuarios desbloquear los dispositivos mostrando sus caras. Para el reconocimiento facial se utiliza una cámara frontal, los dispositivos móviles procesan esta imagen y, basándose en el análisis, pueden decir si la persona que tiene el dispositivo está autorizada en él. Lo importante de esta tecnología es que funciona realmente rápido.

Realidad aumentada

La Visión Computaciones es un elemento central de las aplicaciones de realidad aumentada. Esta tecnología ayuda a estas aplicaciones a detectar objetos físicos, tanto superficies como objetos individuales dentro de un espacio físico determinado, en tiempo real y a utilizar esta información para colocar objetos virtuales dentro del entorno físico.

Automóviles autoconductores

La Visión Computacional permite a los coches dar sentido a su entorno. Un vehículo inteligente tiene unas cuantas cámaras que capturan videos desde diferentes ángulos y los envían como señal de entrada al software de Visión Computacional. El sistema procesa el vídeo en tiempo real y detecta objetos como marcas en la carretera, objetos cercanos al auto, como peatones u otros autos, semáforos, entre otros. Uno de los ejemplos más notables de las aplicaciones de esta tecnología es el piloto automático en los automóviles Tesla.

Salud

La información de las imágenes es un elemento clave para el diagnóstico en medicina porque representa el 90% de todos los datos médicos. Muchos diagnósticos en la salud se basan en el procesamiento de imágenes, rayos X, resonancia magnética y mamografía, solo por nombrar algunos. Y la segmentación de las imágenes demostró su eficacia durante el análisis de las exploraciones médicas. Por ejemplo, los algoritmos de Visión Computacional pueden detectar la retinopatía diabética, la causa de ceguera de más rápido crecimiento. La Visión por Computador puede procesar imágenes de la parte posterior del ojo y clasificarlas según la presencia y la gravedad de la enfermedad.

Agricultura

Muchas organizaciones agrícolas emplean la Visión Computacional para vigilar la cosecha y resolver los problemas agrícolas comunes como la aparición de malas hierbas o la deficiencia de nutrientes. Estos sistemas procesan imágenes de satélites, aviones no tripulados o aviones, e intentan detectar los problemas en una fase temprana, lo que ayuda a evitar pérdidas financieras innecesarias.

La Visión Computacional es un tema popular en los artículos sobre nuevas tecnologías. Un enfoque diferente de la utilización de los datos es lo que hace que esta tecnología sea diferente. Tremendas cantidades de datos que creamos diariamente, se utilizan en realidad para nuestro beneficio, los datos pueden enseñar a los computadores a ver y comprender los objetos. Esta tecnología también demuestra un importante paso hacia la creación de una Inteligencia Artificial que será tan sofisticada como la de los humanos.

Con esto finalizamos la explicación. Por lo tanto, te dejo la siguiente pregunta para comprobar lo que has aprendido con este contenido: de las siguientes afirmaciones ¿cuál crees que es cierta?

Opción 1: La Visión Computacional es un subcampo de Machine Learning.

Respuesta Incorrecta. La Visión Computacional es un subcampo de la Inteligencia Artificial.

Opción 2: Los métodos y técnicas de Deep Learning han transformado profundamente la Visión Computacional.

Respuesta Correcta.

Opción 3: Las tareas más frecuentes de Visión Computacional son el reconocimiento de imágenes y video.

Respuesta Correcta.

2 comentarios en “Visión Computacional”

Deja un comentario

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