La visión por computadora es un campo de la inteligencia artificial (IA) que emplea el machine learning y las redes neuronales para mostrar a computadoras y sistemas a extraer información significativa de imágenes digitales, videos y otras entradas visuales, y a hacer recomendaciones o tomar medidas cuando detectan defectos o problemas.
Si la IA permite que las computadoras piensen, la visión artificial les permite ver, observar y comprender.
La visión artificial funciona de manera muy similar a la visión humana, excepto que los humanos tienen una ventaja. La vista humana tiene la ventaja de toda una vida de contexto para entender cómo distinguir los objetos, a qué distancia están, si se están moviendo o si algo anda mal con una imagen.
La visión artificial entrena a las máquinas para realizar estas funciones, pero debe hacerlo en mucho menos tiempo mediante el uso de cámaras, datos y algoritmos en lugar de retinas, nervios ópticos y una corteza visual. Puesto que un sistema entrenado para inspeccionar productos o vigilar un activo de producción puede analizar miles de productos o procesos por minuto, notando defectos o problemas imperceptibles, puede superar rápidamente las capacidades humanas.
La visión artificial se emplea en industrias que van desde la energía y los servicios públicos hasta la fabricación y el sector automotriz, y el mercado sigue creciendo. Según el analista de la industria Gartner, el mercado global de software, hardware y servicios de visión artificial generará 386 mil millones de dólares para 2031, frente a los 126 mil millones en 2022.1
La visión artificial necesita una gran cantidad de datos. Ejecuta análisis de datos una y otra vez hasta que discierne distinciones y finalmente reconoce imágenes. Por ejemplo, para entrenar a una computadora para que reconozca llantas de automóvil, necesita recibir grandes cantidades de imágenes de llantas y elementos relacionados con llantas para aprender las diferencias y reconocer una llanta, especialmente una sin defectos.
Se utilizan dos tecnologías esenciales para lograr esto: un tipo de machine learning llamado aprendizaje profundo y una red neuronal convolucional (CNN).
El machine learning emplea modelos algorítmicos que permiten que una computadora se enseñe a sí misma sobre el contexto de los datos visuales. Si se alimentan suficientes datos a través del modelo, la computadora "mirará" los datos y aprenderá a distinguir una imagen de otra. Los algoritmos permiten que la máquina aprenda por sí misma, en lugar de que alguien la programe para reconocer una imagen.
Una CNN ayuda a un modelo de machine learning o de aprendizaje profundo a “mirar” descomponiendo las imágenes en pixeles a los que se les asignan etiquetas. Usa las etiquetas para realizar convoluciones (una operación matemática sobre dos funciones para producir una tercera función) y hace predicciones sobre lo que está “viendo”. La red neuronal ejecuta convoluciones y verifica la precisión de sus predicciones en una serie de iteraciones hasta que las predicciones comienzan a hacerse. Se trata entonces de reconocer o ver imágenes de una manera similar a la de los humanos.
Al igual que un humano que distingue una imagen a distancia, una CNN primero distingue bordes definidos y formas simples, y luego completa la información a medida que ejecuta iteraciones de sus predicciones. Se emplea una CNN para comprender imágenes individuales. Una red neuronal recurrente (RNN) se utiliza de manera similar para aplicaciones de video y ayudar a las computadoras a comprender cómo se relacionan entre sí las imágenes en una serie de cuadros.
Los científicos e ingenieros estuvieron tratando de desarrollar formas para que las máquinas vean y comprendan los datos visuales durante unos 60 años. La experimentación comenzó en 1959 cuando los neurofisiólogos mostraron a un gato una serie de imágenes, intentando correlacionar una respuesta en su cerebro. Descubrieron que respondió primero a líneas o bordes definidos y, científicamente, esto significaba que el procesamiento de imágenes comienza con formas simples, como bordes rectos.2
Aproximadamente al mismo tiempo, se desarrolló la primera tecnología de escaneo de imágenes por computadora, que permitió a las computadoras digitalizar y adquirir imágenes. Otro hito se alcanzó en 1963, cuando las computadoras pudieron transformar imágenes bidimensionales en formas tridimensionales. En la década de 1960, la IA surgió como un campo de estudio académico y también marcó el comienzo de la búsqueda de IA para resolver el problema de la visión humana.
En 1974, fue la introducción de la tecnología de reconocimiento óptico de caracteres (OCR), que podría reconocer el texto impreso en cualquier fuente o tipo de letra.3 Del mismo modo, el reconocimiento inteligente de caracteres (ICR) podría descifrar texto escrito a mano que utiliza redes neuronales.4 Desde entonces, el OCR y el ICR se abrieron camino en el procesamiento de documentos y facturas, el reconocimiento de matrículas de vehículos, los pagos por celular, la conversión de máquinas y otras aplicaciones comunes.
En 1982, el neurocientífico David Marr estableció que la visión funciona de forma jerárquica e introdujo algoritmos para que las máquinas detecten bordes, esquinas, curvas y formas básicas similares. Al mismo tiempo, el científico informático Kunihiko Fukushima desarrolló una red de células que podían reconocer patrones. La red, llamada Neocognitron, incluía capas convolucionales en una red neuronal.
Para el año 2000, el enfoque del estudio se centró en el reconocimiento de objetos. Y en 2001, aparecieron las primeras aplicaciones de reconocimiento facial en tiempo real. La estandarización de cómo se etiquetan y anotan los conjuntos de datos visuales surgió a lo largo de la década de 2000. En 2010, el conjunto de datos ImageNet estuvo disponible. Contenía millones de imágenes etiquetadas en mil clases de objetos y proporciona una base para las CNN y los modelos de aprendizaje profundo que se emplean en la actualidad. En 2012, un equipo de la Universidad de Toronto inscribió a una CNN en un concurso de reconocimiento de imágenes. El modelo, llamado AlexNet, redujo significativamente la tasa de error para el reconocimiento de imágenes. Luego de este avance, las tasas de error se redujeron a solo un pequeño porcentaje.5
Se está investigando mucho en el campo de la visión artificial, pero no se detiene allí. Las aplicaciones del mundo real demuestran lo importante que es la visión artificial para los negocios, el entretenimiento, el transporte, la atención médica y la vida cotidiana. Un factor clave para el crecimiento de estas aplicaciones es la avalancha de información visual que fluye desde los teléfonos inteligentes, los sistemas de seguridad, las cámaras de tráfico y otros dispositivos instrumentados visualmente. Estos datos podrían desempeñar un papel importante en las operaciones de todas las industrias, pero hoy no se emplean. La información crea un banco de pruebas para entrenar aplicaciones de visión artificial y una plataforma de lanzamiento para que se conviertan en parte de una variedad de actividades humanas:
Muchas organizaciones no tienen los recursos para financiar laboratorios de visión artificial y crear modelos de aprendizaje profundo y redes neuronales. También pueden carecer de la potencia informática que se requiere para procesar grandes conjuntos de datos visuales. Empresas como IBM están ayudando mediante servicios de desarrollo de software de visión artificial. Estos servicios ofrecen modelos de aprendizaje prediseñados disponibles en la nube, y también alivian la demanda de recursos informáticos. Los usuarios se conectan a los servicios a través de una interfaz de programación de aplicaciones (API) y los utilizan para desarrollar aplicaciones de visión artificial.
IBM también ha introducido una plataforma de visión artificial que aborda los problemas de desarrollo y recursos informáticos. IBM® Maximo Visual Inspection incluye herramientas que permiten a los expertos etiquetar, entrenar y desplegar modelos de visión de aprendizaje profundo, sin experiencia en programación ni aprendizaje profundo. Los modelos de visión pueden implementarse en centros de datos locales, la nube y dispositivos perimetrales.
Aunque cada vez es más fácil obtener recursos para desarrollar aplicaciones de visión artificial, una pregunta importante que hay que responder desde el principio es: ¿qué harán exactamente estas aplicaciones? Comprender y definir tareas específicas de visión artificial puede centrar y validar proyectos y aplicaciones, y facilitar la puesta en marcha.
Estos son algunos ejemplos de tareas de visión artificial establecidas:
1. Emerging Tech: Revenue Opportunity Projection of Computer Vision: Growth Markets, Gartner, 19 de abril de 2024.
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3
3. Optical character recognition, Wikipedia
4. Intelligent character recognition, Wikipedia
5. A Brief History of Computer Vision (and Convolutional Neural Networks), Rostyslav Demush, Hacker Noon, 27 de febrero de 2019
6. 7 Amazing Examples of Computer And Machine Vision In Practice, Bernard Marr, Forbes, 8 de abril de 2019
7. The 5 Computer Vision Techniques That Will Change How You See The World, James Le, Heartbeat, 12 de abril de 2018