Visión por ordenador en acción🤖📹

Uno de los tipos de IA más potentes y convincentes es la visión por ordenador, que casi seguro has experimentado de muchas maneras sin saberlo. A continuación te explicamos qué es, cómo funciona y por qué es tan impresionante (y sólo va a mejorar).

La visión por ordenador es el campo de la ciencia informática que se centra en replicar partes de la complejidad del sistema de visión humano y permitir que los ordenadores identifiquen y procesen objetos en imágenes y vídeos de la misma manera que lo hacen los humanos. Hasta hace poco, la visión por ordenador solo funcionaba de forma limitada.

Gracias a los avances en inteligencia artificial y a las innovaciones en aprendizaje profundo y redes neuronales, este campo ha podido dar grandes saltos en los últimos años y ha sido capaz de superar a los humanos en algunas tareas relacionadas con la detección y etiquetado de objetos.

Uno de los factores que impulsan el crecimiento de la visión por ordenador es la cantidad de datos que generamos hoy en día y que luego se utilizan para entrenar y mejorar la visión por ordenador.

YOLO Multi-Object Detection And Classification

Además de una enorme cantidad de datos visuales (más de 3 mil millones de imágenes se comparten en línea cada día), la potencia de cálculo necesaria para analizar los datos es ahora accesible. A medida que el campo de la visión por ordenador ha ido creciendo con nuevo hardware y algoritmos, también lo han hecho los índices de precisión en la identificación de objetos. En menos de una década, los sistemas actuales han alcanzado una precisión del 99 por ciento desde el 50 por ciento, por lo que son más precisos que los humanos a la hora de reaccionar rápidamente a las entradas visuales.

Los primeros experimentos en visión por ordenador comenzaron en la década de 1950 y se utilizó por primera vez comercialmente para distinguir entre el texto mecanografiado y el escrito a mano en la década de 1970, hoy en día las aplicaciones de la visión por ordenador han crecido exponencialmente.

Para 2022, se espera que el mercado de la visión por ordenador y del hardware alcance los 48.600 millones de dólares

Una de las principales cuestiones abiertas tanto en la Neurociencia como en el Aprendizaje Automático es: ¿Cómo funciona exactamente nuestro cerebro y cómo podemos aproximarnos a él con nuestros propios algoritmos? La realidad es que hay muy pocas teorías completas sobre la computación del cerebro; así que, a pesar de que se supone que las redes neuronales «imitan el funcionamiento del cerebro», nadie está seguro de que eso sea realmente cierto.

La misma paradoja es válida para la visión por ordenador: como no sabemos cómo procesan las imágenes el cerebro y los ojos, es difícil decir hasta qué punto los algoritmos utilizados en la producción se aproximan a nuestros propios procesos mentales internos.

En cierto nivel, la visión por ordenador se basa en el reconocimiento de patrones. Así que una forma de entrenar a un ordenador para que entienda los datos visuales es alimentarlo con imágenes, muchas imágenes, miles, millones si es posible, que han sido etiquetadas, y luego someterlas a diversas técnicas de software, o algoritmos, que permiten al ordenador cazar patrones en todos los elementos que se relacionan con esas etiquetas.

Así, por ejemplo, si alimentas a un ordenador con un millón de imágenes de gatos (a todos nos encantan😄😹), éste las someterá todas a algoritmos que le permitan analizar los colores de la foto, las formas, las distancias entre las formas, dónde lindan los objetos, etc., para que identifique un perfil de lo que significa «gato». Cuando haya terminado, el ordenador podrá (en teoría) utilizar su experiencia si se le alimentan otras imágenes sin etiquetar para encontrar las que son de gato.

Dejemos por un momento de lado a nuestros esponjosos amigos felinos y pongámonos más técnicos🤔😹. A continuación se muestra una simple ilustración de la memoria intermedia de la imagen en escala de grises que almacena nuestra imagen de Abraham Lincoln. El brillo de cada píxel está representado por un único número de 8 bits, cuyo rango va de 0 (negro) a 255 (blanco):

Diagrama de datos del píxel. A la izquierda, nuestra imagen de Lincoln; en el centro, los píxeles etiquetados con números de 0 a 255, que representan su brillo; y a la derecha, estos números por sí mismos.

