logo de open sistemas en blanco

Ampliando las capacidades de YOLOv5: desde la detección de objetos hasta la clasificación de audio

¡Hola!👋Soy Henry Navarro Hernández

Matemático, apasionado de los datos y la IA

Tabla de contenidos

¿Alguna vez te has preguntado si existe una forma en la que los sonidos se vuelvan visibles? ¿Qué más podemos descubrir más allá de lo evidente? En este escenario, YOLOv5 emerge como una joya oculta, una herramienta que va más allá de la simple visión. Imagina un mundo donde los sonidos se convierten en señales visuales, donde cada tono y matiz es un misterio por resolver.

Desde el sonido de la brisa hasta el ruido de la industria, YOLOv5 tiene el poder de descubrir cada secreto que oculta en el espectro del audio. Esta evolución significa un paso gigante. Ahora no solo se observa y detecta, sino que también entiende y clasifica sonidos.

Te invito a que descubramos juntos las sorprendentes capacidades de YOLOv5 en el análisis y categorización de datos de audio. Prepárate para cambiar la forma en que percibes el mundo del sonido y abres la puerta a posibilidades en el universo de la inteligencia artificial.

YOLOv5 y la clasificación de audio

El algoritmo YOLO (You Only Look Once) es un campeón en la detección de objetos en tiempo real. Pero, en agosto de 2022 llegó YOLOv5 una herramienta de la inteligencia artificial que tiene un talento especial para reconocer objetos en imágenes y videos. Pero eso no es todo, también tiene un oído muy agudo.

¿Cómo funciona YOLOv5 ?

Cuando se trata de clasificar audio, YOLOV5 es el maestro, imagina que divide el sonido en pequeñas partes, como trozos de un rompecabezas. Cada pedacito sabe identificar un sonido diferente, ya sea un perro ladrando, un coche pasando o incluso música sonando.

Para lograrlo, YOLOv5 pasa por tres pasos clave. Primero se encarga de preparar el audio eliminando cualquier ruido molesto y mejorando la calidad. Después viene la parte donde extrae características del sonido utilizando una red neuronal especializada. Finalmente llega la clasificación donde YOLOv5 decide a qué categoría pertenece cada sonido.

Fortalezas que hacen destacar a YOLOv5 en análisis de audio

YOLOv5 se ha destacado por su rapidez y eficiencia, tiene la capacidad de analizar y categorizar datos de audio en tiempo real lo que la convierte en una herramienta esencial para aplicaciones que requieren respuestas instantáneas. ¿Lo mejor? Va más allá al clasificar los datos de audio en categorías específicas, identificando no solo la presencia de sonido, sino también su tipo.

Una de las fortalezas de esta herramienta es la capacidad de adaptarse a diferentes entornos acústicos. Ya sea en un lugar tranquilo o en un ambiente ruidoso, YOLOv5 es capaz de diferenciar y clasificar sonidos en todas las situaciones. Esto significa que las oportunidades son casi infinitas, desde la monitorización de seguridad hasta el análisis de datos de audio en entornos industriales.

Ventajas de YOLOv5 en la clasificación de audio

Antes de comenzar con el desafío de clasificación de audio te detallare las ventajas de utilizar YOLOv5:

Velocidad de Procesamiento: La arquitectura de YOLOv5 está diseñada para procesar grandes cantidades de datos de audio en tiempo real, lo que la convierte en un aliado crucial para aplicaciones que requieren respuestas instantáneas.

Simplicidad en la implementación: YOLOv5 se distingue por su facilidad de uso, lo que la hace accesible para una amplia gama de desarrolladores.

Eficiencia en el Uso de Recursos: YOLOv5 es eficiente en el uso de recursos computacionales. Esto significa que puede ejecutarse en una amplia variedad de hardware, lo que facilita su implementación en una variedad de dispositivos.

 Actualizaciones y Comunidad Activa: Al ser un proyecto de código abierto está respaldado por una comunidad activa de desarrolladores. Esto significa que está en constante actualización y se beneficia de la colaboración de expertos.

A continuación nos enfrentaremos a un desafío: la clasificación de audio. Entonces, te preguntarás ¿cómo es capaz YOLOv5, conocido por sus modelos basados ​​en imágenes, de manejar tareas de clasificación de audio cuando el desafío en cuestión gira específicamente en torno a la clasificación de audio?

