aashrafh / Mozart

An optical music recognition (OMR) system. Converts sheet music to a machine-readable version.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mozart logo

🎢 Convert sheet music to a machine-readable version.


πŸ“ Table of Contents

🧐 About

The aim of this project is to develop a sheet music reader. This is called Optical Music Recognition (OMR). Its objective is to convert sheet music to a machine-readable version. We take a simplified version where we convert an image of sheet music to a textual representation that can be further processed to produce midi files or audio files like wav or mp3.

About

πŸ’» Methodology

1. Noise Filtering and Binarization

Binary Image

2. Segmentation

Segment 1

Segment 2

Segment 3

3. Staff Line Detection and Removal

No Staff Image 1

No Staff Image 2

No Staff Image 3

4. Construct The New Staff Lines

New Staff Image 1

New Staff Image 2

New Staff Image 3

5. Symbol Detection and Recognition

Result 1

Result 2

Result 3

🏁 Install

  1. You can use the attached notebook for quick testing and visualization.
  2. You can setup an environment on your local machine to run the project:
    1. Install Conda
    2. conda env create -f requirements.yml
    3. conda activate mozart
    4. python3 main.py <input directory path> <output directory path>

You can find the dataset on Google Drive.

Please check the following issue for another requirements.yml file.

⛏️ Built Using

About

An optical music recognition (OMR) system. Converts sheet music to a machine-readable version.

License:Apache License 2.0


Languages

Language:Jupyter Notebook 98.6%Language:Python 1.4%