Gamera OCR Psaltiki Toolkit - FREEWARE

prenumele

Παλαιό Μέλος
Gamera OCR with Psaltiki Toolkit [GOPT]- FREEWARE

From GKM
(user: [mimi])

Gamera OCR is an open source program that segments, isolates, groups and recognizes glyphs.

It works in Linux and Windows.

Toolkits have been developed for (among others)
== standard Latin characters
== polytonic Greek
and, of course
== Psaltiki Neumes.


Linux users can use the latest versions.
Windows users who know about programing can create their own executable binaries.

Those who do not know much can work with what is provided here

REFERENCES (just click on links for information mainly in English)
(http://analogion.com/forum/showpost.php?p=179099&postcount=4)


LINKS to Windows application and Video presentations in Greek by one of the contributing authors to the Gamera OCR Psaltiki Toolkit project.
(http://analogion.com/forum/showpost.php?p=201897&postcount=10)
[CLICK on EVERYTHING, download, watch without trying to understand everything, and, by the end, many things will become clear].



The versions provided for Windows XP to 8.1 are not the latest, yet, they are the only combinations of

Python
WXpython
and
GAMERA

that work.

After unzipping, RUN AS ADMINISTRATOR any program that can be so run
in the EXACT order provided below
01 Python-2.3.5.exe
02 wxPythonWIN32-2.4.2.4-Py23.exe
03 gamera-2.9.0.win32-py2.3.msi
04_gamera-2.0.0.win32-py2.3.exe
05 psaltiki_1[1].0.6.win32_py2.3.exe

(the archive has been mislabeled...
04 gamera-2.9.0.win32-py2.3.msi
03_gamera-2.0.0.win32-py2.3.exe

Therefore, following wx Python, please install "gamera-2.9.0.win32-py2.3.msi", only then followed by "gamera-2.0.0.win32-py2.3.exe" )

To RUN Gamera OCR:
Before RUNNING Gamera, please run PYTHON, and leave it open.
Therefore:
1) Python
2) Gamera OCR
3) Toolkits => Psaltiki => etc....

All of the above is shown within the video presentations.


The program requires images at 300 dpi.
It recognizes ONE print type at a time: different fonts for a given charater (glyph) will create problems.

The program provides an output code for each page recognized.

All necessary information is provided in the "documents" section.


This output code will hopefully be used by the creators of programs such as BK, MK, BZ, BZQ, Melodos, Pandouris, Ephesios, Neumes Project, etc.

so as to integrate the recognized neumes.

For the time being, the toolkit does NOT recognize lyrics.
Any lyrics will DESTABILIZE recognition.

Lyrics beneath neumes are removed by the program, but some further removal of titles, etc. might be helpful.

Neume names that do NOT appear in Contemporary Psaltic Notation can easily be added (Palaeography, etc).

One may even attempt recognizing neatly written handwriting.

Lyrics integration will require programing.

