Este é o primeiro de uma série de duas partes no Verdade no solo do Amazon SageMaker fluxo de trabalho de rotulagem hierárquica e painéis. Na Parte 1, examinamos a criação de fluxos de trabalho de rotulagem de várias etapas para taxonomias de rótulos hierárquicas usando Funções de etapa da AWS. Na Parte 2 (em breve), veremos como construir painéis para analisar anotações de conjunto de dados e métricas de desempenho do trabalhador em lagos de dados gerados como saída de fluxos de trabalho complexos e derivar insights.
A rotulagem de dados geralmente requer um único objeto de dados para incluir vários tipos de anotações, ou multi-tipo, como caixas 2D (caixas delimitadoras), linhas e máscaras de segmentação, tudo em uma única imagem. Além disso, para criar modelos de aprendizado de máquina (ML) de alta qualidade usando dados rotulados, você precisa monitorar a qualidade dos rótulos. Você pode fazer isso criando um fluxo de trabalho no qual os dados rotulados são auditados e ajustados conforme necessário. Esta postagem apresenta uma solução para abordar esses dois desafios de rotulagem usando um conjunto de dados automotivo, e você pode estender essa solução para uso com qualquer tipo de conjunto de dados.
Para o nosso caso de uso, suponha que você tenha uma grande quantidade de dados de vídeo automotivo filmados de um ou mais ângulos em um veículo em movimento (por exemplo, alguns Cenas de rastreamento multi-objeto (MOT)) e você deseja anotar os dados usando vários tipos de anotações. Você planeja usar esses dados para treinar um controle de cruzeiro e um algoritmo de ML de manutenção de faixa. Dada a tarefa em mãos, é fundamental que você use rótulos de alta qualidade para treinar o modelo.
Primeiro, você deve identificar os tipos de anotações que deseja adicionar aos quadros de seu vídeo. Alguns dos objetos mais importantes a serem rotulados neste caso de uso são outros veículos no quadro, limites de estradas e faixas. Para fazer isso, você define um taxonomia de rótulo hierárquico, que define o tipo de rótulos que você deseja adicionar a cada vídeo e a ordem em que deseja que os rótulos sejam adicionados. O Trabalho de rotulagem de rastreamento de vídeo Ground Truth suporta anotações de caixa delimitadora, polilinha, polígono e ponto-chave. Neste caso de uso, os veículos são anotados usando caixas bidimensionais, ou caixas delimitadoras, e os limites e curvas da estrada são anotados com uma série de segmentos de linhas flexíveis, referidos como polilinhas.
Em segundo lugar, você precisa estabelecer um fluxo de trabalho para garantir a qualidade da etiqueta. Para fazer isso, você pode criar um fluxo de trabalho de auditoria para verificar se os rótulos gerados por seu pipeline são de qualidade alta o suficiente para serem úteis para o treinamento do modelo. Neste fluxo de trabalho de auditoria, você pode melhorar muito a precisão do rótulo construindo um pipeline de revisão de várias etapas que permite que as anotações sejam auditadas e, se necessário, ajustadas por um segundo revisor que pode ser um especialista no assunto.
Com base no tamanho do conjunto de dados e objetos de dados, você também deve considerar o tempo e os recursos necessários para criar e manter esse pipeline. Idealmente, você deseja que esta série de trabalhos de rotulagem seja iniciada automaticamente, exigindo apenas a operação humana para especificar os dados de entrada e o fluxo de trabalho.
A solução usada nesta postagem usa Ground Truth, Formação da Nuvem AWS, Funções de etapa e Amazon DynamoDB para criar uma série de trabalhos de etiquetagem executados de forma paralela e hierárquica. Você usa uma taxonomia de rótulo hierárquica para criar trabalhos de rotulagem de diferentes modalidades (polilinhas e caixas delimitadoras) e adiciona etapas de revisão humana secundárias para melhorar a qualidade da anotação e os resultados finais.
Para esta postagem, demonstramos a solução no contexto do espaço automotivo, mas você pode aplicar facilmente esse pipeline geral para rotular pipelines envolvendo imagens, vídeos, texto e muito mais. Além disso, demonstramos um fluxo de trabalho extensível, permitindo reduzir o número total de quadros que precisam de revisão humana, adicionando verificações de qualidade automatizadas e mantendo a qualidade dos dados em escala. Neste caso de uso, usamos essas verificações para encontrar anomalias nos dados de série temporal MOT, como anotações de rastreamento de objetos de vídeo.
Percorremos um caso de uso em que geramos vários tipos de anotações para uma cena automotiva. Especificamente, executamos quatro trabalhos de rotulagem por videoclipe de entrada: uma rotulagem inicial de veículos, rotulagem inicial de pistas e, em seguida, um trabalho de ajuste por trabalho inicial com uma força de trabalho de garantia de qualidade separada.
Demonstramos os vários pontos de extensão em nosso fluxo de trabalho Step Function que podem permitir que você execute verificações de garantia de qualidade automatizadas. Isso permite a filtragem de clipes entre e após a conclusão dos trabalhos, o que pode resultar em anotações de alta qualidade por uma fração do custo.
Serviços AWS usados para implementar esta solução
Esta solução cria e gerencia trabalhos de rotulagem Ground Truth para rotular quadros de vídeo usando vários tipos de anotações. Ground Truth tem suporte nativo para conjuntos de dados de vídeo por meio de seu quadro de vídeo tipo de tarefa de rastreamento de objeto.
Este tipo de tarefa permite que os trabalhadores criem anotações em uma série de quadros de vídeo, fornecendo ferramentas para prever a próxima localização de uma caixa delimitadora nos quadros subsequentes. Ele também oferece suporte a vários tipos de anotação, como caixas delimitadoras ou polilinhas por meio de os arquivos de configuração de categoria de rótulo fornecidos durante a criação de empregos. Usamos essas ferramentas neste tutorial, executando um trabalho para caixas delimitadoras de veículos e um trabalho para polilinhas de pista.
Usamos funções de etapa para gerenciar o trabalho de etiquetagem. Esta solução abstrai a criação de trabalhos de rotulagem para que você especifique o fluxo de trabalho geral que deseja executar usando uma taxonomia de rótulos hierárquica, e todo o gerenciamento de trabalhos é feito por Step Functions.
A solução é implementada usando modelos CloudFormation que você pode implantar em sua conta AWS. A interface para a solução é uma API gerenciada por Gateway de API da Amazon, que fornece a capacidade de enviar tarefas de anotação para a solução, que são então traduzidas em trabalhos de rotulagem Ground Truth.
Custos estimados
Ao implantar e usar essa solução, você incorre no custo máximo de aproximadamente US $ 20, além dos custos de rotulagem humana, porque ela só usa recursos de computação totalmente gerenciados sob demanda. Serviço de armazenamento simples da Amazon (Amazon S3), AWS Lambda, Amazon Sage Maker, Gateway de API, Serviço de notificação simples da Amazon (Amazon SNS), Serviço de fila simples da Amazon (Amazônia SQS), Cola AWS, e as funções de etapa estão incluídas no Nível gratuito da AWS, com encargos para uso adicional. Para obter mais informações, consulte as seguintes páginas de preços:
O preço da Ground Truth depende do tipo de força de trabalho que você usa. Se você for um novo usuário do Ground Truth, sugerimos que use uma força de trabalho privada e inclua-se como trabalhador para testar a configuração do seu trabalho de rotulagem. Para mais informações, veja Preços do Amazon SageMaker Ground Truth.
Visão geral da solução
Nesta série de duas partes, discutimos um padrão de arquitetura que permite construir um pipeline para orquestrar fluxos de trabalho de rotulagem de dados de várias etapas que têm trabalhadores adicionando diferentes tipos de anotação em paralelo usando Ground Truth. Você também aprenderá como analisar as anotações do conjunto de dados produzidas pelo fluxo de trabalho, bem como o desempenho do trabalhador. A primeira postagem cobre o fluxo de trabalho Step Functions que automatiza fluxos de trabalho avançados de rotulagem de dados de ML usando Ground Truth para encadeamento e taxonomias de rótulo hierárquicas. A segunda postagem descreve como construir data lakes nas anotações do conjunto de dados do Ground Truth e métricas do trabalhador e usar esses data lakes para obter insights ou analisar o desempenho de seus workers e a qualidade das anotações do conjunto de dados usando análises avançadas.
O diagrama a seguir descreve o fluxo de trabalho hierárquico, que você pode usar para executar grupos de trabalhos de rotulagem em etapas sequenciais, ou níveis, em que cada trabalho de rotulagem em um único nível é executado em paralelo.
A solução é composta por duas partes principais:
- Use uma API para acionar o fluxo de trabalho de orquestração.
- Execute as etapas individuais do fluxo de trabalho para obter o pipeline de rotulagem.
Acione o fluxo de trabalho de orquestração com uma API
O modelo CloudFormation lançado nesta solução usa API Gateway para expor um ponto de extremidade para você acionar trabalhos de rotulagem em lote. Depois de enviar a solicitação de postagem ao terminal do API Gateway, ele executa uma função Lambda para acionar o fluxo de trabalho.
A tabela a seguir contém as duas principais APIs voltadas para o usuário relevantes para a execução de lote, que representa trabalhos de rotulagem de vários níveis.
URL | tipo de solicitação | Descrição |
{endpointUrl} / batch / create | POST | API aciona um novo lote de trabalhos de rotulagem |
{endpointUrl} / batch / show | ENTRE | APIs descrevem o estado atual da execução do trabalho em lote |
Execute o fluxo de trabalho
Para a orquestração de etapas, usamos Step Functions como uma solução gerenciada. Quando a API de criação de jobs em lote é acionada, uma função Lambda aciona um fluxo de trabalho Step Functions como o seguinte. Isso inicia o processamento de entrada de anotação.
Vamos discutir as etapas com mais detalhes.
Etapa de transformação
A primeira etapa é pré-processar os dados. A implementação atual converte as entradas do notebook no tipo de dados do arquivo de manifesto interno compartilhada em várias etapas. Esta etapa atualmente não executa nenhum processamento complexo, mas você pode personalizar ainda mais esta etapa adicionando lógica de pré-processamento de dados personalizados a esta função. Por exemplo, se seu conjunto de dados foi codificado em vídeos brutos, você pode executar a divisão de quadros e a geração de manifesto dentro da transformação, em vez de em um bloco de notas separado. Alternativamente, se você estiver usando esta solução para criar um pipeline de rotulagem de nuvem de pontos 3D, você pode querer adicionar lógica para extrair dados de pose em um sistema de coordenadas mundiais usando a câmera e matrizes extrínsecas LiDAR.
TriggerLabelingFirst Level
Quando o pré-processamento de dados é concluído, a operação da API Ground Truth CriarLabelingJob é usado para lançar trabalhos de etiquetagem. Esses trabalhos de rotulagem são responsáveis por anotar conjuntos de dados que estão vinculados ao primeiro nível.
CheckForFirstLevelComplete
Esta etapa espera pelo FIRST_LEVEL
Trabalhos de rotulagem Ground Truth acionados a partir do TriggerLabelingFirstStep
. Quando o gatilho do trabalho é concluído, esta etapa espera que todos os trabalhos de etiquetagem criados sejam concluídos. Uma função de ouvinte externo Lambda monitora o status dos trabalhos de rotulagem e, quando todos os trabalhos de rotulagem pendentes são concluídos, ele executa o sendTokenSucess
API para sinalizar a este estado para prosseguir para a próxima etapa. Os casos de falha são tratados usando cláusulas de erro apropriadas e tempos limite na definição da etapa.
SendSecondLevelSNSandCheckResponse
Esta etapa executa o pós-processamento na saída do trabalho de primeiro nível. Por exemplo, se seus requisitos são enviar apenas 10% dos quadros para os trabalhos de ajuste, você pode implementar essa lógica aqui, filtrando o conjunto de saídas do primeiro trabalho.
TriggerLabelingSecondLevel
Quando o pós-processamento de dados do primeiro nível estiver concluído, CreateLabelingJobs
é usado para lançar trabalhos de rotulagem para completar anotações no segundo nível. Nesse estágio, uma força de trabalho privada analisa a qualidade das anotações dos trabalhos de rotulagem de primeiro nível e atualiza as anotações conforme necessário.
CheckForSecondLevelComplete
Esta etapa é a mesma etapa de espera que CheckForFirstLevelComplete
, mas esta etapa simplesmente espera pelos empregos que são criados a partir do segundo nível.
SendThirdLevelSNSandCheckResponse
Esta etapa é a mesma etapa de pós-processamento que SendSecondLevelSNSAndCheckResponse
, mas esta etapa faz o pós-processamento da saída de segundo nível e alimenta como entrada para o trabalho de rotulagem de terceiro nível.
TriggerLabelingThird Level
Esta é a mesma lógica que TriggerLabelingSecondLevel
, mas os trabalhos de rotulagem são acionados e anotados como terceiro nível. Neste estágio, a força de trabalho privada está atualizando as anotações para a qualidade do trabalho de rotulagem de segundo nível.
CopyLogsAndSendBatchConcluído
Esta função Lambda registra e envia mensagens SNS para notificar os usuários de que o lote está completo. Também é um espaço reservado para qualquer lógica de pós-processamento que você queira executar. O pós-processamento comum inclui a transformação dos dados rotulados em um formato compatível com um formato de dados específico do cliente.
Pré-requisitos
Antes de começar, verifique se você tem os seguintes pré-requisitos:
- An Conta da AWS.
- Um caderno Gerenciamento de acesso e identidade da AWS (IAM) com as permissões necessárias para concluir este passo a passo. Sua função IAM deve ter as permissões necessárias anexadas. Se você não precisar de permissão granular, anexe as seguintes políticas gerenciadas da AWS:
AmazonS3FullAccess
AmazonAPIGatewayInvokeFullAccess
AmazonSageMakerFullAccess
- Familiaridade com Ground Truth, AWS CloudFormation e Step Functions.
- Um SageMaker força de trabalho. Para esta postagem, usamos uma força de trabalho privada. Você pode criar uma força de trabalho no console SageMaker. Note o Amazon Cognito identificador de pool de usuários e o identificador de cliente do aplicativo após sua força de trabalho ser criada. Você usa esses valores para informar à implantação da pilha do CloudFormation qual força de trabalho criar equipes de trabalho, que representam o grupo de rotuladores. Você pode encontrar esses valores no Resumo da força de trabalho privada seção no console depois de criar sua força de trabalho, ou quando você ligar DescreverEquipe de trabalho.
O GIF a seguir demonstra como criar uma força de trabalho privada. Para obter instruções passo a passo, consulte Crie uma força de trabalho do Amazon Cognito usando a página Labeling Workforces.
Inicie a pilha CloudFormation
Agora que vimos a estrutura da solução, nós a implementamos em nossa conta para que possamos executar um exemplo de fluxo de trabalho. Todas as nossas etapas de implantação são gerenciadas pelo AWS CloudFormation - ele cria recursos em Lambda, Step Functions, DynamoDB e API Gateway para você.
Você pode lançar a pilha na região AWS us-east-1
no console do CloudFormation, escolhendo Pilha de Lançamento:
No console do CloudFormation, selecione Em seguida, e, em seguida, modifique os parâmetros de modelo a seguir para personalizar a solução.
Você pode localizar o CognitoUserPoolClientId e o CognitoUserPoolId no console do SageMaker.
- CognitoUserPoolClientId: ID de cliente do aplicativo de sua força de trabalho privada.
- CognitoUserPoolId: ID do pool de usuários associado à sua força de trabalho privada.
Para localizar esses valores no console:
- Abra o console SageMaker em https://console.aws.amazon.com/sagemaker/
- Selecionar Forças de trabalho de rotulagem no painel de navegação.
- Escolhendo o Privado
- Use os valores no Resumo da equipe de trabalho privada Use o Cliente de aplicativo para o CognitoUserPoolClientId e use Pool de usuários do Amazon Cognito para o CognitoUserPoolId.
Para este tutorial, você pode usar os valores padrão para os parâmetros a seguir.
- GlueJobTriggerCron: Expressão Cron a ser usada ao programar relatórios de cron job do AWS Glue. Os resultados das anotações geradas com SageMaker Ground Truth e métricas de desempenho do trabalhador são usados para criar um painel no Amazon QuickSight. Isso será explicado em detalhes na segunda parte. Os resultados das anotações do SageMaker e as métricas de desempenho do trabalhador aparecem nas consultas do Athena após o processamento dos dados com o AWS Glue. Por padrão, os cron jobs do AWS Glue são executados a cada hora.
- JobCompletionTimeout: Número de segundos a aguardar antes de tratar um trabalho de rotulagem como com falha e passar para o estado BatchError.
- Nível de registro: Isso é usado internamente e pode ser ignorado. Nível de registro para alterar o detalhamento dos registros. Aceita valores DEBUG e PROD.
Prefixo: Um prefixo a ser usado ao nomear recursos usados para criar e gerenciar trabalhos de rotulagem e métricas de trabalho.
Para lançar a pilha em uma região AWS diferente, use as instruções encontradas no README do Repositório GitHub.
Depois de implantar a solução, duas novas equipes de trabalho estão na força de trabalho privada que você criou anteriormente: smgt-workflow-first-level
e smgt-workflow-second-level
. Estas são as equipes de trabalho padrão usadas pela solução se nenhuma substituição for especificada, e o smgt-workflow-second-level
equipe de trabalho é usada para rotular trabalhos de segundo e terceiro nível. Você deve adicionar-se a ambas as equipes de trabalho para ver as tarefas de rotulagem criadas pela solução. Para saber como entrar em uma equipe de trabalho privada, consulte Adicionar ou remover trabalhadores.
Você também precisa acessar o console do API Gateway e procurar a API implementada com o prefixo smgt-workflow
e observe seu ID. O notebook precisa fazer referência a esse ID para que possa determinar qual URL de API chamar.
Lance o notebook
Depois de implantar a solução em sua conta, você está pronto para lançar um notebook para interagir com ele e iniciar novos fluxos de trabalho. Nesta seção, percorremos as seguintes etapas:
- Configure e acesse a instância do notebook.
- Obtenha o conjunto de dados de exemplo.
- Prepare os arquivos de entrada Ground Truth.
Configurar a instância do notebook SageMaker
Neste bloco de notas de exemplo, você aprende como mapear uma taxonomia simples que consiste em uma classe de veículo e uma classe de pista para arquivos de configuração de categoria de rótulo Ground Truth. Um arquivo de configuração de categoria de rótulo é usado para definir os rótulos que os trabalhadores usam para fazer anotações em suas imagens. Em seguida, você aprenderá como iniciar e configurar a solução que executa o pipeline usando um modelo CloudFormation. Você também pode personalizar ainda mais esse código, por exemplo, personalizando a chamada da API de criação de lote para executar a rotulagem para uma combinação diferente de tipos de tarefas.
Para criar uma instância de notebook e acessar o notebook usado nesta postagem, conclua as seguintes etapas:
- Crie uma instância do notebook com os seguintes parâmetros:
- Use ml.t2.medium para iniciar a instância do notebook.
- Aumente o tamanho do volume de armazenamento de ML para pelo menos 10 GB.
- Selecione a função IAM do notebook descrita nos pré-requisitos. Esta função permite que seu notebook carregue seu conjunto de dados no Amazon S3 e chame as APIs da solução.
- Abra o Jupyter Lab ou Jupyter para acessar suas instâncias de notebook.
- No Jupyter, escolha o Exemplos SageMaker No Jupyter Lab, escolha o ícone SageMaker.
- Escolha Empregos de rotulagem de verdade fundamental e então escolher o trabalho sagemaker_ground_truth_workflows.ipynb.
- Se você estiver usando o Jupyter, escolha Use para copiar o notebook para sua instância e executá-lo. Se você estiver no laboratório Jupyter, escolha Crie uma cópia.
Obtenha o conjunto de dados de exemplo
Conclua as seguintes etapas para configurar seu conjunto de dados:
- Baixe MOT17.zip usando o Baixar conjunto de dados seção do caderno.
Esse download tem aproximadamente 5 GB e leva vários minutos.
- Descompacte MOT17.zip usando o notebook Descompacte o conjunto de dados
- Sob o Copiar dados para S3 cabeçalho, execute a célula para copiar um conjunto de dados de quadros de vídeo para o Amazon S3.
Prepare os arquivos de entrada do Ground Truth
Para usar a solução, precisamos criar um arquivo de manifesto. Este arquivo informa ao Ground Truth onde está seu conjunto de dados. Também precisamos de dois arquivos de configuração de categoria de rótulo para descrever nossos nomes de rótulo e a ferramenta de rotulagem a ser usada para cada um (caixa delimitadora ou polilinha).
- Execute as células sob Gerar Manifesto para obter uma lista de quadros em um vídeo do conjunto de dados. Tomamos 150 quadros com metade da taxa de quadros do vídeo como exemplo.
- Continue executando as células sob Gerar Manifesto para construir um arquivo de sequência descrevendo nossos quadros de vídeo e, em seguida, para criar um arquivo de manifesto referindo-se ao nosso arquivo de sequência.
- Execute a célula sob Gerar arquivos de configuração de categoria de etiqueta para criar dois novos arquivos: um arquivo de configuração de etiqueta de veículo (que usa a ferramenta de caixa delimitadora) e um arquivo de configuração de etiqueta de pista (que usa a ferramenta polilinha).
- Copie o arquivo de manifesto e rotule os arquivos de configuração de categoria para o Amazon S3 executando o Envie dados para S3
Neste ponto, você preparou todas as entradas para os trabalhos de rotulagem e está pronto para começar a operar a solução.
Para saber mais sobre trabalhos de rotulagem e encadeamento de quadros de vídeo Ground Truth, consulte as seguintes referências:
Execute um exemplo de fluxo de trabalho
Nesta seção, percorreremos as etapas para executar um exemplo de fluxo de trabalho no conjunto de dados automotivo. Criamos um fluxo de trabalho multimodal, realizamos a rotulagem inicial e de auditoria e, em seguida, visualizamos nossas anotações completas.
Crie um lote de fluxo de trabalho
Esta solução orquestra um fluxo de trabalho de trabalhos de rotulagem Ground Truth para executar trabalhos de caixa delimitadora de rastreamento de objeto de vídeo e trabalhos de polilinha, bem como criar trabalhos de ajuste automaticamente após a rotulagem inicial. Este lote de fluxo de trabalho é configurado por meio do batch_create
API disponível para a solução.
Execute a célula sob Demonstração de criação de lote no caderno. Isso passa seu manifesto de entrada e URIs S3 de configuração de categoria de rótulo para um novo lote de fluxo de trabalho.
A célula deve gerar o ID do lote de fluxo de trabalho recém-criado, por exemplo:
Conclua a primeira rodada de tarefas de rotulagem
Para simular os trabalhadores que completam a etiquetagem, nós nos conectamos como um trabalhador na equipe de trabalho Ground Truth de primeiro nível e concluímos a tarefa de etiquetar.
- Execute a célula sob Faça login no Portal do Trabalhador para obter um link para fazer login no portal do trabalhador.
Um convite já deve ter sido enviado para o seu endereço de e-mail se você se convidou para as equipes de trabalho de primeiro e segundo níveis geradas pela solução.
- Faça login e espere que as tarefas apareçam no portal do trabalhador.
Duas tarefas devem estar disponíveis, uma com finalização em vehicle
e um terminando em lane
, correspondendo aos dois trabalhos que criamos durante a criação do lote de fluxo de trabalho.
- Abra cada tarefa e adicione alguns rótulos fictícios escolhendo e arrastando os quadros da imagem.
- Escolha Submeter em cada tarefa.
Conclua a segunda rodada de tarefas de rotulagem
Nosso fluxo de trabalho especificou que queríamos trabalhos de ajuste iniciados automaticamente para cada trabalho de primeiro nível. Agora concluímos a segunda rodada de tarefas de rotulagem.
- Ainda no portal do trabalhador, aguarde as tarefas com
vehicle-audit
elane-audit
aparecer. - Abra cada tarefa no portal do trabalhador, observando que os rótulos do nível anterior ainda estão visíveis.
Essas tarefas de ajuste podem ser realizadas por um grupo de garantia de qualidade mais altamente treinado em uma equipe de trabalho diferente.
- Faça os ajustes desejados e escolha Passar or Falhar em cada anotação.
- Quando terminar, escolha Submeter.
Veja as anotações completas
Podemos ver detalhes sobre o lote de fluxo de trabalho concluído, executando a API de exibição de lote.
- Execute a célula sob Demonstração do Lote Show.
Isso consulta o banco de dados da solução para todos os lotes de execução de fluxo de trabalho completo e deve gerar sua ID de lote quando o lote for concluído.
- Podemos obter detalhes mais específicos sobre um lote executando a célula em Demonstração detalhada do programa em lote.
Isso pega o ID de um lote no sistema e retorna informações de status e os locais de todos os manifestos de entrada e saída para cada trabalho criado.
- Copie e insira o campo
jobOutputS3Url
para qualquer um dos trabalhos e verifique se o arquivo de manifesto desse trabalho foi baixado.
Este arquivo contém uma referência para sua sequência de dados de entrada, bem como o S3 URI das anotações de saída para cada sequência.
Resultados finais
Quando todos os trabalhos de rotulagem no pipeline são concluídos, uma mensagem SNS é publicada no tópico SNS de status padrão. Você pode se inscrever em tópicos SNS usando um endereço de e-mail para verificar a funcionalidade da solução. A mensagem inclui o ID do lote usado durante a criação do lote, uma mensagem sobre a conclusão do lote e as mesmas informações do batch/show
API fornece sob um batchInfo
chave. Você pode analisar esta mensagem para extrair metadados sobre os trabalhos de rotulagem concluídos no segundo nível do pipeline.
Dentro de cada blob de metadados de trabalho, um jobOutputS3Url
campo contém um URL predefinido para acessar o manifesto de saída deste trabalho específico. O manifesto de saída contém os resultados da rotulagem de dados em formato de manifesto aumentado, que você pode analisar para recuperar anotações indexando o objeto JSON com <jobName>-ref
. Este campo aponta para um local S3 contendo todas as anotações para o videoclipe fornecido.
Por exemplo, para trabalhos de caixa delimitadora, o SeqLabel.json
arquivo contém anotações de caixa delimitadora para cada quadro anotado (neste caso, apenas o primeiro quadro é anotado):
Como a mensagem SNS de conclusão em lote contém todos os arquivos de manifesto de saída dos trabalhos iniciados em paralelo, você pode executar qualquer pós-processamento de suas anotações com base nesta mensagem. Por exemplo, se você tiver um formato de serialização específico para essas anotações que combina caixas delimitadoras de veículos e anotações de pista, você pode obter o manifesto de saída do trabalho da pista, bem como o trabalho do veículo, em seguida, mesclar com base no número do quadro e converter para o seu desejado formato final.
Para saber mais sobre os formatos de dados de saída Ground Truth, consulte Dados de saída.
limpar
Para evitar incorrer em cobranças futuras, execute o limpar seção do bloco de notas para excluir todos os recursos, incluindo objetos S3 e a pilha CloudFormation. Quando a exclusão for concluída, certifique-se de parar e excluir a instância do notebook que está hospedando o script do notebook atual.
Conclusão
Esta série de duas partes fornece uma arquitetura de referência para construir um fluxo de trabalho de rotulagem de dados avançado composto de um pipeline de rotulagem de dados de várias etapas, trabalhos de ajuste e lagos de dados para anotações de conjunto de dados e métricas de trabalho correspondentes, bem como painéis atualizados.
Nesta postagem, você aprendeu como pegar dados de quadro de vídeo e acionar um fluxo de trabalho para executar vários trabalhos de rotulagem Ground Truth, gerando dois tipos diferentes de anotações (caixas delimitadoras e polilinhas). Você também aprendeu como estender o pipeline para auditar e verificar o conjunto de dados rotulado e como recuperar os resultados auditados. Por último, você viu como fazer referência ao andamento atual dos trabalhos em lote usando a API BatchShow.
Para obter mais informações sobre o data lake para anotações do conjunto de dados Ground Truth e métricas de trabalho do Ground Truth, volte para o Blog Ground Truth para a segunda postagem do blog desta série (em breve).
Experimente o caderno e personalize-o para seus conjuntos de dados de entrada, adicionando tarefas adicionais ou etapas de auditoria, ou modificando a modalidade de dados das tarefas. Personalização adicional de solução pode incluir, mas não está limitado a:
- Adicionar outros tipos de anotações, como máscaras de segmentação semântica ou pontos-chave
- Adicionando garantia de qualidade automatizada e filtragem ao fluxo de trabalho Step Functions para enviar apenas anotações de baixa qualidade para o próximo nível de revisão
- Adicionar terceiro ou quarto níveis de revisão de qualidade para tipos de revisões adicionais e mais especializados
Esta solução é construída usando tecnologias sem servidor no topo das Funções de Etapa, o que a torna altamente personalizável e aplicável a uma ampla variedade de aplicativos.
Sobre os autores
Vidya Sagar Ravipati é arquiteto de aprendizado profundo na Laboratório de soluções de ML da Amazon, onde ele aproveita sua vasta experiência em sistemas distribuídos de grande escala e sua paixão pelo aprendizado de máquina para ajudar os clientes da AWS em diferentes setores da indústria a acelerar sua adoção de IA e nuvem. Anteriormente, ele foi engenheiro de aprendizado de máquina em serviços de conectividade na Amazon, que ajudou a construir plataformas de personalização e manutenção preditiva.
Jeremy Feltracco é engenheiro de desenvolvimento de software no Amazon ML Solutions Lab na Amazon Web Services. Ele usa sua experiência em visão computacional, robótica e aprendizado de máquina para ajudar os clientes da AWS a acelerar sua adoção de IA.
Jae Sung Jang é engenheiro de desenvolvimento de software. Sua paixão é a automação de processos manuais usando soluções de IA e tecnologias de orquestração para garantir a execução dos negócios.
Talia Chopra é redator técnico da AWS, especializado em aprendizado de máquina e inteligência artificial. Ela trabalha com várias equipes na AWS para criar documentação técnica e tutoriais para clientes usando Amazon SageMaker, MxNet e AutoGluon.
- "
- 100
- 107
- 3d
- 7
- 98
- Acesso
- Conta
- Adicional
- Adoção
- AI
- Adoção de IA
- algoritmo
- Todos os Produtos
- Permitindo
- Amazon
- Amazon Sage Maker
- Verdade no solo do Amazon SageMaker
- Amazon Web Services
- analítica
- api
- APIs
- app
- aplicações
- arquitetura
- inteligência artificial
- auditor
- Automatizado
- automotivo
- AWS
- Blog
- Caixa
- construir
- Prédio
- negócio
- chamada
- casos
- alterar
- acusações
- Cheques
- Na nuvem
- adoção de nuvem
- código
- vinda
- comum
- Computar
- Visão de Computador
- Conectividade
- custos
- Criar
- cruzeiro
- Atual
- Estado atual
- Clientes
- painel de instrumentos
- dados,
- lago data
- qualidade de dados
- banco de dados
- deep learning
- Demanda
- detalhe
- Desenvolvimento
- Ponto final
- engenheiro
- execução
- Falha
- Moda
- Primeiro nome
- formato
- Gratuito
- função
- futuro
- Geral
- gif
- Grupo
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- hospedagem
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- IAM
- ÍCONE
- identificar
- Identidade
- imagem
- Incluindo
- indústria
- INFORMAÇÕES
- insights
- Inteligência
- IT
- Trabalho
- Empregos
- Chave
- marcação
- Rótulos
- grande
- lançamento
- APRENDER
- aprendido
- aprendizagem
- Nível
- LIDAR
- Limitado
- LINK
- Lista
- localização
- aprendizado de máquina
- de grupos
- mapa,
- Máscaras
- média
- Métrica
- ML
- modelo
- nomes
- Navegação
- notificação
- operando
- ordem
- Outros
- padrão
- atuação
- Personalização
- Plataformas
- políticas
- piscina
- Portal
- preços
- privado
- Produzido
- qualidade
- Cru
- reduzir
- Requisitos
- Recursos
- Resultados
- Retorna
- rever
- Opinões
- robótica
- Execute
- corrida
- sábio
- Escala
- secundário
- Série
- Serverless
- Serviços
- conjunto
- compartilhado
- simples
- Tamanho
- So
- Software
- desenvolvimento de software
- Soluções
- Espaço
- Etapa
- começo
- começado
- Estado
- Unidos
- Status
- armazenamento
- sucesso
- ajuda
- suportes
- .
- sistemas
- Dados Técnicos:
- Tecnologias
- conta
- teste
- tempo
- token
- topo
- Rastreamento
- Training
- Transformação
- tratamento
- tutorial
- tutoriais
- Atualizações
- URI
- usuários
- veículo
- Veículos
- Vídeo
- VÍDEOS
- Ver
- visão
- volume
- esperar
- web
- serviços web
- QUEM
- dentro
- Atividades:
- trabalhadores
- de gestão de documentos
- Força de trabalho
- trabalho
- mundo
- escritor