Desenvolver um aplicativo

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

Para criar um app, é preciso considerar as fontes de dados, a análise que você quer fazer e como armazenar os resultados. Um app de ponta a ponta pode ter formas diferentes, dependendo do seu caso de uso. Portanto, a maneira de criar um app depende do seu objetivo.

Antes de começar, avalie seu caso de uso e objetivo do ponto de vista da IA responsável e considere o impacto que seus modelos e aplicativos podem ter nos usuários finais quando algo dá errado. Leia mais sobre os primeiros passos para avaliar seu caso de uso quanto à imparcialidade. Verifique também se o uso da Vertex AI Vision está em conformidade com os Termos de Serviço do Google Cloudou uma variante off-line, e com os Termos de URL incorporados, como a Política de uso aceitável do Google Cloud.

Ao criar seu aplicativo, lembre-se de que as tecnologias de visão de IA podem reforçar ou introduzir desigualdades e afetar direitos humanos fundamentais. O desenvolvimento do aplicativo precisa envolver reflexão ética com base nos valores da sua empresa e diligência prévia legal para seu caso de uso específico, incluindo casos de uso de alto risco. Como em todas as tecnologias, você precisa considerar todas as leis e regulamentações aplicáveis que regem seu uso de tecnologias de IA/ML na região em que 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, é necessário criar o app. Todos os apps precisam conter o seguinte para serem implantados:

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

Criar um aplicativo personalizado

Console

Crie um app no console Google Cloud .

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

    Acesse a guia "Aplicativos"

  2. Clique no botão Criar.

  3. Digite 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 Google Cloud .

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

    Acesse a guia "Aplicativos"

  2. Clique no botão Criar.

  3. Digite 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 aplicativos, clique no nó Modelo de aplicativo.

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

  7. Selecione um modelo no menu suspenso.

Adicionar entrada de stream

Um aplicativo precisa conter um nó de stream de vídeo. Não é possível implantar o aplicativo sem adicionar um nó do Streams.

Se o aplicativo não estiver implantado, a atualização da entrada de stream será aplicada automaticamente. Se o app já estiver implantado, você precisa cancelar a implantação e atualizar 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 lateral Fluxos de vídeo é aberto.

  4. Selecione Adicionar streams de vídeo.

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

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

REST

Para adicionar um fluxo 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 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 stream com anotações de nó

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

Console

O exemplo a seguir adiciona 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 entrada de stream a que você quer adicionar anotações.

  4. No painel lateral de configurações do modelo, expanda 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 em galeria de streams, selecione um stream de entrada para desenhar zonas ou linhas ativas.

  6. Na visualização do editor, escolha adicionar linhas multiponto ou adicionar polígono simples para incluir anotações. Use o painel lateral para renomear a zona ou o nome da linha, excluir zonas/linhas atuais 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 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 no gráfico do app. Por exemplo, builtin-occupancy-count.
  • ANNOTATION_ID: o ID da sua 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 enumeração 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] relativos à 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 um fluxo 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 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 pré-treinado da Vertex AI Vision

Depois de criar um app, é possível adicionar um modelo e conectá-lo a fluxos, outros modelos ou um data warehouse 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 realizam um objetivo específico, são treinados com dados generalizados e estão prontos para uso.
  • Modelos do AutoML treinados pelo usuário ou personalizados exigem que você identifique e forneça dados de amostra e treine modelos mais adequados ao seu caso de uso específico. 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 escolha 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, é possível adicionar um modelo e conectá-lo a fluxos, outros modelos ou um data warehouse 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 realizam um objetivo específico, são treinados com dados generalizados e estão prontos para uso.
  • Modelos do AutoML treinados pelo usuário ou personalizados exigem que você identifique e forneça dados de amostra e treine modelos mais adequados ao seu caso de uso específico. 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 estas instruções para adicionar um modelo de streaming de detecção de objetos do Vertex AI AutoML treinado 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, é possível treinar um modelo para usar na Vertex AI Vision.