++++++++++++++++
First "seed"
Provided below are some files, including an entire book at 300 dpi, as well as a trained classifier for that book,
so as to initiate what hopefully will become a worldwide collaboration for a rapid progression towards digital forms of AUTHENTIC, unalatered, TRADITIONAL, psaltic books:
(http://www.mediafire.com/download/c...1834_Constantinople_for_GAMERA_OCR_part01.zip)
(http://www.mediafire.com/download/h...1834_Constantinople_for_GAMERA_OCR_part02.zip )


++++++++++++++
General principles

For each different book
GOPT (Gamera OCR Psaltiki Toolkit) must be TRAINED.
Training results are archived into to "classifier___.xml" documents.
5 to 10 pages (chosen so as to be REPRESENTATIVE of all neumes) from the book are usually sufficient.

The last, most complete (cumulative) classifier is in turn used to recognize ALL the pages of the book.


The code, of course, is useless, unless there are those willing to contribute by making it work in their programs (by some "import" function).



++++++++++++
Encoding characteristics

Neumes are GROUPED according to
== either some PRIMARY lyph that is on the baseling (eg ison, oligon)
== some MARTYRIA (witness): letter and characteristic glyph
== some tempo change (CHRONOS).

All OTHER neumes are DEPEDENT and can be
= LINKING neumes (we decided to use links in RETRO vs ANTERO grade sense, making the code easier to use with ED Psaltica and derivatives thereof)
= ATTACHED neumes such as the BAREIA
= Secondary neumes such as FTHORA, CHROA, accidents, DIASTOLE, etc

Classifier names do NOT include the title "secondary"...

Therefore, anything not PRIMARY, Linking or ATTACHED
is, by definition, SECONDARY.

Furthermore, FTHORA that are UNIQUELY fthora in function, are NOT explicitely labelled as "fthora".

On the other hand, MARTYRIA that are uniquely MARTYRIA in function , symbols (Capital M in table), are labelled under MARTYRIA-

Finally, neumes that can have EITHER MARTYRIA or FTHORA functions (such as the plagal second Di symbol), are labelled
MARTYRIA-FTHORA.

Please refer to the TABLES so as to avoid any errors of labelling attributions.



eg: diatonic bou stands for secondary fthora of diatonic bou





++++++++++++++++++++++++
For those wishing to integrate INSTANTANEOUS handwritten recognition of psaltic neumes,
(( "on-line character recognition", "dynamic character recognition", "real-time character recognition", "intelligent character recognition")

please read about Benjamin Milde

here
(http://analogion.com/forum/showpost.php?p=194757&postcount=5)



++++++++++++++++

Example of code output


ORIGINAL (and uncorrected)


(primary.oligon[0,-1];hypsili[-7,1];psiphiston[1,-4];klasma[-3,1]) (primary.apostrophos[0,-1];klasma[-1,2]) (primary.apostrophos[0,-1];bareia[-4,-4]) (primary.apostrophos[0,-1];gorgon.mono-gorgon[-3,1]) (primary.oligon[0,-1]) (primary.oligon[0,0];klasma[-3,2]) (primary.elaphron[0,-1];klasma[-3,2];primary.apostrophos[-2,-2]) (primary.oligon[0,0];klasma[-3,2]) (primary.oligon[0,0];kendima[-5,2];gorgon.mono-gorgon[-4,4];kendima[-2,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,-1];gorgon.mono-gorgon[-2,2]) (primary.oligon[0,0];klasma[-3,2];kendima[2,0]) (martyria.diatonic-delta[0,-8];letter.capital.di[-1,-4]) (primary.elaphron[0,0]) (primary.oligon[0,1];chromatic.hard-large-intervall[-3,3];kendima[-1,-2]) (primary.ison[0,1];psiphiston[2,-3]) (primary.apostrophos[0,0]) (martyria.diatonic-delta[0,-8];letter.small.ni[-2,-3])
(primary.apostrophos[0,-2];bareia[-2,-5];apostrophos[2,-5]) (primary.oligon[0,-1];klasma[-3,2]) (primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-5,2]) (primary.elaphron[0,-1];kendima[2,-1];kendima[3,-1]) (primary.oligon[0,0];klasma[-3,2]) (primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,2]) (primary.elaphron[0,-1]) (primary.oligon[0,0];klasma[-4,3];kendima[-2,-2];kendima[0,-2]) (primary.oligon[0,1];antikenoma[0,-3];gorgon.mono-gorgon[-5,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-2,3]) (martyria.chromatic-large-interval[0,-7];gorgon.mono-gorgon[-3,-3];dot.hapli[-6,-2]) (primary.apostrophos[0,0]) (primary.oligon[0,1];dot.hapli[-7,-1];antikenoma[1,-2];gorgon.mono-gorgon[-5,3]) (primary.oligon[0,1];apostrophos[-5,3];kendima[-3,2];kendima[-1,2]) (primary.elaphron[0,0];klasma[-2,3];letter.small.pa[3,-3]) (primary.apostrophos[0,0];diatonic.ni-kato[-1,-3];klasma[0,3];kendima[2,0];dot.hapli[2,-2];kendima[4,0];dot.hapli[3,0])
(primary.oligon[0,-1];bareia[-6,-5]) (primary.ison[0,0];gorgon.mono-gorgon[-4,1]) (primary.ison[0,0];linking.omalon[-8,-4];dot.hapli[0,2]) (primary.hyporrhoe[0,-1];dot.hapli[-3,3];dot.hapli[-1,3]) (primary.apostrophos[0,-1];diesis.basis[-1,-4]) (primary.oligon[0,0];klasma[-3,2]) (martyria.diatonic-delta[0,-8];letter.small.ni[-2,-4]) (primary.oligon[0,0]) (primary.oligon[0,0]) (primary.oligon[0,0];psiphiston[1,-3];dot.hapli[-7,-4]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0]) (primary.oligon[0,1];kendima[0,-2]) (primary.apostrophos[0,0];bareia[-5,-3];klasma[-1,3]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,3]) (primary.oligon[0,1];dot.hapli[-8,-1];dot.hapli[-7,-1];dot.hapli[-6,-1];dot.hapli[-6,-1];dot.hapli[-5,-1];dot.hapli[-4,-1];gorgon.mono-gorgon[-5,3];dot.hapli[-3,-1];dot.hapli[-3,-1];apostrophos[0,-3]) (primary.apostrophos[0,0]) (primary.ison[0,1];dot.hapli[-4,-1];dot.hapli[-3,-1];kendima[7,-7];letter.small.zo[8,-3];elaphron[8,-6])
(primary.ison[0,-2];dot.hapli[-6,1]) (primary.oligon[0,-2];hyporrhoe[-6,-4];chromatic.hard-small[-2,-4]) (primary.oligon[0,-1]) (primary.oligon[0,-1]) (primary.ison[0,1];kendima[-7,-1];klasma[-2,-3];primary.petasti[0,-2]) (primary.apostrophos[0,-1]) (primary.elaphron[0,-1];kendima[1,-1];kendima[3,-1]) (primary.oligon[0,0];klasma[-4,2]) (martyria.chromatic.hard-large-intervall[0,-8];letter.capital.di[0,-4]) (primary.oligon[0,0];dot.hapli[-1,1]) (primary.oligon[0,0];psiphiston[0,-4]) (primary.apostrophos[0,-1]) (primary.apostrophos[0,-1]) (primary.oligon[0,0];psiphiston[0,-4];dot.hapli[-9,3]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0]) (primary.oligon[0,0];psiphiston[0,-3];klasma[-4,3]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2]) (primary.apostrophos[0,0];dot.hapli[0,-3];dot.hapli[0,1])
(primary.apostrophos[0,-2];klasma[-1,1]) (primary.oligon[0,-1];kendima[-5,1];gorgon.mono-gorgon[-6,3];kendima[-3,1]) (primary.apostrophos[0,-2]) (primary.oligon[0,-1];klasma[-3,1]) (primary.oligon[0,-1];antikenoma[0,-4];gorgon.mono-gorgon[-5,1]) (primary.elaphron[0,-1]) (primary.oligon[0,0];dot.hapli[-3,-2];stavros[3,-1]) (primary.oligon[0,0]) (primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-4,2]) (primary.elaphron[0,-1]) (primary.oligon[0,0];klasma[-3,2];kendima[-1,-2];kendima[0,-3]) (primary.oligon[0,0];antikenoma[1,-3];gorgon.mono-gorgon[-4,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2]) (martyria.chromatic-large-interval[0,-7];gorgon.di-gorgon[-3,-3];dot.hapli[-6,-2]) (primary.apostrophos[0,0]) (primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,3]) (primary.oligon[0,0];apostrophos[-7,3];kendima[-5,2];kendima[-3,2];dot.hapli[4,-7])
(primary.elaphron[0,-2];klasma[-2,1]) (martyria.chromatic-large-interval[0,-8];letter.small.pa[-2,-5]) (primary.apostrophos[0,-2];klasma[0,1];diatonic.ni-kato[0,-5];kendima[1,-1];gorgon.mono-gorgon[1,-4];kendima[3,-1]) (primary.oligon[0,-1];bareia[-6,-4]) (primary.ison[0,0];gorgon.mono-gorgon[-5,1]) (primary.ison[0,0];linking.omalon[-8,-4]) (primary.hyporrhoe[0,-1];gorgon.mono-gorgon[-3,2]) (primary.apostrophos[0,-1];chromatic.hard-large-intervall[-2,-4]) (primary.oligon[0,0];klasma[-4,2]) (martyria.diatonic-delta[0,-8];letter.small.zo[-2,-3]) (primary.oligon[0,0]) (primary.oligon[0,0]) (primary.oligon[0,0];psiphiston[0,-3]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0]) (primary.oligon[0,1];bareia[-7,-3];kendima[0,-2]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-1,3])
(primary.ison[0,0];bareia[-6,-4];klasma[-2,2]) (primary.hyporrhoe[0,-1];gorgon.mono-gorgon[-3,2]) (primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-5,2]) (primary.apostrophos[0,-1]) (primary.ison[0,0];dot.hapli[-4,-2];dot.hapli[-2,-2]) (martyria.diatonic-delta[0,-7];dot.hapli[-4,-5];letter.small.zo[-1,-2])
(primary.ison[0,-1];dot.hapli[-6,-2]) (primary.oligon[0,-1];klasma[-3,1]) (primary.oligon[0,-1];antikenoma[0,-4];dot.hapli[-6,1];gorgon.mono-gorgon[-5,1];dot.hapli[-8,2]) (primary.oligon[0,0];apostrophos[-6,2];kendima[-4,1];kendima[-2,1]) (primary.elaphron[0,-1];klasma[-1,2]) (primary.oligon[0,0];kendima[2,-1]) (primary.oligon[0,0]) (primary.oligon[0,0];kendima[-5,2];gorgon.mono-gorgon[-5,4];kendima[-3,2]) (primary.apostrophos[0,-1]) (primary.apostrophos[0,-1];gorgon.di-gorgon[-1,2]) (primary.hyporrhoe[0,0];dot.hapli[-1,-2]) (primary.oligon[0,0]) (primary.oligon[0,0]) (primary.petasti[0,0];klasma[-2,-2]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2]) (primary.oligon[0,0];kendima[1,-2]) (primary.oligon[0,0];apostrophos[-10,3];elaphron[-3,3];kendima[-1,2];gorgon.mono-gorgon[-1,5];kendima[1,2]) (primary.apostrophos[0,0])
(primary.apostrophos[0,-1]) (primary.elaphron[0,-2]) (primary.oligon[0,-1];antikenoma[0,-4];gorgon.mono-gorgon[-6,1]) (primary.apostrophos[0,-1]) (primary.ison[0,0]) (primary.oligon[0,0]) (primary.oligon[0,0];psiphiston[0,-4]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,2];dot.hapli[0,7]) (primary.oligon[0,0]) (primary.oligon[0,0];psiphiston[1,-4]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2]) (primary.oligon[0,0];klasma[-3,2]) (primary.petasti[0,-1];ison[-2,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2]) (primary.ison[0,1];bareia[-9,-3]) (primary.apostrophos[0,0];dot.hapli[8,0]) (primary.oligon[0,0])
(primary.oligon[0,0];kendima[-3,2];gorgon.mono-gorgon[-4,4];kendima[-2,1];primary.baseline.ison[-6,2]) (primary.apostrophos[0,-1]) (primary.apostrophos[0,-1]) (primary.elaphron[0,-1]) (primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-6,2]) (primary.apostrophos[0,-1]) (primary.ison[0,0];klasma[-2,2]) (martyria.diatonic-delta[0,-8];letter.small.zo[-1,-3])
(primary.ison[0,-1]) (primary.oligon[0,-1];klasma[-3,2];kendima[2,-1]) (primary.oligon[0,0];kendima[-3,1]) (primary.apostrophos[0,-1]) (primary.oligon[0,0];klasma[-2,2]) (primary.oligon[0,0]) (primary.oligon[0,0];klasma[-3,2];kendima[-2,-3];kendima[0,-3]) (primary.ison[0,0];bareia[-9,-3]) (primary.apostrophos[0,0]) (primary.oligon[0,0];klasma[-3,3]) (martyria.diatonic-na[0,-7];letter.small.zo[0,-3]) (martyria.diatonic-na[0,-7];letter.tonos[0,-2]) (primary.elaphron[0,0];primary.apostrophos[-2,-1]) (primary.oligon[0,0];klasma[-3,3]) (primary.oligon[0,0];kendima[-3,2];kendima[-1,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,0];dot.hapli[5,4]) (primary.elaphron[0,-1];dot.hapli[-2,3])
(primary.oligon[0,-1];kendima[-5,2];gorgon.mono-gorgon[-5,4];kendima[-2,1]) (primary.apostrophos[0,-1]) (primary.oligon[0,-1];klasma[-3,2];dot.hapli[-5,-3];kendima[2,-1];gorgon.mono-gorgon[0,-3];kendima[4,-1]) (primary.oligon[0,0];psiphiston[-1,-4];kendima[-6,1];kendima[-4,2]) (primary.apostrophos[0,-1]) (primary.apostrophos[0,-1];dot.hapli[-3,-1]) (primary.petasti[0,-1];klasma[-3,-2];primary.apostrophos[-3,1]) (primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,2];kendima[2,0];gorgon.mono-gorgon[0,-3];kendima[3,0];hypsili[19,-1];kendima[9,2];gorgon.mono-gorgon[8,4];kendima[11,2];dot.hapli[-1,-2]) (primary.oligon[0,0];klasma[-2,3]) (martyria.diatonic-delta[0,-8];dot.hapli[-1,-5]) (martyria.diatonic-delta[0,-4]) (primary.apostrophos[0,0];bareia[-5,0]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2]) (primary.ison[0,0];bareia[-9,-3]) (primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2]) (primary.oligon[0,0];dot.hapli[-6,2])
(primary.oligon[0,0];dot.hapli[-10,2];kendima[-3,2];gorgon.mono-gorgon[-3,4];kendima[-1,2];primary.baseline.oligon[-5,2]) (primary.apostrophos[0,0]) (primary.apostrophos[0,-1]) (primary.elaphron[0,-1]) (primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,2]) (primary.apostrophos[0,-1]) (primary.ison[0,0];klasma[-3,2];dot.hapli[-1,0];dot.hapli[96,-19];letter.tonos[97,-17];dot.hapli[97,-25];dot.hapli[98,-19];dot.hapli[98,-18];dot.hapli[99,-21];gorgon.mono-gorgon[99,-24];dot.hapli[98,-24])




