Visión artificial: cómo las máquinas interpretan el mundo visual

Publicado: 2021-05-05

La visión artificial es el campo de la inteligencia artificial que permite a las máquinas "ver".

Los humanos tenemos el don de la visión, y el órgano que lo hace posible es complejo. Aunque es incomparable con la visión de larga distancia de las águilas o los ojos de una mariposa azul, que puede ver en el espectro ultravioleta, sigue haciendo un excelente trabajo.

Una parte de ver es entender lo que estás viendo. De lo contrario, solo recibe la luz que se refleja en los objetos que se encuentran frente a usted. Esto es lo que sucede si tienes un par de ojos pero no la corteza visual dentro del lóbulo occipital (la parte del cerebro responsable del procesamiento visual).

Para las computadoras, las cámaras son sus ojos. Y la visión artificial actúa como el lóbulo occipital y procesa los miles de píxeles de las imágenes. En resumen, la visión por computadora permite que las máquinas comprendan lo que están viendo.

La visión por computadora es fundamental para varias innovaciones tecnológicas, incluidos los automóviles autónomos, el reconocimiento facial y la realidad aumentada. La creciente cantidad de datos de imágenes que generamos es una de las razones por las que este campo de   inteligencia artificial   está creciendo exponencialmente. Este aumento también facilita que los científicos de datos entrenen algoritmos.

En pocas palabras, las dos tareas principales de la visión por computadora son identificar los objetos de una imagen y comprender lo que significan en su conjunto.

Los humanos dan por sentada la percepción virtual, un producto de millones de años de evolución. Un niño de 5 años podría nombrar fácilmente los artículos colocados en una mesa y comprender que todo el montaje es una mesa de comedor. Para las máquinas, es una tarea hercúlea, y esto es lo que la visión por computadora está tratando de resolver.

$ 48.6 mil millones

se estima que será el valor del mercado de visión artificial para 2022.

Fuente: BitRefine

La inteligencia general artificial, si alguna vez es posible, no sería factible sin la visión por computadora. Esto se debe a que identificar y reaccionar con precisión a los objetos que nos rodean es uno de los rasgos notables de nuestra inteligencia. En otras palabras, para enseñar a las máquinas a pensar, debes darles la capacidad de ver.

Junto con el crecimiento exponencial en la cantidad de fotografías y videos digitales disponibles, los avances en el aprendizaje profundo y las redes neuronales artificiales también contribuyen a la gloria actual de la visión por computadora.

Una breve historia de la visión artificial

Los primeros experimentos en el campo de la visión por computadora comenzaron en la década de 1950 con la ayuda de algunas de las primeras formas de redes neuronales artificiales. Se usaban para detectar los bordes de los objetos y podían clasificar objetos simples como círculos y cuadrados.

La visión artificial se consideraba un trampolín hacia la inteligencia artificial, ya que imitar el sistema visual humano es un requisito previo para alcanzar la inteligencia humana. Por lo tanto, en la década de 1960, las universidades que exploraban la IA también se involucraron en la visión artificial.

En 1963, Larry Roberts, considerado el padre fundador de Internet, describió el proceso de obtención de información 3D sobre objetos sólidos a partir de fotografías 2D. Su tesis "Percepción mecánica de sólidos tridimensionales" todavía se reconoce como uno de los trabajos fundamentales del campo de la visión artificial.

Más tarde, en 1966, Marvin Minsky, uno de los padres fundadores de la IA, creyó que la visión por computadora podría lograrse con un proyecto de verano. Pero todos sabemos lo que pasó. Avance rápido hasta la década de 1970, la tecnología de visión por computadora se utilizó para aplicaciones comerciales como el reconocimiento óptico de caracteres (OCR), que puede identificar texto escrito a mano o caracteres impresos en imágenes.

Internet, que se generalizó en la década de 1990, desempeñó un papel crucial en el rápido desarrollo de la visión artificial. Grandes conjuntos de imágenes se volvieron fácilmente accesibles, lo que facilitó el entrenamiento de algoritmos.

El poder de cómputo barato y abundante también se sumó a la facilidad de entrenar algoritmos. Este fue también el punto en el que aumentaron las interacciones entre los gráficos por computadora y la visión por computadora.

