Classificação de imagens no Azure

azure-ai-foundry-sdk
Armazenamento de Blobs do Azure
Azure Cosmos DB
Grelha de Eventos do Azure
Funções do Azure

Ideias de soluções

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe com os requisitos específicos da sua carga de trabalho.

Ao utilizar serviços do Azure como Azure AI Content Understanding e Funções do Azure, pode adicionar classificação de imagens e extração de metadados a uma aplicação web ou móvel sem gerir servidores ou treinar os seus próprios modelos. Esta ideia de solução visa a classificação e etiquetagem de imagens. Se tiver outras necessidades de IA, consulte os catálogos mais amplos Foundry Tools e Microsoft Foundry.

Arquitetura

Diagrama de uma arquitetura utilizada para tarefas de classificação de imagens.

Baixe um arquivo Visio desta ideia de solução.

Fluxo de dados

Este cenário abrange os componentes de back-end de um aplicativo Web ou móvel. Os dados fluem através do cenário da seguinte maneira:

  1. Novos ficheiros (uploads de imagens) adicionados ao Armazenamento de Blobs desencadeiam um evento no Azure Event Grid. O carregamento é orquestrado por uma aplicação web ou móvel, ou as imagens são carregadas diretamente para o Armazenamento de Blobs.
  2. O Event Grid envia uma notificação que ativa uma função Azure.
  3. A função chama o Content Understanding para analisar a imagem recém-carregada contra um esquema de analisador definido. Content Understanding acede à imagem através de uma URL SAS com limite de tempo, ou token de acesso temporário equivalente, que a função passa no pedido e garante um acesso de leitura com privilégio mínimo apenas para o blob alvo.
  4. A função mantém a saída estruturada que o Content Understanding devolve, juntamente com metadados de imagem, no Azure Cosmos DB para NoSQL.
  5. A interface web ou móvel consome os resultados. Este fluxo de dados devolve a saída de classificação e os metadados; Não devolve os bytes originais da imagem.

Componentes

  • Content Understanding é uma funcionalidade Microsoft Foundry que utiliza IA generativa para extrair resultados estruturados definidos pelo utilizador a partir de documentos, imagens, vídeos e áudio. Nesta arquitetura, analisa cada imagem carregada contra um esquema de analisador que define as categorias, atributos e rótulos que pretende devolver (por exemplo, tipo de produto, cor, classe de defeito). A saída é JSON que corresponde diretamente ao modelo de dados da sua aplicação.

  • Funções do Azure é uma plataforma de computação serverless. Nesta arquitetura, o Funções do Azure fornece a API de back-end e a camada de processamento de eventos para imagens carregadas. A função orquestra o fluxo de trabalho. Chama Compreensão de Conteúdo, processa a resposta e escreve o resultado na base de dados. Esta arquitetura utiliza o plano Flex Consumption para suportar integração de rede virtual, escolha de memória de instância e escalabilidade rápida.

  • Azure Event Grid é um serviço gerido de encaminhamento de eventos que utiliza um modelo de publicação-subscrição. Nesta arquitetura, um tópico do sistema Event Grid na conta de armazenamento emite um evento Microsoft.Storage.BlobCreated quando uma nova imagem é carregada e entrega-a à função.

  • Armazenamento de Blobs do Azure é um armazenamento de objetos para dados não estruturados. Nesta arquitetura, armazena todas as imagens carregadas e quaisquer ativos estáticos que a aplicação web disponibilize. Armazenamento de Blobs é a fonte de verdade para as imagens recebidas.

  • Azure Cosmos DB para NoSQL é uma base de dados de NoSQL gerida. Nesta arquitetura, armazena os metadados de cada imagem, incluindo a saída estruturada que o Content Understanding devolve.

Alternativas

  • Azure Machine Learning AutoML for Images treina modelos personalizados de classificação de imagens e deteção de objetos a partir dos seus dados rotulados, usando técnicas clássicas de aprendizagem automática. Escolha AutoML quando tiver um conjunto de dados rotulado e precisar de um modelo determinístico e implantável para domínios restritos (por exemplo, deteção de defeitos de fabrico ou imagem médica) onde abordagens generativas não se encaixam. O AutoML é o caminho que a Microsoft recomenda a clientes que migram do Custom Vision quando querem manter um modelo clássico de ML.

  • Modelos Microsoft Foundry com capacidades de visão permitem-lhe chamar ou ajustar finamente diretamente modelos multimodais (GPT-4.1, GPT-4.0, e Phi-4). Escolha este caminho quando precisar de controlo detalhado sobre o prompt e modelo, quiser afinar os seus próprios dados, ou precisar de respostas visuais a perguntas e conversa baseada em imagens em vez de extração estruturada.

  • Pesquisa de IA do Azure indexa os metadados para que os utilizadores possam consultar e filtrar imagens por etiqueta, legenda ou outros atributos. O conjunto de habilidades de enriquecimento de IA pode chamar serviços de visão e IA generativa e escrever os resultados diretamente num índice de pesquisa sem necessidade de uma função separada.

  • Azure Logic Apps é adequado quando não precisas de reação em tempo real aos uploads. Um fluxo de trabalho que corre com um gatilho de recorrência ou janela deslizante pode sondar novos blobs e chamar Content Understanding em lote.

  • Azure Document Intelligence extrai imagens que estão embutidas nos documentos através do modelo layout, para que possas executar a classificação a jusante nessas figuras incorporadas. Use modelos de classificação personalizados quando os ficheiros de entrada contêm vários tipos de documentos e precisa de identificar cada um antes de processar mais.