De hecho, los valores de los píxeles se almacenan casi universalmente, a nivel de hardware, en una matriz unidimensional. Por ejemplo, los datos de la imagen anterior se almacenan de forma similar a esta larga lista de caracteres sin signo:

{157, 153, 174, 168, 150, 152, 129, 151, 172, 161, 155, 156,
155, 182, 163, 74, 75, 62, 33, 17, 110, 210, 180, 154,
180, 180, 50, 14, 34, 6, 10, 33, 48, 106, 159, 181,
206, 109, 5, 124, 131, 111, 120, 204, 166, 15, 56, 180,
194, 68, 137, 251, 237, 239, 239, 228, 227, 87, 71, 201,
172, 105, 207, 233, 233, 214, 220, 239, 228, 98, 74, 206,
188, 88, 179, 209, 185, 215, 211, 158, 139, 75, 20, 169,
189, 97, 165, 84, 10, 168, 134, 11, 31, 62, 22, 148,
199, 168, 191, 193, 158, 227, 178, 143, 182, 106, 36, 190,
205, 174, 155, 252, 236, 231, 149, 178, 228, 43, 95, 234,
190, 216, 116, 149, 236, 187, 86, 150, 79, 38, 218, 241,
190, 224, 147, 108, 227, 210, 127, 102, 36, 101, 255, 224,
190, 214, 173, 66, 103, 143, 96, 50, 2, 109, 249, 215,
187, 196, 235, 75, 1, 81, 47, 0, 6, 217, 255, 211,
183, 202, 237, 145, 0, 0, 12, 108, 200, 138, 243, 236,
195, 206, 123, 207, 177, 121, 123, 200, 175, 13, 96, 218};

Esta forma de almacenar los datos de la imagen puede ir en contra de sus expectativas, ya que los datos ciertamente parecen ser bidimensionales cuando se muestran. Sin embargo, esto es así, ya que la memoria del ordenador consiste simplemente en una lista lineal de espacios de direcciones cada vez mayor.

Cómo se almacenan los píxeles en la memoria

Volvamos a la primera imagen de nuevo e imaginemos que se añade una de color. Ahora las cosas empiezan a complicarse. Los ordenadores suelen leer el color como una serie de 3 valores -rojo, verde y azul (RGB)- en esa misma escala 0-255. Ahora, cada píxel tiene realmente 3 valores que el ordenador debe almacenar además de su posición. Si tuviéramos que colorear al presidente Lincoln, eso nos llevaría a 12 x 16 x 3 valores, o 576 números.

El crédito de la imagen va para: https://www.slideshare.net/Presentitude/the-4-important-color-models-for-presentation-design/16-Colors_on_the_color_wheel

Eso es mucha memoria para una imagen, y muchos píxeles para que un algoritmo itere sobre ellos. Pero para entrenar un modelo con una precisión significativa, especialmente cuando se trata de aprendizaje profundo, normalmente se necesitan decenas de miles de imágenes, y cuantas más mejor.

La evolución de la visión por ordenador

Antes de la llegada del aprendizaje profundo, las tareas que la visión por ordenador podía realizar eran muy limitadas y requerían mucha codificación manual y esfuerzo por parte de desarrolladores y operadores humanos. Por ejemplo, si querías realizar un reconocimiento facial, tenías que realizar los siguientes pasos:

  • Crear una base de datos: Tendrías que capturar imágenes individuales de todos los sujetos que quisieras rastrear en un formato específico.
  • Anotar las imágenes: A continuación, para cada imagen individual, tendría que introducir varios puntos de datos clave, como la distancia entre los ojos, la anchura del puente de la nariz, la distancia entre el labio superior y la nariz, y docenas de otras medidas que definen las características únicas de cada persona.
  • Capturar nuevas imágenes: A continuación, había que capturar nuevas imágenes, ya sea a partir de fotografías o de contenidos de vídeo. Y entonces había que volver a realizar el proceso de medición, marcando los puntos clave de la imagen. También había que tener en cuenta el ángulo en el que se había tomado la imagen.

Después de todo este trabajo manual, la aplicación podía finalmente comparar las medidas de la nueva imagen con las almacenadas en su base de datos y decirle si se correspondía con alguno de los perfiles que estaba siguiendo. De hecho, había muy poca automatización y la mayor parte del trabajo se hacía manualmente. Y el margen de error seguía siendo grande.

