Crear un archivo de manifiesto de entrada de fotograma de nube de puntos - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear un archivo de manifiesto de entrada de fotograma de nube de puntos

El manifiesto es un archivo codificado en formato UTF -8 en el que cada línea es un JSON objeto completo y válido. Cada línea se delimita con un salto de línea estándar, \n o \r\n. Como cada línea debe ser un JSON objeto válido, no puede tener caracteres de salto de línea sin escape. En el archivo de manifiesto de entrada de fotograma único, cada línea del manifiesto contiene datos para un fotograma de nube de puntos único. Los datos del marco de la nube de puntos se pueden almacenar en formato binario o en ASCII formato (consulteFormatos de datos 3D sin procesar aceptados). Este es el formato de archivo de manifiesto necesario para la detección de objetos y la segmentación semántica de nube de puntos 3D. Opcionalmente, también puede proporcionar datos de fusión de sensores de cámara para cada fotograma de nube de puntos.

Ground Truth es compatible con la fusión de sensores de cámara de vídeo y nube de puntos en el sistema de coordenadas mundial para todas las modalidades. Si puede obtener un sensor 3D extrínseco (como un extrínseco de Li), le recomendamos que transforme los marcos de nubes de puntos 3D en el sistema de coordenadas mundiales utilizando el DAR extrínseco. Para obtener más información, consulte Fusión de sensores.

Sin embargo, si no puede obtener una nube de puntos en el sistema de coordenadas mundial, puede proporcionar coordenadas en el sistema de coordenadas original en el que se capturaron los datos. Si va a proporcionar datos de cámara para la fusión de sensores, se recomienda que indique la posición DAR del sensor Li y de la cámara en el sistema de coordenadas mundial.

Para crear un archivo de manifiesto de entrada de un solo fotograma, debe identificar la ubicación de cada fotograma de nube de puntos que desea que los trabajadores etiqueten con la clave source-ref. Además, debe usar la clave source-ref-metadata para identificar el formato del conjunto de datos, una marca de tiempo para ese fotograma y, opcionalmente, los datos de fusión de sensores y las imágenes de la cámara de vídeo.

En el ejemplo siguiente se muestra la sintaxis utilizada para un archivo de manifiesto de entrada de un trabajo de etiquetado en nubes de puntos de fotograma único. El ejemplo incluye dos fotogramas de nube de puntos. Para obtener más información sobre cada parámetro, consulte la tabla que sigue a este ejemplo.

importante

Cada línea del archivo de manifiesto de entrada debe estar en formato de JSONlíneas. El siguiente bloque de código muestra un archivo de manifiesto de entrada con dos JSON objetos. Cada JSON objeto se utiliza para apuntar a un marco de nube de puntos único y proporcionar detalles sobre él. Los JSON objetos se han ampliado para facilitar la lectura, pero al crear un archivo de manifiesto de entrada debes minimizar cada JSON objeto para que quepa en una sola línea. En este bloque de código se proporciona un ejemplo.

{ "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" }] } }

Al crear un archivo de manifiesto de entrada, debe contraer JSON los objetos para que quepan en una sola línea. Por ejemplo, el bloque de código anterior aparecería de la siguiente manera en un archivo de manifiesto 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"}]}}

La siguiente tabla muestra los parámetros que puede incluir en el archivo de manifiesto de entrada:

Parámetro

Obligatoria

Valores aceptados

Descripción

source-ref

Cadena

Formato de valor de cadena aceptado:

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

La ubicación de Amazon S3 de un fotograma de nube de puntos único.

source-ref-metadata

JSONobjeto

Parámetros aceptados:

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

Utilice este parámetro para incluir información adicional sobre la nube de puntos en source-ref y para proporcionar datos de la cámara para la fusión de sensores.

format

No

Cadena

Valores de cadena aceptados: "binary/xyz", "binary/xyzi", "binary/xyzrgb", "binary/xyzirgb", "text/xyz", "text/xyzi", "text/xyzrgb", "text/xyzirgb"

Valores predeterminados:

Cuando el archivo identificado en source-ref tiene una extensión .bin, binary/xyzi

Cuando el archivo identificado en source-ref tiene una extensión .txt, text/xyzi

Utilice este parámetro para especificar el formato de los datos de nube de puntos. Para obtener más información, consulte Formatos de datos 3D sin procesar aceptados.

unix-timestamp

Número

Una marca de tiempo Unix.

La marca de tiempo de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 hasta el UTC momento en que un sensor recopiló los datos.

ego-vehicle-pose

No

JSONobjeto

La posición del dispositivo utilizado para recopilar los datos de nube de puntos. Para obtener más información sobre este parámetro, consulte Incluir información de posición del vehículo en el manifiesto de entrada.

prefix

No

Cadena

Formato de valor de cadena aceptado:

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

La ubicación en Amazon S3 donde se almacenan los metadatos, como las imágenes de la cámara, para este fotograma.

