CIB DeepER API Dokumentation (DE)

API-Beschreibung

OCR Ergebnis: Seitenlayout und Text

Der Rückgabewert des OCR-POST-Request ist ein JSON-Objekt, das die Informationen des erkannten Textes zusammen mit einigen zusätzlichen Layoutinformationen speichert.

Ein Beispiel für ein OCR-Ergebnis sieht wie folgt aus:

    {
   "root": {
     "versions": [
       [
         "CIB deepER",
         "2.9.0"
       ]
     ],
     "angle": 0,
     "attributes": {},
     "id": "image_1",
     "image": "image1.png",
     "type": "image",
     "children": [
       {
         "attributes": {},
         "id": "page_1",
         "type": "page",
         "width": 2479,
         "height": 3508,
         "number": 1,
         "children": [
           {
             "attributes": {},
             "confidence": null,
             "top": 585,
             "width": 711,
             "id": "line_1",
             "type": "line",
             "left": 245,
             "height": 32,
             "text": "",
             "children": [
               {
                 "attributes": {},
                 "confidence": 0.70,
                 "children": [],
                 "top": 585,
                 "width": 96,
                 "id": "word_1",
                 "type": "word",
                 "left": 245,
                 "height": 32,
                 "text": "Software"
               },
               {
                 "attributes": {},
                 "confidence": 0.74,
                 "children": [],
                 "top": 585,
                 "width": 153,
                 "id": "word_2",
                 "type": "word",
                 "left": 350,
                 "height": 32,
                 "text": "Entwicklung"
               }
             ],
           },
           {
             "attributes": {},
             "confidence": null,
             "top": 626,
             "width": 147,
             "id": "line_2",
             "type": "line",
             "left": 247,
             "height": 32,
             "text": "",
             "children": [
               {
                 "attributes": {},
                 "confidence": 0.72,
                 "children": [],
                 "top": 626,
                 "width": 147,
                 "id": "word_8",
                 "type": "word",
                 "left": 247,
                 "height": 32,
                 "text": "München"
               }
             ],
           }
         ],
       }
     ],
   }
 }

    

Das Layout besteht aus einer Dictionary-Struktur, die verschiedene Arten von hierarchisch geschachtelten Nodes (=Sub-Dictionaries) enthält:

  • Root Node
    • Image Node
      • Page Node
        • Line Node
          • Word Node


Root node

Der Root-Node speichert nur einen Key 'root' mit dem Image Node als Value.

Image node

Der Image-Node speichert Informationen über das Bild, wie Name und Deskew-Winkel. Der Key „children“ hat einen Value vom Typ List, dessen einziges Element ein Page-Node ist.

Page node

Der Page-Node speichert die Seitenkoordinaten in Pixel (als Integrer) und die Seitennummer (Integrer), beginnend mit 1. Ein "children"-Key beinhaltet eine Liste aller Line Nodes.

Line node

Line Nodes speichern Informationen wie die Koordinaten  einer Zeile (obere Grenze, linke Grenze, Höhe, Breite in Pixel, als Integrer). Die Werte „confidence“ und „text“ werden nur in den untersten Knoten, also in Word-Nodes, gefüllt. Diese werden für jede Zeile im Wert von „children“ gespeichert, der wiederum eine Liste von Nodes ist. Der Text einer Zeile kann reproduziert werden, indem der Text aller seiner Wörter, getrennt durch Leerzeichen, verkettet wird.

Word node

Jeder Word Node speichert Informationen über die Koordinaten, den erkannten Text und die Erkennungs-Confidence. Die Confidence ist ein Float zwischen 0 und 1.

Leerzeichen werden in den „text“-Values nicht explizit aufgeführt. Ein Leerzeichen ist immer zwischen zwei aufeinanderfolgenden Wörtern der gleichen Zeile positioniert. Wenn der Abstand zwischen zwei Wörtern länger als ein normales Leerzeichen ist, wird die Zeile in zwei nebeneinander liegende Zeilen aufgeteilt.