Criar um arquivo manifesto de entrada de quadro da nuvem de pontos - 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á.

Criar um arquivo manifesto de entrada de quadro da nuvem de pontos

O manifesto é um arquivo codificado em UTF -8 no qual cada linha é um objeto completo e válidoJSON. Cada linha é delimitada por uma quebra de linha padrão, \n ou \r\n. Como cada linha deve ser um JSON objeto válido, você não pode ter caracteres de quebra de linha sem escape. No arquivo manifesto de entrada de quadro único, cada linha no manifesto contém dados para um quadro da nuvem de pontos único. Os dados do quadro da nuvem de pontos podem ser armazenados em formato binário ou em ASCII formato (consulteFormatos aceitos de dados 3D brutos). Essa é a formatação do arquivo manifesto necessária para a detecção de objetos e a segmentação semântica da nuvem de pontos 3D. Se preferir, você também poderá fornecer dados de fusão de sensores de câmera para cada quadro de nuvem de pontos.

O Ground Truth oferece suporte à nuvem de pontos e à fusão de sensores da câmera de vídeo no sistema de coordenadas mundial para todas as modalidades. Se você puder obter seu sensor 3D extrínseco (como um extrínseco de Li), recomendamos que você transforme os quadros de nuvem de pontos 3D no sistema de coordenadas mundiais usando o DAR extrínseco. Para obter mais informações, consulte Fusão de sensores.

No entanto, se não conseguir obter uma nuvem de pontos no sistema de coordenadas mundial, você poderá fornecer coordenadas no sistema de coordenadas original em que os dados foram capturados. Se você estiver fornecendo dados da câmera para fusão de sensores, é recomendável fornecer o DAR sensor Li e a pose da câmera no sistema de coordenadas mundial.

Para criar um arquivo manifesto de entrada de quadro único, identifique o local de cada quadro da nuvem de pontos que deseja que os operadores rotulem usando a chave source-ref. Além disso, é necessário usar a chave source-ref-metadata para identificar o formato do conjunto de dados, um time stamp para esse quadro e, opcionalmente, dados de fusão de sensores e imagens da câmera de vídeo.

O exemplo a seguir demonstra a sintaxe usada para um arquivo manifesto de entrada para um trabalho de rotulagem de nuvem de pontos de quadro único. O exemplo inclui dois quadros de nuvem de pontos. Para obter detalhes sobre cada parâmetro, consulte a tabela que segue este exemplo.

Importante

Cada linha no arquivo de manifesto de entrada deve estar no formato JSONLinhas. O bloco de código a seguir mostra um arquivo de manifesto de entrada com dois JSON objetos. Cada JSON objeto é usado para apontar e fornecer detalhes sobre um único quadro de nuvem de pontos. Os JSON objetos foram expandidos para facilitar a leitura, mas você deve minimizar cada JSON objeto para caber em uma única linha ao criar um arquivo de manifesto de entrada. Um exemplo é fornecido sob esse bloco de código.

{ "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame1.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp": 1566861644.759115, "ego-vehicle-pose":{ "position": { "x": -2.7161461413869947, "y": 116.25822288149078, "z": 1.8348751887989483 }, "heading": { "qx": -0.02111296123795955, "qy": -0.006495469416730261, "qz": -0.008024565904865688, "qw": 0.9997181192298087 } }, "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/", "images": [ { "image-path": "images/frame300.bin_camera0.jpg", "unix-timestamp": 1566861644.759115, "fx": 847.7962624528487, "fy": 850.0340893791985, "cx": 576.2129134707038, "cy": 317.2423573573745, "k1": 0, "k2": 0, "k3": 0, "k4": 0, "p1": 0, "p2": 0, "skew": 0, "position": { "x": -2.2722515189268138, "y": 116.86003310568965, "z": 1.454614668542299 }, "heading": { "qx": 0.7594754093069037, "qy": 0.02181790885672969, "qz": -0.02461725233103356, "qw": -0.6496916273040025 }, "camera-model": "pinhole" }] } } { "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame2.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp": 1566861632.759133, "ego-vehicle-pose":{ "position": { "x": -2.7161461413869947, "y": 116.25822288149078, "z": 1.8348751887989483 }, "heading": { "qx": -0.02111296123795955, "qy": -0.006495469416730261, "qz": -0.008024565904865688, "qw": 0.9997181192298087 } }, "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/", "images": [ { "image-path": "images/frame300.bin_camera0.jpg", "unix-timestamp": 1566861644.759115, "fx": 847.7962624528487, "fy": 850.0340893791985, "cx": 576.2129134707038, "cy": 317.2423573573745, "k1": 0, "k2": 0, "k3": 0, "k4": 0, "p1": 0, "p2": 0, "skew": 0, "position": { "x": -2.2722515189268138, "y": 116.86003310568965, "z": 1.454614668542299 }, "heading": { "qx": 0.7594754093069037, "qy": 0.02181790885672969, "qz": -0.02461725233103356, "qw": -0.6496916273040025 }, "camera-model": "pinhole" }] } }

