Reconocimiento de imágenes

 

¿Qué es el reconocimiento de imágenes?

3 cosas que es necesario saber

El reconocimiento de imágenes es el proceso de identificar un objeto o una característica en una imagen o un vídeo. Se utiliza en numerosas aplicaciones, como detección de defectos, gestión de imágenes médicas y vigilancia de la seguridad.

Por qué es importante

El reconocimiento de imágenes puede acelerar tareas tediosas y procesar imágenes más rápido o con mayor precisión que la inspección manual de imágenes. El reconocimiento de imágenes es una técnica fundamental en muchas aplicaciones y es el principal elemento impulsor en aplicaciones de Deep Learning, tales como:

  • Inspección visual: Proceso de identificación de piezas defectuosas o no defectuosas en la fabricación. Permite inspeccionar rápidamente miles de piezas en una cadena de montaje.
  • Clasificación de imágenes: Categorización de imágenes en función de su contenido. Resulta especialmente útil en aplicaciones tales como recuperación de imágenes y sistemas de recomendación en comercio electrónico.
  • Conducción autónoma: Capacidad de reconocer una señal de stop o un peatón en una imagen, fundamental en las aplicaciones de conducción autónoma.
  • Robótica: Reconocimiento de imágenes utilizado por robots para mejorar la navegación autónoma e identificar ubicaciones y objetos en su ruta.
Reconocimiento de imágenes en una aplicación de inspección visual para detectar defectos de piezas.

Reconocimiento de imágenes en una aplicación de inspección visual para detectar defectos de piezas.

El reconocimiento de imágenes es la tecnología principal en la que se basan estas aplicaciones. Identifica objetos o escenas en imágenes y utiliza esa información para tomar decisiones como parte de un sistema más amplio. Básicamente, el reconocimiento de imágenes proporciona información a estos sistemas y les permite tomar mejores decisiones.

Comparación entre reconocimiento de imágenes y detección de objetos

El reconocimiento de imágenes y la detección de objetos son técnicas similares que a menudo se utilizan juntas. El reconocimiento de imágenes identifica objetos o escenas en una imagen; la detección de objetos busca instancias y ubicaciones de esos objetos en las imágenes.

En la detección de objetos se suelen utilizan las técnicas Faster R-CNN y YOLOv3.

Reconocimiento de imágenes (izquierda) y detección de objetos (derecha).

Reconocimiento de imágenes (izquierda) y detección de objetos (derecha).

Cómo funciona

Técnicas de reconocimiento de imágenes

Existen muchos métodos de reconocimiento de imágenes, incluidas técnicas de Machine Learning y Deep Learning. La técnica que se emplea depende de la aplicación, pero, en general, cuanto más complejo el problema, más probable el uso de técnicas de Deep Learning.

Reconocimiento de imágenes con Deep Learning

Un enfoque de Deep Learning aplicado al reconocimiento de imágenes puede implicar el uso de una red neuronal convolucional para aprender automáticamente las características relevantes de las imágenes de muestra e identificar automáticamente esas características en nuevas imágenes.

Flujo de trabajo típico de Deep Learning para reconocimiento de imágenes:

Preparar datos de entrenamiento

Preparación de datos de entrenamiento: Comience con un conjunto de imágenes y compílelas en las categorías correspondientes. Este paso también puede incluir tareas de preprocesamiento para mejorar la consistencia de las imágenes y lograr así un modelo más preciso.

Crear un modelo de Deep Learning

Creación de un modelo de Deep Learning: Aunque se puede desarrollar un modelo de Deep Learning desde cero, puede ser mejor utilizar un modelo previamente entrenado como punto de partida para la aplicación en cuestión. Obtenga más información sobre modelos previamente entrenados.

Entrenar el modelo

Entrenamiento del modelo: Entrenar el modelo implica presentar los datos de prueba al modelo. Luego, el modelo realiza varias iteraciones de los datos y aprende automáticamente las características más importantes de las imágenes. A medida que se desarrolla el entrenamiento, el modelo aprende características más sofisticadas, hasta que logra distinguir con precisión las diferentes clases de imágenes en un conjunto de entrenamiento.

Datos de prueba

Datos de prueba: Pruebe el modelo con datos nuevos que no se hayan analizado antes para ver cómo el modelo interpreta la imagen. Si los resultados no son los que esperaba, repita estos cuatro pasos hasta alcanzar un nivel aceptable de precisión.

Las técnicas de Deep Learning parecen complicadas, pero aprender con ejemplos sencillos es una excelente manera de iniciarse en este campo.

Consejo: Las técnicas de Deep Learning son muy utilizadas en reconocimiento de imágenes, porque proporcionan resultados sumamente precisos y robustos. Deep Learning tiende a funcionar mejor con una gran cantidad de datos de entrenamiento. Técnicas como la transferencia del aprendizaje pueden simplificar el flujo de trabajo de reconocimiento de imágenes. Deep Learning Toolbox™ proporciona un marco para diseñar e implementar redes neuronales profundas con algoritmos, modelos previamente entrenados y apps.

Reconocimiento de imágenes con Machine Learning

