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
{ "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 |
---|---|---|---|
|
Sim |
String Formato de valor de string aceito:
|
O local do Amazon S3 de um quadro de nuvem de pontos único. |
|
Sim |
JSONobjeto Parâmetros aceitos:
|
Use esse parâmetro para incluir informações adicionais sobre a nuvem de pontos em |
|
Não |
String Valores de string aceitos: Valores padrão: Quando o arquivo identificado em Quando o arquivo identificado em |
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. |
|
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. |
|
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. |
|
Não |
String Formato de valor de string aceito:
|
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: |
|
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 |
---|---|---|---|
|
Sim |
JSONobjeto Parâmetros obrigatórios:
|
O vetor de conversão do veículo ego no sistema de coordenadas mundial. |
|
Sim |
JSONObjeto Parâmetros obrigatórios:
|
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 |
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 |
---|---|---|---|
|
Sim |
String Exemplo de formato:
|
O local relativo no Amazon S3 do arquivo de imagem. Esse caminho relativo será anexado ao caminho especificado em |
|
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. |
|
Não |
String: Valores aceitos:
Padrão:
|
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. |
|
Sim |
Números |
A distância focal da câmera, nas direções x ( |
|
Sim |
Números |
As coordenadas x ( |
|
Não |
Número |
Coeficientes de distorção radial. Compatíveis com modelos de câmera olho de peixe e pinhole. |
|
Não |
Número |
Coeficientes de distorção tangencial. Compatíveis com modelos de câmera pinhole. |
|
Não |
Número |
Um parâmetro para medir a inclinação de uma imagem. |
|
Sim |
JSONobjeto Parâmetros obrigatórios:
|
O local ou a origem do quadro de referência da câmara montada no veículo que captura imagens. |
|
Sim |
JSONObjeto Parâmetros obrigatórios:
|
A orientação do quadro de referência da câmera montada no veículo que captura imagens, medida usando quaterniões |
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.