# OCR und HTR

OCR (_object character recognition_) und spezifischer HTR (_hand-written text recognition_) heißt die Methode 
zur automatischen Transkription von Manuskripten und Drucken. Neben spezifisch trainierten
Tools wie <a href="https://www.transkribus.org/" target="_blank">Transkribus</a>, 
<a href="https://gitlab.com/scripta/escriptorium" target="_blank">eScriptorium</a> und
<a href="https://www.ocr4all.org/" target="_blank">OCR4all</a> können auch multimodale Sprachmodelle 
wie z.B. Mistral (Frankreich), Kimi (China), GPT-5 (USA), Gemini (USA) verwendet werden. Diese Modelle können 
zwar deutlich schlechter Abkürzungen, Ligaturen und Textmarkierungen auflösen und frühe Handschriften daher 
nur sehr schwer "entziffern", dafür ermöglichen sie gleich den Output als strukturierte Daten, z.B. als 
einfaches TEI-XML Format. Alle Tools normalisieren sofort, so dass eine digitale diplomatische Edition 
dadurch quasi übersprungen wird. Dies hängt u.a. auch mit der Codierung der Zeichen zusammen, die Spezialwissen
bzw. Spezialtraining eines Tools voraussetzen.

## Transkription manuell
Am Beispiel der ersten 10 Zeilen des Manuskripts D'Orville 77 _In Ciceronem_ wird der Unterschied zwischen einer
diplomatischen Version und einer normalisierten Version veranschaulicht.

<center>
    <figure>
        <img width=60% src="../_static/manuscript/lines_1-10_1024x616.png">
        <figcaption>© Bodleian Libraries, University of Oxford, CC BY-NC 4.0. </figcaption>
    </figure>
</center>

### Diplomatische und normalisierte Version (manuell)

<small>Die dargestellte diplomatische Version kommt dem Original nur in etwa nahe, 
da nicht alle "Übersetzungen" der Zeichen in UTF-8 gelungen sind, z.B. ist das sog. lange "s" der
karolingischen Minuskel hier behelfsweise mit einem "f" mit Haken widergegeben.</small>

<table style="width:100%">
  <tr>
    <th style="width: 5%;">Zeile</th>
    <th style="width: 45%; margin-right:10px;">diplomatische Version</th>
    <th style="width: 50%;">normalisierte Version</th>
  </tr>
  <tr>
    <td>Titel</td>
    <td style="text-transform: uppercase">incipit oratio sallusti contra ciceron&emacr;.</td>
    <td style="text-transform: uppercase">incipit oratio sallusti contra ciceronem.</td>
  </tr>
  <tr>
    <td>1</td>
    <td>Grauiter &aelig;iniquo animo maledictatua paterer mtulli.</td>
    <td>Grauiter et iniquo animo maledicta tua paterer M. Tulli,</td>
  </tr>
  <tr>
    <td>2</td>
    <td>&fnof;ite&fnof;cir&emacr;; iuditio magis qu&amacr;morbo animi petulantia ista uti</td>
    <td>si te scirem iudicio magis quam morbo animi petulantia ista uti.</td>
  </tr>
  <tr>
    <td>3</td>
    <td>Sedc&umacr; inte neq; mod&umacr; neq; modesti&amacr; ull&amacr; animad&umacr;to. re&fnof;pondebo</td>
    <td>Sed cum in te neque modum neque modestiam ullam animadverto, respondebo</td>
  </tr>
  <tr>
    <td>4</td>
    <td>tibi<sup>.</sup>ut&fnof;iqu&amacr; male dicendo uoluptat&emacr; coepisti.~ e&amacr; maledicendo</td>
    <td>tibi: ut si quam maledicendo uoluptatem coepisti, eam maledicendo</td>
  </tr>
   <tr>
    <td>5</td>
    <td>amitta&fnof;. Ubi querar.~ quos implor&emacr; .pc. diripi.rp.atq;</td>
    <td>amittas. Ubi querar, quos implorem, patres conscripti, diripi rem publicam atque</td>
  </tr>
  <tr>
    <td>6</td>
    <td>audaci&fnof;&fnof;imo cuiq; e&emacr;pfidie.~ Apud .pr.qitalargitionib;</td>
    <td>audacissimo cuique esse perfidie? Apud populum Romanum qui ita largitionibus</td>
  </tr>
  <tr>
    <td>7</td>
    <td>corruptu&fnof;&emacr;.ut&fnof;eip&fnof;e acfortuna&fnof;&fnof;ua&fnof; uenali&fnof; habeat.~ anapud</td>
    <td>corruptus est, ut se ipse ac fortunas suas venales habeat? An apud</td>
  </tr>
    <tr>
    <td>8</td>
    <td>uo&fnof;.pc. quor&umacr; auctorita&fnof; turpi&fnof;&fnof;imo cuiq; &aelig;&fnof;celerati&fnof;&fnof;imo</td>
    <td>vos, patres conscripti, quorum auctoritas turpissimo cuique et sceleratissimo</td>
  </tr>
    <tr>
    <td>9</td>
    <td>ludibrio &emacr;.~ Ubi ubi . m.tullius.lege&fnof;.iudica.rp.defendit</td>
    <td>ludibrio est? Ubi ubi, M. Tullius, leges, iudicia, rem publicam defendit</td>
  </tr>
    <tr>
    <td>10</td>
    <td>atq; inhoc ordine ita moderatur qua&fnof;iunu&fnof; reliquu&fnof; e familia</td>
    <td>atque in hoc ordine ita moderatur quasi unus reliquus e familia</td>
  </tr>

