Capítulo 1. Aprendizaje automático para visión por ordenador

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Imagina que estás sentado en un jardín, observando lo que ocurre a tu alrededor. En tu cuerpo trabajan dos sistemas: tus ojos actúan como sensores y crean representaciones de la escena, mientras que tu sistema cognitivo da sentido a lo que ven tus ojos. Así, puede que veas un pájaro, un gusano y algo de movimiento y te des cuenta de que el pájaro ha bajado por el camino y se está comiendo un gusano (véase la Figura 1-1).

Figura 1-1. En la visión humana intervienen nuestros sistemas sensoriales y cognitivos.

La visión por ordenador intenta imitar las capacidades de visión humanas proporcionando métodos para la formación de imágenes (imitación del sistema sensorial humano) y la percepción de la máquina (imitación del sistema cognitivo humano). La imitación del sistema sensorial humano se centra en el hardware y en el diseño y colocación de sensores como las cámaras. El enfoque moderno para imitar el sistema cognitivo humano consiste en métodos de aprendizaje automático (ML) que se utilizan para extraer información de las imágenes. Estos métodos son los que tratamos en este libro.

Cuando vemos una fotografía de una margarita, por ejemplo, nuestro sistema cognitivo humano es capaz de reconocerla como una margarita (véase la Figura 1-2). Los modelos de aprendizaje automático para la clasificación de imágenes que construimos en este libro imitan esta capacidad humana partiendo de fotografías de margaritas.

Figura 1-2. Un modelo de aprendizaje automático de clasificación de imágenes imita el sistema cognitivo humano.

Aprendizaje automático

Si estuvieras leyendo un libro sobre visión por ordenador a principios de la década de 2010, los métodos utilizados para extraer información de las fotografías no habrían implicado aprendizaje automático. En su lugar, habrías aprendido sobre eliminación de ruido, búsqueda de perímetros, detección de texturas y operaciones morfológicas (basadas en la forma). Con los avances en inteligencia artificial (más concretamente, los avances en aprendizaje automático), esto ha cambiado.

La inteligencia artificial (IA) explora métodos mediante los cuales los ordenadores pueden imitar las capacidades humanas. El aprendizaje automático es un subcampo de la IA que enseña a los ordenadores a hacer esto mostrándoles una gran cantidad de datos y ordenándoles que aprendan de ellos. Los sistemas expertos son otro subcampo de la IA: los sistemas expertos enseñan a los ordenadores a imitar las capacidades humanas programándolos para que sigan la lógica humana. Antes de la década de 2010, las tareas de visión por ordenador, como la clasificación de imágenes, solían realizarse construyendo filtros de imágenes a medida para aplicar la lógica establecida por los expertos. Hoy en día, la clasificación de imágenes se consigue mediante redes convolucionales, una forma de aprendizaje profundo (ver Figura 1-3).

Figura 1-3. La visión por ordenador es un subcampo de la IA que intenta imitar el sistema visual humano; aunque antes se basaba en un enfoque de sistemas expertos, hoy se hace con aprendizaje automático.

Tomemos, por ejemplo, la imagen de la margarita de la Figura 1-2. Un enfoque de aprendizaje automático enseña a un ordenador a reconocer el tipo de flor de una imagen mostrándole muchas imágenes junto con sus etiquetas (o respuestas correctas). Así, mostraríamos al ordenador muchas imágenes de margaritas, muchas imágenes de tulipanes, etc. A partir de este conjunto de datos de entrenamiento etiquetados, el ordenador aprende a clasificar una imagen que no ha visto antes. En los capítulos 2 y 3 se explica cómo ocurre esto.

En cambio, en un enfoque de sistema experto, empezaríamos por entrevistar a un botánico humano sobre cómo clasifica las flores. Si el botánico nos explicara que la bellis perennis (el nombre científico de una margarita) consta de pétalos alargados blancos alrededor de un centro amarillo y hojas verdes y redondeadas, intentaríamos idear filtros de procesamiento de imágenes que coincidieran con estos criterios. Por ejemplo, buscaríamos el predominio del blanco, el amarillo y el verde en la imagen. Luego idearíamos filtros de perímetro para identificar los bordes de las hojas y filtros morfológicos para ver si coinciden con la forma redondeada esperada. Podríamos suavizar la imagen en el espacio HSV (tono, saturación, valor) para determinar el color del centro de la flor en comparación con el color de los pétalos. Basándonos en estos criterios, podríamos obtener una puntuación para una imagen que califique la probabilidad de que sea una margarita. Del mismo modo, diseñaríamos y aplicaríamos distintos conjuntos de reglas para rosas, tulipanes, girasoles, etc. Para clasificar una nueva imagen, elegiríamos la categoría cuya puntuación fuera la más alta para esa imagen.