Un enfoque de Machine Learning aplicado al reconocimiento de imágenes implica identificar y extraer características clave de las imágenes y utilizarlas como entrada para un modelo de Machine Learning.

  • Datos de entrenamiento: Comience con un conjunto de imágenes y compílelas en las categorías correspondientes.
  • Extracción de características: Seleccione las características relevantes de cada imagen. Un algoritmo de extracción de características puede extraer características de bordes o esquinas que se pueden emplear para distinguir las clases presentes en los datos.
  • Creación de un modelo de Machine Learning: Estas características se agregan a un modelo de Machine Learning, que las dividirá en sus distintas categorías y luego utilizará esta información durante el análisis y la clasificación de nuevos objetos.
Flujo de trabajo de Machine Learning

Flujo de trabajo de Machine Learning para reconocimiento de imágenes.

Puede utilizar diversos algoritmos de Machine Learning y métodos de extracción de características, que ofrecen muchas combinaciones para crear un modelo de reconocimiento de objetos preciso.

Ejemplo de Machine Learning

Ejemplo de Machine Learning con reconocimiento de imágenes para clasificar dígitos utilizando características HOG y un clasificador SVM.

Consejo: Utilizar Machine Learning para reconocimiento de objetos ofrece la flexibilidad de seleccionar la mejor combinación de características y clasificadores para el aprendizaje. Puede obtener resultados precisos con una cantidad mínima de datos. Statistics and Machine Learning Toolbox™ proporciona funciones y apps para describir, analizar y modelar datos.

Reconocimiento de imágenes: comparación entre Deep Learning y Machine Learning

¿Cómo elegir entre Deep Learning o Machine Learning para reconocimiento de imágenes? A grandes rasgos, la diferencia radica en seleccionar características manualmente con Machine Learning o aprenderlas automáticamente con Deep Learning.

Reconocimiento de imágenes con técnicas tradicionales de procesamiento de imágenes

Aparte de Deep Learning y Machine Learning, muchos métodos clásicos de procesamiento de imágenes son muy efectivos en el reconocimiento de imágenes para algunas aplicaciones. Las técnicas de procesamiento de imágenes tienden a adecuarse bien a aplicaciones de reconocimiento “basadas en el píxel”, tales como:

  • Reconocimiento de imágenes basado en color: Con frecuencia, el color es una excelente característica para el reconocimiento de imágenes. Otras características como tono, saturación y valor (HSV) o rojo, verde, azul (RGB) pueden proporcionar información sobre una imagen.
  • Coincidencia de plantillas: Esta técnica emplea una imagen pequeña, o plantilla, para identificar regiones coincidentes en una imagen más grande.
  • Segmentación de imágenes y análisis de blobs: Se utilizan propiedades simples de los objetos, tales como tamaño, color o forma.
Consejo: Normalmente, si un objeto se puede reconocer con un enfoque sencillo como la segmentación de imágenes, es mejor comenzar con ese método, dado que ya dispone de una solución robusta que no requiere cientos o miles de imágenes de entrenamiento ni una solución complicada. Es posible que Image Processing Toolbox™ tenga todas las herramientas que necesita.

Reconocimiento de imágenes con MATLAB

MATLAB® simplifica los aspectos más difíciles del reconocimiento de imágenes.

  1. Apps de etiquetado de imágenes: Datos limpios y preprocesados garantizan la mayor probabilidad de éxito en el reconocimiento de imágenes. Con la app Image Labeler puede automatizar el proceso de recorte y etiquetado de imágenes.
Etiquete imágenes y vídeos de manera interactiva.

Etiquete imágenes y vídeos de manera interactiva.

  1. Exploración de algoritmos de Deep Learning y Machine Learning: Al principio, tal vez no tenga claro si conviene utilizar técnicas de Deep Learning o Machine Learning. MATLAB ofrece la posibilidad de probar todas las combinaciones de enfoques. Explore modelos previamente entrenados para Deep Learning, o algoritmos de clasificación de Machine Learning.

Puede interoperar con redes y arquitecturas de red de marcos como TensorFlow™, Keras, PyTorch y Caffe2 utilizando las prestaciones de importación y exportación de ONNX™ (Open Neural Network Exchange).

Integración con marcos basados en Python.

  1. Generación automática de código para despliegue: En última instancia, es posible que el algoritmo tenga que funcionar fuera del entorno de escritorio. MATLAB proporciona herramientas de generación de código para desplegar el algoritmo de reconocimiento de imágenes en cualquier lugar: web, hardware integrado o servidores de producción.
Después de crear los algoritmos, puede utilizar flujos de trabajo automatizados para generar código de TensorRT o CUDA® con GPU Coder™ para pruebas de hardware-in-the-loop. El código generado se puede integrar con proyectos existentes y se puede utilizar para verificar algoritmos de detección de objetos en GPU de escritorio o GPU integradas, tales como las plataformas NVIDIA® Jetson o NVIDIA Drive.

También puede consultar:  Reconocimiento de patrones


Obtenga más información sobre el reconocimiento de imágenes

Consulte ejemplos de Deep Learning en la documentación.
Vea este vídeo con instrucciones paso a paso sobre cómo crear un clasificador preciso de manera interactiva.
Este ejemplo muestra cómo crear un sistema CBIR con un flujo de trabajo de bolsa de características personalizada.
Aprenda a utilizar las funciones de Computer Vision Toolbox™ para clasificar categorías de imágenes creando una bolsa de palabras visuales.
Explore qué es la visión artificial, cómo funciona, por qué es importante y cómo utilizar MATLAB para visión artificial