GROUPED (and uncorrected)

(primary.oligon[0,-1];hypsili[-7,1];psiphiston[1,-4];klasma[-3,1])

(primary.apostrophos[0,-1];klasma[-1,2])

(primary.apostrophos[0,-1];bareia[-4,-4])

(primary.apostrophos[0,-1];gorgon.mono-gorgon[-3,1])

(primary.oligon[0,-1])

(primary.oligon[0,0];klasma[-3,2])

(primary.elaphron[0,-1];klasma[-3,2];primary.apostrophos[-2,-2])

(primary.oligon[0,0];klasma[-3,2])

(primary.oligon[0,0];kendima[-5,2];gorgon.mono-gorgon[-4,4];kendima[-2,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,-1];gorgon.mono-gorgon[-2,2])

(primary.oligon[0,0];klasma[-3,2];kendima[2,0])

(martyria.diatonic-delta[0,-8];letter.capital.di[-1,-4])

(primary.elaphron[0,0])

(primary.oligon[0,1];chromatic.hard-large-intervall[-3,3];kendima[-1,-2])

(primary.ison[0,1];psiphiston[2,-3])

(primary.apostrophos[0,0])

(martyria.diatonic-delta[0,-8];letter.small.ni[-2,-3])


(primary.apostrophos[0,-2];bareia[-2,-5];apostrophos[2,-5])

