A resposta a um pedido de processamento contém um Document
objeto que contém tudo o que se sabe sobre o documento processado, incluindo todas as
informações estruturadas que a IA Documental conseguiu extrair.
Esta página explica o esquema do objeto Document através de documentos de exemplo e, em seguida, mapeia os aspetos dos resultados de OCR para os elementos específicos do JSON do objeto Document.
Também fornece bibliotecas cliente, exemplos de código e exemplos de código do SDK Document AI Toolbox.
Estes exemplos de código usam o processamento online, mas a análise de objetos Document funciona da mesma forma para o processamento em lote.

Os retângulos e as setas laranja e azuis representam que, respetivamente, pelo menos um campo dos objetos ligados é .layout ou detectedLanguage. O diagrama usa a notação de pé de galinha.
Use um visualizador JSON ou um utilitário de edição especificamente concebido para expandir ou reduzir elementos. A revisão de JSON não processado numa utilidade de texto simples é ineficiente.
Texto, esquema e índices de qualidade
Segue-se um exemplo de um documento de texto:

Segue-se o objeto de documento completo devolvido pelo processador Enterprise Document OCR:
Este resultado do OCR também está sempre incluído no resultado do processador do Document AI, uma vez que o OCR é executado pelos processadores. Usa os dados de OCR existentes, pelo que pode introduzir esses dados JSON através da opção de documento inline nos processadores do 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
Seguem-se alguns dos campos importantes:
Texto não processado
O campo text contém o texto reconhecido pela IA Documental.
Este texto não contém nenhuma estrutura de esquema além de espaços, tabulações e
mudanças de linha. Este é o único campo que armazena informações textuais de um documento e serve como fonte de informações fidedignas do texto do documento. Outros campos podem referir-se a partes do campo de texto por posição (startIndex e endIndex).
{
text: "Sample Document\nHeading 1\nLorem ipsum dolor sit amet, ..."
}
Tamanho de página e idiomas
Cada page no objeto document corresponde a uma página física do documento de exemplo. O resultado JSON de exemplo contém uma página porque é uma única imagem PNG.
{
"pages:" [
{
"pageNumber": 1,
"dimension": {
"width": 679.0,
"height": 460.0,
"unit": "pixels"
},
}
]
}
- O campo
pages[].detectedLanguages[]contém os idiomas encontrados numa determinada página, juntamente com a pontuação de confiança.
{
"pages": [
{
"detectedLanguages": [
{
"confidence": 0.98009938,
"languageCode": "en"
},
{
"confidence": 0.01990064,
"languageCode": "und"
}
]
}
]
}
Dados de OCR
O OCR da Document AI deteta texto com vários níveis de detalhe ou organização na página, como blocos de texto, parágrafos, tokens e símbolos (o nível de símbolo é opcional, se estiver configurado para gerar dados ao nível do símbolo). Estes são todos os membros do objeto de página.
Cada elemento tem um layout correspondente que descreve a respetiva posição e texto. Os elementos visuais que não são texto (como caixas de verificação) também estão ao nível da página.
{
"pages": [
{
"paragraphs": [
{
"layout": {
"textAnchor": {
"textSegments": [
{
"endIndex": "16"
}
]
},
"confidence": 0.9939527,
"boundingPoly": {
"vertices": [ ... ],
"normalizedVertices": [ ... ]
},
"orientation": "PAGE_UP"
}
}
]
}
]
}
O texto não processado é referido no objeto textAnchor
que é indexado na string de texto principal com startIndex e endIndex.
Para
boundingPoly, o canto superior esquerdo da página é a origem(0,0). Os valores X positivos estão à direita e os valores Y positivos estão para baixo.O objeto
verticesusa as mesmas coordenadas que a imagem original, enquanto quenormalizedVerticesestão no intervalo[0,1]. Existe uma matriz de transformação que indica as medidas de correção da distorção e outros atributos da normalização da imagem.
- Para desenhar o
boundingPoly, desenhe segmentos de linha de um vértice para o seguinte. Em seguida, feche o polígono desenhando um segmento de linha do último vértice de volta ao primeiro. O elemento orientation do esquema indica se o texto foi rodado relativamente à página.
Para ajudar a visualizar a estrutura do documento, as seguintes imagens desenham polígonos delimitadores para page.paragraphs, page.lines e page.tokens.
Parágrafos

Linhas

Tokens

Blocos

O processador Enterprise Document OCR pode realizar uma avaliação de qualidade de um documento com base na respetiva legibilidade.
- Tem de definir o campo
processOptions.ocrConfig.enableImageQualityScorescomotruepara receber estes dados na resposta da API.
Esta avaliação de qualidade é um índice de qualidade em [0, 1], em que 1 significa qualidade perfeita.
O índice de qualidade é devolvido no campo Page.imageQualityScores.
Todos os defeitos detetados são apresentados como quality/defect_* e ordenados por ordem descendente
pelo valor de confiança.
Segue-se um PDF demasiado escuro e desfocado para ser lido confortavelmente:
Seguem-se as informações de qualidade do documento devolvidas pelo processador 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
}
]
}
}
]
}
Exemplos de código
Os seguintes exemplos de código demonstram como enviar um pedido de processamento e, em seguida, ler e imprimir os campos no terminal:
Java
Para mais informações, consulte a documentação de referência da API Java Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.