La risposta a una richiesta di elaborazione contiene un oggetto Document che include tutte le informazioni note sul documento elaborato, comprese tutte le informazioni strutturate che Document AI è riuscita a estrarre.
Questa pagina spiega il layout dell'oggetto Document fornendo documenti di esempio
e quindi mappando gli aspetti dei risultati OCR agli elementi specifici del JSON dell'oggetto Document.
Fornisce inoltre esempi di codice delle librerie client e dell'SDK Document AI Toolbox.
Questi esempi di codice utilizzano l'elaborazione online, ma l'analisi dell'oggetto Document funziona
allo stesso modo per l'elaborazione batch.

I rettangoli e le frecce arancioni e blu indicano che almeno un campo degli
oggetti collegati è .layout o detectedLanguage, rispettivamente. Il
diagramma utilizza la notazione
a zampa di gallina.
Utilizza un visualizzatore o un editor JSON progettato appositamente per espandere o comprimere gli elementi. La revisione del codice JSON non elaborato in un'utilità di testo normale è inefficiente.
Testo, layout e punteggi di qualità
Ecco un documento di testo di esempio:

Ecco l'oggetto documento completo restituito dal processore Enterprise Document OCR:
Questo output OCR è sempre incluso anche nell'output del processore Document AI, poiché l'OCR viene eseguito dai processori. Utilizza i dati OCR esistenti, motivo per cui puoi inserire questi dati JSON utilizzando l'opzione del documento in linea nei processori Document AI.
image=None, # all our samples pass this var
mime_type="application/json",
inline_document=document_response # pass OCR output to CDE input - undocumented
Ecco alcuni dei campi importanti:
Testo non elaborato
Il campo text contiene il testo riconosciuto da Document AI.
Questo testo non contiene alcuna struttura di layout diversa da spazi, tabulazioni e
avanzamenti di riga. Questo è l'unico campo che memorizza le informazioni
testuali di un documento e funge da fonte attendibile del testo del documento. Altri
campi possono fare riferimento a parti del campo di testo in base alla posizione (startIndex e endIndex).
{
text: "Sample Document\nHeading 1\nLorem ipsum dolor sit amet, ..."
}
Dimensioni pagina e lingue
Ogni page nell'oggetto documento corrisponde a una
pagina fisica del documento di esempio. L'output JSON di esempio contiene una
pagina perché è una singola immagine PNG.
{
"pages:" [
{
"pageNumber": 1,
"dimension": {
"width": 679.0,
"height": 460.0,
"unit": "pixels"
},
}
]
}
- Il campo
pages[].detectedLanguages[]contiene le lingue trovate in una determinata pagina, insieme al punteggio di affidabilità.
{
"pages": [
{
"detectedLanguages": [
{
"confidence": 0.98009938,
"languageCode": "en"
},
{
"confidence": 0.01990064,
"languageCode": "und"
}
]
}
]
}
Dati OCR
L'OCR di Document AI rileva il testo con vari livelli di granularità o organizzazione nella pagina, ad esempio blocchi di testo, paragrafi, token e simboli (il livello di simbolo è facoltativo, se configurato per restituire dati a livello di simbolo). Questi sono tutti i membri dell'oggetto pagina.
Ogni elemento ha un layout corrispondente che
ne descrive la posizione e il testo. Anche gli elementi visivi non di testo (come le caselle di controllo) si trovano a livello di pagina.
{
"pages": [
{
"paragraphs": [
{
"layout": {
"textAnchor": {
"textSegments": [
{
"endIndex": "16"
}
]
},
"confidence": 0.9939527,
"boundingPoly": {
"vertices": [ ... ],
"normalizedVertices": [ ... ]
},
"orientation": "PAGE_UP"
}
}
]
}
]
}
Il testo non elaborato viene indicato nell'oggetto textAnchor
che viene indicizzato nella stringa di testo principale con startIndex e endIndex.
Per
boundingPoly, l'origine è l'angolo in alto a sinistra della pagina(0,0). I valori X positivi si trovano a destra, mentre i valori Y positivi si trovano in basso.L'oggetto
verticesutilizza le stesse coordinate dell'immagine originale, mentrenormalizedVerticesrientrano nell'intervallo[0,1]. Esiste una matrice di trasformazione che indica le misure di correzione della distorsione e altri attributi della normalizzazione dell'immagine.
- Per disegnare il
boundingPoly, traccia segmenti di retta da un vertice all'altro. Quindi, chiudi il poligono tracciando un segmento di linea dall'ultimo vertice al primo. L'elemento orientation del layout indica se il testo è stato ruotato rispetto alla pagina.
Per aiutarti a visualizzare la struttura del documento, le seguenti immagini disegnano poligoni di delimitazione per page.paragraphs, page.lines e page.tokens.
Paragrafi

Righe

Token

Blocchi

Il processore Enterprise Document OCR può eseguire la valutazione della qualità di un documento in base alla sua leggibilità.
- Devi impostare il campo
processOptions.ocrConfig.enableImageQualityScoressutrueper ottenere questi dati nella risposta dell'API.
Questa valutazione della qualità è un punteggio di qualità in [0, 1], dove 1 indica una qualità perfetta.
Il punteggio di qualità viene restituito nel campo Page.imageQualityScores.
Tutti i difetti rilevati sono elencati come quality/defect_* e ordinati in ordine decrescente in base al valore di affidabilità.
Ecco un PDF troppo scuro e sfocato per essere letto comodamente:
Ecco le informazioni sulla qualità del documento restituite dal processore Enterprise Document OCR:
{
"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
}
]
}
}
]
}
Esempi di codice
I seguenti esempi di codice mostrano come inviare una richiesta di elaborazione e poi leggere e stampare i campi nel terminale:
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Java.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Node.js.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.