×

HTR | API

Addestramento

Per l'addestramento di un nuovo modello HTR utilizzando la nuova API (per RNN HTR), in primo luogo deve essere creato un XML di configurazione.
Oltre ai parametri (l'esempio qui sotto include i valori predefiniti) i campi obbligatori sono:

  • un nome di modello
  • una descrizione
  • la lingua
  • l'ID della collezione dove si possono trovare i documenti di input e dove il modello risultante sarà collegato

L'input per l'addestramento è descritto nella sezione TrainList dell'XML ed è composto da elementi train dove ognuno include:

  • l'ID del documento
  • un elenco di pagine dove ogni pagina include
    • l'ID della pagina
    • l'ID della versione della trascrizione che dovrebbe essere usata per l'addestramento

Opzionalmente un insieme di test può essere specificato nell'elemento TestList in modo analogo.

Il descrittore di addestramento dovrebbe quindi assomigliare a questo:

<?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>

Questo XML viene poi inviato via POST a

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

e la chiamata restituisce il job-ID dell'addestramento.

Si noti che i modelli sono ora collegati alla collezione in cui sono stati avviati (cfr. l'elemento colId nel descrittore di addestramento XML).

Gestire i modelli HTR

Elenco dei modelli disponibili

L'elenco dei modelli può essere fatto con una richiesta GET a:
https://transkribus.eu/TrpServer/rest/recognition/{collection-ID}/list?prov={techProvider}

La chiamata include:

  • Parametro del percorso: collection-ID
  • Parametro della query: il fornitore di tecnologia. Qui al momento solo "CITlab" è permesso come valore.

Un modello è descritto nel risultato, ad esempio, dal seguente XML:

...
<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>
...

Degno di nota è l'elemento htrId che viene utilizzato per applicare il modello.

La cerString include i valori CER che sono stati determinati durante l'addestramento contro il set di addestramento o il set di test (opzionale).

La charList include la mappatura del canale dei caratteri e informa sui caratteri che sono noti al modello.

Aggiungere modelli ad altre collezioni

Per rendere disponibile un modello addestrato in un'altra collezione, è necessario POST:

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

Rimuovere i modelli dalle collezioni

DELETE richiesta a:

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

Si noti che un modello non può essere rimosso da tutte le collezioni.

Dizionari

Per applicare un modello HTR è necessario fornire il nome di un dizionario. I dizionari disponibili possono essere elencati via GET a:

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

Riconoscimento

Per applicare un modello HTR, una richiesta POST deve essere inviata a:

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

Il parametro del dizionario è opzionale e può essere omesso.
Si noti che il id e pages può essere sostituito con un oggetto nel corpo della richiesta, permettendo una selezione più dettagliata dei dati di input:

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

Rappresentazione XML equivalente:

<?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>