Visão geral dos trabalhos de rotulagem de nuvem de pontos 3D - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Visão geral dos trabalhos de rotulagem de nuvem de pontos 3D

Fornece uma visão geral dos atributos exclusivos de um trabalho de rotulagem de nuvem de pontos 3D do Ground Truth. É possível usar os trabalhos de rotulagem de nuvem de pontos 3D para que os operadores rotulem objetos em uma nuvem de pontos 3D gerada a partir de sensores 3D, como LiDAR e câmeras de profundidade, ou gerada a partir da reconstrução 3D, combinando imagens capturadas por um atendente como um drone.

Tempo de pré-processamento do trabalho

Ao criar um trabalho de rotulagem de nuvem de pontos 3D, é necessário fornecer um arquivo manifesto de entrada. O arquivo de manifesto de entrada pode ser:

  • Um arquivo manifesto de entrada de quadro que tenha um quadro de nuvem de pontos único em cada linha.

  • Um arquivo manifesto de entrada de sequência que tenha uma única sequência em cada linha. Uma sequência é definida como uma série temporal de quadros de nuvem de pontos.

Para ambos os tipos de arquivos manifesto, o tempo de pré-processamento do trabalho (ou seja, o tempo antes que o Ground Truth inicie o envio de tarefas para os operadores) depende do número total e do tamanho dos quadros da nuvem de pontos fornecidos no arquivo manifesto de entrada. Para arquivos de manifesto de entrada de quadro, esse é o número de linhas no arquivo de manifesto. Para arquivos de manifesto de sequência, esse é o número de quadros em cada sequência multiplicado pelo número total de sequências, ou linhas, no arquivo de manifesto.

Além disso, o número de pontos por nuvem de pontos e o número de objetos de dados do sensor fundidos (como imagens) são fatores considerados nos tempos de pré-processamento do trabalho. Em média, o Ground Truth pode pré-processar 200 quadros de nuvem de pontos em aproximadamente cinco minutos. Se você criar um trabalho de rotulagem de nuvem de pontos 3D com um grande número de quadros de nuvem de pontos, talvez os tempos de pré-processamento de trabalhos sejam mais longos. Por exemplo, se você criar um arquivo de manifesto de entrada de sequência com sequências de nuvem de quatro pontos e cada sequência contiver nuvens de 200 pontos, o Ground Truth pré-processará nuvens de 800 pontos e, portanto, o tempo de pré-processamento do trabalho poderá ser de aproximadamente 20 minutos. Durante esse tempo, o status do trabalho de rotulagem será InProgress.

Enquanto seu trabalho de etiquetagem de nuvem de pontos 3D está sendo pré-processado, você recebe CloudWatch mensagens notificando sobre o status do seu trabalho. Para identificar essas mensagens, procure 3D_POINT_CLOUD_PROCESSING_STATUS nos logs do trabalho de rotulagem.

Para arquivos de manifesto de entrada de quadros, seus CloudWatch registros terão uma mensagem semelhante à seguinte:

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId from: 0 to 10, status: IN_PROGRESS" }

A mensagem de log de eventos, datasetObjectId from: 0 to 10, status: IN_PROGRESS, identifica o número de quadros do manifesto de entrada que foram processados. Você receberá uma nova mensagem sempre que um quadro tiver sido processado. Por exemplo, depois de um único quadro ser processado, você receberá outra mensagem que diz datasetObjectId from: 1 to 10, status: IN_PROGRESS.

Para arquivos de manifesto de entrada de sequência, seus CloudWatch registros terão uma mensagem semelhante à seguinte:

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId: 0, status: IN_PROGRESS" }

A mensagem do log de eventos, datasetObjectId from: 0, status: IN_PROGRESS, identifica o número de sequências do manifesto de entrada que foram processadas. Você receberá uma nova mensagem sempre que uma sequência tiver sido processada. Por exemplo, depois de uma única sequência ser processada, você receberá uma mensagem que diz datasetObjectId from: 1, status: IN_PROGRESS à medida que a próxima sequência começa a ser processada.

Tempos de conclusão do trabalho