El aprendizaje automático proporcionó un enfoque diferente para resolver los problemas de visión por ordenador. Con el aprendizaje automático, los desarrolladores ya no necesitaban codificar manualmente cada regla en sus aplicaciones de visión. En su lugar, programaron «características», aplicaciones más pequeñas que podían detectar patrones específicos en las imágenes. A continuación, utilizaban un algoritmo de aprendizaje estadístico como la regresión lineal, la regresión logística, los árboles de decisión o las máquinas de vectores de apoyo (SVM) para detectar patrones y clasificar imágenes y detectar objetos en ellas.

El aprendizaje automático ayudó a resolver muchos problemas que históricamente suponían un reto para las herramientas y enfoques clásicos de desarrollo de software. Por ejemplo, hace años, los ingenieros de aprendizaje automático fueron capaces de 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 docenas de ingenieros y expertos en cáncer de mama y llevó mucho tiempo de desarrollo.

Los enfoques clásicos de aprendizaje automático implicaban muchos pasos complicados y requerían la colaboración de docenas de expertos en la materia, matemáticos y programadores

El aprendizaje profundo proporcionaba un enfoque fundamentalmente diferente para hacer aprendizaje automático. El aprendizaje profundo se basa en las redes neuronales, una función de propósito general que puede resolver cualquier problema representable mediante ejemplos. Cuando proporcionas a una red neuronal muchos ejemplos etiquetados de un tipo específico de datos, será capaz de extraer patrones comunes entre esos ejemplos y transformarlos en una ecuación matemática que ayudará a clasificar futuras piezas de información.

Por ejemplo, crear una aplicación de reconocimiento facial con aprendizaje profundo solo requiere desarrollar o elegir un algoritmo preconstruido y entrenarlo con ejemplos de las caras de las personas que debe detectar. Dados suficientes ejemplos (muchos ejemplos), la red neuronal será capaz de detectar caras sin necesidad de más instrucciones sobre características o medidas.

El aprendizaje profundo es un método muy eficaz para hacer visión por ordenador. En la mayoría de los casos, crear un buen algoritmo de aprendizaje profundo se reduce a reunir una gran cantidad de datos de entrenamiento etiquetados y a ajustar los parámetros, como el tipo y el número de capas de las redes neuronales y las é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 ordenador, como la detección del cáncer, los coches autoconducidos 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 los recursos de hardware y computación en la nube.

¿Cuánto tiempo se tarda en descifrar una imagen

En pocas palabras, no mucho. Esa es la clave de por qué la visión por ordenador es tan emocionante: Mientras que en el pasado incluso los superordenadores podían tardar días, semanas o incluso meses en realizar todos los cálculos necesarios, los chips ultrarrápidos de hoy en día y el hardware relacionado, junto con la rapidez y fiabilidad de Internet y las redes en la nube, hacen que el proceso sea rapidísimo. Un factor crucial ha sido la voluntad de muchas de las grandes empresas que investigan la IA de compartir su trabajo: Facebook, Google, IBM y Microsoft, en particular, abriendo parte de su trabajo de aprendizaje automático.

Esto permite que otros se basen en su trabajo en lugar de empezar desde cero. Como resultado, la industria de la IA se está cocinando, y los experimentos que no hace mucho tiempo tardaban semanas en ejecutarse, hoy pueden tardar 15 minutos. Y para muchas aplicaciones del mundo real de la visión por ordenador, todo este proceso ocurre continuamente en microsegundos, de modo que un ordenador hoy es capaz de ser lo que los científicos llaman «situationally aware» (consciente de la situación).

Aplicaciones de la visión por ordenador

La visión por ordenador es una de las áreas del aprendizaje automático en la que los conceptos básicos ya se están integrando en los principales productos que utilizamos cada día.

La visión por ordenador en los coches autoconducidos

Pero no sólo las empresas tecnológicas están aprovechando el aprendizaje automático para aplicaciones de imagen.

La visión por ordenador permite a los coches autoconducidos dar sentido a su entorno. Las cámaras capturan vídeo desde diferentes ángulos alrededor del coche y lo transmiten al software de visión por ordenador, 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 coches, objetos y peatones. De este modo, el coche autoconducido puede orientarse en las calles y carreteras, evitar chocar con los obstáculos y (con suerte) conducir con seguridad a sus pasajeros hasta su destino.

