Procesamiento automatizado de imágenes Inteligencia artificial

La Visión Artificial y el reconocimiento de imágenes: procesamiento automatizado

14/12/20 8 min. de lectura

La Visión Artificial gira esencialmente en torno al reconocimiento de patrones o características específicas en las imágenes. Por lo tanto, hay que analizar cada pixel o grupos de pixeles y eso es justo lo que vamos a ver en este post 🧐

Te recomiendo que ANTES de seguir leyendo cómo funciona el procesamiento automatizado de imágenes, leas como es el procesamiento básico de una imagen digital.

El algoritmo en la IA

¿Te preguntaras cómo es posible realizar un procesamiento automatizado de una imagen? ¿Cómo reconocen los ordenadores qué píxeles componen ciertas imágenes?

Para esto necesitamos de algoritmos que analicen todas las condiciones y patrones que hacen que en una imagen pueda identificarse la presencia de un objeto determinado, lo que se conoce como entrenamiento.

Los algoritmos son un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permiten, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades.

Identificación automática de patrones en una imagen

Entrenar al algoritmo mediante la repetición 🎇

El entrenamiento se puede lograr mediante la repetición. Las computadoras deben recibir tantas imágenes identificadas o etiquetadas como sea posible. Por ejemplo, si quisiera enseñar a una computadora a identificar ovejas, se le mostraría numerosas imágenes con ovejas etiquetadas. Para etiquetar la oveja la computadora reconocería qué píxeles específicos tienen patrones o características de una oveja y luego asociaría esa estructura de píxeles con ovejas.

Este caso se conoce como Aprendizaje Supervisado, dentro del área del Aprendizaje Automático.

Ahora, estos patrones o características pueden ser millones, y para ello nos ayudaremos de la Inteligencia Artificial, en este ejemplo, de las redes neuronales, que es uno de los tipos de aprendizaje automático (Machine Learning) más populares de la inteligencia artificial.

¿Qué son las redes neuronales? 🧠

¡No!. No explicare que es una red neuronal, solo mencionaré que en el caso de la Visión Artificial, es un algoritmo que  procesa e imita  al córtex visual del ojo humano para identificar distintas características en las entradas (ya lo vimos en el procesamiento de imágenes) y que en definitiva hacen que pueda identificar objetos y finalmente “ver”.

Puede detectar puntos, líneas, curvas y se van especializando hasta llegar a reconocen formas complejas como un rostro o la silueta de un animal.

Recordemos que la red neuronal deberá aprender por sí sola a reconocer diversidad de objetos dentro de imágenes y para ello necesitaremos una gran cantidad de imágenes.

Identificación de patrones y redes neuronales 🧬

Ahora explicaremos básicamente una de las técnicas de procesamiento automático, para entender la complejidad y los pasos que se realizan. Hay muchas más técnicas pero todas buscan lo mismo, identificar patrones.

Hasta hace algunos años se optaba por etiquetar manualmente las imágenes para enseñarle a la máquina dónde estaban las orejas o la cola  de un gato. Esto se conoció como “características de fabricación artesanal” y solía ser muy utilizado, pero resultaba  muy laborioso y  puramente “comparativo” y no de aprendizaje real de las características de las imágenes.

En la siguiente imagen vemos la figura de un gato, luego la conversión a grises, que nos permitirá identificar mejor las líneas principales en grupos de pixeles, y posteriormente la selección de partes del gato  (orejas, boca, nariz, etc.). Con esa información nuestra red neuronal debería ser capaz de identificar un gato en la imagen.

Pero, qué pasa si un gato tiene las orejas hacia abajo o se aleja de la cámara: la red neuronal no logrará identificarlo.

Por eso tenemos que  intentar que la máquina aprenda las características por sí misma, basándose en líneas básicas. Un método puede ser dividir la imagen completa en bloques de 8 × 8 pixels y asignarle a cada uno un tipo de línea dominante, ya sea horizontal [-], vertical [|] o diagonal [/].