Os operadores podem levar horas para concluir os trabalhos de rotulagem de nuvem de pontos 3D. É possível definir a quantidade total de tempo que os operadores podem trabalhar em cada tarefa ao criar um trabalho de rotulagem. O tempo máximo que você pode definir para que os operadores trabalhem em tarefas é de sete dias. O valor padrão é de três dias.

É altamente recomendável que você crie tarefas que os operadores possam concluir em até 12 horas. Os operadores devem manter a interface do usuário do operador aberta ao trabalhar em uma tarefa. Eles podem salvar o trabalho à medida que o realizam e o Ground Truth salvará o trabalho a cada 15 minutos.

Ao usar a operação da SageMaker CreateLabelingJob API, defina o tempo total em que uma tarefa está disponível para os trabalhadores no TaskTimeLimitInSeconds parâmetro deHumanTaskConfig.

Ao criar um trabalho de rotulagem no console, é possível especificar esse limite de tempo ao selecionar o tipo de força de trabalho e a equipe de trabalho.

Forças de trabalho

Ao criar um trabalho de rotulagem de nuvem de pontos 3D, é necessário especificar uma equipe de trabalho que concluirá as tarefas de anotação da nuvem de pontos. É possível escolher uma equipe de trabalho de uma força de trabalho privada de seus próprios operadores ou de uma força de trabalho de fornecedores escolhida no AWS Marketplace. Não é possível usar a força de trabalho do Amazon Mechanical Turk para trabalhos de rotulagem de nuvem de pontos 3D.

Para saber mais sobre a força de trabalho de fornecedores, consulte Gerenciar forças de trabalho de fornecedores.

Para saber como criar e gerenciar uma força de trabalho privada, consulte Usar uma força de trabalho privada.

Interface do usuário (UI) do operador

O Ground Truth fornece uma interface do usuário (UI) do operador, ferramentas e atributos de rotulagem auxiliares para ajudar os operadores a concluírem as tarefas de rotulagem de nuvem de pontos 3D.

É possível visualizar a interface do usuário do operador ao criar um trabalho de rotulagem no console.

Quando você criar um trabalho de rotulagem usando a operação de API CreateLabelingJob, é necessário inserir um ARN fornecido pelo Ground Truth no parâmetro HumanTaskUiArn para especificar a interface do usuário do operador para o tipo de tarefa. Você pode usar HumanTaskUiArn com a operação da SageMaker RenderUiTemplateAPI para visualizar a interface do usuário do trabalhador.

Forneça instruções de trabalho, rótulos e, opcionalmente, atributos de categoria de rótulo que são exibidos na interface do usuário do operador.

Atributos da categoria do rótulo

Quando cria um trabalho de rastreamento de objetos da nuvem de pontos 3D ou de rotulagem de detecção de objetos, é possível adicionar um ou mais atributos de categoria de rótulo. Você pode adicionar atributos de quadro a todos os tipos de tarefas de nuvem de pontos 3D:

  • Atributo de categoria de rótulo – Uma lista de opções (strings), uma caixa de texto de forma livre ou um campo numérico associado a um ou mais rótulos. É usado pelos operadores para fornecer metadados sobre um rótulo.

  • Atributo de quadro — Uma lista de opções (strings), uma caixa de texto de forma livre ou um campo numérico que aparece em cada quadro de nuvem de pontos que um operador é enviado para anotar. É usado pelos operadores para fornecer metadados sobre quadros.

Além disso, você pode usar atributos de rótulo e quadro para que os operadores verifiquem os rótulos em um trabalho de verificação do rótulo de nuvem de pontos 3D.

Use as seções a seguir para saber mais sobre esses atributos. Para saber como adicionar atributos de categoria de rótulo e quadro a um trabalho de rotulagem, use a seção Criar trabalho de rotulagem na página de tipos de tarefa de sua escolha.

Atributos da categoria do rótulo

Adicione atributos de categoria de rótulo aos rótulos para permitir que os trabalhadores forneçam mais informações sobre as anotações que eles criam. Um atributo de categoria de rótulo é adicionado a um rótulo individual ou a todos os rótulos. Quando um atributo de categoria de rótulo é aplicado a todos os rótulos, ele é chamado de atributo de categoria de rótulo global.

