lunes, 5 de julio de 2021

Visión artificial #1 | Breve introducción a la visión artificial

Este es el primer "capítulo" de lo que será una pequeña serie sobre la visón artificial. Una muy extensa área de conocimiento de la tecnología que ha llamado mi atención. No tengo pensado seguir un guión de contenidos así que decidiré qué publicar conforme transcurra el tiempo. Estoy dedicando mucho esfuerzo y cariño en estudiarla así que espero que, como lector, la disfrutes, compartas y, sobre todo, aprendas algo nuevo en cada ocasión.

Figura 1. Monitorización del distanciamiento social en tiempos de COVID
Fuente: deepnote.com

Introducción a la visión artificial

En esta primera toma de contacto se pretende definir los conceptos básicos de la visión artificial, creando así una base sólida sobre la que nos apoyaremos de cara a futuras y más complejas publicaciones. ¿Qué es la visión artificial? ¿En qué consiste? ¿Cuáles son sus aplicaciones en el mundo real?

1. Concepto y contextualización

Como casi toda tecnología, esta se apoya en el conocimiento de otros muchos campos de conocimiento como matemáticas, física, computación, electrónica, robótica y tantos otros implicados en mayor o menor medida en función del problema a resolver.

La visión artificial (por computador o computacional) es el esfuerzo de las tecnologías informáticas dedicado a procesar, analizar e interpretar imágenes. Salvando las distancias, puede decirse que trata de emular el entendimiento visual del ser humano. 

De partida, la máquina no puede conocer absolutamente nada acerca de una imagen, pues carece de conciencia propia. Si observamos el paisaje que se ve desde nuestra ventana podemos diferenciar con precisión los diferentes elementos que conforman la escena. Sabemos reconocer qué es un árbol, un vehículo o un gato, incluso sin llegar a ver por completo la forma de alguno de estos.

Imagina que es verano, hace mucho sol y ves una figura delgada, alargada, de textura peluda y que se mueve suavemente de un lado a otro. Parece que forma parte de algo mayor y está tras la rueda de un coche. Entonces se trata de... ¿un gato? ¿un perro? ¿una serpiente? ¿una cuerda? Nosotros sabríamos que es un gato, por su forma de mover la cola y porque suelen esconderse bajo los coches cuando hace calor, entre otros.

Esto es porque tenemos la capacidad de reconocer y deducir, de saber qué es y qué no es. Aprendemos a lo largo de una vida y tenemos conciencia sobre el entorno que nos rodea y nuestro lugar en él. Somos por naturaleza suficientemente inteligentes para realizar deducciones más o menos complejas.

Figura 2. Detección de aves - Fuente: myrobotlab.com


Para comprender cómo un programa de visión computacional puede ser capaz de inferir conocimiento automáticamente a partir de una imagen, primero debemos tener claro que este no trabaja directamente con la imagen. La unidad mínima e indivisible de información con la que opera es el píxel. En el modelo RGB, un píxel representa uno de 16.777.216 millones de colores posibles.

A partir del conjunto de píxeles que conforman una imagen y gracias a la acción de diversos algoritmos informáticos, es como la máquina puede llegar a reconocer distintas figuras a lo largo del espacio bidimensional de la imagen. Estos algoritmos no funcionan de manera independiente sino que están estrechamente sincronizados y forman parte de un complejo de tratamiento de información mucho mayor. Por su extensión, dejo este punto como "caja negra" para próximas publicaciones.

Es una tecnología computacionalmente cara, pues todas las etapas por las que pasa la información desde que se captura la imagen hasta que es interpretada suelen ocurrir en tiempo real. Esta exigencia temporal pone sobre la mesa el reto de la eficiencia algorítmica y la velocidad de procesamiento.

2. Áreas de Aplicación