Esta descripción ilustra el considerable trabajo a medida que era necesario para crear modelos de clasificación de imágenes. Por eso la clasificación de imágenes solía tener una aplicabilidad limitada.

Todo eso cambió en 2012 con la publicación del artículo AlexNet. Los autores -Alex Krizhevsky, Ilya Sutskever y Geoffrey E. Hinton- consiguieron superar con creces cualquier método de clasificación de imágenes existente aplicando redes convolucionales (tratadas en el Capítulo 3) al conjunto de datos de referencia utilizado en el Desafío de reconocimiento visual a gran escala de ImageNet (ILSVRC). Alcanzaron un error1 del 15,3%, mientras que la tasa de error del segundo clasificado fue superior al 26%. Las mejoras típicas en competiciones como ésta son del orden del 0,1%, por lo que la mejora que demostró AlexNet ¡fue cien veces superior a lo que la mayoría de la gente esperaba! Fue una actuación que llamó la atención.

Las redes neuronales existían desde los años 70, y las propias redes neuronales convolucionales (CNN) llevaban más de dos décadas en ese momento: Yann LeCun introdujo la idea en 1989. Entonces, ¿qué había de nuevo en AlexNet? Cuatro cosas:

Unidades de procesamiento gráfico (GPU)

Las redes neuronales convolucionales son una gran idea, pero computacionalmente son muy caras. Los autores de AlexNet implementaron una red convolucional sobre las librerías de renderizado gráfico proporcionadas por unos chips especiales llamados GPU. En aquel momento, las GPU se utilizaban principalmente para la visualización y los juegos de gama alta. El artículo agrupaba las convoluciones para ajustar el modelo a dos GPU. Las GPU hicieron que las redes convolucionales fueran factibles de entrenar (hablaremos de la distribución del entrenamiento del modelo entre las GPU en el Capítulo 7).

Activación de la unidad lineal rectificada (ReLU)

Los creadores de AlexNet utilizaron en su red neuronal una función de activación no saturante de llamada ReLU. Hablaremos más sobre redes neuronales y funciones de activación en el Capítulo 2; por ahora, basta con saber que el uso de una función de activación lineal a trozos no saturante permitió que su modelo convergiera mucho más rápido.

Regularización

El problema de las ReLU -y la razón por la que no se habían utilizado mucho hasta 2012- era que, al no saturarse, los pesos de la red neuronal se volvían numéricamente inestables. Los autores de AlexNet utilizaron una técnica de regularización para evitar que los pesos fueran demasiado grandes. También hablaremos de la regularización en el Capítulo 2.

Profundidad

Al poder entrenar más rápido, pudieron entrenar un modelo más complejo que tenía más capas de red neuronal. Decimos que un modelo con más capas es más profundo; la importancia de la profundidad se tratará en el Capítulo 3.

Merece la pena reconocer que fue el aumento de la profundidad de la red neuronal (permitido por la combinación de las tres primeras ideas) lo que hizo que AlexNet triunfara en todo el mundo. Que las CNN podían acelerarse utilizando GPU ya se había demostrado en 2006. La propia función de activación ReLU no era nueva, y la regularización era una técnica estadística bien conocida. En última instancia, el excepcional rendimiento del modelo se debió a que los autores comprendieron que podían combinar todo esto para entrenar una red neuronal convolucional más profunda de lo que se había hecho antes.

La profundidad es tan importante para el resurgimiento del interés por las redes neuronales que todo el campo ha pasado a denominarse aprendizaje profundo.

Casos de uso del aprendizaje profundo

El aprendizaje profundo es una rama del aprendizaje automático que utiliza redes neuronales con muchas capas. El aprendizaje profundo superó a los métodos existentes anteriormente para la visión por ordenador, y ahora se ha aplicado con éxito a muchas otras formas de datos no estructurados: vídeo, audio, texto en lenguaje natural, etc.