Aquí hay algunos hitos notables en la visión por computadora que la convirtieron en la tecnología robusta que es hoy.

1959: Se inventó el primer escáner de imágenes digitales que convertía las imágenes en cuadrículas numéricas.

1963: Larry Roberts describió el proceso de obtención de información 3D de objetos sólidos a partir de imágenes 2D.

1966: Marvin Minsky instruyó a un estudiante de posgrado para conectar una cámara a una computadora y describir lo que vio.

1980: Kunihiko Fukushima crea el   neocognitrón. Se considera el precursor de la moderna red neuronal convolucional (CNN).

2001: Paul Viola y Michael Jones, dos investigadores del MIT, crearon el primer marco de detección de rostros que funciona en tiempo real.

2009: Google inició el proyecto de autos sin conductor.

2010: Google lanzó Google Goggles, una aplicación de reconocimiento de imágenes útil para búsquedas basadas en imágenes capturadas por dispositivos móviles. El mismo año, Facebook comenzó a usar el reconocimiento facial para etiquetar personas en fotos de manera efectiva.

2011: Se utilizó la tecnología de reconocimiento facial para confirmar la   identidad de osama bin laden   después de que lo mataron.

2012: Google Brain creó una red neuronal que constaba de 16 000 procesadores de computadora que podían reconocer imágenes de gatos con la ayuda de un algoritmo de aprendizaje profundo. El mismo año, AlexNet, una red neuronal convolucional, obtuvo un error entre los 5 primeros del 15,3 % en el Desafío ImageNet 2012.

2014: Tesla introdujo el piloto automático en sus autos eléctricos Model S. El sistema de conducción autónoma no solo funcionaba sin conexión, sino que también estacionaba con precisión.

2015: lanzamiento de Google   TensorFlow, que es una biblioteca de software libre y de código abierto para el aprendizaje automático. El mismo año, Google presentó FaceNet para el reconocimiento facial.

2016: Se presentó Pokemon GO, el famoso juego móvil basado en AR.

2017: Apple lanzó el iPhone X con la función de reconocimiento facial.

2019: el High Court del Reino Unido permitió el uso de tecnología de reconocimiento facial automatizado para buscar personas en multitudes.

¿Cómo funciona la visión artificial?

La visión por computadora comienza con algo pequeño y termina con algo grande.

Sigue una técnica de procesamiento en capas en la que comienza con la identificación y el análisis de características de bajo nivel, como píxeles y colores. Gradualmente, se abre camino para analizar características de nivel superior, como líneas y objetos.

Suponga que ve una imagen de personas corriendo. Aunque se trate de una imagen fija, en la mayoría de los casos podrá comprender el contexto; la gente huye de algo, corre hacia algo o corre tranquilamente. Este es un ejemplo típico de cómo ocurre la computación de procesamiento paralelo en tiempo real.

Es simple para nosotros entender la emoción y el contexto de las imágenes. Las computadoras todavía están aprendiendo el oficio, pero su ritmo es impresionante para las entidades no biológicas.

¿Alguna vez se preguntó cómo las computadoras pueden proporcionar datos precisos para algo como el pronóstico del tiempo? Ahí es donde la visión artificial funciona en forma de procesamiento paralelo, es decir, trabajando con múltiples fuentes de datos complejas a la vez.

Para las máquinas, las imágenes son solo una colección de píxeles. A diferencia de los humanos, no pueden entender el significado semántico de una imagen y solo pueden detectar píxeles. El objetivo de la visión artificial es reducir esa brecha semántica .

Cuando los rayos de luz inciden en la retina de nuestros ojos, unas células especiales, llamadas fotorreceptores, transforman la luz en señales eléctricas. Estas señales eléctricas luego se envían al cerebro a través del nervio óptico. Luego, el cerebro convierte estas señales en las imágenes que vemos.

Este proceso hasta que las señales eléctricas que llegan al cerebro parecen sencillas. Aún no se comprende completamente cómo el cerebro procesa exactamente estas señales y las convierte en imágenes. Más precisamente, el cerebro es una caja negra; también lo es la visión por computadora.