Console

  1. No console 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 seu modelo de detecção de objetos de imagem do AutoML:

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

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

    3. Clique em Continuar.

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

    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 treinamento do modelo for concluído, você poderá adicioná-lo ao app da 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 Adicionar modelo da Vertex AI na lista de componentes laterais. Ao selecionar essa opção, um menu lateral será aberto.

  4. No menu "Adicionar modelo da Vertex AI", deixe a opção Importar um modelo treinado da 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. Depois de 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 de forma personalizada precisam ter as seguintes propriedades:

  • O modelo precisa ser sem estado, já que a entrada dele são as imagens que vêm de diferentes instâncias de aplicativos (fluxos) e podem estar fora de ordem. Se você precisar de processamento de streaming com estado, talvez seja necessário manter os estados no 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 ao gráfico do app.

Para informações sobre 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 de forma personalizada 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ó é compatível com modelos treinados de maneira personalizada 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 OpenAPI.

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

properties:
  image_bytes:
    type: string

O modelo personalizado recebe entradas 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 de forma personalizada 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 a seguir descreve informações de saída de um modelo de classificação de imagens:

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 Adicionar modelo da Vertex AI na lista de componentes laterais. Ao selecionar essa opção, um menu lateral será aberto.

  4. No menu "Adicionar modelo da Vertex AI", deixe a opção Importar um modelo treinado da Vertex AI 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 nas solicitações de previsão e explicação.

  7. Opcional: especifique o arquivo YAML de 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. Depois de alguns segundos, o modelo estará pronto para uso.

Opcional. Anexar metadados do aplicativo

Além dos bytes de imagem, você pode 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 da Vertex envia frames de vídeo para contêineres personalizados da Vertex, crie um tópico do Pub/Sub. Adicione-o à 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 seguinte formato 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 aplicativo.

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 do Google da plataforma de apps do Vertex AI Vision. Para acessar outros serviços do Google Cloud no contêiner, conceda a permissão adequada a: service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Opcional. Notificação de evento do modelo com funções do Cloud Run e Pub/Sub

Na Vertex AI Vision, os modelos recebem dados de mídia de dispositivos como câmeras, executam previsões de IA sobre os dados e produzem anotações continuamente. Com frequência, você envia esses dados processados para um destino de dados ("coletor de dados"), como um armazenamento 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 em que as necessidades de anotação são sensíveis ao tempo. As integrações com funções do Cloud Run e Pub/Sub ajudam você a atender a essas necessidades.

Modelos compatíveis

Os seguintes modelos oferecem geração de eventos de funções do Cloud Run e 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 dele como ação de pós-processamento. A função do Cloud Run precisa retornar um AppPlatformCloudFunctionResponse. Os eventos (appplatformeventbody) são enviados ao tópico do Pub/Sub que você configura 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 ou crie uma nova.

    Selecionar a imagem da função do Cloud para 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, é possível 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 evento, selecione Configurar notificação de evento.

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

  6. No campo Frequência, defina um valor inteiro para a frequência em segundos com 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áficos de aplicativos (por exemplo, o nó Contagem de ocupação).

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

  5. Adicione uma nova saída e escolha um novo nó de saída ou selecione um Nó disponível para enviar a saída.

Conectar a saída a um destino de dados

Depois de criar o fluxo de ingestão de dados e adicionar os nodes de processamento ao app, você precisa escolher para onde enviar os dados processados. Esse destino de dados é o ponto final do gráfico do app que aceita dados de stream sem produzir nenhum dado de stream. 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 do gráfico de apps.

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

  1. Vision Warehouse: armazene dados de vídeo originais ou analisados que você pode visualizar e consultar.

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

  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 com base em análises em tempo real, poderá receber 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 as modificações necessárias no app (como adicionar ou remover nós de componentes). A Vertex AI Vision vai armazenar as mudanças automaticamente.

A seguir