Desenvolver um aplicativo

Nesta página, mostramos como criar um app e combinar componentes, como streams de entrada, modelos para análise e armazéns para armazenamento, para uso na plataforma de apps da Vertex AI Vision.

Para criar um app, você precisa considerar suas fontes de dados, a análise que quer realizar e como quer armazenar os resultados. Um app completo pode ter formas diferentes, dependendo do caso de uso. Consequentemente, a maneira de criar um app depende do seu objetivo.

Antes de começar, avalie seu caso de uso e objetivo de uma perspectiva de IA responsável e considere o impacto que seus modelos e aplicativos podem ter nos usuários finais quando as coisas dão errado. Leia mais sobre as primeiras etapas para avaliar seu caso de uso quanto à imparcialidade. Além disso, verifique se o uso da Vertex AI Vision está em conformidade com os Termos de Serviço da Google Cloudou uma variante off-line e os Termos de URL incorporados, como a Política de Uso aceitável da Google Cloud.

Ao criar seu aplicativo, lembre-se de que as tecnologias de visão por IA têm o potencial de reforçar ou introduzir viés injusto e afetar direitos humanos fundamentais. O desenvolvimento do aplicativo precisa envolver uma reflexão ética com base nos valores da empresa e na diligência legal para seu caso de uso específico, incluindo casos de alto risco. Como acontece com todas as tecnologias, é preciso considerar todas as leis e regulamentações aplicáveis que regem o uso de tecnologias de IA/ML na região em que você está implementando a tecnologia. Os clientes são responsáveis pela diligência necessária para implementar casos de uso considerados de alto risco em uma região específica.

Crie um novo aplicativo

Antes de adicionar componentes, como um fluxo ou modelos, a um app, você precisa criar o próprio app. Todos os apps precisam conter o seguinte para serem implantados:

  • Um nó de entrada de fluxo (fonte de dados).
  • Pelo menos um outro nó de componente, como um modelo ou warehouse.

Criar um novo app personalizado

Console

Crie um app no console do Google Cloud.

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Clique no botão Criar.

  3. Insira o nome de um app e escolha sua região. Regiões com suporte.

  4. Clique em Criar.

Criar um aplicativo com um modelo

Console

Crie um app no console do Google Cloud.

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Clique no botão Criar.

  3. Insira o nome de um app e escolha sua região. Regiões com suporte.

  4. Clique em Criar.

  5. Na página do criador de apps, clique no nó Modelo de app.

  6. No painel de configurações lateral, clique no botão Selecionar modelo.

  7. Selecione um modelo no menu suspenso.

Adicionar entrada de transmissão

Um aplicativo precisa conter um nó de stream de vídeo. Não será possível implantar o aplicativo se você não adicionar um nó do Streams.

Se o aplicativo não for implantado, a atualização da entrada de stream será aplicada automaticamente a ele. Se o app já estiver implantado, desimplante-o e atualize-o para que as mudanças sejam aplicadas. Consulte a seção Atualizar um app para mais detalhes.

Console

Adicione um stream a um app no console do Google Cloud.

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Clique em Ver app.

  3. Na lista lateral de componentes, escolha Fluxos de vídeo na lista de Conectores. O nó de stream é adicionado ao gráfico do app, e um menu de streams de vídeo é aberto.

  4. Selecione Adicionar streams de vídeo.

  5. Se você escolher Selecionar entre os streams, selecione o stream e clique em Adicionar streams.

    Se você escolher Registrar novos streams, adicione um nome ao novo stream e selecione Adicionar streams.

REST

Para adicionar um stream a um app, envie uma solicitação POST usando o método projects.locations.applications.addStreamInput.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o ID ou o número do projeto do Google Cloud.
  • LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo: us-central1, europe-west4. Consulte as regiões disponíveis.
  • APPLICATION_ID: o ID do aplicativo de destino.
  • STREAM_ID: o ID do fluxo de destino.

Método HTTP e URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Corpo JSON da solicitação:

{
  "applicationStreamInputs": [
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     },
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     }
   ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Adicionar entrada de fluxo com anotações de nó

Ao criar um fluxo de entrada de aplicativo, é possível adicionar anotações ao fluxo usando a API Vertex AI Vision. Também é possível adicionar anotações a um nó no Console do Google Cloud.

Console

O exemplo a seguir adiciona as anotações disponíveis (STREAM_ANNOTATION_TYPE_ACTIVE_ZONE e STREAM_ANNOTATION_TYPE_CROSSING_LINE) a um modelo de contagem de ocupação.

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Na página do criador de aplicativos, selecione o modelo com a entrada de fluxo em que você quer adicionar anotações.

  4. No painel de configurações do modelo lateral, abra a seção "Configurações avançadas". Depois de abrir a seção, clique no botão Criar zonas/linhas ativas.

  5. Na visualização da galeria de streams, selecione um stream de entrada para desenhar zonas ou linhas ativas.

  6. Na visualização do editor, escolha adicionar linhas de vários pontos ou adicionar polígono simples para adicionar anotações. Use o painel lateral para renomear o nome da zona ou da linha, excluir zonas/linhas ou mudar a direção da linha.

REST e LINHA DE CMD

O código a seguir adiciona anotações de stream.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o ID ou o número do projeto do Google Cloud.
  • LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo: us-central1, europe-west4. Consulte as regiões disponíveis.
  • APPLICATION_ID: o ID do aplicativo de destino.
  • STREAM_ID: o ID do fluxo de destino.
  • NODE_NAME: o nome do nó de destino do gráfico do app. Por exemplo, builtin-occupancy-count.
  • ANNOTATION_ID: o ID da anotação de destino.
  • ANNOTATION_DISPLAYNAME: o nome de exibição especificado pelo usuário da anotação de destino.
  • ANNOTATION_TYPE: um dos valores de tipo enumerado disponíveis. Esse tipo precisa corresponder ao objeto annotation_payload, activeZone ou crossingLine. Os valores disponíveis são:
    • STREAM_ANNOTATION_TYPE_UNSPECIFIED
    • STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
    • STREAM_ANNOTATION_TYPE_CROSSING_LINE
  • normalizedVertices: cada vértice é especificado por valores de coordenadas x, y. As coordenadas são valores flutuantes normalizados [0,1] em relação à imagem original. 0,0 é X_MIN ou Y_MIN, 1,0 é X_MAX ou Y_MAX.

Método HTTP e URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Corpo JSON da solicitação:

{
  "applicationStreamInputs": [
    {
      "streamWithAnnotation": {
        "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
        "nodeAnnotations": [
          {
            "node": "NODE_NAME",
            "annotations": [
              {
                "id": "ANNOTATION_ID",
                "displayName": "ANNOTATION_DISPLAYNAME",
                "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
                "type": ANNOTATION_TYPE,
                "activeZone": {
                  "normalizedVertices": {
                    "x": 0.07434944,
                    "y": 0.18061674
                  },
                  "normalizedVertices": {
                    "x": 0.64684016,
                    "y": 0.16079295
                  },
                  "normalizedVertices": {
                    "x": 0.6047088,
                    "y": 0.92070484
                  },
                  "normalizedVertices": {
                    "x": 0.1251549,
                    "y": 0.76651984
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Remover entrada de stream

REST

Para remover uma transmissão de um app, envie uma solicitação POST usando o método projects.locations.applications.removeStreamInput.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o ID ou o número do projeto do Google Cloud.
  • LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo: us-central1, europe-west4. Consulte as regiões disponíveis.
  • APPLICATION_ID: o ID do aplicativo de destino.
  • STREAM_ID: o ID do fluxo de destino.

Método HTTP e URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput

Corpo JSON da solicitação:

{
  "targetStreamInputs": [
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     },
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     }
   ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Adicionar um modelo da Vertex AI Vision pré-treinado

Depois de criar um app, você pode adicionar um modelo e conectá-lo a streams, outros modelos ou um repositório de mídia.

Há dois tipos de modelos: pré-treinados ou treinados pelo usuário. Da mesma forma, os modelos treinados pelo usuário também podem ser de dois tipos: AutoML ou treinamento personalizado:

  • Os modelos pré-treinados têm um objetivo específico, são treinados com dados generalizados e estão prontos para uso.
  • Os modelos personalizados ou do AutoML treinados pelo usuário exigem que você identifique e forneça dados de exemplo e, em seguida, treine modelos mais adequados ao seu caso de uso. Você treina esses modelos usando a Vertex AI, um produto que oferece duas opções de treinamento: modelos treinados pelo AutoML e modelos treinados personalizados. Consulte Escolher um método de treinamento para mais informações.

Use as instruções a seguir para adicionar um modelo pré-treinado da Vertex AI Vision ao gráfico do app.

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Na página do criador de aplicativos, selecione o modelo que você quer adicionar na lista Modelos de IA. Cada modelo tem configurações individuais.

  4. Para conectar esse modelo a um nó de origem de entrada, selecione o nó de origem e selecione Adicionar saída.

  5. Selecione o nó do modelo de IA recém-criado na lista de Nós disponíveis.

Adicionar um modelo da Vertex AI treinado pelo usuário

Depois de criar um app, você pode adicionar um modelo e conectá-lo a streams, outros modelos ou um repositório de mídia.

Há dois tipos de modelos: pré-treinados ou treinados pelo usuário. Da mesma forma, os modelos treinados pelo usuário também podem ser de dois tipos: AutoML ou treinamento personalizado:

  • Os modelos pré-treinados têm um objetivo específico, são treinados com dados generalizados e estão prontos para uso.
  • Os modelos personalizados ou do AutoML treinados pelo usuário exigem que você identifique e forneça dados de exemplo e, em seguida, treine modelos mais adequados ao seu caso de uso. Você treina esses modelos usando a Vertex AI, um produto que oferece duas opções de treinamento: modelos treinados pelo AutoML e modelos treinados personalizados. Consulte Escolher um método de treinamento para mais informações.

Adicionar um modelo de streaming de detecção de objetos do AutoML da Vertex AI

Siga as instruções abaixo para adicionar um modelo de streaming de detecção de objetos do AutoML da Vertex AI que você treinou ao gráfico do app.

Antes de treinar um modelo do AutoML da Vertex AI, você precisa preparar os dados de detecção de objetos e criar um conjunto de dados.

Treinar um modelo para usar na Vertex AI Vision

Depois de criar um conjunto de dados com uma coleção representativa de dados na Vertex AI, você pode treinar um modelo para usar na Vertex AI Vision.

Console

  1. No console do Google Cloud, no painel da Vertex AI, acesse a página Conjuntos de dados.

    Acessar a página "Conjuntos de dados"

  2. Clique no nome do conjunto de dados que você quer usar para treinar seu modelo para abrir a página de detalhes.

  3. Se o tipo de dados usar conjuntos de anotações, selecione o conjunto que você quer usar neste modelo.

  4. Clique em Treinar novo modelo.

  5. Na página Treinar novo modelo, conclua as seguintes etapas para o modelo de detecção de objetos de imagem do AutoML:

    1. Na seção Método de treinamento do modelo, selecione AutoML.

    2. Na seção Escolha onde usar o modelo, selecione Vertex AI Vision.

    3. Clique em Continuar.

    4. Preencha os valores das seções Detalhes do modelo, Opções de treinamento e Computação e preços. Consulte Treinar um modelo do AutoML (console do Google Cloud) para mais informações detalhadas.

    5. Clique em Iniciar treinamento.

      O treinamento do modelo pode levar muitas horas dependendo do tamanho e da complexidade dos dados, além do orçamento de treinamento, se você tiver especificado um. Você pode fechar essa guia e voltar a ela mais tarde. Você receberá um e-mail quando o treinamento do seu modelo for concluído.

Adicionar o modelo treinado ao app

Depois que o modelo for treinado, ele poderá ser adicionado ao app Vertex AI Vision.

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Na página do criador de aplicativos, selecione Add Vertex AI Model na lista de componentes laterais. Selecionar essa opção abre um menu lateral.

  4. No menu "Add Vertex AI Model", deixe a opção Import a trained model from Vertex AI selecionada e escolha o modelo na lista de modelos do AutoML da Vertex AI.

  5. Depois de escolher o modelo a ser importado, selecione Adicionar modelo.

    Depois de clicar no botão Adicionar modelo, um modelo pendente vai aparecer ao lado da página do criador de gráficos. Após alguns segundos, o modelo estará pronto para uso.

Adicionar um modelo personalizado da Vertex AI

Também é possível importar modelos treinados personalizados da Vertex AI para a Vertex AI Vision e usar na análise de dados. Esses modelos treinados personalizados precisam ter as seguintes propriedades:

  • O modelo precisa ser sem estado, já que a entrada do modelo são as imagens que vêm de diferentes instâncias de aplicativos (streams) e podem estar fora de ordem. Se você precisar de processamento de streaming com estado, talvez seja necessário manter os estados dentro do seu próprio contêiner.
  • O tamanho da entrada do modelo é limitado a 1,5 MB. Consequentemente, a Vertex AI Vision precisa compactar a imagem RGB original em um formato com perda, como JPG.

Use as instruções a seguir para adicionar um modelo de vídeo treinado de forma personalizada da Vertex AI que você treinou ao gráfico do app.

Para saber como criar um modelo treinado personalizado da Vertex AI com um contêiner personalizado, consulte Usar um contêiner personalizado para previsão.

Especificar um arquivo YAML de instâncias

Ao adicionar um modelo treinado personalizado da Vertex AI, é necessário especificar um arquivo YAML de instâncias (instances.yaml) armazenado no Cloud Storage. Esse arquivo especifica a entrada esperada para o contêiner do modelo.

A Vertex AI envia a solicitação de previsão em um formato:

{
  "instances": [
    <value>|<simple/nested list>|<object>,
    ...
  ]
}

Aqui, instances.yaml define o esquema do payload. Para mais informações, consulte Receber previsões on-line de modelos treinados de forma personalizada.

A Vertex AI Vision só oferece suporte a modelos personalizados com exatamente uma entrada de previsão nomeada. Esse tipo de entrada precisa ser uma string JPEG codificada. O esquema da entrada de previsão precisa ser especificado com o arquivo YAML do esquema de instâncias. Esse arquivo YAML de esquema precisa estar no formato de um objeto de esquema da OpenAPI.

Por exemplo, o esquema a seguir vai receber a solicitação com a imagem codificada em um campo que chama image_bytes:

properties:
  image_bytes:
    type: string

O modelo personalizado recebe a entrada de previsão neste formato:

{
  "instances": [
    {
      "image_bytes" : {
        "b64": "BASE64_ENCODED_IMAGE_BYTES"
      }
    }
  ]
}

Antes de importar o modelo para a Vertex AI Vision, verifique se ele funciona corretamente com essa entrada.

Especificar um arquivo YAML de previsões

Ao adicionar um modelo treinado personalizado da Vertex AI, é possível especificar um arquivo YAML de previsões (predictions.yaml) armazenado no Cloud Storage. Esse arquivo especifica a saída do contêiner do modelo.

Esse arquivo é opcional, mas é recomendado para informar à Vertex AI Vision a estrutura de saída do modelo. Por exemplo, o arquivo classification_1.0.0.yaml abaixo descreve informações de saída de um modelo de classificação de imagem:

title: Classification
type: object
description: >
  The predicted AnnotationSpecs.
properties:
  ids:
    type: array
    description: >
      The resource IDs of the AnnotationSpecs that had been identified.
    items:
      type: integer
      format: int64
      enum: [0]  # As values of this enum all AnnotationSpec IDs the Model
      # was trained on will be populated.
  displayNames:
    type: array
    description: >
      The display names of the AnnotationSpecs that had been identified,
      order matches the IDs.
    items:
      type: string
      enum: [""]  # As values of this enum all AnnotationSpec display_names
      # the Model was trained on will be populated.
  confidences:
    type: array
    description: >
      The Model's confidences in correctness of the predicted IDs, higher
      value means higher confidence. Order matches the Ids.
    items:
      type: number
      format: float
      minimum: 0.0
      maximum: 1.0

Adicionar o modelo treinado de forma personalizada

Use o exemplo a seguir para adicionar o modelo treinado personalizado da Vertex AI ao seu app.

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Na página do criador de aplicativos, selecione Add Vertex AI Model na lista de componentes laterais. Selecionar essa opção abre um menu lateral.

  4. No menu "Add Vertex AI Model", deixe a opção Import a Vertex AI-trained model selecionada e escolha o modelo na lista de modelos do AutoML da Vertex AI.

  5. Dê um nome ao modelo.

  6. Especifique o arquivo YAML de instâncias no Cloud Storage que define o formato de uma única instância usada em solicitações de previsão e explicação.

  7. Opcional: especifique o arquivo YAML do esquema de previsões no Cloud Storage que define o formato de uma única previsão ou explicação.

  8. Depois de fornecer o nome do modelo, as instâncias e as informações de previsão, selecione Adicionar modelo.

  9. Depois de clicar no botão Adicionar modelo, um modelo pendente vai aparecer ao lado da página do criador de gráficos. Após alguns segundos, o modelo estará pronto para uso.

Opcional. Anexar metadados do aplicativo

Além dos bytes de imagem, você tem a opção de definir attach_application_metadata para pedir à plataforma de apps da Vertex AI Vision que inclua os metadados do aplicativo a serem enviados ao contêiner personalizado.

Os metadados têm o seguinte esquema:

'appPlatformMetadata': {
     'application': STRING;
     'instanceId': STRING;
     'node': STRING;
     'processor': STRING;
   }

Opcional. Adicionar um tópico do Pub/Sub de configuração dinâmica

Para controlar dinamicamente a taxa de frames que o operador personalizado do Vertex envia para contêineres personalizados do Vertex, crie um tópico do Pub/Sub. Adicione à seção Dynamic Configuration das configurações do nó.

configuração dinâmica

Se o tópico do Pub/Sub estiver configurado, a taxa de frames inicial será 0. Durante o processamento de vídeo, é possível enviar mensagens do Pub/Sub para o tópico do Pub/Sub no formato abaixo em tempo real para mudar a taxa de frames:

{
  "stream_id": "input-stream-id",
  "fps": 5,
}

O campo stream_id precisa corresponder ao ID do fluxo de entrada do app.

Conta de serviço e permissões

A credencial de serviço padrão do contêiner personalizado foi configurada para a conta de serviço da plataforma de apps da Vertex AI Vision. Para acessar outros serviços Google Cloud do contêiner, conceda a permissão adequada para: service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Opcional. Modelar a notificação de eventos com funções do Cloud Run e o Pub/Sub

Na Vertex AI Vision, os modelos recebem dados de mídia de dispositivos como câmeras, executam previsões de IA nos dados e produzem anotações continuamente. Geralmente, você envia esses dados processados para um destino de dados ("data sink") como um data warehouse de mídia ou o BigQuery para outros trabalhos de análise. No entanto, pode haver um caso em que algumas anotações precisam ser processadas de maneira diferente ou as necessidades de anotação são sensíveis ao tempo. As integrações com as funções do Cloud Run e o Pub/Sub ajudam a atender a essas necessidades.

Modelos compatíveis

Os modelos a seguir oferecem a geração de eventos do Cloud Run functions e as integrações de notificação de eventos do Pub/Sub:

Configurar funções do Cloud Run para processar a saída do modelo

Para acionar notificações baseadas em eventos, primeiro configure as funções do Cloud Run para processar a saída do modelo e gerar eventos.

Sua função do Cloud Run se conecta ao modelo e detecta a saída como a ação de pós-processamento. O Cloud Run function precisa retornar um AppPlatformCloudFunctionResponse. Os eventos (appplatformeventbody) são enviados para o tópico do Pub/Sub que você vai configurar na próxima etapa.

Para conferir um exemplo de função do Cloud Run, consulte Ativar a notificação de eventos do modelo com o Cloud Functions e o Pub/Sub.

Use as instruções a seguir para enviar o fluxo de saída do modelo para sua função do Cloud Run:

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Clique no modelo compatível para abrir o painel lateral de detalhes do modelo.

  4. Na lista pós-processamento da seção Notificação de evento, selecione sua função do Cloud Run atual ou crie uma nova.

    Selecionar a imagem do Cloud Function de pós-processamento no console do Cloud

Ativar a notificação de eventos do modelo com o Pub/Sub

Depois de configurar as funções do Cloud Run para processar a saída do modelo e gerar eventos, você pode configurar a notificação de eventos com o Pub/Sub. Para ler mensagens de um tópico, você também precisa escolher e criar uma assinatura do Pub/Sub.

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Clique no modelo compatível para abrir o painel lateral de detalhes do modelo.

  4. Na seção Notificação de eventos, selecione Configurar notificação de eventos.

  5. Na janela de opções Configurar o Pub/Sub para notificações de eventos que se abre, escolha o tópico do Pub/Sub atual ou crie um novo.

  6. No campo Frequência, defina um valor inteiro para a frequência em segundos em que uma notificação do mesmo tipo de evento pode ser enviada.

    Configurar a imagem de notificação de evento no console do Cloud

  7. Clique em Configurar.

Conectar a saída do modelo a um nó downstream

Depois de criar um nó de modelo, é possível conectar a saída dele a outro nó.

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Clique em um nó de modelo que gera dados no criador de gráfico de aplicativo, por exemplo, o nó de modelo Occupancy Count.

  4. No painel de configurações lateral, clique no botão Adicionar saída.

  5. Adicionar uma nova saída e escolher um novo nó de saída para adicionar ou selecionar um Nó disponível para enviar a saída.

Conectar a saída a um destino de dados

Depois de criar o stream de ingestão de dados e adicionar os nós de processamento ao app, é necessário escolher para onde enviar os dados processados. Esse destino de dados é o ponto final do gráfico do app que aceita dados de streaming sem produzir nenhum dado de streaming. O destino escolhido depende de como você usa os dados de saída do app.

imagem dos nós do conector
No console do Google Cloud, os destinos de dados estão disponíveis na seção Conectores da página de gráfico do app.

É possível conectar os dados de saída do app aos seguintes destinos:

  1. Armazenamento de visão: armazene dados de vídeo originais ou analisados que podem ser visualizados e consultados.

    Para mais informações sobre como enviar dados de saída do app para um armazém do Vision, consulte Conectar e armazenar dados em um armazém.

  2. BigQuery: armazene dados no BigQuery para usar os recursos de análise off-line.

    Para mais informações sobre como enviar dados de saída do app para o BigQuery, consulte Conectar e armazenar dados no BigQuery.

  3. Dados de transmissão ao vivo: se você quiser um controle mais granular para agir em análises em tempo real, receba a saída ao vivo do seu app.

    Para mais informações sobre como transmitir dados de saída do app diretamente, consulte Ativar a saída de transmissão ao vivo.

Atualizar um app

Apps não implantados

Faça modificações no app (como adicionar ou remover nós de componentes). A Vertex AI Vision vai armazenar as mudanças automaticamente.

A seguir

  • Saiba como implantar seu app para ingerir e analisar dados em Implantar um aplicativo.
  • Leia as instruções sobre como iniciar a ingestão de dados do fluxo de entrada de um app em Criar e gerenciar fluxos.
  • Saiba como listar apps e conferir as instâncias de um app implantado em Gerenciar aplicativos.
  • Saiba como ler dados de entrada do app de um fluxo de transferência ou dados de saída de modelo analisados em Ler dados de fluxo.