Hay redes neuronales y otras   aprendizaje automático   algoritmos que tratan de imitar el cerebro humano. Hacen que la visión por computadora sea factible y ayudan a comprender de qué se tratan las imágenes. Incluso en el caso de los algoritmos, los investigadores de ML no son plenamente conscientes de cómo funcionan. Sin embargo, dado que sus resultados son cuantificables, podemos juzgar la precisión de cada algoritmo.

La visión artificial como proceso es explicable, al igual que la visión humana. Pero nadie está seguro de cómo funcionan las redes neuronales para comprender imágenes o si están remotamente cerca de cómo los humanos procesan la información visual.

Dicho esto, en un sentido simple, la visión artificial tiene que ver con el reconocimiento de patrones. Usando técnicas de aprendizaje automático como   aprendizaje no supervisado, los algoritmos están entrenados para reconocer patrones en datos visuales. Si está pensando en la cantidad de imágenes requeridas, son millones o miles como mínimo.

Suponga que desea que el algoritmo identifique perros en imágenes. Si está siguiendo la técnica de aprendizaje no supervisado, no tiene que etiquetar ninguna imagen como perros. En cambio, después de analizar miles o millones de imágenes, la máquina aprende las características específicas de los perros.

En resumen, una computadora puede percibir las características específicas que hacen que un animal (u objeto) sea un perro. Todavía no sabría que el animal en particular se llama "perro". Pero tendrá suficiente información y experiencia para determinar si una imagen sin etiqueta contiene un perro.

Si quieres que el proceso de aprendizaje sea más rápido, puedes optar por   aprendizaje supervisado. En el aprendizaje supervisado, las imágenes están etiquetadas, lo que facilita el trabajo de los algoritmos.

Examen de imágenes a nivel de píxeles

Cuando se habla de algoritmos que analizan imágenes, no examinan la imagen como un todo como los humanos. En cambio, miran píxeles individuales, que son los elementos direccionables más pequeños de una imagen de trama.

En aras de la simplicidad, consideremos una imagen en escala de grises. El brillo de cada píxel, llamados valores de píxel, está representado por un número entero de 8 bits con un rango de valores posibles de 0 a 255. El cero se considera negro y el 255 es blanco. Si estamos estudiando una imagen en color, las cosas se volverán más complejas.

Cuando decimos que un algoritmo analiza y aprende, en realidad está aprendiendo estos valores de píxeles. En otras palabras, una computadora ve y reconoce imágenes basándose en dichos valores numéricos. Esto también significa que los algoritmos encuentran patrones en las imágenes al observar sus valores numéricos y comparar imágenes de manera similar.

En resumen, para las máquinas, comprender una imagen es un proceso matemático que involucra conjuntos de números enteros.

Luego están las redes neuronales convolucionales.

Una red neuronal convolucional (CNN o ConvNet) es una   aprendizaje profundo   algoritmo que puede extraer características de conjuntos de datos de imágenes. Son una categoría de redes neuronales y tienen capacidades impresionantes para el reconocimiento y la clasificación de imágenes. Casi todos los algoritmos de visión artificial utilizan redes neuronales convolucionales.

Aunque las CNN se inventaron en la década de 1980, no eran exactamente factibles hasta la introducción de las unidades de procesamiento de gráficos (GPU). Las GPU pueden acelerar significativamente las redes neuronales convolucionales y otras redes neuronales. En 2004, la implementación de GPU de CNN fue 20 veces más rápida que una implementación de CPU equivalente.

¿Cómo lo hacen las CNN?

ConvNets aprende de las imágenes de entrada y ajusta sus parámetros (pesos y sesgos) para hacer mejores predicciones. Las CNN tratan las imágenes como matrices y extraen información espacial de ellas, como bordes, profundidad y textura. ConvNets hace esto usando   capas convolucionales   y   puesta en común

La arquitectura de una CNN es análoga a la del patrón de conectividad de las neuronas en nuestro cerebro. Las CNN se crearon inspirándose en la organización de la corteza visual, que es la región del cerebro que recibe y procesa la información visual.

Una CNN consta de múltiples capas de neuronas artificiales llamadas perceptrones, que son las contrapartes matemáticas de las neuronas biológicas de nuestro cerebro. Los perceptrones también imitan aproximadamente el funcionamiento de sus contrapartes biológicas.

Una red neuronal convolucional consta de una capa de entrada , varias capas ocultas y una capa de salida .

