25
EXTRACCIÓN DE INFORMACIÓN DE PARTITURAS MUSICALES A PARTIR DE SEGMENTACIÓN GONZALO ANDRÉS OBERREUTER ÁLVAREZ KEVIN ALEXANDER LAGOS LAVÍN JAVIER CENTENO VEGA

Extracción de información de partituras musicales a partir

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

EXTRACCIÓN DE INFORMACIÓN DE PARTITURAS

MUSICALES A PARTIR DE SEGMENTACIÓN

GONZALO ANDRÉS OBERREUTER ÁLVAREZ

KEVIN ALEXANDER LAGOS LAVÍN

JAVIER CENTENO VEGA

MOTIVACIÓN

● Digitalización de información

● Estructura de Partituras

PROCESO DE SEGMENTACIÓN Y CLASIFICACIÓN

● Pre Procesado

● Nivel 0

○ Definición de parámetros

○ Búsqueda de líneas de pentagrama

○ Recorte de imagen

● Nivel 1

○ Algoritmo

● Nivel 2

○ Red Neuronal Convolucional

NIVEL 0 - UMBRALIZACIÓN DE LA IMAGEN

NIVEL 0 - ANALISIS DE BLANCO Y NEGRO

● Parámetros N y D

Histograma de Blanco Histograma de Negro

NIVEL 0 - PROYECCIONES

NIVEL 0 - ETIQUETADO DE REGIONES CONEXAS

● Block-Based Decision Table

NIVEL 1

- El artículo usa técnicas separadas para identificar notas y para identificar símbolos

- Usamos solo la de identificar símbolos con algunas modificaciones

- Suavizamos la imagen

- Buscamos los mínimos en la proyección horizontal

- Dividimos la imagen iterativamente por el mínimo más pequeño que permita la

división en dos segmentos cuyo ancho sea superior al ancho mínimo

- Los resultados son segmentos que idealmente contienen un solo símbolo.

- Los resultados va a clasificación directamente

CLASIFICACIÓN

- Uso de redes neuronales convolucionales

- Input → Convolution → ReLU → Pooling → Convolution → ReLU → Pooling → Fully

Connected

- Convolución

- ReLU

- Pooling

- Flattening

- Fully connected layer

EXPERIMENTACIÓN - CLASIFICACIÓN (CNN)

EXPERIMENTACIÓN - GENERACIÓN DE IMÁGENES

Antes de comenzar a trabajar con las CNN, de una imagen se generaron más imágenes

con distintos cambios, como por ejemplo algunas se aplastaron, otras se les hicieron zoom,

etc… De tal manera de generar un dataset muchísimo más variado.

¿QUÉ ES EL OVERFITTING YEL UNDERFITTING?

Fuente:https://www.aprendemachinelearning.com/que-es-overfitting-y-underfitting-y-

como-solucionarlo/

EXPERIMENTACIÓN - CLASIFICACIÓN (CONVOLUCIÓN)

Utilización de Kernel de 3x3

EXPERIMENTACIÓN - CLASIFICACIÓN (POOLING)

EXPERIMENTACIÓN - CLASIFICACIÓN (FLATTENING)

EXPERIMENTACIÓN - FULLY CONNECTED LAYER

EXPERIMENTACIÓN - NIVEL 0

EXPERIMENTACIÓN - NIVEL 1

- Suavizar la imagen con un filtro de media y dividirla iterativamente por el mínimo

local más pequeño que no cree segmentos debajo del ancho mínimo

- Mínimos cortando símbolos por la mitad → solo considerar mínimos debajo de cierto

umbral

- Segmentos abarcando múltiples símbolos → considerar mínimos igualmente si el

segmento está encima del ancho máximo

- Algunos segmentos no contienen símbolos → descartar segmentos cuyo rango en la

proyección horizontal está debajo de un umbral determinado

EXPERIMENTACIÓN - NIVEL 1

Se han usado los siguientes parámetros:

- Ancho del filtro de media → Distancia máxima entre las líneas del pentagrama

- Valor máximo que puede tener un mínimo → Ancho mínimo de las líneas del

pentagrama x 2 x 5 x 255

- Ancho mínimo de un símbolo → Distancia mínima entre las líneas del pentagrama

- Ancho máximo de un símbolo → Distancia máxima entre las líneas del pentagrama x

4

- Rango mínimo → Ancho máximo de las líneas del pentagrama x 2 x 255

EXPERIMENTACIÓN - PRIMERA CNN

Matriz de confusión para la CNN de clasificación

de tipo de nota

EXPERIMENTACIÓN - CLASIFICACIÓN

EXPERIMENTACIÓN - PRIMERA CNN

Matriz de confusión con 16000 da-

tos de entrenamiento y 10530 de testing me-

nos variados.

Matriz de confusión con 11350 da-

tos de entrenamiento y 2592 de testing más

variados.

EXPERIMENTACIÓN - CLASIFICACIÓN

EXPERIMENTACIÓN - EJEMPLO DE OUTPUT

none

semifusa_mi Semifusa real

fusa_none

CONCLUSIONES

Aprendimos sobre maneras de procesar imágenes digitales para interpretar símbolos

Aún quedan maneras de mejorar el proyecto

● Ampliar el conjunto de entrenamiento para que la red reconozca más símbolos y con

mejor calidad

● Mejorar el algoritmo de búsqueda de símbolos para evitar segmentar símbolos sin

importancia o no segmentar símbolos importantes