Por exemplo, se você adicionar a categoria de rótulo carro. também pode querer capturar dados adicionais sobre os carros rotulados, como, por exemplo, se eles estão obstruídos ou o tamanho do carro. É possível capturar esses metadados usando atributos de categoria de rótulo. Neste exemplo, se você adicionou o atributo obstruído à categoria de rótulo de carro, é possível atribuir parcial, completamente, não ao atributo obstruído, e os operadores poderão selecionar uma dessas opções.

Quando você cria um trabalho de verificação de rótulos, adiciona atributos de categoria de rótulos a cada rótulo que deseja que os operadores verifiquem.

Atributos de quadro

Adicione atributos de quadro para permitir que os operadores forneçam mais informações sobre quadros de nuvem de pontos. Você pode especificar até 10 atributos de quadro, e esses atributos aparecerão em todos os quadros.

Por exemplo, você pode adicionar um atributo de quadro que permita que os operadores insiram um número. Talvez você queira usar esse atributo para que os operadores identifiquem o número de objetos que veem em um determinado quadro.

Em outro exemplo, talvez você queira fornecer uma caixa de texto de formato livre para permitir que os operadores deem uma resposta de formato livre a uma pergunta.

Quando cria uma tarefa de verificação de rótulos, você pode adicionar um ou mais atributos de quadro para pedir que os operadores forneçam feedback sobre todos os rótulos em um quadro de nuvem de pontos.

Instruções do operador

É possível fornecer instruções de operador para ajudar os operadores a concluírem as tarefas de rotulagem de nuvem de pontos. Você pode querer usar essas instruções para o seguinte:

  • Melhores práticas e fatores a evitar ao anotar objetos.

  • Explicação dos atributos de categoria de rótulo fornecidos (para tarefas de detecção de objetos e de rastreamento de objetos) e como usá-los.

  • Sugestões sobre como economizar tempo durante a rotulagem usando atalhos de teclado.

Você pode adicionar suas instruções de trabalho usando o SageMaker console ao criar um trabalho de etiquetagem. Se você criar um trabalho de rotulagem usando a operação de API CreateLabelingJob, especifique as instruções do operador no arquivo de configuração da categoria de rótulo.

Além das instruções, o Ground Truth fornece um link para ajudar os operadores a navegar e usar o portal do operador. Visualize essas instruções selecionando o tipo de tarefa em Instruções do operador.

Recusando tarefas

Os operadores podem recusar tarefas.

Os operadores recusam uma tarefa se as instruções não estiverem claras, os dados de entrada não estiverem sendo exibidos corretamente ou se encontrarem algum outro problema com a tarefa. Se o número de workers por objeto do conjunto de dados (NumberOfHumanWorkersPerDataObject) recusar a tarefa, o objeto de dados será marcado como expirado e não será enviado para operadores adicionais.

Requisitos de permissão do trabalho de rotulagem de nuvem de pontos 3D

Ao criar um trabalho de rotulagem de nuvem de pontos 3D, além dos requisitos de permissão encontrados em Atribua permissões do IAM para usar o Ground Truth, é necessário adicionar uma política de CORS ao bucket do S3 que contenha o arquivo manifesto de entrada.

Adicionar uma política de permissão de CORS ao bucket do S3

Ao criar um trabalho de rotulagem de nuvem de pontos 3D, especifique buckets no S3 onde os dados de entrada e o arquivo de manifesto estão localizados e onde os dados de saída serão armazenados. Esses buckets podem ser os mesmos. É necessário anexar a seguinte política de compartilhamento de recursos de origem cruzada (CORS) aos buckets de entrada e saída. Se você usar o console do Amazon S3 para adicionar a política ao bucket, deverá usar o formato JSON.

JSON

[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "HEAD", "PUT" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [ "Access-Control-Allow-Origin" ], "MaxAgeSeconds": 3000 } ]

XML

<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>HEAD</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

Para saber como adicionar uma política de CORS a um bucket do S3, consulte Como adicionar compartilhamento de recursos entre domínios com CORS? no Guia do usuário do Amazon Simple Storage Service.