</table>


## Automatische Transkriptionen
Arbeitet man mit automatisch erzeugten Transkriptionen muss man selbstverständlich immer das Ergebnis überprüfen
und weiter bearbeiten. Allerdings können die Tools die Arbeit des Digitalisierens deutlich vereinfachen, v.a. weil 
sie die lästige Tipparbeit abnehmen und ggf. bereits die Daten in einem gewünschten Ausgabeformat, bspw. TEI-XML, 
bereit stellen. Dadurch wird insbesondere fehleranfällige Arbeit auf der menschlichen Seite reduziert. 

### Transkribus (freie Testversion)

<center>
    <figure>
        <img width=80% src="../_static/manuscript/transkribus_line_1-10.png">
        <figcaption>Transkribus: Die frei zugängliche Testversion macht aus Zeile 6 zwei Zeilen und vertauscht 
        dabei den hinteren Teil der Zeile mit dem vorderen.</figcaption>
    </figure>
</center>

Der Text kann in dieser Version nicht online bearbeitet werden. Das Ergebnis kann als PDF, DOC oder Rohtext 
(via Kopieren und Einfügen) aus der Anwendung mitgenommen werden, d.h. es liegt auch noch kein strukturiertes Datenformat vor.


### Multimodale Sprachmodelle (MLLM)

Prompt: 
> Nutze OCR/HTR, um den lateinischen Text des Manuskripts (Anhang) zu transkribieren. Das Manuskript ist in karolingischen Minuskeln geschrieben. Gib das Transkript im Format TEI-XML zeilenweise aus. Die erste Zeile ist der Titel `<title>` `</title>`. Nummeriere die weiteren Zeilen: Beispiel `<l n="1">`Grauiter et iniquo animo maledicta tua paterer M. Tulli.`</l>`. 

<style>
div.gallery {
  border: 1px solid #ccc;
}

div.gallery:hover {
  border: 1px solid #777;
}

div.gallery img {
  width: 100%;
  height: auto;
}

div.desc {
  padding: 15px;
  text-align: center;
}

* {
  box-sizing: border-box;
}

.responsive {
  padding: 0 6px;
  float: left;
  width: 24.99999%;
}

@media only screen and (max-width: 700px) {
  .responsive {
    width: 49.99999%;
    margin: 6px 0;
  }
}

@media only screen and (max-width: 500px) {
  .responsive {
    width: 100%;
  }
}

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}
</style>

<div class="responsive">
  <div class="gallery">
    <a target="_blank" href="../_static/manuscript/gemini_2.5-flash_line_1-10.png">
      <img src="../_static/manuscript/gemini_2.5-flash_line_1-10.png" alt="Gemini-2.5-Flash" width="200" height="auto">
    </a>
    <div class="desc">Gemini-2.5-Flash (USA)</div>
  </div>
</div>

<div class="responsive">
  <div class="gallery">
    <a target="_blank" href="../_static/manuscript/gpt-4.1_line_1-10.png">
      <img src="../_static/manuscript/gpt-4.1_line_1-10.png" alt="GPT-4.1" width="200" height="auto">
    </a>
    <div class="desc">GPT-4.1 (USA)</div>
  </div>
</div>

<div class="responsive">
  <div class="gallery">
    <a target="_blank" href="../_static/manuscript/kimi-k2-instruct_line_1-10.png">
      <img src="../_static/manuscript/kimi-k2-instruct_line_1-10.png" alt="Kimi-K2-Instruct" width="200" height="auto">
    </a>
    <div class="desc">Kimi-K2-Instruct (China)</div>
  </div>
</div>

<div class="responsive">
  <div class="gallery">
    <a target="_blank" href="../_static/manuscript/mistral-medium-3_line_1-10.png">
      <img src="../_static/manuscript/mistral-medium-3_line_1-10.png" alt="Mistral-Medium-3" width="200" height="auto">
    </a>
    <div class="desc">Mistral-Medium-3 (Frankreich)</div>
  </div>