Las capas ocultas contienen:

  • Capas convolucionales
  • Capas de función de activación lineal rectificada (ReLU)
  • Capas de normalización
  • Agrupación de capas
  • Capas totalmente conectadas

Aquí hay una explicación simple de lo que hacen.

Cuando una CNN procesa una imagen, cada una de sus capas extrae distintas características de los píxeles de la imagen. La primera capa es responsable de detectar características básicas como los bordes horizontales y verticales.

A medida que profundiza en la red neuronal, las capas comienzan a detectar características complejas, como formas y esquinas. Las capas finales de la red neuronal convolucional son capaces de detectar características específicas como rostros, edificios y lugares.

La capa de salida de la red neuronal complicada ofrece una tabla que contiene información numérica. Esta tabla representa la probabilidad de que un objeto particular haya sido identificado en la imagen.

Ejemplos de tareas de visión artificial

La visión por computadora es un campo de la informática y la IA que permite que las computadoras vean. Existen numerosos métodos mediante los cuales las computadoras pueden aprovechar este campo. Estos intentos de identificar objetos o actividades en imágenes se denominan tareas de visión artificial.

Estas son algunas de las tareas comunes de visión artificial.

  • Detección de objetos: una técnica utilizada para detectar un objeto específico en una imagen. Sus versiones avanzadas pueden identificar varios objetos en una sola imagen, por ejemplo, edificios, automóviles, personas, semáforos y más en una imagen de una calle concurrida.
  • Clasificación de imágenes: La agrupación de imágenes en categorías. También se puede denominar como el proceso de asignación de etiquetas a las imágenes.
  • Reconocimiento facial: una forma avanzada de reconocimiento de objetos que puede identificar humanos en imágenes y reconocer rostros.
  • Segmentación de imágenes: la partición de una imagen en varias partes para examinarla por separado.
  • Detección de patrones: un proceso de reconocimiento de patrones y regularidades en datos visuales.
  • Detección de bordes: un proceso de detección de bordes de un objeto para identificar mejor los constituyentes de la imagen.
  • Coincidencia de características: un tipo de detección de patrones que coincide con las similitudes en las imágenes para clasificarlas.

software de reconocimiento de imagen   las aplicaciones pueden usar solo una de estas técnicas de visión por computadora. Las aplicaciones avanzadas, como los automóviles autónomos, utilizarán varias técnicas al mismo tiempo.

Aplicaciones de visión artificial del mundo real

La visión por computadora ya está integrada en muchos de los productos que usamos hoy. Facebook etiqueta automáticamente a las personas que usan CV. Google Photos lo usa para agrupar imágenes y aplicaciones de software como Adobe Lightroom lo usan para mejorar los detalles de las imágenes ampliadas. También se usa ampliamente para el control de calidad en procesos de fabricación que dependen de la automatización.

Aquí hay algunas aplicaciones más del mundo real de la visión por computadora que podría haber encontrado.

Reconocimiento facial

Uno de los mejores casos de uso de la visión artificial se encuentra en el campo del reconocimiento facial. Llegó a la corriente principal en 2017 con el modelo iPhone X de Apple y ahora es una característica estándar en la mayoría de los teléfonos inteligentes.

La tecnología de reconocimiento facial se utiliza como función de autenticación en múltiples ocasiones. De lo contrario, se utiliza para identificar a la persona, como en el caso de Facebook. Se sabe que los organismos encargados de hacer cumplir la ley utilizan la tecnología de reconocimiento facial para identificar a los infractores de la ley en las transmisiones de video.

autos sin conductor

Los automóviles autónomos dependen en gran medida de la visión por computadora para el análisis de imágenes en tiempo real. Ayuda a los vehículos autónomos a dar sentido a su entorno. Sin embargo, la tecnología detrás de estos automóviles aún está en su etapa inicial y requiere un mayor desarrollo antes de que pueda implementarse con confianza en carreteras llenas de tráfico.

Los vehículos autónomos son prácticamente imposibles sin la visión artificial. Esta tecnología ayuda a los vehículos autónomos a procesar datos visuales en tiempo real. Un ejemplo de su aplicación es la creación de mapas 3D. Junto con la identificación y clasificación de objetos, la visión por computadora puede ayudar a crear mapas en 3D para dar a los vehículos una idea del entorno.