CV en el reconocimiento facial

La visión por ordenador también desempeña un papel importante en las aplicaciones de reconocimiento facial, la tecnología que permite a los ordenadores relacionar las imágenes de los rostros de las personas con sus identidades. Los algoritmos de visión por ordenador detectan los rasgos faciales en las imágenes y los comparan con bases de datos de perfiles faciales. Los dispositivos de consumo utilizan el reconocimiento facial para autenticar la identidad de sus propietarios. Las aplicaciones de las redes sociales utilizan el reconocimiento facial para detectar y etiquetar a los usuarios. Las fuerzas del orden también recurren a la tecnología de reconocimiento facial para identificar a los delincuentes en las transmisiones de vídeo.

La visión por ordenador en la realidad aumentada &Realidad mixta

La visión por ordenador también desempeña un papel importante en la realidad aumentada y mixta, la tecnología que permite a los dispositivos informáticos como los smartphones, las tabletas y las gafas inteligentes superponer e incrustar objetos virtuales en las imágenes del mundo real. Mediante la visión por ordenador, los equipos de RA detectan los objetos del mundo real para determinar los lugares de la pantalla de un dispositivo en los que colocar un objeto virtual. Por ejemplo, los algoritmos de visión por ordenador pueden ayudar a las aplicaciones de RA a detectar planos como tableros, paredes y suelos, una parte muy importante para establecer la profundidad y las dimensiones y colocar los objetos virtuales en el mundo físico.

La visión por ordenador en la sanidad

La visión por ordenador también ha sido una parte importante de los avances en la tecnología sanitaria. Los algoritmos de visión por ordenador pueden ayudar a automatizar tareas como la detección de lunares cancerosos en imágenes de la piel o la búsqueda de síntomas en radiografías y resonancias magnéticas.

Desafíos de la visión por ordenador

Ayudar a los ordenadores a ver resulta muy difícil.

Inventar una máquina que vea como nosotros es una tarea engañosamente difícil, no sólo porque es difícil hacer que los ordenadores lo hagan, sino porque, en primer lugar, no estamos del todo seguros de cómo funciona la visión humana.

Estudiar la visión biológica requiere comprender 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 el trazado del proceso como en el descubrimiento de los trucos y atajos que utiliza el sistema, aunque como cualquier estudio que involucre al cerebro, queda mucho camino por recorrer.

El crédito de la imagen es para: Mike Tamir

Muchas aplicaciones populares de visión por ordenador implican tratar de reconocer cosas en las fotografías; por ejemplo:

  • Clasificación de objetos: ¿Qué categoría amplia de objeto hay en esta fotografía?
  • Identificación de objetos: ¿Qué tipo de objeto aparece 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 del objeto: ¿Cuáles son los puntos clave del objeto en la fotografía?
  • Segmentación de objetos: ¿Qué píxeles pertenecen al objeto en la imagen?
  • Reconocimiento de objetos: ¿Qué objetos hay en esta fotografía y dónde están?

Además del reconocimiento, otros métodos de análisis incluyen:

  • El análisis de movimiento de vídeo utiliza la visión por ordenador para estimar la velocidad de los objetos en un vídeo, 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 introducida a través de imágenes o vídeo.
  • En la restauración de imágenes, el ruido, como el desenfoque, se elimina de las fotos utilizando filtros basados en el aprendizaje automático.

Cualquier otra aplicación que implique la comprensión de los píxeles a través del software puede etiquetarse con seguridad como visión por ordenador.

Conclusión

A pesar de los recientes avances, que han sido impresionantes, todavía no estamos ni siquiera cerca de resolver la visión por ordenador. Sin embargo, ya hay múltiples instituciones y empresas sanitarias que han encontrado formas de aplicar sistemas de CV, impulsados por CNN, a problemas del mundo real. Y no es probable que esta tendencia se detenga pronto.

Si quieres ponerte en contacto y de paso te sabes un buen chiste puedes conectar conmigo en Twitter o LinkedIn.

¡Gracias por leer!😄 🙌

Deja una respuesta

Tu dirección de correo electrónico no será publicada.