El aprendizaje profundo nos da la capacidad de extraer información de las imágenes sin tener que crear filtros de procesamiento de imágenes a medida o codificar la lógica humana. Al realizar la clasificación de imágenes mediante el aprendizaje profundo, necesitamos cientos, miles o incluso millones de imágenes (cuantas más, mejor), para las que conocemos la etiqueta correcta (como "tulipán" o "margarita"). Estas imágenes etiquetadas pueden utilizarse para entrenar un modelo de aprendizaje profundo de clasificación de imágenes.

Siempre que puedas formular una tarea en términos de aprendizaje a partir de datos, es posible utilizar métodos de aprendizaje automático de visión por ordenador para abordar el problema. Por ejemplo, considera el problema del reconocimiento óptico de caracteres (OCR): tomar una imagen escaneada y extraer el texto de ella. Los primeros enfoques del OCR consistían en enseñar al ordenador a comparar patrones con el aspecto de las letras individuales. Esto resulta ser un enfoque difícil, por varias razones. Por ejemplo:

  • Hay muchos tipos de letra, por lo que una misma letra puede escribirse de muchas maneras.

  • Las letras tienen distintos tamaños, por lo que la coincidencia de patrones tiene que ser invariable con la escala.

  • Los libros encuadernados no pueden colocarse planos, por lo que las letras escaneadas se distorsionan.

  • No basta con reconocer letras sueltas; hay que extraer el texto completo. Las reglas de lo que forma una palabra, una línea o un párrafo son complejas (ver Figura 1-4).

Figura 1-4. El reconocimiento óptico de caracteres basado en reglas requiere identificar líneas, dividirlas en palabras y, a continuación, identificar las letras componentes de cada palabra.

Por otra parte, con el uso del aprendizaje profundo, el OCR puede formularse con bastante facilidad como un sistema de clasificación de imágenes. Hay muchos libros que ya han sido digitalizados, y es posible entrenar el modelo mostrándole una imagen escaneada de un libro y utilizando el texto digitalizado como etiqueta.

Los métodos de visión por ordenador ofrecen soluciones para diversos problemas del mundo real. Además del OCR, los métodos de visión por ordenador se han aplicado con éxito al diagnóstico médico (utilizando imágenes como radiografías y resonancias magnéticas), a la automatización de operaciones minoristas (como la lectura de códigos QR, el reconocimiento de estanterías vacías, la comprobación de la calidad de las verduras, etc.), a la vigilancia (monitoreo del rendimiento de las cosechas a partir de imágenes de satélite, monitoreo de cámaras de vida salvaje, detección de intrusos, etc.), al reconocimiento de huellas dactilares y a la seguridad automovilística (seguimiento de coches a una distancia segura, identificación de cambios en los límites de velocidad a partir de señales de tráfico, coches que aparcan solos, coches que se conducen solos, etc.).

La visión por ordenador se ha utilizado en muchos sectores. En la administración pública, se ha utilizado para el monitoreo de imágenes de satélite, en la construcción de ciudades inteligentes y en inspecciones aduaneras y de seguridad. En la sanidad, se ha utilizado para identificar enfermedades oculares y encontrar signos precoces de cáncer en las mamografías. En agricultura, se ha utilizado para detectar bombas de riego averiadas, evaluar el rendimiento de las cosechas e identificar enfermedades de las hojas. En la industria manufacturera, se utiliza en las fábricas para el control de calidad y la inspección visual. En los seguros, se ha utilizado para evaluar automáticamente los daños de los vehículos tras un accidente.

Resumen

La visión por ordenador ayuda a los ordenadores a comprender el contenido de las imágenes digitales, como las fotografías. A partir de un artículo fundamental publicado en 2012, los enfoques de aprendizaje profundo de la visión por ordenador han tenido un gran éxito. Hoy en día, encontramos usos satisfactorios de la visión por ordenador en un gran número de sectores.

Comenzaremos nuestro viaje en el Capítulo 2 creando nuestros primeros modelos de aprendizaje automático.

1 Precisión Top-5 significa que consideramos que el modelo es correcto si devuelve la etiqueta correcta para una imagen dentro de sus cinco primeros resultados.

Get Aprendizaje automático práctico para visión por ordenador now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.