Ven conmigo y descubramos juntos como YOLOv5 supera este desafío

Espectrogramas

yolov5 1
Ejemplo de espectrograma.

Un espectrograma es una representación visual de las frecuencias presentes en una señal de audio a lo largo del tiempo. Proporciona una manera de analizar el contenido de frecuencia de un sonido y cómo cambia en diferentes intervalos de tiempo.

 Los espectrogramas son muy útiles para entender qué está pasando en un sonido y cómo cambian en el tiempo, se utilizan ampliamente en diversos campos, incluyendo el procesamiento de audio, el reconocimiento de voz, el análisis de música y más.

Cómo funcionan los espectrogramas

Los espectrogramas se crean realizando una transformación matemática llamada transformada de Fourier en pequeños segmentos de una señal de audio. Esto convierte la señal de “tiempo” a “frecuencia”. 

¿El resultado? Una representación que muestra  la magnitud o potencia de cada tipo de frecuencia presente en la señal a lo largo del tiempo.

Interpretación de espectrogramas

Ahora, cuando miras un espectrograma, el eje horizontal representa el tiempo, el eje vertical representa la frecuencia y el color o intensidad representa la magnitud o potencia de cada tipo de frecuencia. Las áreas más brillantes o intensas indican amplitudes más altas o frecuencias fuertes, mientras que las áreas más oscuras indican lo contrario.

espectograma expl 1

Los espectrogramas permiten observar la distribución de frecuencias a medida que pasa el tiempo, lo que facilita la identificación de diversas características de la señal de audio. 

Con ellos podemos descubrir cosas como los tonos, los ritmos y hasta los sonidos especiales que hay en la música.Proporcionando información valiosa sobre el contenido espectral y la dinámica temporal de las señales de audio.

Así que, en resumen, nos dan la clave para entender qué hace única cada señal de audio.

Convertir audio a espectrograma

Afortunadamente, realizar estos cálculos se simplifica con Python. Para agilizar la tarea, he creado un repositorio accesible en Github. Este repositorio simplifica enormemente el proceso al permitir la conversión de casi cualquier archivo de audio en un espectrograma.

Imagina esto en vez de complicarnos clasificando sonidos. ¿por qué no lo convertimos en algo más fácil de entender? Así es como los desarrolladores con un par de pasos sencillos toman los datos de audio y los transforman en imágenes llamadas espectrogramas. Por lo que el primer paso es clonar e instalar las dependencias:


git clone https://github.com/hdnh2006/AudioToSpectogram/ 
cd AudioToSpectogram 
pip install -r requirements.txt

Encuentra algún conjunto de datos de prueba 

Para este ejemplo, utilizaré el conjunto de datos «gato vs perro» disponible en Unsplash. Este conjunto de datos tiene una amplia gama de muestras de audio que capturan los sonidos de perros y gatos, lo que lo convierte en una opción ideal para nuestra demostración.

perrosygatos
Esta imagen es totalmente innecesaria pero creo que es linda 😍 debido al tema del que estamos hablando 🤭

Ahora que ya tenemos todo lo necesario instalado. Solo necesitas una línea de código para convertir el conjunto de datos de audio descargado de Kaggle en espectrogramas:

python audio_to_spectogram.py - fuente gatos_perros

Entrena YOLOv5 para la clasificación de audio

Ahora que hemos reunido todas las imágenes en una sola carpeta, entrenar YOLOv5 con fines de clasificación se ha vuelto relativamente sencillo. Mucho de esto se debe al gran trabajo del equipo de Ultralytics durante todos estos años.

Sin embargo, vale la pena señalar que existe una diferencia significativa en la estructura de carpetas requerida para los conjuntos de datos de detección de objetos. Para entrenar YOLOv5 con éxito, la estructura de carpetas del conjunto de datos debe cumplir con el siguiente formato:

conjunto de datos/ 
    gatos_y_perros/ 
        tren/ 
            gato / 
                ... (imágenes de entrenamiento de gatos) 
            perro/ 
                ... (imágenes de entrenamiento de perros) 
        val/ 
            gato / 
                ... (imágenes de validación de gatos) 
            perro/ 
                ... (imágenes de validación de dogs) 
yolov5/ 
    ... (código YOLOv5 y archivos de configuración)

