This system serves as a crowdsourcing task managing system, preparing data and assigning available tasks to the appropriate users in crowdsourcing scenarios.
The system is optimized for a crowd-assisted Optical Music Recognition (OMR) pipeline. More specifically, the functionalities of the system can be summarized as follows:
- The system receives PDF files of music scores
- A measure detector identifies measures per page and creates a "skeleton" MEI file for each score
- Each PDF file is segmented and associated with parts of the generated MEI file
- Each segment and MEI parts are paired and served in crowdsourcing tasks
- The system identifies available crowdsourcing interfaces and serves tasks to the crowd
- Crowd judgements are processed and aggregated
- Crowd-processed MEI parts are aggregated to re-create original PDF submitted music score
- Versions of the crowd-processed MEI file are pushed to Github periodically until the end of the transcription campaign
The following functionalities are currently under development:
- Task Scheduling: Create crowdsourcing tasks dynamically based on the data needs and results from the crowd
- Task Assignment: Assign crowdsourcing tasks to users based on user's profile. Coming up soon:
- Prevent users receiving the same task
- Assign tasks based on music instrument of choice (for Orchestra members)
- MEI improvement pipeline: If an MEI file exists for a given PDF music score, the pipeline will be able to adapt and improve the quality of the provided MEI file.
- CE-API (Github page)
- Measure Detector (Github page)
- Python modules (see Setup)
- MongoDB (how to install)
- RabbitMQ (how to install)
- Install all dependencies
- Use
pip3 install -r requirements.txt
to install all the relevant python modules - Use the settings_example.yaml to create a settings.yaml. Fill in the settings.yaml with location of:
- MongoDB
- RabbitMQ
- GitHub account
- Server name/address
- Use
sh run_modules.sh
script to start/restart the modules (usechmod +x run_modules.sh
if you lack permissions to run the script) - Use
sh stop_modules.sh
script to stop the modules (usechmod +x stop_modules.sh
if you lack permissions to run the script)