Die Antwort auf eine Verarbeitungsanfrage enthält ein Document-Objekt mit allen bekannten Informationen zum verarbeiteten Dokument, einschließlich aller strukturierten Informationen, die Document AI extrahieren konnte.
Auf dieser Seite wird das Layout des Document-Objekts erläutert. Dazu werden Beispieldokumente bereitgestellt und Aspekte der OCR-Ergebnisse den spezifischen Elementen des Document-Objekt-JSON zugeordnet.
Außerdem finden Sie hier Codebeispiele für Clientbibliotheken und das Document AI Toolbox SDK.
In diesen Codebeispielen wird die Onlineverarbeitung verwendet, aber das Parsen des Document-Objekts funktioniert für die Batchverarbeitung genauso.

Die orangefarbenen und blauen Rechtecke und Pfeile stehen dafür, dass mindestens ein Feld der verbundenen Objekte .layout bzw. detectedLanguage ist. Im Diagramm wird die Krähenfußnotation verwendet.
Verwenden Sie ein JSON-Anzeige- oder Bearbeitungstool, das speziell für das Ein- und Ausblenden von Elementen entwickelt wurde. Die Überprüfung von unformatiertem JSON in einem Texteditor ist ineffizient.
Text, Layout und Qualitätsfaktoren
Hier ein Beispiel für ein Textdokument:

Hier ist das vollständige Dokumentobjekt, das vom Prozessor Enterprise Document OCR zurückgegeben wird:
Diese OCR-Ausgabe ist auch immer in der Ausgabe des Document AI-Prozessors enthalten, da die OCR von den Prozessoren ausgeführt wird. Dabei werden die vorhandenen OCR-Daten verwendet. Deshalb können Sie solche JSON-Daten mit der Inline-Dokumentoption in Document AI-Prozessoren eingeben.
image=None, # all our samples pass this var
mime_type="application/json",
inline_document=document_response # pass OCR output to CDE input - undocumented
Hier sind einige der wichtigen Felder:
Rohtext
Das Feld text enthält den Text, der von Document AI erkannt wird.
Dieser Text enthält keine Layoutstruktur außer Leerzeichen, Tabulatoren und Zeilenumbrüchen. In diesem Feld werden die Textinformationen eines Dokuments gespeichert. Es dient als zentrale Informationsquelle für den Text des Dokuments. Andere Felder können sich anhand der Position (startIndex und endIndex) auf Teile des Textfelds beziehen.
{
text: "Sample Document\nHeading 1\nLorem ipsum dolor sit amet, ..."
}
Seitengröße und Sprachen
Jedes page im Dokumentobjekt entspricht einer physischen Seite aus dem Beispieldokument. Die JSON-Beispielausgabe enthält eine Seite, da es sich um ein einzelnes PNG-Bild handelt.
{
"pages:" [
{
"pageNumber": 1,
"dimension": {
"width": 679.0,
"height": 460.0,
"unit": "pixels"
},
}
]
}
- Das Feld
pages[].detectedLanguages[]enthält die auf einer bestimmten Seite gefundenen Sprachen sowie den Konfidenzwert.
{
"pages": [
{
"detectedLanguages": [
{
"confidence": 0.98009938,
"languageCode": "en"
},
{
"confidence": 0.01990064,
"languageCode": "und"
}
]
}
]
}
OCR-Daten
Mit Document AI OCR wird Text mit unterschiedlicher Granularität oder Organisation auf der Seite erkannt, z. B. Textblöcke, Absätze, Tokens und Symbole (die Symbolebene ist optional, wenn die Ausgabe von Daten auf Symbolebene konfiguriert ist). Das sind alles Mitglieder des Seitenobjekts.
Jedes Element hat ein entsprechendes layout, das seine Position und seinen Text beschreibt. Nicht textbasierte visuelle Elemente (z. B. Kästchen) sind ebenfalls auf Seitenebene.
{
"pages": [
{
"paragraphs": [
{
"layout": {
"textAnchor": {
"textSegments": [
{
"endIndex": "16"
}
]
},
"confidence": 0.9939527,
"boundingPoly": {
"vertices": [ ... ],
"normalizedVertices": [ ... ]
},
"orientation": "PAGE_UP"
}
}
]
}
]
}
Der Roh-Text wird im textAnchor-Objekt referenziert, das mit startIndex und endIndex in den Haupttextstring indexiert wird.
Bei
boundingPolyist die obere linke Ecke der Seite der Ursprung(0,0). Positive X-Werte befinden sich rechts und positive Y-Werte unten.Das
vertices-Objekt verwendet dieselben Koordinaten wie das Originalbild, währendnormalizedVerticesim Bereich[0,1]liegt. Es gibt eine Transformationsmatrix, die die Entzerrung der Messwerte und andere Attribute der Normalisierung des Bildes angibt.
- Um das
boundingPolyzu zeichnen, zeichnen Sie Liniensegmente von einem Eckpunkt zum nächsten. Schließen Sie das Polygon, indem Sie ein Liniensegment vom letzten zum ersten Eckpunkt zeichnen. Das orientation-Element des Layouts gibt an, ob der Text relativ zur Seite gedreht wurde.
Die folgenden Bilder zeigen Begrenzungspolygone für page.paragraphs, page.lines und page.tokens, um die Struktur des Dokuments zu veranschaulichen.
Absätze

Linien

Tokens

Blöcke

Der Prozessor Enterprise Document OCR kann die Qualität eines Dokuments anhand seiner Lesbarkeit bewerten.
- Sie müssen das Feld
processOptions.ocrConfig.enableImageQualityScoresauftruefestlegen, damit diese Daten in der API-Antwort enthalten sind.
Diese Qualitätsbewertung ist ein Qualitätsfaktor in [0, 1], wobei 1 für perfekte Qualität steht.
Der Qualitätsfaktor wird im Feld Page.imageQualityScores zurückgegeben.
Alle erkannten Fehler werden als quality/defect_* aufgeführt und absteigend nach Konfidenzwert sortiert.
Hier sehen Sie ein PDF, das zu dunkel und verschwommen ist, um es bequem lesen zu können:
Hier sind die Informationen zur Dokumentqualität, die vom Prozessor Enterprise Document OCR zurückgegeben werden:
{
"pages": [
{
"imageQualityScores": {
"qualityScore": 0.7811847,
"detectedDefects": [
{
"type": "quality/defect_document_cutoff",
"confidence": 1.0
},
{
"type": "quality/defect_glare",
"confidence": 0.97849524
},
{
"type": "quality/defect_text_cutoff",
"confidence": 0.5
}
]
}
}
]
}
Codebeispiele
Die folgenden Codebeispiele zeigen, wie Sie eine Verarbeitungsanfrage senden und dann die Felder lesen und im Terminal ausgeben:
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Java API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Node.js API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.