En este caso, no es necesario ningún data.yamlarchivo. El algoritmo considerará automáticamente cada carpeta presente en los directorios «train» y «val» como categorías o clases separadas. 

Cuando se trata de tareas de detección de objetos, YOLOv5 requiere más recursos computacionales en comparación con su contraparte de clasificación. 

Sin embargo, en el contexto de las capacidades de detección de objetos de YOLOv5, aún mantiene la eficiencia y se puede entrenar localmente en configuraciones de hardware estándar (no lo he probado con conjuntos de datos más grandes). 

Ahora usemos YOLOv5 de Ultralytics:

git clone https://github.com/ultralytics/yolov5 
cd yolov5 
pip install -r equirements.txt
pip install wandb # opcional (resultados de seguimiento)

Ya es el momento de ejecutar el código de entrenamiento. Para esta demostración, he establecido el número de épocas en 100. Sin embargo, siéntete libre de experimentar con una cantidad diferente de épocas de acuerdo a sus requisitos específicos. 
Determinar el número óptimo de épocas depende de varios factores y, si bien es importante, va más allá del alcance de este artículo.

python clasificar/entrenar .py  --data ../datasets/cats_vs_dogs/ --epochs  100  --project cats_vs_dogs --name pequeño --imgsz  416  --batch  64  --exist-ok  --model yolov5s-cls .pt

También puedes configurar el tamaño del lote y el tamaño de la imagen según los recursos de tu computadora.

Resultados

En esta demostración, he utilizado la aplicación de seguimiento de experimentos ampliamente utilizada llamada Weights and Biases . Esta poderosa herramienta permite el registro y la gestión de diferentes experimentos, lo que asegura que nunca se pierdan datos valiosos.

Con Weights and Biases, puede realizar fácilmente un seguimiento de varias ejecuciones de entrenamiento, comparar resultados y obtener información sobre el rendimiento de sus modelos a lo largo del tiempo. Proporciona una manera perfecta de organizar y analizar sus experimentos, lo que lo convierte en un activo valioso para los investigadores y profesionales del aprendizaje automático.

yolov5results
Resultados de clasificación. Según este gráfico, el modelo mediano es el mejor

De acuerdo con el gráfico anterior, parece que el modelo promedio ( yolov5m-cls.pt) muestra la mayor precisión en el conjunto de datos de validación. 

Sin embargo, existe potencial para mejorar aún más el modelo xlarge ( yolov5x-cls.pt) mediante la modificación de hiperparámetros, como ajustar la tasa de aprendizaje. Al hacer esto, podemos potencialmente llevar el rendimiento del modelo xlarge a un nivel aún mejor.

NOTA: No he recibido ninguna compensación de Weights and Biases por mencionarlos en este artículo. Los menciono porque soy un usuario habitual de su servicio, al igual que uso frecuentemente Comet ML. Es relevante tener en cuenta que existen otras herramientas fantásticas disponibles en el mercado, como Ultralytics Hub y Clear ML , que también ofrecen funciones valiosas para el seguimiento y la gestión de experimentos. Estas herramientas brindan a los investigadores y profesionales una variedad de opciones para elegir según sus necesidades y preferencias específicas.

Reflexionemos

Para resumir, la adaptación de YOLOv5 para la clasificación de audio usando espectrogramas ha ampliado sus capacidades. Al convertir las señales de audio en representaciones visuales, YOLOv5 demuestra su potencial para analizar y categorizar datos de audio. Entrenar el modelo y rastrear su desempeño con herramientas como Weights and Biases proporciona información valiosa. 

Esta herramienta ha revolucionado no solo en la detección de objetos sino también en la forma que entendemos y analizamos el sonido. Convertir señales de audio en datos visuales nos muestra cómo la innovación en visión por computadora  y procesamiento de audio puede ampliar los límites y abrir nuevas posibilidades para utilizar YOLOv5 en una variedad de campos.

¡Disfruta experimentando con las capacidades ampliadas de YOLOv5 en clasificación de audio!

contacta

Desarrolla tu siguiente proyecto de Data, IA, Cloud o Transformación Digital con nosotros. Empieza hablando con nuestro equipo comercial.

Tech Matters

La Newsletter mensual para conocer los proyectos de tecnología e inteligencia artificial que están teniendo un impacto positivo en el mundo.

Plazas limitadas

Próximo evento
Lead&Inspire: Aplicación de IA en entornos de desarrollo de software