Skip to content

Latest commit

 

History

History
50 lines (43 loc) · 2.2 KB

README.md

File metadata and controls

50 lines (43 loc) · 2.2 KB

MusicSheetsRecognition

Projekat iz predmeta Soft kompjuting

  • Članovi tima: Danijel Radulović, Dragan Ćulibrk

  • Asistent: Dragan Vidaković

  • Problem:
    Čitanje muzičkih zapisa, prepoznavanje muzičkih simbola, generisanje njihove tekstualne predstave i melodije na osnovu toga.

Skup podataka

Za trening i validacioni skup korišćen The Printed Images of Music Staves (PrIMuS) skup podataka https://grfia.dlsi.ua.es/primus/

Metodologija

Korišćen End-to-end Optical Music Recognition algoritam, koji radi na principu prepoznavanja muzičkih simbola jedne linije notnog zapisa. Detaljnije u radu https://www.researchgate.net/publication/324460067_End-to-End_Neural_Optical_Music_Recognition_of_Monophonic_Scores i na Github repozitorijumu https://github.com/OMR-Research/tf-end-to-end)

Treniranu arhitekturu mreže čine:

  • 4 konvolutivna bloka, koji se sastoje od konvolutivnog sloja (početni broj filtera 32, u svakom narednom bloku se duplira, veličina kernela 3x3), batch normalizacije, leaky relu aktivacione funkcije i pooling sloja (pool_size 2x2)

  • 2 bidirekciona LSTM sloja sa 256 jedinica i dropout sa koeficijentom 0.5

  • potpuno povezani sloj i Softmax

  • Connectionist Temporal Classification (https://en.wikipedia.org/wiki/Connectionist_temporal_classification) loss, koji se koristi za treniranje rekurentnih neuronskih mreža, za rešavanje sequence-to-sequence problema gde postoji vremenska zavisnost između svakog dela ulazne sekvence.

Pre puštanja testne slike u neuronsku mrežu, izdvajaju se pojedinačne linije notnog zapisa uz pomoć computer vision tehnika.

Potrebne biblioteke i alati

Da bi se rešenje pokrenulo, potrebno je instalirati sledeće:

  • Python3
  • Keras and Tensorflow
  • Numpy
  • OpenCV
  • Music21

Rešenje je moguće pokrenuti:

  • Kao veb aplikaciju - potrebno je instalirati i Flask
  • Iz komandne linije - python ctc_predict.py -image ../data/Example/000051652-1_2_1.png -model ../semantic_model/semantic_model.meta -vocabulary ../data/vocabulary_semantic.txt