El prefijo debe terminar con una barra diagonal: /.

images

No

Lista

Una lista de parámetros que describen las imágenes de la cámara en color utilizadas para la fusión de sensores. Puede incluir hasta 8 imágenes en esta lista. Para obtener más información sobre los parámetros necesarios para cada imagen, consulte Incluir los datos de la cámara en el manifiesto de entrada.

Incluir información de posición del vehículo en el manifiesto de entrada

Utilice la ubicación del ego-vehículo para proporcionar información sobre la ubicación del vehículo utilizado para capturar datos de nube de puntos. Ground Truth utiliza esta información para calcular la matriz DAR extrínseca de Li.

Ground Truth utiliza matrices extrínsecas para proyectar etiquetas hacia y desde la escena 3D y las imágenes 2D. Para obtener más información, consulte Fusión de sensores.

En la siguiente tabla se proporciona más información sobre los parámetros position y orientación (heading) necesarios cuando proporciona información del ego-vehículo.

Parámetro

Obligatoria

Valores aceptados

Descripción

position

JSONobjeto

Parámetros requeridos:

x, y y z. Introduzca números para estos parámetros.

El vector de traslación del ego-vehículo en el sistema de coordenadas mundial.

heading

JSONObjeto

Parámetros requeridos:

qx, qy, qz y qw. Introduzca números para estos parámetros.

La orientación del fotograma de referencia del dispositivo o sensor montado en el vehículo que detecta el entorno, medido en cuaterniones, (qx, qy, qz, qw) en el sistema de coordenadas.

Incluir los datos de la cámara en el manifiesto de entrada

Si desea incluir los datos de la cámara de vídeo con un fotograma, utilice los siguientes parámetros para proporcionar información sobre cada imagen. La columna Obligatorio a continuación se aplica cuando el parámetro images se incluye en el archivo de manifiesto de entrada en source-ref-metadata. No es necesario incluir imágenes en el archivo de manifiesto de entrada.

Si incluye imágenes de la cámara, debe incluir información sobre la position y heading de la cámara utilizada para capturar imágenes en el sistema de coordenadas mundial.

Si las imágenes están distorsionadas, Ground Truth puede eliminar la distorsión automáticamente utilizando la información que proporcione sobre la imagen en el archivo de manifiesto de entrada, incluidos los coeficientes de distorsión (k1, k2, k3, k4, p1, p1), el modelo de cámara y la matriz intrínseca de la cámara. La matriz intrínseca se compone de la distancia focal (fx, fy) y el punto principal (cx, cy)). Consulte Matriz intrínseca para saber cómo utiliza Ground Truth la calibración intrínseca de la cámara. Si no se incluyen los coeficientes de distorsión, Ground Truth no eliminará la distorsión de una imagen.

Parámetro

Obligatoria

Valores aceptados

Descripción

image-path

Cadena

Ejemplo de formato:

<folder-name>/<imagefile.png>

La ubicación relativa en Amazon del archivo de imagen. Esta ruta relativa se añadirá a la ruta especificada en prefix.

unix-timestamp

Número

La marca de tiempo de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 hasta el UTC momento en que una cámara recopiló los datos.

camera-model

No

Cadena:

Valores aceptados:

"pinhole", "fisheye"

Valor predeterminado:

"pinhole"

Modelo de la cámara utilizado para capturar la imagen. Esta información se utiliza para eliminar la distorsión de las imágenes de la cámara.

fx, fy

Números

La distancia focal de la cámara, en las direcciones x (fx) e y (fy).

cx, cy

Números

Las coordenadas x (cx) e y (cy) del punto principal.

k1, k2, k3, k4

No

Número

Coeficientes de distorsión radial. Compatibles con modelos de cámaras de ojo de pez y estenopeicas.

p1, p2

No

Número

Coeficientes de distorsión tangencial. Compatibles con modelos de cámaras estenopeicas.

skew

No

Número

Un parámetro para medir el sesgo de una imagen.

position

JSONobjeto

Parámetros requeridos:

x, y y z. Introduzca números para estos parámetros.

La ubicación u origen del fotograma de referencia de la cámara montada en el vehículo que captura imágenes.

heading

JSONObjeto

Parámetros requeridos:

qx, qy, qz y qw. Introduzca números para estos parámetros.

La orientación del fotograma de referencia de la cámara montada en el vehículo que captura imágenes, medida mediante cuaterniones, (qx, qy, qw)qz, en el sistema de coordenadas mundiales.

Límites de fotogramas de nube de puntos

Puede incluir hasta 100 000 fotogramas de nube de puntos en el archivo de manifiesto de entrada. El trabajo de etiquetado en nubes de puntos 3D tiene tiempos de preprocesamiento más largos que otros tipos de tareas de Ground Truth. Para obtener más información, consulte Tiempo de preprocesamiento del trabajo.