La detección de vehículos y líneas de carril son otros dos casos de uso importantes. Luego está la detección de espacio libre, que es bastante famosa en el ámbito de los autos sin conductor. Como sugiere su nombre, se utiliza para determinar el espacio libre de obstáculos alrededor del vehículo. La detección de espacio libre es útil cuando el vehículo autónomo se acerca a un vehículo que se mueve lentamente y necesita cambiar de carril.

Imagenes medicas

La visión por computadora se utiliza en la industria de la salud para hacer diagnósticos más rápidos y precisos y monitorear la progresión de enfermedades. Mediante el reconocimiento de patrones, los médicos pueden detectar los primeros síntomas de enfermedades como el cáncer, que pueden no ser visibles para el ojo humano.

Las imágenes médicas son otra aplicación crítica con una plétora de beneficios. El análisis de imágenes médicas reduce el tiempo que tardan los profesionales médicos en analizar las imágenes. La endoscopia, la radiografía de rayos X, la ecografía y la resonancia magnética nuclear (RMN) son algunas de las disciplinas de imágenes médicas que utilizan la visión artificial.

Al combinar las CNN con imágenes médicas, los profesionales médicos pueden observar órganos internos, detectar anomalías y comprender la causa y el impacto de enfermedades específicas. También ayuda a los médicos a monitorear el desarrollo de enfermedades y el progreso de los tratamientos.

Moderación de contenido

Las redes sociales como Facebook tienen que revisar millones de publicaciones nuevas todos los días. No es práctico tener un equipo de moderación de contenido que revise cada imagen o video publicado, por lo que se utilizan sistemas de visión por computadora para automatizar el proceso.

350 millones

Las fotos se suben todos los días a Facebook.

Fuente: Informe Social

La visión por computadora puede ayudar a tales plataformas de redes sociales a analizar el contenido cargado y marcar aquellos que contienen contenido prohibido. Las empresas también pueden usar algoritmos de aprendizaje profundo para el análisis de texto para identificar y bloquear contenido ofensivo.

Vigilancia

Las transmisiones de video de vigilancia son una forma sólida de evidencia. Pueden ayudar a descubrir a los infractores de la ley y también ayudar a los profesionales de la seguridad a actuar antes de que las preocupaciones menores se vuelvan catastróficas.

Es prácticamente imposible para los humanos vigilar las imágenes de vigilancia de múltiples fuentes. Pero con la visión artificial, esta tarea se simplifica. Los sistemas de vigilancia alimentados por CV pueden escanear imágenes en vivo y detectar personas con comportamiento sospechoso.

El reconocimiento facial se puede utilizar para identificar a los delincuentes buscados y, por lo tanto, prevenir delitos. La tecnología de reconocimiento de imágenes se puede emplear para detectar personas que transportan objetos peligrosos en áreas concurridas. El mismo también se utiliza para determinar la cantidad de estacionamientos gratuitos disponibles en los centros comerciales.

Desafíos en la visión artificial

Ayudar a las computadoras a ver es más desafiante de lo que pensábamos.

Marvin Minsky confiaba en que la visión por computadora podría resolverse conectando una cámara a una computadora. Incluso después de décadas de investigación, no estamos ni cerca de resolver el problema. Para los humanos, la visión es tan fácil. Esa es la razón por la que la visión por computadora se consideraba un problema trivialmente simple y se suponía que se resolvería en un verano.

Nuestro conocimiento es limitado.

Una de las razones por las que no somos capaces de descifrar por completo el problema de la visión por computadora es nuestro conocimiento limitado de nosotros mismos. No tenemos una comprensión completa de cómo funciona el sistema visual humano. Por supuesto, se están dando pasos rápidos en el estudio de la visión biológica, pero aún queda un largo camino por recorrer.

El mundo visual es complejo.

Un problema desafiante en el campo de CV es la complejidad natural del mundo visual. Un objeto se puede ver desde cualquier ángulo, bajo cualquier condición de iluminación y desde diferentes distancias. El sistema óptico humano normalmente es capaz de ver y comprender objetos en todas esas variaciones infinitas, pero la capacidad de las máquinas sigue siendo bastante limitada.