La salida de nuestro proceso, serán varias tablas formadas por “palitos”  que son, de hecho, las características más simples que representan los bordes de los objetos en la imagen. Son solamente imágenes,  pero construidas de palitos. Así que, una vez más, podemos tomar un bloque de 8 × 8 y ver si coinciden. Y una y otra vez.

Esta operación se llama “convolución”, y este nombre le dio la denominación al algoritmo. La convolución se puede representar como una capa de una red neuronal, porque cada neurona puede actuar como cualquier función.

Cuando alimentamos nuestra red neuronal con muchas fotos de gatos, asigna automáticamente pesos (importancia) más grandes a las combinaciones de palitos que ve con más frecuencia. No importa si se trata de una línea recta de la espalda de un gato o un objeto geométricamente complicado como la cara de un gato.

Para obtener nuestra salida pondríamos una neurona simple que buscará las combinaciones más comunes y, en base a esto, podríamos diferenciar a los gatos de los perros.

En la siguiente figura podemos observar un ejemplo de este tipo de procesamiento de “palitos”, para rostros, coches, elefantes… y sillas.

Lo interesante  de esta idea de “palitos” es que tenemos una red neuronal que busca las características más distintivas de los objetos por sí misma. No necesitamos recogerlos manualmente. Podemos alimentar cualquier cantidad de imágenes de cualquier objeto con solo buscar miles de millones de imágenes y nuestra red creará mapas de características a partir de palitos y aprenderá a diferenciar cualquier objeto por sí solo.

Algo similar, pero con otras técnicas, lo podemos ver en el área de reconocimiento facial, una de las aplicaciones de la Visión Artificial. En este caso, en lugar de palitos se buscan puntitos como referencias faciales, pero finalmente el proceso de aprendizaje es similar a la del gato.

Después de leer esto, podemos ver que las redes neuronales y la inteligencia artificial están en nuestro día a día, con múltiples aplicaciones. Veamos algunas 👇

Aplicaciones de la Visión Artificial 🧿

La Visión Artificial es un área con más de 40 años de investigación, por lo que ya contamos con varias aplicaciones de las técnicas desarrolladas. Estas aplicaciones incluyen:

  • Reconocimiento óptico de caracteres (OCR): Que consiste en la identificación automática a partir de una imagen de símbolos o caracteres que pertenecen a un determinado alfabeto, para luego almacenarlos en forma de datos.
  • Inspección robotizada: La inspección rápida de las piezas para garantizar la calidad de los componentes de fabricación utilizando una visión estéreo con iluminación especializada.
  • Construcción de modelos 3D: La construcción automatizada de modelos 3D a partir de fotografías.
  • Imágenes médicas: Tecnología utilizada para tomar radiografías y las técnicas para detectar tumores malignos y anomalías en las mismas.
  • Seguridad automotriz: Ayudar a detectar obstáculos mediante un sistema de conducción asistida utilizando diferentes cámaras.
  • Captura de movimiento: Utilizar marcadores retro-reflexivos vistos desde múltiples cámaras u otras técnicas para la captura de movimientos de los actores para utilizar en animación por computadora.
  • Vigilancia: Monitoreo de intrusos, análisis del tráfico vial, y monitoreo de piscinas para víctimas de ahogamiento.
  • Reconocimiento de huellas dactilares y biometría: Para la identificación automática de accesos y también utilizada para aplicaciones forenses.
  • Detección de caras: Utilizado para mejorar el foco de las cámaras y para hacer una búsqueda más relevante de personas en imágenes.

Como estas, existen muchas más aplicaciones de las técnicas de Visión Artificial; muchas de las cuales son algo ya común para nosotros 😁

Ahora seguro que puedes entender un poco más esta imagen 😎

Leo Gamboa Uribe

Santander Global Tech

Profesional  con más de 20 años de experiencia liderando proyectos tecnológicos en las áreas de Telecomunicaciones, Aeroespacial, IoT y  Finanzas. Fundador de Molino Valley, Incubadora Tecnológica  en Las Rozas de Madrid.

Amante de la naturaleza, deportista (Triatlón) , apasionado de la tecnología y la divulgación de áreas STEM (Science, Technology, Engineering, and Math).

 

👉 Mi perfil de LinkedIn

 

 

Otros posts