Nesta arquitetura de referência, você aprenderá sobre os casos de uso, as alternativas e as considerações de design ao implantar um pipeline do Dataflow para processar arquivos de imagem no Cloud Vision e armazenar resultados processados no BigQuery. É possível usar esses resultados armazenados para análise de dados em grande escala e treinar modelos pré-criados do BigQuery ML.
Este documento de arquitetura de referência é destinado a engenheiros e cientistas de dados.
Arquitetura
O diagrama a seguir ilustra o fluxo do sistema para essa arquitetura de referência.
Conforme mostrado no diagrama anterior, este é o fluxo das informações:
Ingerir e acionar: é o primeiro estágio do fluxo do sistema em que as imagens entram no sistema pela primeira vez. Durante esse estágio, as seguintes ações ocorrem:
- Os clientes fazem o upload de arquivos de imagem para um bucket do Cloud Storage.
- Para cada upload de arquivo, o Cloud Storage envia automaticamente uma notificação de entrada publicando uma mensagem no Pub/Sub.
Processo: esta fase segue imediatamente o estágio de ingestão e acionamento. Para cada nova notificação de entrada, as seguintes ações são executadas:
- O pipeline do Dataflow detecta essas notificações de entrada de arquivo, extrai os metadados do arquivo da mensagem do Pub/Sub e envia a referência do arquivo para a API Vision para processamento.
- A API Vision lê a imagem e cria anotações.
- O pipeline do Dataflow armazena as anotações produzidas pela API Vision nas tabelas do BigQuery.
Armazenar e analisar: esta é a etapa final do fluxo. Nesta fase, é possível realizar as seguintes ações com os resultados salvos:
- Consultar tabelas do BigQuery e analisar as anotações armazenadas.
- Use o BigQuery ML ou a Vertex AI para criar modelos e executar previsões com base nas anotações armazenadas.
- Faça outras análises no pipeline do Dataflow (processo não mostrado neste diagrama).
Produtos usados
Esta arquitetura de referência usa os seguintes produtos do Google Cloud:
Casos de uso
A API Vision é compatível com vários recursos de processamento, incluindo rotulagem de imagens, detecção facial e de pontos de referência, reconhecimento óptico de caracteres, inclusão de tag de conteúdo explícito e outros. Cada um desses recursos permite vários casos de uso aplicáveis a diferentes setores. Este documento contém alguns exemplos simples do que é possível fazer ao usar a API Vision, mas o espectro de aplicações possíveis é muito amplo.
A API Vision oferece modelos avançados de machine learning pré-treinados pelas APIs REST e RPC. É possível atribuir rótulos às imagens e classificá-las em milhões de categorias predefinidas. Ele ajuda a detectar objetos, ler textos impressos e escritos à mão e criar metadados valiosos no seu catálogo de imagens.
Essa arquitetura não exigem treinamento de modelo antes de ser usada. Se você precisar de um modelo personalizado treinado em dados específicos, a Vertex AI permite treinar um AutoML ou um modelo personalizado para objetivos de visão computacional, como classificação de imagem e detecção de objetos. Também é possível usar a Vertex AI Vision para um ambiente de desenvolvimento de aplicativos completo que permite criar, implantar e gerenciar aplicativos de visão computacional.
Alternativas de design
Em vez de armazenar imagens em um bucket do Google Cloud Storage, o processo de produção delas pode publicá-las diretamente em um sistema de mensagens (por exemplo: Pub/Sub) e o pipeline do Dataflow pode enviar as imagens diretamente à API Vision.
Essa alternativa de design pode ser uma boa solução para casos de uso sensíveis à latência em que é preciso analisar imagens de tamanhos relativamente pequenos. O Pub/Sub limita o tamanho máximo da mensagem a 10 MB.
Se você precisar processar em lote um grande número de imagens, use uma API asyncBatchAnnotate
projetada especificamente.
Considerações sobre o design
Nesta seção, descrevemos as considerações de design para esta arquitetura de referência:
segurança, privacidade e conformidade
Imagens recebidas de fontes não confiáveis podem conter malware. Como a API Vision não executa ações com base nas imagens que ela analisa, um malware baseado em imagem não afeta a API. Se for preciso verificar imagens, altere o pipeline do Dataflow para adicionar uma etapa de verificação. Para ter o mesmo resultado, também é possível usar uma assinatura separada no tópico do Pub/Sub e verificar as imagens em um processo separado.
Para mais informações, consulte Automatizar a verificação de malware para arquivos enviados ao Cloud Storage.
A API Vision usa o Identity and Access Management (IAM) para autenticação. Para acessar a API Vision, a
entidade de segurança precisa ter acesso do Cloud Storage > Leitor de objetos do Storage
(roles/storage.objectViewer
) ao bucket que contém os arquivos que
você quer analisar.
Otimização de custos
Em comparação com as outras opções discutidas, como processamento de baixa latência e processamento em lote assíncrono, esta arquitetura de referência usa uma maneira econômica de processar as imagens em pipelines de streaming, agrupando as solicitações de API em lotes. O streaming direto de imagens de menor latência mencionado na seção Alternativas de design pode ser mais caro devido aos custos extras do Pub/Sub e do Dataflow. Para o processamento de imagens que não precisa acontecer em segundos ou minutos, execute o pipeline do Dataflow no modo em lote. A execução do pipeline no modo de lote pode oferecer alguma economia em comparação com o custo da execução do pipeline de streaming.
A API Vision é compatível com a anotação de imagens de lote assíncrono off-line para todos os recursos. A solicitação assíncrona é compatível com até 2.000 imagens por lote. Em resposta, a API Vision retorna arquivos JSON armazenados em um bucket do Cloud Storage.
A API Vision também oferece um conjunto de recursos para análise de imagens. Os preços são definidos por imagem e recurso. Para reduzir custos, solicite apenas os recursos específicos necessários para sua solução.
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Otimização de desempenho
A API Vision é uma API que consome muitos recursos. Por isso, o processamento de imagens em escala exige uma orquestração cuidadosa das chamadas de API. O pipeline do Dataflow cuida do lote das solicitações de API, desde o tratamento simples das exceções relacionadas ao alcance de cotas e da produção de métricas personalizadas do uso da API. Essas métricas podem ajudar você a decidir se um aumento na cota da API é garantido ou se os parâmetros de pipeline do Dataflow precisam ser ajustados para reduzir a frequência das solicitações. Para mais informações sobre como aumentar as solicitações de cota da API Vision, consulte Cotas e limites.
O pipeline do Dataflow tem vários parâmetros que podem afetar as latências de processamento. Para mais informações sobre esses parâmetros, consulte Implantar uma solução de análise de visão de ML com o Dataflow e a API Vision.
Implantação
Para implantar essa arquitetura, consulte Implantar uma solução de análise de visão de ML com o Dataflow e a API Vision.
A seguir
- Saiba mais sobre o Dataflow.
- Saiba mais sobre a confiabilidade do Dataflow no Guia de confiabilidade do Dataflow.
- Saiba mais sobre o BigQuery ML.
- Saiba mais sobre a confiabilidade do BigQuery no guia de confiabilidade do BigQuery.
- Saiba mais sobre o armazenamento de dados em Solução de início rápido: data warehouse com o BigQuery.
- Consulte a lista de recursos da API Vision.
- Saiba como implantar uma solução de análise de visão de ML com o Dataflow e a API Vision.
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autores:
- Masud Hasan | Gerente de engenharia de confiabilidade do site
- Sergei Lilichenko, Arquiteto de soluções
- Lakshmanan Sethu | Gerente técnico de contas
Outros colaboradores:
- Jiyeon Kang | Engenheira de clientes
- Sunil Kumar Jang Bahadur | Engenheiro de clientes
Para ver perfis não públicos do LinkedIn, faça login na plataforma.