Ao criar um arquivo de manifesto de entrada, você deve recolher seus JSON objetos para que caibam em uma única linha. Por exemplo, o bloco de código acima apareceria da seguinte forma em um arquivo manifesto de entrada:

{"source-ref":"s3://amzn-s3-demo-bucket/examplefolder/frame1.bin","source-ref-metadata":{"format":"binary/xyzi","unix-timestamp":1566861644.759115,"ego-vehicle-pose":{"position":{"x":-2.7161461413869947,"y":116.25822288149078,"z":1.8348751887989483},"heading":{"qx":-0.02111296123795955,"qy":-0.006495469416730261,"qz":-0.008024565904865688,"qw":0.9997181192298087}},"prefix":"s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/","images":[{"image-path":"images/frame300.bin_camera0.jpg","unix-timestamp":1566861644.759115,"fx":847.7962624528487,"fy":850.0340893791985,"cx":576.2129134707038,"cy":317.2423573573745,"k1":0,"k2":0,"k3":0,"k4":0,"p1":0,"p2":0,"skew":0,"position":{"x":-2.2722515189268138,"y":116.86003310568965,"z":1.454614668542299},"heading":{"qx":0.7594754093069037,"qy":0.02181790885672969,"qz":-0.02461725233103356,"qw":-0.6496916273040025},"camera-model":"pinhole"}]}} {"source-ref":"s3://amzn-s3-demo-bucket/examplefolder/frame2.bin","source-ref-metadata":{"format":"binary/xyzi","unix-timestamp":1566861632.759133,"ego-vehicle-pose":{"position":{"x":-2.7161461413869947,"y":116.25822288149078,"z":1.8348751887989483},"heading":{"qx":-0.02111296123795955,"qy":-0.006495469416730261,"qz":-0.008024565904865688,"qw":0.9997181192298087}},"prefix":"s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/","images":[{"image-path":"images/frame300.bin_camera0.jpg","unix-timestamp":1566861644.759115,"fx":847.7962624528487,"fy":850.0340893791985,"cx":576.2129134707038,"cy":317.2423573573745,"k1":0,"k2":0,"k3":0,"k4":0,"p1":0,"p2":0,"skew":0,"position":{"x":-2.2722515189268138,"y":116.86003310568965,"z":1.454614668542299},"heading":{"qx":0.7594754093069037,"qy":0.02181790885672969,"qz":-0.02461725233103356,"qw":-0.6496916273040025},"camera-model":"pinhole"}]}}

A tabela a seguir mostra os parâmetros que você pode incluir no arquivo manifesto de entrada:

Parâmetro

Obrigatório

Valores aceitos

Descrição

source-ref

Sim

String

Formato de valor de string aceito:

s3://<bucket-name>/<folder-name>/point-cloud-frame-file

O local do Amazon S3 de um quadro de nuvem de pontos único.

source-ref-metadata

Sim

JSONobjeto

Parâmetros aceitos:

format, unix-timestamp, ego-vehicle-pose, position, prefix, images

Use esse parâmetro para incluir informações adicionais sobre a nuvem de pontos em source-ref e para fornecer dados da câmera para fusão de sensores.

format

Não

String

Valores de string aceitos: "binary/xyz", "binary/xyzi", "binary/xyzrgb", "binary/xyzirgb", "text/xyz", "text/xyzi", "text/xyzrgb", "text/xyzirgb"

Valores padrão:

Quando o arquivo identificado em source-ref tem uma extensão .bin, binary/xyzi

Quando o arquivo identificado em source-ref tem uma extensão .txt, text/xyzi

Use esse parâmetro para especificar o formato dos dados da nuvem de pontos. Para obter mais informações, consulte Formatos aceitos de dados 3D brutos.

unix-timestamp

Sim

Número

Um time stamp unix.

O timestamp unix é o número de segundos desde 1º de janeiro de 1970 até o UTC momento em que os dados foram coletados por um sensor.

ego-vehicle-pose

Não

JSONobjeto

A pose do dispositivo usado para coletar os dados da nuvem de pontos. Para obter mais informações sobre esse parâmetro, consulte Incluir informações de pose do veículo no manifesto de entrada.

prefix

Não

String

Formato de valor de string aceito:

s3://<bucket-name>/<folder-name>/

O local no Amazon S3 em que os metadados, como imagens da câmera, são armazenados para esse quadro.

O prefixo deve terminar com uma barra: /.