Otra limitación es la falta de sentido común. Incluso después de años de investigación, todavía tenemos que recrear el sentido común en los sistemas de IA. Los humanos pueden aplicar el sentido común y el conocimiento previo sobre objetos específicos para darles sentido. Esto también nos permite comprender la relación entre las diferentes entidades de una imagen con facilidad.

Los humanos son buenos para las conjeturas, al menos en comparación con las computadoras. Es más fácil para nosotros tomar una decisión no tan mala, incluso si no nos hemos enfrentado a un problema específico antes. Pero no ocurre lo mismo con las máquinas. Si se encuentran con una situación que no se parece a sus ejemplos de entrenamiento, son propensos a actuar irracionalmente.

Los algoritmos de visión por computadora mejoran notablemente si los entrena con conjuntos de datos visuales más nuevos. Pero en esencia, están tratando de hacer coincidir los patrones de píxeles. En otras palabras, aparte del conocimiento de los píxeles, no entienden exactamente lo que sucede en las imágenes. Pero es fascinante pensar en las maravillas que hacen los sistemas impulsados ​​por CV en los automóviles autónomos.

CV está vinculado al hardware

En la visión por computadora, la latencia es mala.

En aplicaciones del mundo real, como automóviles autónomos, el procesamiento y análisis de imágenes debe ocurrir casi instantáneamente. Por ejemplo, si un vehículo autónomo que viaja a 30 mph detecta un obstáculo a cien metros de distancia, solo tiene unos segundos para detenerse o girar de manera segura.

Para que el automóvil actúe a tiempo, el sistema de IA deberá comprender el entorno y tomar decisiones en milisegundos. Dado que los sistemas de visión artificial dependen en gran medida de componentes de hardware como la cámara, un retraso de incluso una fracción de segundo en la transmisión de datos o el cálculo puede provocar accidentes catastróficos.

La IA estrecha no es suficiente

Algunos investigadores de IA creen que solo se puede lograr una visión por computadora 20/20 si desbloqueamos la inteligencia artificial general (AGI). Eso es porque la conciencia parece desempeñar un papel fundamental en el sistema visual humano. Así como lo que vemos y observamos, lo imaginamos. Nuestra imaginación aumenta las imágenes que vemos y les da un mejor significado.

Además, la inteligencia visual no es inseparable de la inteligencia. La capacidad de procesar pensamientos complejos complementó nuestra capacidad de ver y comprender nuestro entorno.

Según muchos investigadores, aprender de millones de imágenes o videos descargados de Internet no ayudaría mucho a lograr una verdadera visión por computadora. En cambio, la entidad de IA tendrá que experimentarlo como humanos. En otras palabras,   La IA estrecha, el nivel de inteligencia artificial que tenemos actualmente, no es suficiente.

El marco de tiempo dentro del cual lograremos la inteligencia general aún es discutible. Algunos sienten que AGI se puede lograr en unas pocas décadas. Otros sugieren que es una cosa del próximo siglo. Pero la mayoría de los investigadores piensan que AGI es inalcanzable y solo existirá en el género de ciencia ficción.

Alcanzable o no, hay muchas otras formas en que podemos intentar desbloquear la verdadera visión por computadora. Alimentar datos de calidad y diversos es una forma de hacerlo. Esto asegurará que los sistemas que dependen de la tecnología de visión por computadora se mantengan libres de sesgos.

Encontrar mejores formas de aumentar las fortalezas de las redes neuronales artificiales, crear potentes GPU y otros componentes de hardware necesarios, y comprender el sistema visual humano son algunas formas de avanzar hacia la verdadera visión por computadora.

Regalar visión a las máquinas

Las tasas de error de los modelos de reconocimiento de imágenes están cayendo drásticamente. Hemos recorrido un largo camino desde la simple detección de letras impresas hasta la identificación precisa de rostros humanos. Pero hay un largo camino por recorrer y muchos nuevos hitos por conquistar. Lo más probable es que lograr una verdadera visión por computadora sea una de las claves para crear robots que sean tan sofisticados e inteligentes como los humanos.

Si un proceso se puede ejecutar digitalmente, el aprendizaje automático eventualmente se convertirá en parte de él. Si no está completamente convencido, aquí hay 51 estadísticas de aprendizaje automático que sugieren que la misma tecnología está arrasando en casi todas las industrias.