Skip to content
Anthony Tan edited this page Aug 25, 2023 · 14 revisions

Currently, Rodan jobs are divided into 3 groups: Base jobs, Python3 jobs, and GPU jobs. You can see more detailed information on required ports and authors at the source files or by opening the jobs in Rodan. To see how these jobs can be implemented in a workflow, see DDMAL's End-to-End OMR Workflow Documentation.

Base jobs

Python3 jobs

These jobs' sole functions are to test basic Rodan functionalities such as job queues, input/output ports, etc.
A wrapper for the library to implement it as a Rodan Job

See the MEI2Volpiano repo.

  • Mei2Volpiano: Converts MEI or XML files into volpiano strings.
Wrappers for PIL tasks in Rodan.

See more information of the Gamera 4 Package here

  • Non-Interactive Classifier: Performs classification on a binarized staff-less image and outputs an xml file.

  • CC Analysis: Performs connected component analysis on the image.

  • Invert: Invert the image

    • Gatos Background: Estimates the background of an image according to Gatos et al.'s method.

      Reference: Gatos, Basilios, Ioannis Pratikakis, and Stavros J. Perantonis. 2004. An adaptive binarization technique for low quality historical documents. *Lecture Notes in Computer Science* 3163: 102--113.

    • Gatos Threshold: Thresholds an image according to Gatos et al.'s method.

      Reference: Gatos, Basilios, Ioannis Pratikakis, and Stavros J. Perantonis. 2004. An adaptive binarization technique for low quality historical documents. *Lecture Notes in Computer Science* 3163: 102--113.

    • Brink Threshold: Calculates threshold for image with Brink and Pendock's minimum-cross
      entropy method and returns corrected image. It is best used for binarising images with dark, near-black foreground and significant bleed-through. To that end, it generally predicts lower thresholds than other thresholding algorithms.

      Reference: A.D. Brink, N.E. Pendock: Minimum cross-entropy threshold selection. Pattern Recognition 29 (1), 1996. 179-188.

    • Sauvola Threshold: Creates a binary image using Sauvola's adaptive algorithm.

      Reference: Sauvola, J. and M. Pietikainen. 2000. Adaptive document image binarization. Pattern Recognition 33: 225--236.

    • Niblack Threshold: Creates a binary image using Niblack's adaptive algorithm.

      Reference: Niblack, W. 1986. An Introduction to Digital Image Processing. Englewood Cliffs, NJ: Prentice Hall.

    • Despeckle: Removes connected components that are smaller than the given size.

    • Dilate: Morpholgically dilates the image with a 3x3 square structuring element.

    • Otsu Threshold: Creates a binary image by splitting along a threshold value determined using the Otsu algorithm.

      Reference: N. Otsu: A Threshold Selection Method from Grey-Level Histograms. IEEE Transactions on Systems, Man, and Cybernetics (9), pp. 62-66 (1979)

    • Tsai Moment Preserving Threshold: Finds a threshold point using the Tsai Moment Preserving threshold algorithm.

      Reference: W.H. Tsai: Moment-Preserving Thresholding: A New Approach. Computer Vision Graphics and Image Processing (29), pp. 377-393(1985)

    • Abutaleb locally-adaptive threshold: Creates a binary image by using the Abutaleb locally-adaptive thresholding algorithm.

    • Bernsen threshold: Creates a binary image by using the Bernsen algorithm.

      Reference: J. Bernsen: Dynamic thresholding of grey-level images. Proc. 8th International Conference on Pattern Recognition (ICPR8), pp. 1251-1255, 1986.

    • DjVu threshold: Creates a binary image by using the DjVu thresholding algorithm.

      Reference: Bottou, L., P. Haffner, P. G. Howard, P. Simard, Y. Bengio and Y. LeCun. 1998. High Quality Document Image Compression with DjVu. AT&T Labs, Lincroft, NJ. http://research.microsoft.com/~patrice/PDF/jei.pdf

  • MusicStaves Toolkit is a plugin for Gamera. 
    

    See Rodan-MusicStaves documentation here.

Heuristic Pitch Finding jobs utilize Gamera and the MusicStaves Toolkit but is presented as a separate category.  
  • Miyao Staff Finding: Finds the location of staves in an image and returns them as a JSOMR file.

    This job uses the same Gamera - MusicStaves function as the Miyao Staff Finder job but with differences in input types and output formats.

  • Heuristic Pitch Finding: Calculates pitch values for Classified Connected Componenets from a JSOMR containing staves, and returns the results as a JSOMR file

  • MEI Encoding: Builds an MEI file from pitchfinding information and transcript alignment results.
  • Diagonal Neume Slicing: A tool for splitting neumes into neume components based on diagonal projection.
  • Dirty Layer Repair: A tool for 'repairing' broken layers by adding errors from a dirty layer. For example, using a text layer to repair its neume layer.
  • Column Splitting: Takes a multi column image and number of columns as input, returns an image with all columns vertically stacked.
  • Staff Distance Finding: Outputs the approximate distance in pixels between staff lines and the ratio between the ideal distance (64px) and the approximate distance.

RODAN REMOTE JOBS

Rodan contains 2 remote jobs that exist outside of the Rodan repository code base and are installed and built separately.
  • Neon: Neume Editor Online. Neon is a browser-based music notation editor written in JavaScript using the Verovio music engraving library. The editor can be used to manipulate digitally encoded early musical scores in square-note notation.
  • Pixel: Pixel.js is a drawing and layering plugin that works on top of Diva.js.

They are installed into Rodan through wrappers: Neon wrapper and Pixel_wrapper.

GPU jobs

(currently not compatible with Apple Silicon chips for local deployment. See more here)

  • Text Alignment: Given a text layer image and a transcript of some text on that page, finds the positions of each syllable of text in the transcript on the image.

    Reference: de Reuse and Fujinaga, "Robust Transcript Alignment on Medieval Chant Manuscripts," in Proceedings of the 2nd International Workshop on Reading Music Systems, 2019

Clone this wiki locally