¿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.
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.
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.
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:
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.
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.
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: 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.
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.
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.
MATLAB® simplifica los aspectos más difíciles del reconocimiento de imágenes.
- 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.
- 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).
- 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.
También puede consultar: Reconocimiento de patrones