Skip to content

A system to create, schedule and distribute crowdsourcing tasks

License

Notifications You must be signed in to change notification settings

trompamusic/crowd_task_manager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crowd-Assisted Optical Music Recognition

This system serves as a crowdsourcing task managing system, preparing data and assigning available tasks to the appropriate users in crowdsourcing scenarios.

Description

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:

  1. The system receives PDF files of music scores
  2. A measure detector identifies measures per page and creates a "skeleton" MEI file for each score
  3. Each PDF file is segmented and associated with parts of the generated MEI file
  4. Each segment and MEI parts are paired and served in crowdsourcing tasks
  5. The system identifies available crowdsourcing interfaces and serves tasks to the crowd
  6. Crowd judgements are processed and aggregated
  7. Crowd-processed MEI parts are aggregated to re-create original PDF submitted music score
  8. Versions of the crowd-processed MEI file are pushed to Github periodically until the end of the transcription campaign

Roadmap

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.

Major Dependencies

Setup

  1. Install all dependencies
  2. Use pip3 install -r requirements.txt to install all the relevant python modules
  3. 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
  4. Use sh run_modules.sh script to start/restart the modules (use chmod +x run_modules.sh if you lack permissions to run the script)
  5. Use sh stop_modules.sh script to stop the modules (use chmod +x stop_modules.sh if you lack permissions to run the script)

About

A system to create, schedule and distribute crowdsourcing tasks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 69.6%
  • HTML 20.7%
  • Python 8.9%
  • Other 0.8%