A API Vision pode executar serviços de detecção e anotação off-line (assíncronos) de um lote grande de arquivos de imagem usando qualquer tipo de recurso da Vision. Por exemplo, é possível
especificar um ou vários recursos da API Vision, como TEXT_DETECTION
, LABEL_DETECTION
e LANDMARK_DETECTION
para um único lote de imagens.
A saída de uma solicitação em lote off-line é gravada em um arquivo JSON criado no bucket especificado do Cloud Storage.
Limitações
A API Vision aceita até 2.000 arquivos de imagem. Um lote maior de arquivos de imagem retornará um erro.
Tipos de recursos compatíveis atualmente
Tipo de recurso | |
---|---|
CROP_HINTS |
Determinar os vértices sugeridos para uma região de corte em uma imagem. |
DOCUMENT_TEXT_DETECTION |
Execute o OCR em imagens de texto densas, como documentos (PDF/TIFF) e imagens com texto
escrito à mão.
TEXT_DETECTION pode ser usado para imagens de texto esparso.
Tem precedência quando DOCUMENT_TEXT_DETECTION e
TEXT_DETECTION estão presentes.
|
FACE_DETECTION |
Detectar rostos na imagem. |
IMAGE_PROPERTIES |
Calcular um conjunto de propriedades de imagem, como as cores dominantes. |
LABEL_DETECTION |
Adicionar rótulos com base no conteúdo da imagem. |
LANDMARK_DETECTION |
Detectar pontos de referência na imagem. |
LOGO_DETECTION |
Detectar logotipos de empresas na imagem. |
OBJECT_LOCALIZATION |
Detectar e extrair vários objetos em uma imagem. |
SAFE_SEARCH_DETECTION |
Executar a SafeSearch segura para detectar conteúdo possivelmente inseguro ou indesejável. |
TEXT_DETECTION |
Realizar o reconhecimento óptico de caracteres (OCR) no texto dentro da imagem.
A detecção de texto é otimizada para áreas de texto esparso em uma imagem maior.
Se a imagem for um documento (PDF/TIFF), tiver texto denso ou contiver texto escrito à mão,
use DOCUMENT_TEXT_DETECTION .
|
WEB_DETECTION |
Detectar entidades de um assunto específico, como notícias, eventos ou celebridades na imagem, e encontrar imagens semelhantes na Web usando o poder da pesquisa do Imagens do Google. |
Código de amostra
Use os exemplos de código a seguir para executar serviços de anotação off-line em um lote de arquivos de imagem no Cloud Storage.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Resposta
Uma solicitação bem-sucedida retorna arquivos JSON de resposta no bucket do Cloud Storage indicado no exemplo de código. O número de respostas por arquivo JSON
é determinado por batch_size
no exemplo de código.
A resposta retornada será semelhante às respostas do recurso regular da API Vision, dependendo dos recursos solicitados para uma imagem.
Nas respostas a seguir, são exibidas as anotações LABEL_DETECTION
e TEXT_DETECTION
para image1.png
, IMAGE_PROPERTIES
para image2.jpg
e OBJECT_LOCALIZATION
para image3.jpg
.
A resposta também inclui um campo context
que mostra o URI do arquivo.
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 } ] } } ] } ] }