Visión por computadora e inteligencia artificial: transformando la comprensión visual
Publicado: 2025-01-15La visión por computadora es uno de los subdominios fundamentales de la inteligencia artificial (IA). Esta guía explica la visión por computadora, cómo funciona, dónde se aplica y sus ventajas e inconvenientes.
Tabla de contenido
- ¿Qué es la visión por computadora?
- Historia y evolución de la visión por computadora.
- Cómo funciona la visión por computadora
- Aplicaciones de la visión por computadora
- Ventajas de la visión por computadora
- Desventajas de la visión por computadora
- Conclusión
¿Qué es la visión por computadora?
El dominio de la visión por computadora cubre todas las técnicas de inteligencia artificial que utilizan sistemas informáticos para analizar datos visuales, como los datos de videos y fotografías. El campo existe oficialmente desde la década de 1960, y las primeras aplicaciones de visión por computadora utilizaban la coincidencia de patrones y otras heurísticas para mejorar las imágenes en la biomédica, la física avanzada y otros campos de investigación de vanguardia. Casi todos los sistemas de visión por computadora recientes se basan exclusivamente en algoritmos de aprendizaje automático (ML) (más específicamente, algoritmos de aprendizaje profundo) para realizar su trabajo, ya que son mucho más efectivos que las técnicas más antiguas.
Historia y evolución de la visión por computadora.
La visión por computadora tiene sus raíces en experimentos realizados por neurofisiólogos que buscaban comprender cómo se procesan en el cerebro las imágenes producidas por el ojo. Durante las primeras décadas de su desarrollo, la visión por computadora se inspiró en gran medida en la investigación sobre la visión humana y animal.
Aunque es difícil señalar un año de inicio exacto, 1959 a menudo se considera el comienzo del campo. En ese año, se establecieron dos conceptos centrales del análisis de imágenes: (1) que el análisis de imágenes debe centrarse primero en identificar los subcomponentes de una imagen y (2) que esos componentes deben analizarse jerárquicamente.
La siguiente lista destaca algunos de los principales hitos entre el descubrimiento de estos conceptos fundamentales y la reciente explosión de avances en visión por computadora. Hoy en día, los sistemas de visión por computadora se basan en complejos algoritmos de aprendizaje profundo para procesar, comprender, editar y crear imágenes realistas en tiempo real.
Principales hitos en el desarrollo de la visión por computadora
1959:Los estudios de cerebros de animales demostraron que los componentes simples de una imagen (como bordes y líneas) se detectaban primero y luego se procesaban jerárquicamente. Estos conocimientos se convirtieron en dos de los conceptos fundamentales de la visión por computadora y se reconocen como los inicios oficiales del campo.
Década de 1960:comenzaron los primeros esfuerzos oficiales de inteligencia artificial y visión por computadora. Los avances incluyeron sistemas que transformaban automáticamente partes de fotografías en objetos tridimensionales equivalentes.
Década de 1970:un enfoque en la investigación y la educación en visión por computadora produjo muchos algoritmos básicos de visión por computadora que todavía se utilizan en la actualidad, incluidos aquellos para la detección de patrones, estimación de movimiento, detección de bordes, etiquetado de líneas y modelado geométrico de componentes de imágenes.
Década de 1980:Las redes neuronales convolucionales (CNN) se desarrollaron significativamente a lo largo de la década. En 1989, la primera CNN se aplicó con éxito a un problema de visión, detectando automáticamente códigos postales en imágenes.
Década de 1990:Las cámaras inteligentes se hicieron cada vez más populares y se utilizaron ampliamente en entornos industriales. La creciente demanda de herramientas para procesar grandes cantidades de imágenes digitales provocó una explosión en la inversión comercial, lo que hizo avanzar aún más el campo. Nació la industria de la visión por computadora y se desarrollaron métodos formales para evaluar la calidad de los sistemas de visión por computadora.
2000:A finales de los 90 y principios de los 2000, los investigadores establecieron el concepto de ceguera al cambio. Demostraron que los humanos a menudo pasan por alto cambios sustanciales cuando observan datos visuales. Este descubrimiento ayudó a establecer otro par de conceptos (las ideas de atención y procesamiento parcial) como elementos centrales de la visión por computadora.
2011:Por primera vez, un equipo en Suiza demostró que las CNN aplicadas en GPU eran un sistema de aprendizaje automático de visión por computadora definitivamente eficiente. Estos sistemas fueron revolucionarios, rompieron numerosos récords de visión y superaron a los humanos por primera vez. Los sistemas de visión por computadora comenzaron a hacer la transición a implementaciones basadas en CNN.
2015:una implementación de aprendizaje profundo de CNN ganó el concurso ImageNet por primera vez, lo que marcó el comienzo de la era moderna de la visión por computadora.
Cómo funciona la visión por computadora
El trabajo de visión por computadora suele constar de tres partes, que describimos a continuación. Los detalles de implementación de nivel inferior pueden ser muy complejos y a menudo implican etapas repetidas, como se describe en la tercera parte a continuación. Incluso cuando los detalles de implementación son complicados, el trabajo suele seguir estos patrones.
1 Adquisición de imágenes
Al igual que otros sistemas de ML, los sistemas de procesamiento de datos visuales dependen de la cantidad y calidad de los datos a los que pueden acceder. Cuando se diseña un sistema de visión por computadora, se presta especial atención a cuándo y cómo se obtienen los datos y las imágenes de origen para mejorar la calidad del procesamiento. Se deben considerar y optimizar varios factores, entre ellos:
- Sensores:la cantidad y tipos de sensores en uso. Los sistemas de visión por computadora utilizan sensores para obtener datos de su entorno, incluidas cámaras de video, lidar (detección y alcance de luz), radar y sensores infrarrojos.
- Despliegue:La disposición y orientación de los sensores para minimizar los puntos ciegos y hacer un uso óptimo de la información del sensor.
- Datos de sensores:los diferentes tipos y cantidades de datos deben procesarse e interpretarse de manera diferente. Por ejemplo, los datos de resonancia magnética, rayos X y video tienen requisitos especializados de procesamiento, almacenamiento e interpretación.
Idealmente, un sistema de visión por computadora debería tener acceso a suficientes datos de imágenes. Con muy pocos datos, no podrá ver suficiente información para resolver los problemas para los que está diseñado. Demasiados datos irrelevantes maximizarán los recursos del sistema, lo ralentizarán y encarecerán su funcionamiento. La optimización cuidadosa de la etapa de adquisición de imágenes es crucial para construir sistemas de visión por computadora eficaces.
2 (pre)procesamiento de imágenes
Los mismos datos visuales de dos fuentes diferentes pueden significar cosas diferentes. Los detalles sobre el contexto en el que se tomó una imagen (como la luz ambiental, la temperatura y el movimiento de la cámara) también pueden indicar que la imagen debe interpretarse de manera diferente.
El preprocesamiento de imágenes implica mucho trabajo para hacer que las imágenes sean más fáciles de entender y analizar. Por ejemplo, las imágenes pueden normalizarse, lo que significa que propiedades como el tamaño, el color, la resolución y la orientación se ajustan para que sean consistentes en todas las imágenes. También se pueden ajustar otras propiedades durante el preprocesamiento para ayudar a los algoritmos de visión a detectar características específicas del dominio. Por ejemplo, se podría mejorar el contraste para hacer que algunos objetos o características sean más visibles.
Se pueden realizar ajustes personalizados para compensar las diferencias en los sensores, daños en los sensores y trabajos de mantenimiento relacionados. Finalmente, se podrían realizar algunos ajustes para optimizar la eficiencia y el costo del procesamiento, teniendo en cuenta detalles específicos sobre cómo se analizarán las imágenes.
3 Procesamiento y análisis de imágenes: extracción de características, reconocimiento de patrones y clasificación
Los sistemas de visión por computadora actuales son jerárquicos, considerando partes de cada imagen de forma independiente. Cada capa de una jerarquía suele estar especializada para realizar una de tres cosas:
- Extracción de características:una capa de extracción de características encuentra componentes de imagen interesantes. Por ejemplo, podría identificar dónde se pueden encontrar líneas rectas en la imagen.
- Reconocimiento de patrones:una capa de reconocimiento de patrones analiza cómo se combinan varias características en patrones. Podría identificar, por ejemplo, qué combinaciones de líneas en la imagen forman polígonos.
- Clasificación:después de suficientes repeticiones de extracción de características y reconocimiento de patrones, es posible que el sistema haya aprendido lo suficiente sobre una imagen determinada para responder una pregunta de clasificación, como "¿Hay algún automóvil en esta imagen?" Una capa de clasificación responde a estas preguntas.
El siguiente diagrama muestra cómo se implementa esto en una arquitectura de sistema de visión por computadora construida con CNN. La entrada (generalmente una imagen o video) que analiza el sistema se encuentra en el extremo izquierdo del diagrama. Una CNN, implementada como una red neuronal profunda, alterna capas convolucionales, que destacan en la extracción de características, con capas de agrupación, que destacan en el reconocimiento de patrones. Los detalles de la imagen se procesan de izquierda a derecha y puede haber muchas más repeticiones de las dos capas que las que se muestran a continuación.
Una vez que se completa un análisis suficientemente profundo, una capa de neuronas completamente conectada considera todos los patrones y características de los datos en conjunto y resuelve un problema de clasificación (como "¿Hay un automóvil en la foto?").
Aplicaciones de la visión por computadora
La visión por computadora es aplicable en todas partes. A medida que los sistemas se han vuelto más potentes y más fáciles de aplicar, el número de aplicaciones se ha disparado. Estas son algunas de las aplicaciones más conocidas.
reconocimiento facial
Una de las aplicaciones más ubicuas y avanzadas de la visión por computadora implica la detección y el reconocimiento de rostros. Los teléfonos inteligentes, los sistemas de seguridad y los dispositivos de control de acceso utilizan una combinación de sensores, cámaras y redes neuronales entrenadas para identificar cuándo las imágenes contienen rostros y transformar los rostros encontrados para poder analizarlos.
Un sistema de reconocimiento facial busca periódicamente rostros cercanos. Los datos de sensores rápidos y baratos, como una fuente de luz infrarroja y una cámara de baja resolución pero alto contraste, pasan a través de un modelo ML que identifica la presencia de rostros.
Si se detectan caras potenciales, se puede apuntar a ellas con una cámara más lenta, más cara y de mayor resolución y luego realizar una breve grabación. Luego, un sistema de procesamiento visual puede convertir la grabación en reconstrucciones 3D para ayudar a validar que hay un rostro presente. Luego, un clasificador facial puede decidir si las personas en la imagen son parte de un grupo al que se le permite desbloquear un teléfono o acceder a un edificio.
Vehículos autónomos
Es difícil construir un sistema que pueda controlar un vehículo, navegar por el mundo y reaccionar en tiempo real a los cambios en su entorno. Los sistemas de visión por computadora son solo una de las tecnologías centrales que permiten vehículos autónomos.
Estos sistemas de visión aprenden a identificar carreteras, señales de tráfico, vehículos, obstáculos, peatones y la mayoría de las otras cosas que pueden encontrar mientras conducen. Antes de que puedan ser eficaces, deben analizar grandes cantidades de datos obtenidos en todo tipo de condiciones de conducción.
Para que sean útiles en condiciones reales, los sistemas de visión por computadora utilizados para vehículos autónomos deben ser muy rápidos (para que el vehículo autónomo tenga el tiempo máximo para reaccionar ante las condiciones cambiantes), precisos (ya que un error puede poner en peligro vidas) y potentes (ya que el problema es complejo: el sistema tiene que identificar objetos en todas las condiciones climáticas y de iluminación). Las empresas de vehículos autónomos están invirtiendo mucho en el ecosistema. Los volúmenes de datos disponibles están creciendo exponencialmente y las técnicas utilizadas para procesarlos están mejorando rápidamente.
realidad aumentada
Las gafas inteligentes y las cámaras de los teléfonos actuales dependen de sistemas de visión por computadora para brindar experiencias de realidad aumentada a sus usuarios. Sistemas bien entrenados, similares a los utilizados para habilitar vehículos autónomos, identifican objetos en el marco de una cámara o un par de gafas inteligentes y la posición de los objetos entre sí en el espacio 3D.
Luego, los sistemas avanzados de generación de imágenes se conectan a esta información para aumentar lo que la cámara o las gafas muestran al usuario de varias maneras. Por ejemplo, pueden crear la ilusión de que los datos se proyectan en superficies o mostrar cómo objetos como muebles podrían encajar en el espacio 3D.
Ventajas de la visión por computadora
Los sistemas de visión por computadora pueden ayudar a aumentar la visión humana, mejorar los sistemas de seguridad y analizar datos a escala. Los principales beneficios de usarlos incluyen los siguientes:
Velocidad y escala del reconocimiento de objetos.
Los sistemas de visión por computadora de última generación pueden identificar objetos mucho más rápido y en un volumen mucho mayor que los humanos. Una línea de montaje, por ejemplo, se moverá más rápido cuando un sistema automatizado de visión por computadora ayude a su supervisor. Los vehículos autónomos pueden funcionar en modo de asistencia al conductor, lo que ayuda a los conductores a estar conscientes de la información de su entorno que no detectarán rápidamente. También pueden asumir el control y tomar decisiones más rápidas y seguras que un ser humano sin ayuda.
Exactitud
Los sistemas de visión por computadora bien capacitados son más precisos que los humanos en las tareas para las que están capacitados. Por ejemplo, pueden identificar defectos en objetos con mayor precisión o detectar crecimientos cancerosos antes en imágenes médicas.
Gran volumen de procesamiento de datos.
Los sistemas de visión pueden identificar anomalías y amenazas en grandes cantidades de imágenes y videos mucho más rápido y con mayor precisión que los humanos. Su capacidad para procesar información se correlaciona con la potencia informática disponible y puede ampliarse indefinidamente.
Desventajas de la visión por computadora
Los sistemas de visión por computadora de alto rendimiento son difíciles de producir. Algunos de los desafíos y desventajas incluyen los siguientes:
Sobreajuste
Los sistemas de visión por computadora actuales se basan en redes y algoritmos de aprendizaje profundo. Dependen del acceso a grandes cantidades de datos anotados durante el entrenamiento. Actualmente, los datos de entrenamiento visual no están disponibles en los grandes volúmenes que se ven en otras aplicaciones, y generarlos es desafiante y costoso. Como resultado, muchos sistemas de visión por computadora están entrenados con datos insuficientes y se sobreajustarán: necesitarán ayuda para generalizar a situaciones nuevas e invisibles.
La privacidad es difícil de garantizar a escala
Los sistemas de visión por computadora pueden observar y aprender de grandes cantidades de datos privados o protegidos. Una vez que estén en el campo, también podrían observar datos arbitrarios en su entorno. Es difícil garantizar que los datos de entrenamiento estén libres de información privada, y es aún más difícil evitar que un sistema en el campo incorpore información privada en su entrenamiento.
Computacionalmente complejo
Los sistemas que utilizan visión por computadora tienden a aplicarse a algunos de los problemas más desafiantes en el campo de la IA. Como consecuencia, son costosos y complejos y puede resultar difícil construirlos y ensamblarlos correctamente.
Conclusión
Muchos de los problemas más interesantes y desafiantes del aprendizaje automático y la inteligencia artificial implican el uso y la aplicación de sistemas de visión por computadora. Son muy útiles, incluso en sistemas de seguridad, vehículos autónomos, análisis de imágenes médicas y otros lugares. Dicho esto, los sistemas de visión por computadora son costosos y difíciles de construir.
Dependen de una recopilación de datos a escala que requiere mucho tiempo, requieren recursos personalizados o costosos antes de que puedan usarse de manera efectiva y plantean preocupaciones sobre la privacidad. Se están realizando extensas investigaciones en esta área clave del ML, que avanza rápidamente.