# Riconoscimento ottico della musica

Il riconoscimento ottico della musica, detto anche OMR (dall'inglese optical music recognition), è un campo di ricerca che studia come leggere la notazione musicale presente nei documenti attraverso il computer. L'obiettivo dell'OMR è insegnare al computer a leggere e interpretare gli spartiti musicali e produrre una versione leggibile dalla macchina della partitura scritta. Una volta catturata digitalmente, la musica può essere salvata in formati di file comunemente usati, come ad esempio MIDI per la riproduzione e MusicXML per la rappresentazione.
In passato, in modo fuorviante, è stato chiamato "riconoscimento ottico dei caratteri musicali". A causa delle differenze significative, questo termine non dovrebbe più essere utilizzato.

## Storia

Il riconoscimento ottico della musica su spartiti stampati ha avuto inizio alla fine degli anni '60 al Massachusetts Institute of Technology, quando i primi scanner divennero disponibili per gli istituti di ricerca. Nel 1984, un gruppo di ricerca giapponese dell'Università di Waseda sviluppò un robot specializzato, chiamato WABOT (WAseda roBOT), in grado di leggere lo spartito musicale di fronte a sé e accompagnare un cantante su un organo elettronico.
La ricerca iniziale nel campo dell'OMR è stata condotta da Ichiro Fujinaga, Nicholas Carter, Kia Ng, David Bainbridge e Tim Bell. Questi ricercatori hanno sviluppato molte delle tecniche che sono ancora utilizzate oggi. La prima applicazione commerciale di OMR, MIDISCAN (oggi SmartScore), è stata lanciata nel 1991 dalla Musitek Corporation.
La disponibilità di smartphone dotati di buone fotocamere e di sufficiente potenza di calcolo ha aperto la strada allo sviluppo di app, attraverso le quali l'utente scatta una foto con lo smartphone e il dispositivo elabora direttamente l'immagine.

## Relazione con altri campi

Il riconoscimento ottico della musica è correlato ad altri ambiti di ricerca, tra cui la visione artificiale, l'analisi dei documenti e il recupero delle informazioni musicali. È rilevante per musicisti e compositori praticanti, che potrebbero utilizzare i sistemi OMR come mezzo per inserire la musica nel computer, facilitando così il processo di composizione musicale, trascrizione musicale e modifica della musica. In una biblioteca, un sistema OMR potrebbe consentire di effettuare operazioni di ricerca tra gli spartiti musicali, mentre per i musicologi consentirebbe di condurre studi musicologici quantitativi su larga scala.

### Confronto tra OMR e OCR

Il riconoscimento ottico della musica è stato frequentemente confrontato con il riconoscimento ottico dei caratteri (OCR). La principale differenza è che la notazione musicale è un sistema di scrittura caratterizzato da elementi distintivi.
La seconda distinzione principale è che, mentre un sistema OCR si limita a riconoscere lettere e parole, un sistema OMR è finalizzato a recuperare anche il significato musicale: l'utente si aspetta che la posizione verticale di una nota (concetto grafico) venga tradotta in altezza tonale (concetto musicale) applicando le regole della notazione musicale. Si noti che non esiste un equivalente diretto nel riconoscimento del testo. Per analogia, recuperare la musica da un'immagine di uno spartito può essere altrettanto difficile quanto recuperare il codice sorgente HTML da uno screenshot di un sito web.
La terza differenza riguarda l'insieme di caratteri utilizzato. Sebbene sistemi di scrittura come il cinese abbiano insiemi di caratteri straordinariamente complessi, l'insieme di primitivi per l'OMR comprende una gamma di dimensioni molto più ampia, che va da elementi minuscoli come un punto a elementi grandi che possono coprire un'intera pagina, come una parentesi. Alcuni simboli hanno un aspetto quasi illimitato, come le legature, che sono definite solo come curve più o meno morbide che possono essere interrotte in qualsiasi punto.
Infine, la notazione musicale implica relazioni spaziali bidimensionali onnipresenti, mentre il testo può essere letto come un flusso di informazioni unidimensionale, una volta stabilita la linea di base.

## Approcci all'OMR

Il processo di riconoscimento delle partiture musicali è tipicamente suddiviso in passaggi più piccoli gestiti da algoritmi di riconoscimento di pattern specializzati.
Sono stati proposti molti approcci concorrenti, la maggior parte dei quali condivide un'architettura a pipeline, in cui ogni passaggio esegue una certa operazione, come la rilevazione e la rimozione delle linee del pentagramma prima di passare alla fase successiva. Un problema comune di questo approccio è che errori e artefatti creati in una fase si propagano attraverso il sistema, influenzando pesantemente le prestazioni. Ad esempio, se la fase di rilevamento delle linee del pentagramma non riesce a identificare correttamente la presenza degli stessi, i passaggi successivi probabilmente ignoreranno quella regione dell'immagine, portando a informazioni mancanti nell'output.
Il riconoscimento ottico della musica è frequentemente sottovalutato a causa della natura apparentemente semplice del problema: se viene fornita una scansione perfetta di musica composta, il riconoscimento visivo può essere risolto con una sequenza di algoritmi relativamente semplici. Tuttavia, il processo diventa significativamente più difficile per scansioni di bassa qualità o musica scritta a mano, che molti sistemi non riescono a riconoscere affatto. E anche se tutti i simboli fossero stati rilevati perfettamente, è comunque complesso recuperare il significato musicale a causa delle ambiguità e delle frequenti violazioni delle regole della notazione musicale. Donald Byrd e Jakob Simonsen sostengono che l'OMR sia difficile perché la notazione musicale moderna è estremamente complessa.
Donald Byrd ha anche raccolto una serie di esempi interessanti così come esempi estremi di notazione musicale che ne dimostrano la complessità intrinseca.

## Output dei sistemi OMR

Le applicazioni tipiche per i sistemi OMR includono la creazione di una versione udibile della partitura (nota come riproducibilità). Un modo comune per creare tale versione è generare un file MIDI, che può essere sintetizzato in un file audio. Tuttavia, i file MIDI non sono in grado di memorizzare informazioni di incisione (come erano disposte le note) o la scrittura enarmonica.
Se le partiture musicali vengono riconosciute con l'obiettivo della leggibilità umana (nota come ristampabilità), è necessario recuperare la codifica strutturata, che include informazioni precise sul layout e sull'incisione. Formati adatti per memorizzare queste informazioni includono MEI (Music Encoding Initiative) e MusicXML.
Oltre a queste due applicazioni, potrebbe anche essere interessante estrarre metadati dall'immagine o abilitare la ricerca. A differenza delle prime due applicazioni, un livello di analisi minore della partitura musicale potrebbe essere sufficiente per eseguire questi compiti.

## Deep learning (dal 2016)

Con l'avvento dell'apprendimento profondo, molti problemi di visione artificiale sono passati dalla programmazione imperativa con euristiche create a mano e ingegneria delle caratteristiche all'apprendimento automatico. Nel riconoscimento ottico della musica, le fasi di elaborazione del pentagramma, la fase di rilevamento degli oggetti musicali, e la fase di ricostruzione della notazione musicale hanno visto tentativi di successo nel risolverli con l'apprendimento profondo.
Sono stati proposti anche approcci completamente nuovi, tra cui la risoluzione dell'OMR in modo end-to-end con modelli sequenza-sequenza, che prendono un'immagine di spartiti musicali e producono direttamente la musica riconosciuta in un formato semplificato.