×

HTR | API

Training

Für das Training eines neuen HTR-Modells mit der neuen API (für RNN HTR) muss zunächst eine Konfigurations-XML erstellt werden.
Neben Parametern (das Beispiel unten enthält die Standardwerte) sind Pflichtfelder:

  • einen Modellnamen
  • eine Beschreibung
  • die Sprache
  • die Sammlungs-ID, unter der die Eingabedokumente zu finden sind und mit der das resultierende Modell verknüpft wird

Die Eingabe für das Training wird im Abschnitt TrainList der XML-Datei beschrieben und besteht aus Train-Elementen, die jeweils Folgendes enthalten:

  • die Dokument-ID
  • eine Liste von Seiten, wobei jede Seite Folgendes enthält
    • die Seiten-ID
    • die ID der Transkriptversion, die für das Training verwendet werden soll

Optional kann im Element TestList analog eine Testmenge angegeben werden.

Der Trainingsdeskriptor sollte dann wie folgt aussehen:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<citLabHtrTrainConfig>
    <modelName>Test Model</modelName>
    <description>A description</description>
    <language>German</language>
    <colId>2</colId>
    <numEpochs>200</numEpochs>
    <learningRate>2e-3</learningRate>
    <noise>both</noise>
    <trainSizePerEpoch>1000</trainSizePerEpoch>
    <trainList>
        <train>
            <docId>1</docId>
            <pageList>
                <pages>
                    <pageId>1</pageId>
                    <tsId>1</tsId>
                </pages>
                <pages>
                    <pageId>2</pageId>
                    <tsId>2</tsId>
                </pages>
            </pageList>
        </train>
        <train>
            <docId>2</docId>
            <pageList>
                <pages>
                    <pageId>3</pageId>
                    <tsId>3</tsId>
                </pages>
                <pages>
                    <pageId>4</pageId>
                    <tsId>4</tsId>
                </pages>
            </pageList>
        </train>
    </trainList>
    <testList/>
</citLabHtrTrainConfig>

Dieses XML wird dann per POST an

https://transkribus.eu/TrpServer/rest/recognition/htrTrainingCITlab

und der Aufruf gibt die Job-ID des Trainings zurück.

Beachten Sie, dass die Modelle nun mit der Sammlung verknüpft sind, in der sie gestartet wurden (vgl. colId-Element im Trainingsdeskriptor-XML).

Verwalten von HTR-Modellen

Auflistung der verfügbaren Modelle

Das Auflisten von Modellen kann mit einer GET-Anfrage an erfolgen:
https://transkribus.eu/TrpServer/rest/recognition/{collection-ID}/list?prov={techProvider}

Der Aufruf umfasst:

  • Pfadparameter: collection-ID
  • Abfrageparameter: der Tech-Provider. Hier ist im Moment nur "CITlab" als Wert erlaubt.

Ein Modell wird im Ergebnis z. B. durch das folgende XML beschrieben:

...
<trpHtr>
        <htrId>22</htrId>
        <name>Test Model</name>
        <description>A description</description>
        <provider>CITlab</provider>
        <created>
            <nanos>338000000</nanos>
        </created>
        <gtDocId>1614</gtDocId>
        <testGtDocId>1615</testGtDocId>
        <language>German</language>
        <trainJobId>3160</trainJobId>
        <cerString>1,000000</cerString>
        <charList> =1
,=2
.=3
...
</charList>
</trpHtr>
...

Erwähnenswert ist das Element htrId, das für die Anwendung des Modells verwendet wird.

Der cerString enthält CER-Werte, die beim Training gegen das Train-Set oder das (optionale) Test-Set ermittelt wurden.

Die charList enthält die Zeichenkanalzuordnung und informiert über die Zeichen, die dem Modell bekannt sind.

Hinzufügen von Modellen zu anderen Sammlungen

Um ein trainiertes Modell in einer anderen Sammlung verfügbar zu machen, müssen Sie POST:

https://transkribus.eu/TrpServer/rest/recognition/{collection-ID}/{htr-ID}/add?collId={destination_collection-ID}

Entfernen von Modellen aus Sammlungen

DELETE-Anfrage an:

https://transkribus.eu/TrpServer/rest/recognition/{collection-ID}/{htr-ID}/remove

Beachten Sie, dass ein Modell nicht aus allen Sammlungen entfernt werden kann.

Wörterbücher

Um ein HTR-Modell anzuwenden, müssen Sie einen Dateinamen für ein Wörterbuch angeben. Verfügbare Wörterbücher können über GET an aufgelistet werden:

https://transkribus.eu/TrpServer/rest/recognition/dicts

Erkennung

Für die Anwendung eines HTR-Modells muss eine POST-Anfrage an gesendet werden:

https://transkribus.eu/TrpServer/rest/recognition/{collection-ID}/{htr-ID}/htrCITlab?id ={doc-ID}&pages={page-string}&dict={dictionary_filename}

Der Parameter "Wörterbuch" ist optional und kann weggelassen werden.
Beachten Sie, dass die id und pages Parameter können durch ein Objekt im Anfragekörper ersetzt werden, was eine detailliertere Auswahl der Eingabedaten ermöglicht:

{
   "docId" : 1543,
   "pageList" : {
      "pages" : [ {
         "pageId" : 1234,
         "regionIds" : [ "the_xml_id_of_a_text_region" ]
      }, {
         "pageId" : 12345,
         "tsId" : 1234567
      } ]
   }
}

Äquivalente XML-Darstellung:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentSelectionDescriptor>
    <docId>1543</docId>
    <pageList>
        <pages>
            <pageId>1234</pageId>
            <regionIds>the_xml_id_of_a_text_region</regionIds>
        </pages>
        <pages>
            <pageId>12345</pageId>
            <tsId>1234567</tsId>
        </pages>
    </pageList>
</documentSelectionDescriptor>