images

Não

Listar

Uma lista de parâmetros que descrevem imagens de câmera colorida usadas para fusão de sensores. É possível incluir até oito imagens nesta lista. Para obter mais informações sobre os parâmetros necessários para cada imagem, consulte Incluir dados da câmera no manifesto de entrada.

Incluir informações de pose do veículo no manifesto de entrada

Use a localização do veículo ego para fornecer informações sobre a localização do veículo usado para capturar dados da nuvem de pontos. A Ground Truth usa essas informações para calcular a matriz DAR extrínseca de Li.

O Ground Truth usa matrizes extrínsecas para projetar rótulos de e para a cena 3D e imagens 2D. Para obter mais informações, consulte Fusão de sensores.

A tabela a seguir fornece mais informações sobre os parâmetros de position e de orientação (heading) que são obrigatórios quando você fornece informações do veículo ego.

Parâmetro

Obrigatório

Valores aceitos

Descrição

position

Sim

JSONobjeto

Parâmetros obrigatórios:

x, y e z. Insira números para esses parâmetros.

O vetor de conversão do veículo ego no sistema de coordenadas mundial.

heading

Sim

JSONObjeto

Parâmetros obrigatórios:

qx, qy, qz e qw. Insira números para esses parâmetros.

A orientação do quadro de referência do dispositivo ou do sensor montado no veículo que detecta o entorno, medido em quaterniões, (qx, qy, qz, qw) no sistema de coordenadas.

Incluir dados da câmera no manifesto de entrada

Se você quiser incluir dados da câmera de vídeo com um quadro, use os parâmetros a seguir para fornecer informações sobre cada imagem. A coluna Obrigatório abaixo se aplica quando o parâmetro images é incluído no arquivo manifesto de entrada em source-ref-metadata. Não é necessário incluir imagens no arquivo manifesto de entrada.

Se você incluir imagens da câmera, será necessário incluir informações sobre position e heading da câmera usados na captura das imagens no sistema de coordenadas mundial.

Se as imagens estiverem distorcidas, o Ground Truth poderá corrigir a distorção automaticamente usando as informações fornecidas sobre a imagem no arquivo manifesto de entrada, incluindo coeficientes de distorção (k1, k2, k3, k4, p1 e p1), o modelo e a matriz intrínseca da câmera. A matriz intrínseca é composta pela distância focal (fx, fy) e pelo ponto principal (cx, cy)). Consulte Matriz intrínseca para saber como o Ground Truth usa a câmera intrínseca. Se os coeficientes de distorção não forem incluídos, o Ground Truth não corrigirá a distorção da imagem.

Parâmetro

Obrigatório

Valores aceitos

Descrição

image-path

Sim

String

Exemplo de formato:

<folder-name>/<imagefile.png>

O local relativo no Amazon S3 do arquivo de imagem. Esse caminho relativo será anexado ao caminho especificado em prefix.

unix-timestamp

Sim

Número

O timestamp unix é o número de segundos desde 1º de janeiro de 1970 até o UTC momento em que os dados foram coletados por uma câmera.

camera-model

Não

String:

Valores aceitos:

"pinhole", "fisheye"

Padrão:

"pinhole"

O modelo da câmera usada para capturar a imagem. Essas informações são usadas para corrigir a distorção das imagens da câmera.

fx, fy

Sim

Números

A distância focal da câmera, nas direções x (fx) e y (fy).

cx, cy

Sim

Números

As coordenadas x (cx) e y (cy) do ponto principal.

k1, k2, k3, k4

Não

Número

Coeficientes de distorção radial. Compatíveis com modelos de câmera olho de peixe e pinhole.

p1, p2

Não

Número

Coeficientes de distorção tangencial. Compatíveis com modelos de câmera pinhole.

skew

Não

Número

Um parâmetro para medir a inclinação de uma imagem.

position

Sim

JSONobjeto

Parâmetros obrigatórios:

x, y e z. Insira números para esses parâmetros.

O local ou a origem do quadro de referência da câmara montada no veículo que captura imagens.

heading

Sim

JSONObjeto

Parâmetros obrigatórios:

qx, qy, qz e qw. Insira números para esses parâmetros.

A orientação do quadro de referência da câmera montada no veículo que captura imagens, medida usando quaterniões, (qx, qy, qz, qw), no sistema de coordenadas mundial.

Limites de quadros da nuvem de pontos

É possível incluir até 100.000 quadros da nuvem de pontos no arquivo manifesto de entrada. O trabalho de rotulagem de nuvem de pontos 3D tem tempos de pré-processamento mais longos do que os de outros tipos de tarefas do Ground Truth. Para obter mais informações, consulte Tempo de pré-processamento do trabalho.