(primary.oligon[0,-1];klasma[-3,2])

(primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-5,2])

(primary.elaphron[0,-1];kendima[2,-1];kendima[3,-1])

(primary.oligon[0,0];klasma[-3,2])

(primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,2])

(primary.elaphron[0,-1])

(primary.oligon[0,0];klasma[-4,3];kendima[-2,-2];kendima[0,-2])

(primary.oligon[0,1];antikenoma[0,-3];gorgon.mono-gorgon[-5,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-2,3])

(martyria.chromatic-large-interval[0,-7];gorgon.mono-gorgon[-3,-3];dot.hapli[-6,-2])

(primary.apostrophos[0,0])

(primary.oligon[0,1];dot.hapli[-7,-1];antikenoma[1,-2];gorgon.mono-gorgon[-5,3])

(primary.oligon[0,1];apostrophos[-5,3];kendima[-3,2];kendima[-1,2])

(primary.elaphron[0,0];klasma[-2,3];letter.small.pa[3,-3])

(primary.apostrophos[0,0];diatonic.ni-kato[-1,-3];klasma[0,3];kendima[2,0];dot.hapli[2,-2];kendima[4,0];dot.hapli[3,0])


(primary.oligon[0,-1];bareia[-6,-5])

(primary.ison[0,0];gorgon.mono-gorgon[-4,1])