</div>

<div class="clearfix"></div>



### Exemplarischer Vergleich Transkribus, MLLM und manuell

<table style="width:90%">
  <tr>
    <th style="width:10%">Zeile</th>
    <th style="width:70%">Transkript</th>
    <th style="width:20%">Tool</th>
  </tr>
  <tr>
    <td rowspan="6">1</td>
    <td style="background-color:#d2f8d2">Grauiter et iniquo animo maledicta tua paterer M. Tulli,</td>
    <td style="background-color:#d2f8d2">manuell</td>
  </tr>
  <tr>
    <td><l n="1">Grauiter &amp; iniquo animo maledicta tua paterer nulli</l></td>
    <td>Gemini</td>
  </tr>
  <tr>
    <td><l n="1">Gravi iter aequino animo maledicta tua paterer M. Tulli,</l></td>
    <td>GPT</td>
  </tr>
  <tr>
    <td><l n="1">Grauiter et iniquo animo maledicta tua paterer, nisi</l></td>
    <td>Kimi</td>
  </tr>
  <tr>
    <td><l n="1">Grauter & unico animo maledictatua paterer in tulli</l></td>
    <td>Mistral</td>
  </tr>
  <tr style="background-color:#ededed">
    <td>rauiter et iniquo animo maledictatua paterer in tulli.</td>
    <td>Transkribus</td>
  </tr>
  <tr>
  <td style="background-color: #000000"></td>
  <td style="background-color: #000000"></td>
  <td style="background-color: #000000"></td>
  </tr>
  <tr>
    <td rowspan="6">6</td>
    <td style="background-color:#d2f8d2">audacissimo cuique esse perfidie? Apud populum Romanum qui ita largitionibus</td>
    <td style="background-color:#d2f8d2">manuell</td>
  </tr>
  <tr>
    <td><l n="6">audacissimo cumq; effugere. Apud pr. qui a largitionib;</l></td>
    <td>Gemini</td>
  </tr>
  <tr>
    <td><l n="6">audacissimo cuique, et perfide. Apud pr. quia largitionib(us)</l></td>
    <td>GPT</td>
  </tr>
  <tr>
    <td><l n="6">audacissimo cuique et perdito. Apud praeclaros uiros largitionibus</l></td>
    <td>Kimi</td>
  </tr>
  <tr>
    <td><l n="6">audacissimo cuiq; ceptidie. Apud pr. quia largitionib;</l></td>
    <td>Mistral</td>
  </tr>
  <tr style="background-color:#ededed">
    <td>Apud, pr. quia largitionibus </br> audacissimo cuique esse perfidię.</td>
    <td>Transkribus</td>
  </tr>
</table>

## Bewertung der manuellen und automatischen Transkription 

Voraussetzung für die manuelle Transkription ist der Zugang zum Originaltext oder - wie im 
Forschungsbeispiel - ein hochauflösender Scan bzw. ein Photo. Diese Form der Transkription 
bringt im Prinzip die höchste Qualität, insbesondere im Hinblick auf eine
diplomatische Fassung. Allerdings ermüden die Augen irgendwann, die Konzentration lässt nach und 
so schleichen sich Transkriptionsfehler ein. Eventuell entsteht auch eine doppelte Fehlerquelle, 
wenn die erste Transkription mit Stift und Papier erfolgt, um anschließend für die digitale Fassung 
abgeschrieben zu werden. 

Demgegenüber bieten die eingesetzten Tools eine sofortige digitale, meist auch zuverlässig liniengetreue
Textfassung, wenn das Original in einem vom Tool verarbeitbaren Datenformat vorliegt, z.B. im Bildformat PNG. 
Neben den zahlreichen Fehlern kann sich auch der "Tool-Bruch" für die weitere Bearbeitung der Ergebnisse
als problematisch erweisen, wenn User nicht souverän genug mit verschiedenen Datentypen umgehen können. 
Während die Fehlerquelle des Abschreibens entfällt, wird das Original von Beginn an "geglättet" (normalisiert).

Vor allem die MLLM können (bisher, 10/2025) gar nicht anders, weil sie keinen Zugriff auf besondere Zeichenformen
oder spezifisch trainierte KI-Modelle haben. Sie lösen daher auch nur "zufällig" Abkürzungen oder Ligaturen 
auf, indem sie mit statistischen Wahrscheinlichkeiten arbeiten. 
Bei aller notwendigen Nacharbeit ist es aber von großem Vorteil,
nicht alles selbst tippen zu müssen und dank der MLLM sogar auf strukturierte Datenformate zurückgreifen zu können.