Son muchas las investigaciones que afirman que la visión artificial se encuentra actualmente en auge debido a la gran cantidad de aplicaciones que tiene. El volumen de contenido visual que se está generando en las últimas décadas ha favorecido la aparición de nuevas aplicaciones y, por lo tanto, el desarrollo de nuevos y mejores algoritmos. Sin embargo, la visión artificial se encuentra aún en una etapa temprana de su desarrollo.

La aplicación de algoritmos de visión computacional a cualquier área y problema concreto es de base una tarea compleja. Deben ser diseñados a medida para así alcanzar unos estándares de calidad en lo que a precisión, robustez y velocidad se refiere. Algunas aplicaciones en algunos campos son:

  • Agricultura: detección y control automático de malezas y plagas; identificación de tipos de plantas.
  • Astronomía: observación de elementos del cosmos (estrellas, planetas, satélites, fenómenos, etc).
  • Meteorología: seguimiento y prevención de fenómenos meteorológicos (lluvia, nieve, huracanes, viento, etc) a partir de imágenes satelitales.
  • Biología: determinación de ciertos rasgos en especies vegetales o animales en base a su textura, patrones de color, tamaño, forma, etc.
Figura 3. Interacción entre dos seres vivos

  • Medicina: diagnóstico de patologías a partir de ecografías, radiografías, mamografías, resonancias magnéticas, etc.
  • Microscopia: reconocimiento y conteo de células o microorganismos a partir de imágenes microscópicas tomadas de una muestra.
Figura 4. Detección de células cancerosas - Fuente: firstxw.com

  • Geología: movimientos del terreno (deslizamientos, desprendimientos, etc), formaciones o mediciones geológicas.
  • Inspección y control de calidad: monitorización de calidad en la manufacturación de frutas y vegetales (impurezas, mala apariencia, defectos en la producción, etc).
Figura 5. Detección de defectos en frutas - Fuente: interempresas.net

  • Modelado y visualización 3D: creación de modelos 3D a partir de imágenes bidimensionales (sistemas de visualización interactiva).
  • Reconocimiento y clasificación: reconocimiento de rostros, vehículos y un muy largo etcétera. Esta área suele ser precursora de otras muchas; por ejemplo, el reconocimiento facial aplicado a la autenticación de dispositivos.
  • Robótica: guiado automático de máquinas. Conducción automática de vehículos, automatización de robots exploradores en otros planetas, por ejemplo.
  • Seguridad: detección de movimiento, cuerpos extraños, reconocimiento facial, dactilar u ocular, etc.
  • Automoción: asistencia de estacionamiento, visualización por pantalla de la posición del vehículo en el espacio, etc. Podría incluirse dentro de la categoría de robótica.
Figura 6. Detección de carreteras - Fuente: navoshta.com

  • Accesibilidad: desarrollo de interfaces de usuario basadas en la detección ocular o gestual para personas con limitaciones motrices.
Figura 7. Detección del parpadeo - Fuente: pyimagesearch.com

  • Teledetección: detección de diversos fenómenos a partir de imágenes aéreas o satelitales (deforestación, seguimiento en la migración de especies de animales, incendios, etc).

3. Referencias

Ben G. Weinstein. (2017). A computer vision for animal ecology. (British Ecological Society). Recuperado de: https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/1365-2656.12780 en julio de 2021.

Iván García S., Víctor Caranqui S. (2015). La visión artificial y los campos de aplicación (Universidad Politécnica Estatal del Carchi – Ecuador). Recuperado en julio de 2021.

Mouna Afif, Yahia Said, Mohamed Atri. (2020). Computer vision algorithms acceleration using graphic processors NVIDIA CUDA. (Springer). Recuperado en julio de 2021.

Kari Pulli, Anatoly Baksheev, Kirill Kornyakov, Victor Eruhimov. (2012). Real-Time Computer Vision with OpenCV. (Communications of the ACM). Recuperado de: https://cacm.acm.org/magazines/2012/6/149789-real-time-computer-vision-with-opencv/fulltext en junio de 2021.

No hay comentarios:

Publicar un comentario