Detalhes do cenário

Este cenário aplica-se a empresas que processam imagens em grande escala e pretendem anexar metadados estruturados, como etiquetas, legendas ou etiquetas de categoria, a cada imagem sem treinar e operar os seus próprios modelos.

Aplicações típicas incluem classificar imagens num site de moda, analisar fotografias para reclamações de seguro e extrair contexto de capturas de ecrã de jogos. Construir isto internamente requer tradicionalmente experiência em visão computacional, dados de treino e gestão do ciclo de vida do modelo. A arquitetura neste artigo substitui esse trabalho por serviços geridos do Azure.

Casos de uso potenciais

Esta solução aplica-se ao retalho, comércio eletrónico, jogos, finanças e seguros. Os casos de uso comuns incluem:

  • Etiquetar imagens num site de retalho ou moda. Os vendedores carregam fotos dos produtos. O Content Understanding devolve as etiquetas, legendas e atributos que defines no esquema do analisador. A plataforma utiliza-os para preencher automaticamente os campos das listas, impulsionar a pesquisa visual e reduzir o esforço de marcação manual.

  • Categorizar produtos num catálogo de comércio eletrónico. Um analisador de Compreensão de Conteúdo atribui metadados de categorias e subcategorias (por exemplo, calçado de ténis de corrida) e atributos visuais como cor e material. Os compradores obtêm uma pesquisa e filtragem mais precisas, e os vendedores gastam menos tempo a corrigir categorias.

  • Classificar telemetria a partir de capturas de ecrã do jogo. As plataformas de streaming classificam mal uma transmissão quando um criador se esquece de atualizar o título depois de mudar de jogo. Uma função que classifica capturas de ecrã periódicas pode detetar a alteração e atualizar os metadados do fluxo. Para domínios restritos onde a classificação generativa tem um desempenho inferior, use o AutoML for Images para treinar um classificador determinístico.

  • Encaminhamento de fotos de sinistros de seguro. A Compreensão de Conteúdo identifica danos no veículo, danos de desastres naturais ou o tipo de propriedade a partir das fotos da reclamação. Os metadados encaminham a reclamação para a fila correta do perito e reduzem o tempo de triagem.

Considerações

Estas considerações implementam os pilares do Framework Azure Well-Architected, um conjunto de princípios orientadores que pode usar para melhorar a qualidade de uma carga de trabalho.

Segurança

A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação para revisão de design de segurança.

  • Use managed identities para a aplicação funcional autenticar em Armazenamento de Blobs, Azure Cosmos DB e o recurso Microsoft Foundry que hospeda o Content Understanding. Evite guardar cadeias de ligação ou chaves API nas definições da aplicação.
  • Restringa o recurso Foundry e a Cosmos DB a endpoints privados e desative o acesso à rede pública quando a carga de trabalho estiver a correr dentro de uma rede virtual. O plano Flex Consumption suporta integração com redes virtuais.
  • Valide as imagens carregadas antes de invocar o serviço de visão. Imponha limites de tipo e tamanho de conteúdo no limite de upload, analise malware e armazene os uploads num contentor que os utilizadores públicos não consigam ler diretamente.
  • Esta arquitetura só é adequada para imagens que decide serem apropriadas para serem processadas por uma solução cloud, não é suportado processamento de imagem local/offline.

Otimização de Custos

A Otimização de Custos concentra-se em formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de projeto para Otimização de custos.

  • Limite o esquema do analisador no Content Understanding aos campos que a aplicação realmente consome. Cada campo adicional aumenta o uso do token e o custo por chamada. Consulte os preços da Microsoft Foundry para as tarifas atuais.
  • Para Funções do Azure, use o plano Flex Consumption para cargas de trabalho geradas por eventos com picos. Escalona até zero e cobra por segundo em instâncias ativas.
  • Para o Azure Cosmos DB, avalie sem servidor ou largura de banda de escalonamento automático quando o tráfego for irregular. Serverless adapta-se a cargas de trabalho de baixo tráfego e de desenvolvimento/teste; autoscale adequa-se à produção com carga variável.

Excelência Operacional

A Excelência Operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de design para excelência operacional.

  • Envie diagnósticos de Funções do Azure, Event Grid e Microsoft Foundry para um espaço de trabalho partilhado de Log Analytics e utilize Application Insights para rastreamento distribuído através do fluxo de upload para resultados.
  • Configure um destino de mensagens não entregues na Grelha de Eventos para que eventos não processados pela função sejam armazenados num contentor de blobs separado para serem reproduzidos.
  • Conteúdo da Versão Compreender esquemas de analisadores como código e implementá-los através do mesmo pipeline que implementa a função. Trate as alterações de esquema como alterações disruptivas para consumidores a jusante.

Contributors

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Principais autores:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.

Próximos passos

Para percursos de aprendizagem guiada, veja: