Mozart

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

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

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.

Mozart

:computer: Methodology

1. Noise Filtering and Binarization

02_binary

2. Segmentation

02_seg_0

02_seg_1

02_seg_2

3. Staff Line Detection and Removal

02_without_staff_0

02_without_staff_1

02_without_staff_2

4. Construct The New Staff Lines

02_with_new_staff_0

02_with_new_staff_1

02_with_new_staff_2

5. Symbol Detection and Recognition

02_detected_0

02_detected_1

02_detected_2

🏁 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>

⛏️ Built Using

GitHub