Introduzione
5
un continuo controllo dell’operato del sistema OMR e alla correzione manuale di
ogni errore.
Nel tentativo di ridurre al minimo questa fase di revisione, si è pensato di
realizzare un’applicazione che eliminasse, o almeno limitasse, l’influenza di
alcune deformazioni dell’immagine sulla fase di riconoscimento.
Si è focalizzata l’attenzione sul rumore che può essere presente nella
pagina, sull’inclinazione o ondulazione dei pentagrammi, sul restauro di parti
mancanti, sull’eliminazione di zone equivoche per l’appartenenza dei simboli
musicali e sulla struttura delle accollature.
Nel capitolo 1 verrà introdotto il riconoscimento automatico di partiture,
lo si confronterà con i sistemi OCR e se ne analizzeranno le caratteristiche ed i
problemi. Vi sarà un’ampia panoramica sullo stato dell’arte dei sistemi OMR e si
cercherà di fornire dei criteri per una loro valutazione. Analizzando i problemi
ancora aperti si motiveranno le decisioni che hanno spinto alla realizzazione di
questa applicazione.
Nel capitolo 2 verranno introdotte le basi di elaborazione delle immagini
utilizzate nella progettazione e realizzazione del programma.
Nel capitolo 3 verranno analizzati i problemi a cui si è cercato di dare una
soluzione e quali strade si è deciso di seguire per farlo. Ci si soffermerà sui pro
ed i contro di ogni scelta sia teorica che implementativa, dando una valutazione
finale su ciò che si è effettivamente realizzato.
Il capitolo 4 sarà dedicato alle istruzioni per un corretto uso
dell’applicativo, mentre il capitolo 5 fornirà i risultati di alcuni test a cui esso è
stato sottoposto.
Il capitolo 6 terminerà il lavoro con considerazioni conclusive e possibili
sviluppi futuri.
6
Capitolo 1
Optical Music Recognition
Il riconoscimento automatico di partiture, OMR (Optical Music
Recognition), è un processo di acquisizione dell’informazione musicale stampata
o manoscritta. Tramite la corretta interpretazione dell’immagine binaria di una
partitura esso codifica tale informazione in un linguaggio di rappresentazione
musicale. Il brano, nella forma digitale così ottenuta, può essere utilizzato come
input per numerose applicazioni on-line e off-line.
In un sistema on-line la macchina analizza lo spartito e produce un
risultato in modo pressoché istantaneo. Tali sistemi possono essere collegati a
dispositivi, come braccia artificiali sopra un pianoforte, per l’esecuzione real-
time di opere musicali. La macchina deve essere in grado di portare a termine
l’analisi in breve tempo e potrebbe non riuscire ad analizzare l’intero spartito
prima della generazione dell’output. In questo caso dovrà processare piccoli
brani di partitura per generarne l’output immediatamente. Con questo approccio
errori commessi in precedenza non possono essere corretti in una fase
successiva.
Nei sistemi off-line viene prima acquisita un’immagine della partitura
utilizzando uno scanner o una macchina fotografica digitale; essa viene poi
analizzata dal computer e codificata in un formato binario utilizzabile come
input per pacchetti software di manipolazione, stampa e riproduzione. Poiché un
sistema off-line può analizzare l’intero spartito prima di generarne l’output, le
informazioni globali sulla partitura possono essere utilizzate per migliorare
l’accuratezza del riconoscimento. Ad esempio, può essere sviluppato un
Optical music recognition
7
controllo sofisticato della semantica per correggere gli errori che si sospetta il
precedente passo di riconoscimento abbia commesso.
Tra le pratiche abituali del mondo musicale che traggono giovamento da
questo approccio ricordiamo l’adattamento per altri strumenti, la conversione
nella codifica Braille, la trasposizione, l’archiviazione, il rinnovamento, l’analisi
delle strutture e degli stili musicali, la sintesi di lavori esistenti e
l’armonizzazione automatica.
Optical music recognition
8
OMR E OCR
Un sistema OMR riconosce i simboli su uno spartito e produce in output il
risultato in un formato binario. Questa operazione è analoga a quanto compiuto
dai sistemi OCR, Optical Character Recognition, che si occupano del
riconoscimento del testo.
Nonostante questa apparente somiglianza, sono molti gli elementi che non
permettono di adottare le tecniche sviluppate per i sistemi OCR nel campo del
riconoscimento ottico di partiture:
• Il testo è monodimensionale mentre un brano musicale è
bidimensionale: nel primo caso ciò che ha rilevanza è la successione
delle lettere in senso orizzontale, mentre sul pentagramma anche la
posizione verticale fornisce un’informazione fondamentale come
l’altezza della nota.
• I caratteri che compongono una parola e quindi, più in generale, una
frase o un brano, sono disgiunti, mentre i simboli musicali sono
sovrapposti alle linee del pentagramma e, a volte, ad altri simboli (es.
nella rappresentazione di accordi).
• I simboli musicali possono essere di dimensioni molto differenti tra
loro e alcuni legano il loro significato alla grandezza (es.
l’appoggiatura).
• Contrariamente a quanto accade nei testi, i simboli musicali sono
formati da componenti che possono essere combinate in modi diversi
(es. una gamba può essere unita a più teste e può essere unita, con una
trave, ad un’altra gamba).
• Uno stesso simbolo musicale può apparire in forme differenti (es. la
lunghezza delle legature, delle travi e delle gambe dipende dal
contesto).
• Non c’è in ambito musicale un alfabeto standard: il numero di simboli
è molto ampio e in continua evoluzione, infatti i compositori inventano
Optical music recognition
9
nuove notazioni quando è necessario e per particolari strumenti si
utilizzano notazioni specializzate.
Optical music recognition
10
TIPOLOGIE DI PROBLEMI
I fattori che influenzano la realizzazione di un sistema OMR sono di varia
natura e complessità; la loro incidenza è andata mutando con l’evoluzione
tecnologica del settore.
Ad esempio, rispetto ai tempi in cui la ricerca sul riconoscimento
automatico di partiture ha preso il via, fine anni ’60 e inizio ’70, si possono
considerare superate le limitazioni hardware costituite dalla lentezza dei
processori, dalla poca quantità di RAM disponibile sui sistemi di elaborazione e
dalle capacità inadeguate delle memorie di massa; oggi è tutt’altro che raro
disporre di un processore ad alta velocità (es. Pentium), di 8 o 16 MByte di
RAM, di qualche GByte di hard disk e di uno scanner capace di digitalizzare a
300 d.p.i.. Quindi, potendo scandire immagini ad alta definizione, memorizzare
ed elaborare in tempi ragionevoli grandi quantità di dati, il riconoscimento
automatico di partiture è diventato puramente un problema software (Carter
1994).
Invece, fattori tuttora da considerare sono: la qualità grafica del materiale
digitalizzato, la complessità del brano musicale, il formato in cui si vuole
convertire la partitura e l’efficienza dei programmi applicativi usati per
completare la riproduzione musicale (Selfridge-Field 1994).
Qualità grafica del materiale digitalizzato
I problemi legati alla qualità grafica della partitura digitalizzata
riguardano la superficie visiva, il riconoscimento dell’oggetto e la
rappresentazione musicale.
Problemi nella superficie visiva
I problemi nella superficie visiva sono per lo più imperfezioni nella
stampa come ad es.:
− la rotazione dei pentagrammi, per cui le linee non sono perfettamente
parallele al bordo della pagina;
Optical music recognition
11
− la curvatura dei pentagrammi, per cui le linee non sono dritte (questo
problema può essere presente nell’originale, ma può anche essere
introdotto dall’uso di scanner manuali per l’acquisizione dell’immagine
o da una fase intermedia di fotocopiatura);
− le variazioni di spessore delle linee del pentagramma;
− la posizione scorretta dei simboli (es. una nota che copre sia uno spazio
che una riga).
Problemi di perdita di informazione come:
− le linee del pentagramma discontinue
− gli oggetti non completamente disegnati o non completamente riempiti
(es. note da un quarto con macchie bianche nella testa).
Problemi di informazione superflua come:
− le macchie che, in base a dove si verificano e in relazione agli altri
oggetti, possono essere interpretate erroneamente come qualcosa d’altro.
Per quanto possano apparire questioni trascurabili per l’occhio umano,
queste irregolarità possono essere molto destabilizzanti per un software di
riconoscimento che accetta piccole variazioni, ma solo all’interno di un insieme
ben limitato.
Inoltre queste imperfezioni sono maggiormente presenti quando si opera
con partiture non recenti, come accade frequentemente nel campo della ricerca
per motivi di copyright.
Problemi nel riconoscimento dell’oggetto
I problemi nel riconoscimento dell’oggetto variano in base all’approccio
adottato. I principali, comuni a molti approcci, sono:
− le dimensioni.
A causa delle variazioni di dimensione tra oggetti uguali (es. la
lunghezza delle gambe e la larghezza delle travi nelle vecchie partiture
o la diversità fra un’appoggiatura e una nota comune) ci sono dei
problemi per quegli approcci al riconoscimento che si basano sulle
dimensioni.
Optical music recognition
12
− le forme e la rappresentazione.
Un esempio di inconsistenza nella rappresentazione è dato dalla nota
centrata nella linea del pentagramma contro la nota centrata nello
spazio. Possono nascere forme irriconoscibili quando molte travi
attraversano più linee del pentagramma, specialmente poiché l’angolo
di inclinazione delle travi è variabile e la copertura creata dipende dal
piazzamento verticale delle note raggruppate. Costituiscono un altro
esempio tipico di inconsistenza le chiavi e le pause da un quarto che
hanno ampie variazioni nella loro rappresentazione grafica.
− la contiguità e la sovrapposizione
Ad esempio le legature che possono creare problemi tollerabili se si
limitano ad attraversare una gamba, ma che se toccano una nota o
attraversano un segno di dinamica creano oggetti apparenti che non
vengono ritrovati nell’insieme dei simboli grafici.
− la disgiunzione
I simboli formati da componenti disgiunte, come la chiave di basso,
richiedono l’utilizzo di un meccanismo particolare per affrontare il
loro riconoscimento.
Problemi di rappresentazione musicale
Lo studio riguardante la rappresentazione della musica occidentale in
notazione musicale tradizionale non ha portato all’esaurimento o alla descrizione
sistematica di tutte le anomalie come, ad esempio, quando più oggetti (note di
diversa durata) condividono parti in comune (la gamba) in modo improbabile.
Tali esempi interferiscono con un approccio grammaticale al
riconoscimento degli oggetti, poiché, nella sua rappresentazione grafica, la
logica sottostante la notazione è circondata da ogni parte da eccezioni di natura
impredicibile. In più, programmi di riconoscimento possono essere confusi da
oggetti che non si intende acquisire.
Optical music recognition
13
Complessità del brano musicale
I primi prototipi di programmi erano disegnati per lavorare solo con parti
singole su un pentagramma. I programmi più recenti si concentrano su musica
per insiemi di strumenti non troppo ampi. Non si conoscono programmi che
tentino di acquisire il testo presente nella musica vocale. Molti non tentano di
acquisire altri elementi testuali come ad esempio le indicazioni sul tempo. Gli
utenti di software per il riconoscimento devono aspettarsi di dover supportare il
materiale acquisito automaticamente con informazione addizionale se vogliono
creare materiale completo.
Formato di conversione dell’immagine digitalizzata
I programmi di scansione intelligente odierni di solito non tentano di
riprodurre completamente l’immagine originale. Essi tentano di acquisire un
numero selezionato di attributi dell’informazione musicale. Ad esempio, i
programmi per la riproduzione sonora cercheranno di acquisire l’altezza e la
durata, mentre, in base al repertorio scelto, i programmi per la stampa potranno
aver bisogno di acquisire un maggior numero di elementi, come le legature, le
gambe, le travi, le dinamiche e gli abbellimenti.
Efficienza dei programmi applicativi usati per completare la riproduzione musicale
Il tempo richiesto per correggere gli errori di scansione dipende non solo
dal livello di accuratezza del materiale acquisito automaticamente, ma anche
dalla natura ed efficienza dei programmi applicativi in cui il materiale viene
letto, tralasciando la facilità di utilizzo da parte dell’utente. Mentre il supporto
per la notazione in output è intrinsecamente più esigente che per il suono, molti
programmi per la produzione di una stampa del materiale digitalizzato
supportano solo un numero finito di elementi addizionali. Il numero di attributi
supportati aumenta proporzionalmente alla crescita di competenza generale del
programma.
Optical music recognition
14
PANORAMICA SUI SISTEMI OMR
La ricerca nel campo del riconoscimento automatico di partiture ha preso
il via verso la fine degli anni ’60 e l’inizio degli anni ’70 grazie al lavoro di
Prusslin e Prerau presso il MIT.
Quella che segue è una panoramica di sistemi realizzati o ipotizzati in
tempi più recenti.
Aoyama e Tojo (1982)
Il sistema sviluppato da Aoyama e Tojo è diviso in tre stadi: input,
segmentazione, riconoscimento e controllo sintattico. Nella fase di input viene
digitalizzata l’immagine, si ottiene l’altezza delle linee e degli spazi del
pentagramma e vengono individuate le linee. Nella fase di segmentazione viene
rimosso il rigo e i simboli vengono divisi utilizzando l’analisi delle componenti
connesse. Da ultimo, i simboli divisi vengono classificati e verificati.
Sono fatte le seguenti osservazioni riguardo allo spartito:
1. è bidimensionale
2. l’informazione spaziale è importante
3. linee, immagini e caratteri sono mischiati, e la loro posizione non è
specificata
4. a causa della sottigliezza delle linee è necessaria un’alta risoluzione nella
scansione
5. simboli con lo stesso significato possono avere rappresentazione grafica
differente
6. i simboli sono posizionati in accordo con regole sintattiche di tipo
spaziale.
Dal punto di vista del riconoscimento, gli spartiti contengono simboli che
sono:
1. adatti per il confronto con modelli
Optical music recognition
15
2. adatti per un metodo di analisi strutturale
Input
La partitura in input è assunta essere una stampa priva di simboli
incompleti, di qualsiasi dimensione (all’interno di certi limiti) ed in cui i
pentagrammi possono essere inclinati o leggermente discontinui. Il sistema usa
uno drum scanner con scala di grigi a 8-bit con risoluzione di 254 d.p.i.
L’immagine viene scandita due volte. Nella prima fase, si ottengono
gruppi di linee di scansione verticale. Le linee del pentagramma sono individuate
in questo modo:
1. Utilizzano un istogramma si ottiene la conversione in binario delle linee
di scansione.
2. Si considera la proiezione orizzontale di ogni gruppo; se ogni gruppo
contiene n linee, le proiezioni con n o n-1 pixel vengono considerate
possibili linee del pentagramma e definite linee candidate.
3. Utilizzando il risultato del passo 2 e creando un istogramma di linee nere
e linee bianche dalle linee candidate, si ottengono l’altezza degli spazi e
delle linee del pentagramma.
4. Le linee candidate vengono scelte utilizzando le informazioni ottenute al
passo 3.
Nella seconda scansione, a causa della grande quantità di informazione
coinvolta, ogni pentagramma viene considerato separatamente. L’area che
contiene ogni pentagramma viene codificata verticalmente secondo lo schema
run-length (questa è la direzione in cui la pagina viene fisicamente scansionata
nel loro drum scanner).
Segmentazione
Il sistema rimuove la maggior parte del rigo, ma per evitare un’eccessiva
segmentazione dei simboli come le note da 2/4 e i riccioli, le regioni del rigo a
sinistra e a destra del tratto adiacente al simbolo vengono segnate come da non
cancellare. Alla fine, i tratti che attraversano la posizione il rigo e che hanno la
sua larghezza vengono rimossi.
Optical music recognition
16
Le teste di nota nere vengono cercate sulle linee, o tra di esse, con un
template matching e, se trovate, vengono rimosse, ma solo momentaneamente,
poiché il reale obiettivo di questa sezione è di trovare vuoti (nei riccioli, note da
2/4 e interi): Una volta trovati, questi simboli possono essere marcati, cosicché,
quando viene rimosso il resto del rigo, i simboli non vengano frammentati. I
vuoti vengono riconosciuti con un sistema che cerca piccoli tratti orizzontali
bianchi tra le linee del pentagramma. Una volta che i vuoti sono segnati, le teste
di nota nere vengono rimesse e il rigo finalmente rimosso.
L’immagine risultante è segmentata attraverso l’analisi delle componenti
connesse. Vengono utilizzate l’altezza e la larghezza della bounding box di ogni
segmento per dividere approssimativamente le componenti connesse in dieci
gruppi. L’altezza e la larghezza vengono normalizzate utilizzando l’altezza dello
spazio del pentagramma.
Riconoscimento e controllo sintattico
Nel gruppo che comprende le note con ricciolo e quelle con travi, i
riccioli e le travi vengono separati dalle teste rimuovendo delle regioni sottili (le
gambe). L’analisi della configurazione delle note è realizzata considerando
elementi come la larghezza, l’altezza, il baricentro, il rapporto area/area della
bounding box, il conteggio delle teste, il conteggio dei riccioli e H-type (una
qualsiasi tra 11 configurazioni testa-gamba).
In un altro gruppo, quello che comprende alterazioni e pause, viene
utilizzato un albero classificatore che, per separare i membri di questa classe, si
basa sulla lunghezza dei tratti orizzontali e verticali. Una tavola contenente
informazioni riguardanti la posizione relativa delle componenti viene impiegata
per riconoscere simboli composti (es. corona, chiave di basso, ecc.).
Infine vengono utilizzate, per controllare una seconda volta il risultato del
riconoscimento, delle regole sintattiche riguardanti la posizione dei simboli e il
numero costante di quarti in una misura. Le regole di tipo spaziale sono:
1. le alterazioni in chiave appaiono dopo il simbolo di chiave
2. se c’è una chiave di violino e le alterazioni in chiave iniziano con un
diesis, il diesis deve essere sulla linea più in alto
3. le alterazioni appaiono alla sinistra della testa della nota.