A API Vision pode executar serviços de deteção offline (assíncronos) e
anotação de um grande lote de ficheiros de imagem usando qualquer tipo de funcionalidade da Vision. Por exemplo, pode especificar uma ou mais funcionalidades da API Vision (como TEXT_DETECTION
, LABEL_DETECTION
e LANDMARK_DETECTION
) para um único lote de imagens.
O resultado de um pedido em lote offline é escrito num ficheiro JSON criado no contentor do Cloud Storage especificado.
Limitações
A API Vision aceita até 2000 ficheiros de imagem. Um lote maior de ficheiros de imagem devolve um erro.
Tipos de funcionalidades atualmente suportados
Tipo de funcionalidade | |
---|---|
CROP_HINTS |
Determinar os vértices sugeridos para uma região de recorte numa imagem. |
DOCUMENT_TEXT_DETECTION |
Realizar OCR em imagens de texto denso, como documentos (PDF/TIFF) e imagens com escrita manual.
TEXT_DETECTION pode ser usado para imagens de texto esparsas.
Tem precedência quando DOCUMENT_TEXT_DETECTION e
TEXT_DETECTION estão presentes.
|
FACE_DETECTION |
Detetar rostos na imagem. |
IMAGE_PROPERTIES |
Calcular um conjunto de propriedades da imagem, como as cores dominantes da imagem. |
LABEL_DETECTION |
Adicione etiquetas com base no conteúdo da imagem. |
LANDMARK_DETECTION |
Detetar pontos de referência geográficos na imagem. |
LOGO_DETECTION |
Detetar logótipos de empresas na imagem. |
OBJECT_LOCALIZATION |
Detetar e extrair vários objetos numa imagem. |
SAFE_SEARCH_DETECTION |
Executar a Pesquisa segura para detetar conteúdo potencialmente inseguro ou indesejável. |
TEXT_DETECTION |
Realizar o reconhecimento ótico de carateres (OCR) no texto da imagem.
A deteção de texto está otimizada para áreas de texto esparso numa imagem maior.
Se a imagem for um documento (PDF/TIFF), tiver texto denso ou contiver escrita manual,
use DOCUMENT_TEXT_DETECTION .
|
WEB_DETECTION |
Detetar entidades tópicas, como notícias, eventos ou celebridades na imagem, e encontrar imagens semelhantes na Web através do poder da Pesquisa de imagens do Google. |
Exemplo de código
Use os seguintes exemplos de código para executar serviços de anotação offline num lote de ficheiros de imagem no Cloud Storage.
Java
Antes de experimentar este exemplo, siga as instruções de configuração do Java no guia de início rápido da API Vision com as bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Vision Java.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Node.js Vision.
Para se autenticar no Vision, 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.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Python Vision.
Para se autenticar no Vision, 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.
Resposta
Um pedido bem-sucedido devolve ficheiros JSON de resposta no contentor do Cloud Storage que indicou no exemplo de código. O número de respostas por ficheiro JSON é determinado por batch_size
no exemplo de código.
A resposta devolvida é semelhante às respostas de funcionalidades da API Vision normais, dependendo das funcionalidades que pedir para uma imagem.
As respostas seguintes mostram anotações LABEL_DETECTION
e TEXT_DETECTION
para image1.png
, anotações IMAGE_PROPERTIES
para image2.jpg
e anotações OBJECT_LOCALIZATION
para image3.jpg
.
A resposta também contém um campo context
que mostra o URI do ficheiro.
offline_batch_output/output-1-to-2.json
{ "responses": [ { "labelAnnotations": [ { "mid": "/m/07s6nbt", "description": "Text", "score": 0.93413997, "topicality": 0.93413997 }, { "mid": "/m/0dwx7", "description": "Logo", "score": 0.8733531, "topicality": 0.8733531 }, ... { "mid": "/m/03bxgrp", "description": "Company", "score": 0.5682425, "topicality": 0.5682425 } ], "textAnnotations": [ { "locale": "en", "description": "Google\n", "boundingPoly": { "vertices": [ { "x": 72, "y": 40 }, { "x": 613, "y": 40 }, { "x": 613, "y": 233 }, { "x": 72, "y": 233 } ] } }, ... ], "blockType": "TEXT" } ] } ], "text": "Google\n" }, "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image1.png" } }, { "imagePropertiesAnnotation": { "dominantColors": { "colors": [ { "color": { "red": 229, "green": 230, "blue": 238 }, "score": 0.2744754, "pixelFraction": 0.075339235 }, ... { "color": { "red": 86, "green": 87, "blue": 95 }, "score": 0.025770646, "pixelFraction": 0.13109145 } ] } }, "cropHintsAnnotation": { "cropHints": [ { "boundingPoly": { "vertices": [ {}, { "x": 1599 }, { "x": 1599, "y": 1199 }, { "y": 1199 } ] }, "confidence": 0.79999995, "importanceFraction": 1 } ] }, "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image2.jpg" } } ] }
offline_batch_output/output-3-to-3.json
{ "responses": [ { "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image3.jpg" }, "localizedObjectAnnotations": [ { "mid": "/m/0bt9lr", "name": "Dog", "score": 0.9669734, "boundingPoly": { "normalizedVertices": [ { "x": 0.6035543, "y": 0.1357359 }, { "x": 0.98546547, "y": 0.1357359 }, { "x": 0.98546547, "y": 0.98426414 }, { "x": 0.6035543, "y": 0.98426414 } ] } }, ... { "mid": "/m/0jbk", "name": "Animal", "score": 0.58003056, "boundingPoly": { "normalizedVertices": [ { "x": 0.014534635, "y": 0.1357359 }, { "x": 0.37197515, "y": 0.1357359 }, { "x": 0.37197515, "y": 0.98426414 }, { "x": 0.014534635, "y": 0.98426414 } ] } } ] } ] }