(primary.ison[0,0];linking.omalon[-8,-4];dot.hapli[0,2])

(primary.hyporrhoe[0,-1];dot.hapli[-3,3];dot.hapli[-1,3])

(primary.apostrophos[0,-1];diesis.basis[-1,-4])

(primary.oligon[0,0];klasma[-3,2])

(martyria.diatonic-delta[0,-8];letter.small.ni[-2,-4])

(primary.oligon[0,0])

(primary.oligon[0,0])

(primary.oligon[0,0];psiphiston[1,-3];dot.hapli[-7,-4])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0])

(primary.oligon[0,1];kendima[0,-2])

(primary.apostrophos[0,0];bareia[-5,-3];klasma[-1,3])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,3])

(primary.oligon[0,1];dot.hapli[-8,-1];dot.hapli[-7,-1];dot.hapli[-6,-1];dot.hapli[-6,-1];dot.hapli[-5,-1];dot.hapli[-4,-1];gorgon.mono-gorgon[-5,3];dot.hapli[-3,-1];dot.hapli[-3,-1];apostrophos[0,-3])

(primary.apostrophos[0,0])

(primary.ison[0,1];dot.hapli[-4,-1];dot.hapli[-3,-1];kendima[7,-7];letter.small.zo[8,-3];elaphron[8,-6])


