Gracias a los avances en el aprendizaje profundo de los últimos años, Computer Vision ha podido superar a los humanos en algunas tareas relacionadas con la detección y etiquetado de objetos.
La visión por computadora es el campo de la ciencia de la computación que se enfoca en replicar partes de la complejidad del sistema de visión humana y permitir que las computadoras identifiquen y procesen objetos en imágenes y videos de la misma manera que lo hacen los humanos. Hasta hace poco, la visión por computadora solo funcionaba en una capacidad limitada.
Uno de los factores que impulsan el crecimiento de la visión por computadora es la cantidad de datos que generamos hoy que luego se utilizan para entrenar y mejorar la visión por computadora.
Junto con una enorme cantidad de datos visuales (más de 3 mil millones de imágenes se comparten en línea todos los días), ahora se puede acceder a la potencia informática necesaria para analizar los datos. A medida que el campo de la visión por computadora ha crecido con nuevo hardware y algoritmos, también lo han hecho las tasas de precisión para la identificación de objetos. En menos de una década, los sistemas actuales han alcanzado un 99 por ciento de precisión frente al 50 por ciento, lo que los hace más precisos que los humanos a la hora de reaccionar rápidamente a las entradas visuales.
Introducción a la visión por computadora
Los primeros experimentos en visión por computadora comenzaron en la década de 1950 y se utilizó por primera vez comercialmente para distinguir entre texto mecanografiado y escrito a mano en la década de 1970; hoy en día, las aplicaciones para la visión por computadora han crecido exponencialmente.
Una de las principales preguntas abiertas tanto en neurociencia como en aprendizaje automático es: ¿cómo funcionan exactamente nuestros cerebros y cómo podemos aproximarnos a eso con nuestros propios algoritmos? La realidad es que hay muy pocas teorías completas y funcionales de la computación cerebral; así que a pesar del hecho de que se supone que las redes neuronales «imitan la forma en que funciona el cerebro», nadie está seguro de si eso es realmente cierto.
La misma paradoja es válida para la visión por computadora: dado que no estamos decididos sobre cómo el cerebro y los ojos procesan las imágenes, es difícil decir qué tan bien los algoritmos utilizados en la producción se aproximan a nuestros propios procesos mentales internos.
En cierto nivel, la visión por computadora tiene que ver con el reconocimiento de patrones. Entonces, una forma de entrenar a una computadora para que comprenda los datos visuales es alimentarla con imágenes, muchas imágenes, miles, millones si es posible que hayan sido etiquetadas, y luego someterlas a diversas técnicas de software o algoritmos que permiten que la computadora las busque. patrones en todos los elementos que se relacionan con esas etiquetas.
Evolución de la visión por computadora
Antes de la llegada del aprendizaje profundo, las tareas que podía realizar la visión por computadora eran muy limitadas y requerían mucha codificación manual y esfuerzo por parte de desarrolladores y operadores humanos. Por ejemplo, si quisiera realizar un reconocimiento facial, tendría que realizar los siguientes pasos:
- Crear una base de datos: tenía que capturar imágenes individuales de todos los temas que deseaba rastrear en un formato específico.
- Anotar imágenes: luego, para cada imagen individual, tendría que ingresar varios puntos de datos clave, como la distancia entre los ojos, el ancho del puente de la nariz, la distancia entre el labio superior y la nariz, y docenas de otras medidas que definen la singularidad y características de cada persona.
- Capturar nuevas imágenes: a continuación, tendría que capturar nuevas imágenes, ya sea a partir de fotografías o contenido de video. Y luego tuvo que pasar por el proceso de medición nuevamente, marcando los puntos clave en la imagen. También tenía que tener en cuenta el ángulo en el que se tomó la imagen.
Después de todo este trabajo manual, la aplicación finalmente podría comparar las medidas en la nueva imagen con las almacenadas en su base de datos y decirle si correspondía con alguno de los perfiles que estaba rastreando. De hecho, hubo muy poca automatización involucrada y la mayor parte del trabajo se hizo manualmente. Y el margen de error seguía siendo grande.
El aprendizaje automático proporcionó un enfoque diferente para resolver problemas de visión por computadora. Con el aprendizaje automático, los desarrolladores ya no necesitaban codificar manualmente cada regla en sus aplicaciones de visión. En su lugar, programaron «funciones», aplicaciones más pequeñas que podían detectar patrones específicos en las imágenes. Luego utilizaron un algoritmo de aprendizaje estadístico como regresión lineal, regresión logística, árboles de decisión o máquinas de vectores de soporte (SVM) para detectar patrones y clasificar imágenes y detectar objetos en ellos.
El aprendizaje automático ayudó a resolver muchos problemas que históricamente representaban un desafío para las herramientas y enfoques de desarrollo de software clásicos. Por ejemplo, hace años, los ingenieros de aprendizaje automático pudieron crear un software que podía predecir las ventanas de supervivencia del cáncer de mama mejor que los expertos humanos. Sin embargo, la construcción de las características del software requirió el esfuerzo de decenas de ingenieros y expertos en cáncer de mama y llevó mucho tiempo desarrollarla.
Visión por computadora impulsada por Deep Learning
El aprendizaje profundo proporcionó un enfoque fundamentalmente diferente para realizar el aprendizaje automático. El aprendizaje profundo se basa en redes neuronales, una función de propósito general que puede resolver cualquier problema representable a través de ejemplos. Cuando proporcionas una red neuronal con muchos ejemplos etiquetados de un tipo específico de datos, podrá extraer patrones comunes entre esos ejemplos y transformarlos en una ecuación matemática que ayudará a clasificar información futura.
Por ejemplo, crear una aplicación de reconocimiento facial con aprendizaje profundo solo requiere que desarrolle o elija un algoritmo pre construido y lo entrene con ejemplos de las caras de las personas que debe detectar. Con suficientes ejemplos (muchos ejemplos), la red neuronal podrá detectar rostros sin más instrucciones sobre características o medidas.
El aprendizaje profundo es un método muy efectivo para hacer visión por computadora. En la mayoría de los casos, la creación de un buen algoritmo de aprendizaje profundo se reduce a recopilar una gran cantidad de datos de entrenamiento etiquetados y ajustar los parámetros como el tipo y la cantidad de capas de redes neuronales y épocas de entrenamiento. En comparación con los tipos anteriores de aprendizaje automático, el aprendizaje profundo es más fácil y rápido de desarrollar e implementar.
La mayoría de las aplicaciones actuales de visión por computadora, como la detección de cáncer, los automóviles autónomos y el reconocimiento facial, utilizan el aprendizaje profundo. El aprendizaje profundo y las redes neuronales profundas han pasado del ámbito conceptual a las aplicaciones prácticas gracias a la disponibilidad y los avances en hardware y recursos de computación en la nube.
Visión artificial aplicada a la empresa
La visión por computadora es una de las áreas en el aprendizaje automático donde los conceptos básicos ya se están integrando en los principales productos que usamos todos los días.
La visión por computadora permite que los vehículos autónomos le den sentido a su entorno. Las cámaras capturan video desde diferentes ángulos alrededor del automóvil y lo transmiten al software de visión por computadora, que luego procesa las imágenes en tiempo real para encontrar los extremos de las carreteras, leer las señales de tráfico, detectar otros automóviles, objetos y peatones. El automóvil autónomo puede entonces abrirse camino en calles y carreteras, evitar chocar contra obstáculos y (con suerte) conducir con seguridad a sus pasajeros a su destino.
La visión por computadora también ha sido una parte importante de los avances en tecnología de la salud. Los algoritmos de visión por computadora pueden ayudar a automatizar tareas como la detección de lunares cancerosos en imágenes de la piel o la detección de síntomas en radiografías y resonancias magnéticas.
Aplicaciones de visión artificial
Muchas aplicaciones populares de visión por computadora implican tratar de reconocer cosas en fotografías; por ejemplo:
- Clasificación de objetos: ¿Qué categoría amplia de objeto se encuentra en esta fotografía?
- Identificación de objeto: ¿Qué tipo de objeto dado se encuentra en esta fotografía?
- Verificación del objeto: ¿Está el objeto en la fotografía?
- Detección de objetos: ¿Dónde están los objetos en la fotografía?
- Detección de puntos de referencia de objetos: ¿Cuáles son los puntos clave para el objeto en la fotografía?
- Segmentación de objetos: ¿Qué píxeles pertenecen al objeto de la imagen?
- Reconocimiento de objetos: ¿Qué objetos hay en esta fotografía y dónde están?
- Fuera del simple reconocimiento, otros métodos de análisis incluyen:
- El análisis de movimiento por video utiliza la visión por computadora para estimar la velocidad de los objetos en un video, o la propia cámara.
- En la segmentación de imágenes, los algoritmos dividen las imágenes en múltiples conjuntos de vistas.
- La reconstrucción de escenas crea un modelo 3D de una escena ingresada a través de imágenes o video.
- En la restauración de imágenes, el ruido como el desenfoque se elimina de las fotos mediante filtros basados en aprendizaje automático.
Palabras de clausura
Inventar una máquina que ve como nosotros es una tarea engañosamente difícil, no solo porque es difícil hacer que las computadoras lo hagan, sino porque no estamos completamente seguros de cómo funciona la visión humana en primer lugar.
El estudio de la visión biológica requiere una comprensión de los órganos de percepción como los ojos, así como la interpretación de la percepción dentro del cerebro. Se ha avanzado mucho, tanto en la trazabilidad del proceso como en el descubrimiento de los trucos y atajos que utiliza el sistema, aunque como en cualquier estudio que involucre al cerebro, queda un largo camino por recorrer.