El reconocimiento de objetos es una técnica de visión artificial para identificar objetos en imágenes o vídeos. El reconocimiento de objetos constituye una salida clave de los algoritmos de deep learning y machine learning. Cuando las personas miramos una fotografía o vemos un vídeo, detectamos con rapidez personas, objetos, lugares y detalles visuales. El objetivo es enseñar a un ordenador a hacer lo que resulta natural para los humanos: adquirir cierto nivel de comprensión del contenido de una imagen.
El reconocimiento de objetos es una tecnología clave presente en los vehículos sin conductor que les permite reconocer una señal de stop o distinguir entre un peatón y una farola. También resulta útil en diversas aplicaciones, tales como la identificación de enfermedades en las bioimágenes, la inspección industrial y la visión robótica.
Reconocimiento de objetos frente a detección de objetos
La detección de objetos y el reconocimiento de objetos son técnicas similares para identificar objetos, pero varían en cuanto a su ejecución. La detección de objetos es el proceso de localizar objetos presentes en imágenes. En el caso de deep learning, la detección de objetos forma parte del reconocimiento de objetos, que no solo identifica el objeto, sino que lo localiza en una imagen. Esto permite identificar y localizar varios objetos en la misma imagen.
Se pueden adoptar diversos enfoques en cuanto al reconocimiento de objetos. Recientemente, algunas técnicas de machine learning y deep learning se han convertido en enfoques generalizados para los problemas de reconocimiento de objetos. Ambas técnicas aprenden a identificar objetos en imágenes, pero difieren en su ejecución.
En el apartado siguiente se explican las diferencias entre machine learning y deep learning para el reconocimiento de objetos, y se muestra cómo implementar estas dos técnicas.
Técnicas de reconocimiento de objetos
Reconocimiento de objetos mediante deep learning
Las técnicas de deep learning se han convertido en un método habitual para llevar a cabo el reconocimiento de objetos. Se emplean modelos de deep learning, tales como las redes neuronales convolucionales, o CNN, para aprender automáticamente las características inherentes de un objeto a fin de identificarlo. Por ejemplo, una CNN puede aprender a identificar las diferencias entre gatos y perros mediante el análisis de miles de imágenes de entrenamiento y el aprendizaje de las características que hacen que los gatos y los perros sean diferentes.
Existen dos enfoques en cuanto al reconocimiento de objetos mediante deep learning:
- Entrenamiento de un modelo desde cero: para entrenar una red profunda desde cero, hay que recopilar un conjunto de datos etiquetados muy amplio y diseñar una arquitectura de red que aprenda las características y cree el modelo. Los resultados pueden ser impresionantes, pero este enfoque requiere una gran cantidad de datos de entrenamiento, y es necesario configurar las capas y las ponderaciones en la CNN.
- Utilización de un modelo de deep learning previamente entrenado: la mayoría de las aplicaciones de deep learning emplean el enfoque de transferencia del aprendizaje, un proceso que implica el ajuste de un modelo previamente entrenado. Se empieza con una red existente, como por ejemplo AlexNet o GoogLeNet, y se le proporcionan datos nuevos que contienen clases previamente desconocidas. Este método requiere menos tiempo y puede proporcionar un resultado más rápido porque el modelo ya se había entrenado anteriormente con miles o millones de imágenes.
Deep learning ofrece un nivel superior de precisión pero requiere una gran cantidad de datos para realizar predicciones exactas.
Reconocimiento de objetos mediante machine learning
También existen técnicas de machine learning habituales en el reconocimiento de objetos que ofrecen enfoques diferentes a los de deep learning. Algunos ejemplos comunes de técnicas de machine learning son:
- Extracción de características HOG con un modelo SVM de machine learning
- Modelos bag-of-words con características tales como SURF y MSER
- El algoritmo Viola-Jones, que se puede utilizar para reconocer una serie de objetos, incluidas caras y torsos
Flujo de trabajo de machine learning
Para llevar a cabo el reconocimiento de objetos con un enfoque estándar de machine learning, hay que empezar con una recopilación de imágenes (o vídeos) y seleccionar las características relevantes de cada imagen. Por ejemplo, un algoritmo de extracción de características podría extraer características de los bordes o las esquinas que se pueden emplear para diferenciar entre las clases de datos.
Estas características se añaden a un modelo de machine learning, el cual las dividirá según sus diferentes categorías y, a continuación, utilizará esta información durante el análisis y la clasificación de nuevos objetos.
Es posible utilizar diversos algoritmos de machine learning y métodos de extracción de características, los cuales ofrecen muchas combinaciones para crear un modelo de reconocimiento de objetos preciso.
El uso de machine learning para el reconocimiento de objetos ofrece la flexibilidad de elegir la mejor combinación de características y clasificadores para el aprendizaje. Puede obtener resultados precisos con una cantidad mínima de datos.
Machine learning frente a deep learning para el reconocimiento de objetos
La determinación del mejor enfoque para el reconocimiento de objetos depende de la aplicación y del problema que intente resolver. En muchos casos, machine learning puede ser una técnica efectiva, especialmente si sabe qué características o rasgos de la imagen son los mejores que se pueden usar para diferenciar las clases de objetos.
Lo principal que se debe tener en cuenta a la hora de elegir entre machine learning y Deep learning es si se dispone de una GPU potente y una gran cantidad de imágenes de entrenamiento etiquetadas. Si la respuesta a cualquiera de estas preguntas es negativa, la mejor opción podría ser un enfoque de machine learning. Las técnicas de deep learning tienden a funcionar mejor con una gran cantidad de imágenes, y una GPU ayuda a reducir el tiempo necesario para entrenar el modelo.
Más información
Otros métodos de reconocimiento de objetos
Otros enfoques más básicos sobre el reconocimiento de objetos pueden ser suficientes en función de la aplicación.
- Coincidencia de plantillas: se emplea una imagen pequeña, o plantilla, para localizar regiones coincidentes en una imagen más amplia
- • Segmentación de imágenes y análisis de blobs:se utilizan propiedades simples de los objetos, tales como tamaño, color o forma
Normalmente, si un objeto se puede reconocer con un enfoque simple como la segmentación de imágenes, es mejor empezar por ahí. Esto puede proporcionar una solución sólida que no requiere cientos o miles de imágenes de entrenamiento ni una solución demasiado complicada.
deep learning y machine learning con MATLAB
Basta con unas pocas líneas de código de MATLAB a fin de crear modelos de machine learning y deep learning para el reconocimiento de objetos sin necesidad de ser un experto.
El uso de MATLAB para el reconocimiento de objetos facilita la obtención de resultados en menos tiempo, ya que permite:
- Usar su experiencia en la materia y aprender data analytics con MATLAB.
Puede utilizar MATLAB para aprender y obtener experiencia en las áreas de machine learning y deep learning. MATLAB hace que el aprendizaje sobre estos campos resulte práctico y accesible. Además, MATLAB permite a los expertos crear modelos de reconocimiento de objetos en lugar de traspasar la tarea a analistas de datos que pueden no conocer el sector o la aplicación.
- Usar apps para etiquetar los datos y crear modelos.
MATLAB permite crear modelos de machine learning y deep learning con una cantidad mínima de código.
Con la app Classification Learner podrá crear rápidamente modelos de machine learning y comparar distintos algoritmos de machine learning sin tener que escribir código.
La app Image Labeler permite etiquetar interactivamente objetos dentro de las imágenes y automatizar el etiquetado de validación en los vídeos para el entrenamiento y las pruebas de los modelos de deep learning. Este enfoque interactivo y automatizado puede ofrecer mejores resultados en menos tiempo.
- Integrar el reconocimiento de objetos en un único flujo de trabajo.
MATLAB puede unificar varios dominios en un solo flujo de trabajo. Con MATLAB, es posible pensar y programar en un mismo entorno. Ofrece herramientas y funciones para deep learning y machine learning, y también para una serie de dominios que alimentan estos algoritmos, tales como robótica, visión artificial y data analytics.
MATLAB automatiza la implementación de sus modelos en sistemas de empresa, clusters, nubes y dispositivos embebidos.
Cómo obtener más información sobre el reconocimiento de objetos
Para obtener más información, consulte MATLAB, Image Processing Toolbox, Computer Vision Toolbox, Statistics and Machine Learning Toolbox y Deep Learning Toolbox.
Vídeos
Reconocimiento de objetos: deep learning y machine learning para visión artificial (26:57)
Descarga: también puede descargar el código de demostración empleado en la presentación.
Deep Learning con MATLAB: Deep Learning en 11 líneas de código de MATLAB (2:38)
Ejemplos y procedimientos:
- Serie de vídeos Deep learning con MATLAB
- Download Object Detection and Recognition Code Examples (Descarga de ejemplos de código sobre detección y reconocimiento de objetos)
- Reconocimiento de patrones