(primary.ison[0,-2];dot.hapli[-6,1])

(primary.oligon[0,-2];hyporrhoe[-6,-4];chromatic.hard-small[-2,-4])

(primary.oligon[0,-1])

(primary.oligon[0,-1])

(primary.ison[0,1];kendima[-7,-1];klasma[-2,-3];primary.petasti[0,-2])

(primary.apostrophos[0,-1])

(primary.elaphron[0,-1];kendima[1,-1];kendima[3,-1])

(primary.oligon[0,0];klasma[-4,2])

(martyria.chromatic.hard-large-intervall[0,-8];letter.capital.di[0,-4])

(primary.oligon[0,0];dot.hapli[-1,1])

(primary.oligon[0,0];psiphiston[0,-4])

(primary.apostrophos[0,-1])

(primary.apostrophos[0,-1])

(primary.oligon[0,0];psiphiston[0,-4];dot.hapli[-9,3])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0])

(primary.oligon[0,0];psiphiston[0,-3];klasma[-4,3])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2])

(primary.apostrophos[0,0];dot.hapli[0,-3];dot.hapli[0,1])


(primary.apostrophos[0,-2];klasma[-1,1])

(primary.oligon[0,-1];kendima[-5,1];gorgon.mono-gorgon[-6,3];kendima[-3,1])

(primary.apostrophos[0,-2])

(primary.oligon[0,-1];klasma[-3,1])

(primary.oligon[0,-1];antikenoma[0,-4];gorgon.mono-gorgon[-5,1])

(primary.elaphron[0,-1])

(primary.oligon[0,0];dot.hapli[-3,-2];stavros[3,-1])

(primary.oligon[0,0])

(primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-4,2])

(primary.elaphron[0,-1])

(primary.oligon[0,0];klasma[-3,2];kendima[-1,-2];kendima[0,-3])

(primary.oligon[0,0];antikenoma[1,-3];gorgon.mono-gorgon[-4,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2])

(martyria.chromatic-large-interval[0,-7];gorgon.di-gorgon[-3,-3];dot.hapli[-6,-2])

(primary.apostrophos[0,0])

(primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,3])

(primary.oligon[0,0];apostrophos[-7,3];kendima[-5,2];kendima[-3,2];dot.hapli[4,-7])


(primary.elaphron[0,-2];klasma[-2,1])

(martyria.chromatic-large-interval[0,-8];letter.small.pa[-2,-5])

(primary.apostrophos[0,-2];klasma[0,1];diatonic.ni-kato[0,-5];kendima[1,-1];gorgon.mono-gorgon[1,-4];kendima[3,-1])

(primary.oligon[0,-1];bareia[-6,-4])

(primary.ison[0,0];gorgon.mono-gorgon[-5,1])

(primary.ison[0,0];linking.omalon[-8,-4])

(primary.hyporrhoe[0,-1];gorgon.mono-gorgon[-3,2])

(primary.apostrophos[0,-1];chromatic.hard-large-intervall[-2,-4])

(primary.oligon[0,0];klasma[-4,2])

(martyria.diatonic-delta[0,-8];letter.small.zo[-2,-3])

(primary.oligon[0,0])

(primary.oligon[0,0])

(primary.oligon[0,0];psiphiston[0,-3])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0])

(primary.oligon[0,1];bareia[-7,-3];kendima[0,-2])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-1,3])


(primary.ison[0,0];bareia[-6,-4];klasma[-2,2])

(primary.hyporrhoe[0,-1];gorgon.mono-gorgon[-3,2])

(primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-5,2])

(primary.apostrophos[0,-1])

(primary.ison[0,0];dot.hapli[-4,-2];dot.hapli[-2,-2])

(martyria.diatonic-delta[0,-7];dot.hapli[-4,-5];letter.small.zo[-1,-2])


(primary.ison[0,-1];dot.hapli[-6,-2])

(primary.oligon[0,-1];klasma[-3,1])

(primary.oligon[0,-1];antikenoma[0,-4];dot.hapli[-6,1];gorgon.mono-gorgon[-5,1];dot.hapli[-8,2])

(primary.oligon[0,0];apostrophos[-6,2];kendima[-4,1];kendima[-2,1])

(primary.elaphron[0,-1];klasma[-1,2])

(primary.oligon[0,0];kendima[2,-1])

(primary.oligon[0,0])

(primary.oligon[0,0];kendima[-5,2];gorgon.mono-gorgon[-5,4];kendima[-3,2])

(primary.apostrophos[0,-1])

(primary.apostrophos[0,-1];gorgon.di-gorgon[-1,2])

(primary.hyporrhoe[0,0];dot.hapli[-1,-2])

(primary.oligon[0,0])

(primary.oligon[0,0])

(primary.petasti[0,0];klasma[-2,-2])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2])

(primary.oligon[0,0];kendima[1,-2])

(primary.oligon[0,0];apostrophos[-10,3];elaphron[-3,3];kendima[-1,2];gorgon.mono-gorgon[-1,5];kendima[1,2])

(primary.apostrophos[0,0])


(primary.apostrophos[0,-1])

(primary.elaphron[0,-2])

(primary.oligon[0,-1];antikenoma[0,-4];gorgon.mono-gorgon[-6,1])

(primary.apostrophos[0,-1])

(primary.ison[0,0])

(primary.oligon[0,0])

(primary.oligon[0,0];psiphiston[0,-4])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,2];dot.hapli[0,7])

(primary.oligon[0,0])

(primary.oligon[0,0];psiphiston[1,-4])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-2,2])

(primary.oligon[0,0];klasma[-3,2])

(primary.petasti[0,-1];ison[-2,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2])

(primary.ison[0,1];bareia[-9,-3])

(primary.apostrophos[0,0];dot.hapli[8,0])

(primary.oligon[0,0])


(primary.oligon[0,0];kendima[-3,2];gorgon.mono-gorgon[-4,4];kendima[-2,1];primary.baseline.ison[-6,2])

(primary.apostrophos[0,-1])

(primary.apostrophos[0,-1])

(primary.elaphron[0,-1])

(primary.oligon[0,0];antikenoma[0,-4];gorgon.mono-gorgon[-6,2])

(primary.apostrophos[0,-1])

(primary.ison[0,0];klasma[-2,2])

(martyria.diatonic-delta[0,-8];letter.small.zo[-1,-3])


(primary.ison[0,-1])

(primary.oligon[0,-1];klasma[-3,2];kendima[2,-1])

(primary.oligon[0,0];kendima[-3,1])

(primary.apostrophos[0,-1])

(primary.oligon[0,0];klasma[-2,2])

(primary.oligon[0,0])

(primary.oligon[0,0];klasma[-3,2];kendima[-2,-3];kendima[0,-3])

(primary.ison[0,0];bareia[-9,-3])

(primary.apostrophos[0,0])

(primary.oligon[0,0];klasma[-3,3])

(martyria.diatonic-na[0,-7];letter.small.zo[0,-3])

(martyria.diatonic-na[0,-7];letter.tonos[0,-2])

(primary.elaphron[0,0];primary.apostrophos[-2,-1])

(primary.oligon[0,0];klasma[-3,3])

(primary.oligon[0,0];kendima[-3,2];kendima[-1,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,0];dot.hapli[5,4])

(primary.elaphron[0,-1];dot.hapli[-2,3])


(primary.oligon[0,-1];kendima[-5,2];gorgon.mono-gorgon[-5,4];kendima[-2,1])

(primary.apostrophos[0,-1])

(primary.oligon[0,-1];klasma[-3,2];dot.hapli[-5,-3];kendima[2,-1];gorgon.mono-gorgon[0,-3];kendima[4,-1])

(primary.oligon[0,0];psiphiston[-1,-4];kendima[-6,1];kendima[-4,2])

(primary.apostrophos[0,-1])

