The following is a tool using the C++ version of OpenCV to translate images of sheet music to note letters. As opposed to something common like Convulutional Neural Networks, template matching was used instead, mostly for learning purposes.
Example:
Finding the notes in the sheet music.
Contextualizing the notes and printing them out.
Weaknesses of the template matching model:
-
If you do not have enough templates for the model to match against, it might miss some possible matches. This can be remedied by adding more templates, but it would cause the tool to run slower.
-
It can find many false positives and find the same match "twice". These need to be filtered out of the final output.
-
You have to scan the image multiple times, but I'm not sure how avoidable this is.
-
Finding eighth notes is clunky since the note's head looks the same as a quarter note, would have to take into account the other eighth.