(primary.apostrophos[0,-1];dot.hapli[-3,-1])

(primary.petasti[0,-1];klasma[-3,-2];primary.apostrophos[-3,1])

(primary.hyporrhoe[0,0];gorgon.mono-gorgon[-3,2];kendima[2,0];gorgon.mono-gorgon[0,-3];kendima[3,0];hypsili[19,-1];kendima[9,2];gorgon.mono-gorgon[8,4];kendima[11,2];dot.hapli[-1,-2])

(primary.oligon[0,0];klasma[-2,3])

(martyria.diatonic-delta[0,-8];dot.hapli[-1,-5])

(martyria.diatonic-delta[0,-4])

(primary.apostrophos[0,0];bareia[-5,0])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2])

(primary.ison[0,0];bareia[-9,-3])

(primary.apostrophos[0,0];gorgon.mono-gorgon[-3,2])

(primary.oligon[0,0];dot.hapli[-6,2])


(primary.oligon[0,0];dot.hapli[-10,2];kendima[-3,2];gorgon.mono-gorgon[-3,4];kendima[-1,2];primary.baseline.oligon[-5,2])

(primary.apostrophos[0,0])

(primary.apostrophos[0,-1])

(primary.elaphron[0,-1])

(primary.oligon[0,0];antikenoma[0,-3];gorgon.mono-gorgon[-5,2])

(primary.apostrophos[0,-1])

(primary.ison[0,0];klasma[-3,2];dot.hapli[-1,0];dot.hapli[96,-19];letter.tonos[97,-17];dot.hapli[97,-25];dot.hapli[98,-19];dot.hapli[98,-18];dot.hapli[99,-21];gorgon.mono-gorgon[99,-24];dot.hapli[98,-24])





 

Attachments

  • debug_groups.png
    debug_groups.png
    74.1 KB · Views: 33
  • _GKM_1044_Tameion_Anthologias_Gregorios_1834_Constantinople_vol_01_sf11-00 - Sample.png
    _GKM_1044_Tameion_Anthologias_Gregorios_1834_Constantinople_vol_01_sf11-00 - Sample.png
    86.1 KB · Views: 32
  • _GKM_1044_Tameion_Anthologias_Gregorios_1834_Constantinople_vol_01_sf11-00 - Sample.txt
    19.5 KB · Views: 14
Last edited:

prenumele

Παλαιό Μέλος
Who is currently responsible for the technical maintenance of the code?

For Gamera OCR in general

(http://gamera.informatik.hsnr.de/index.html)
see
Authors and Acknowledgements
Christoph Dalitz (lead developer) et alterum
(NB: some links no longer work....)

Article (new links, because others no longer functional)
(C. Dalitz, G.K. Michalakis, C. Pranzas: Optical Recognition of Psaltic Byzantine Chant Notation. International Journal of Document Analysis and Recognition, vol. 11, no. 3, pp. 143-158 (2008) ) pdf
(http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.140.5149&rep=rep1&type=pdf)

For Psaltiki toolkit
Christoph Dalitz (lead developer)
contact (Christoph Dalitz <christoph.dalitz@hs-niederrhein.de>;)


Gamera/psaltiki Toolkit Codes etc = OPENSOURCE at sourceforge
(follow links)


Yahoo Groups Gamera Development
(https://groups.yahoo.com/neo/groups/gamera-devel/info)


Christoph Dalitz had written a newer binary for windows, but for some of us it never functionned.

GKM finally managed a combinaton with old existing Python/WXPython/GameraOCR versions.

Newest Gamera OCR works with newer Python versions, but the only one capable of being installed was Gamera 3.0 (even though it is labelled 2.0) using Python 2.3



Yet, for people who know about programming, there is a way to create Windows binaries with newer versions of Gamera and Python.


The PsaltikiToolkit did not undergo any more improvement ever since the publication (2008).



Overall cost for the program was covered by grants and donations.


If no volunteer programmers can be found, perhaps donations of approximately 1000 (one thousand) Euros can help improve the toolkit.


What seems to be more urgent is some sort of "conversion" of the output code to the corresponding freeware (BZQ, MK, Pandouris, etc...) or even into Melodos (of which the OCR is of exceptional quality, as well).

Finally, regardelss of the program used, initial image processing seems to still be necessary, and this requires extensive teamwork.

Contact attempts made in the direction of the "Neumes Project" did not lead to any possible "collaboration".
 
Last edited:
Top