Creazione di un file manifest di input del frame di nuvola di punti - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un file manifest di input del frame di nuvola di punti

Il manifesto è un file con codifica UTF -8 in cui ogni riga è un oggetto completo e valido. JSON Ogni riga è delimitata da un'interruzione di riga standard, \n o \r\n. Poiché ogni riga deve essere un JSON oggetto valido, non è possibile avere caratteri di interruzione di riga senza escape. Nel file manifest di input a frame singolo, ogni riga del manifest contiene i dati per un singolo frame di nuvola di punti. I dati del frame a nuvola di punti possono essere archiviati in formato binario o in ASCII formato (vediFormati dati 3D non elaborati accettati). Questa è la formattazione del file manifest necessaria per il rilevamento di oggetti nubi di punti 3D e la segmentazione semantica. Facoltativamente, è anche possibile fornire dati di fusione del sensore della telecamera per ogni frame della nuvola di punti.

Ground Truth supporta la fusione del sensore della nuvola di punti e della videocamera nel sistema di coordinate mondiale per tutte le modalità. Se riesci a ottenere un sensore 3D estrinseco (come un estrinseco Li), ti consigliamo di trasformare i frame della nuvola di punti 3D nel sistema di coordinate mondiali usando il sensore DAR estrinseco. Per ulteriori informazioni, consulta Fusione dei sensori.

Tuttavia, se non è possibile ottenere una nuvola di punti nel sistema di coordinate mondiali, è possibile fornire le coordinate nel sistema di coordinate originale in cui sono stati acquisiti i dati. Se state fornendo i dati della fotocamera per la fusione dei sensori, si consiglia di inserire il DAR sensore Li e la posa della telecamera nel sistema di coordinate mondiale.

Per creare un file manifest di input a frame singolo, si identificherà la posizione di ogni frame nuvola di punti che si desidera che i worker etichettino utilizzando la chiave source-ref. Inoltre, è necessario utilizzare la chiave source-ref-metadata per identificare il formato del set di dati, un timestamp per tale frame e, facoltativamente, i dati di fusione del sensore e le immagini della videocamera.

Nell'esempio seguente viene illustrata la sintassi utilizzata per un file manifest di input per un processo di etichettatura con nuvola di punti a frame singolo. L'esempio include due frame di nuvola di punti. Per informazioni dettagliate su ciascun parametro, consulta la tabella che segue questo esempio.

Importante

Ogni riga del file manifesto di input deve essere in formato JSONLinee. Il seguente blocco di codice mostra un file manifest di input con due JSON oggetti. Ogni JSON oggetto viene utilizzato per indicare e fornire dettagli su un frame a nuvola di punti singolo. Gli JSON oggetti sono stati espansi per motivi di leggibilità, ma è necessario minimizzare ogni JSON oggetto per adattarlo a una singola riga quando si crea un file manifesto di input. Un esempio viene fornito in questo blocco di codice.

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

Quando create un file manifesto di input, dovete comprimere gli JSON oggetti per adattarli a un'unica riga. Ad esempio, in un file manifest di input, il blocco di codice precedente apparirebbe come segue:

{"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 tabella seguente mostra i parametri che è possibile includere nel file manifest di input:

Parametro

Obbligatorio

Valori accettati

Descrizione

source-ref

Stringa

Formato valore stringa accettato:

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

Posizione Amazon S3 di un singolo fotogramma di nuvola di punti.

source-ref-metadata

JSONoggetto

Parametri accettati:

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

Utilizzare questo parametro per includere ulteriori informazioni sulla nuvola di punti in source-ref e per fornire i dati della telecamera per la fusione dei sensori.

format

No

Stringa

Valori stringa accettati: "binary/xyz", "binary/xyzi", "binary/xyzrgb", "binary/xyzirgb", "text/xyz", "text/xyzi", "text/xyzrgb", "text/xyzirgb"

Valori predefiniti:

Quando il file identificato in source-ref ha un'estensione.bin, binary/xyzi

Quando il file identificato in source-ref ha un'estensione.txt, text/xyzi

Utilizza questo parametro per specificare il formato dei dati della nuvola di punti. Per ulteriori informazioni, consulta Formati dati 3D non elaborati accettati.

unix-timestamp

Numero

Un timestamp unix.

Il timestamp unix è il numero di secondi trascorsi dal 1° gennaio 1970 al UTC momento in cui i dati sono stati raccolti da un sensore.

ego-vehicle-pose

No

JSONoggetto

La posa del dispositivo utilizzato per raccogliere i dati della nuvola di punti. Per ulteriori informazioni su questo parametro, consulta Includi le informazioni sulla posa del veicolo nel file manifest di input.

prefix

No

Stringa

Formato valore stringa accettato:

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

La posizione in Amazon S3 in cui vengono memorizzati i metadati, ad esempio le immagini della telecamera, per questo fotogramma.

Il prefisso deve terminare con una barra: /.

images

No

Elenco

Un elenco di parametri che descrivono le immagini della telecamera a colori utilizzate per la fusione dei sensori. È possibile includere fino a 8 immagini in questo elenco. Per ulteriori informazioni sui parametri richiesti per ogni immagine, consulta Inserimento dei dati della videocamera nel manifest di input.

Includi le informazioni sulla posa del veicolo nel file manifest di input

Utilizza la posizione del veicolo ego per fornire informazioni sulla posizione del veicolo utilizzato per acquisire i dati delle nuvole di punti. Ground Truth usa queste informazioni per calcolare la matrice DAR estrinseca Li.

Ground Truth utilizza matrici estrinseche per proiettare etichette da e verso la scena 3D e le immagini 2D. Per ulteriori informazioni, consulta Fusione dei sensori.

Nella tabella seguente vengono fornite ulteriori informazioni sui parametri position e orientamento (heading) necessari quando si forniscono informazioni sul veicolo ego.

Parametro

Obbligatorio

Valori accettati

Descrizione

position

JSONoggetto

Parametri obbligatori:

x, y e z. Immetti i numeri per questi parametri.

Il vettore di traslazione del veicolo ego nel sistema di coordinate mondiale.

heading

JSONOggetto

Parametri obbligatori:

qx, qy, qz e qw. Immetti i numeri per questi parametri.

L'orientamento del frame di riferimento del dispositivo o del sensore montato sul veicolo che rileva l'ambiente circostante, misurato in quaternioni, (qx, qy, qz, qw) in un sistema di coordinate.

Inserimento dei dati della videocamera nel manifest di input

Per includere i dati della videocamera in un frame, utilizza i seguenti parametri per fornire informazioni su ciascuna immagine. La colonna Obbligatorio riportata di seguito si applica quando il parametro images è incluso nel file manifest di input in source-ref-metadata. Non è necessario includere immagini nel file manifest di input.

Se includi immagini della videocamera, è necessario includere informazioni sui parametri position e heading utilizzare la cattura delle immagini nel sistema di coordinate mondiali.

Se le immagini sono distorte, Ground Truth può automaticamente annullarle utilizzando le informazioni fornite sull'immagine nel file manifest di input, inclusi i coefficienti di distorsione (k1, k2, k3, k4, p1, p1), il modello della telecamera e la matrice intrinseca della telecamera. La matrice intrinseca è costituita dalla lunghezza focale (fx, fy) e dal punto principale (cx, cy). Consulta Matrice intrinseca per scoprire come Ground Truth utilizza le funzioni intrinseche della telecamera. Se i coefficienti di distorsione non sono inclusi, Ground Truth non altera un'immagine.

Parametro

Obbligatorio

Valori accettati

Descrizione

image-path

Stringa

Esempio di formato:

<folder-name>/<imagefile.png>

La posizione relativa all'interno di Amazon S3 del file di immagine. Questo percorso relativo verrà aggiunto al percorso specificato in prefix.

unix-timestamp

Numero

Il timestamp unix è il numero di secondi trascorsi dal 1° gennaio 1970 al UTC momento in cui i dati sono stati raccolti da una fotocamera.

camera-model

No

Stringa:

Valori accettati:

"pinhole", "fisheye"

Default:

"pinhole"

Il modello della telecamera utilizzata per catturare l'immagine. Queste informazioni vengono utilizzate per non distorcere le immagini della telecamera.

fx, fy

Numeri

La lunghezza focale della telecamera, nelle direzioni x (fx) e y (fy).

cx, cy

Numeri

Le coordinate x (cx) e y (cy) del punto principale.

k1, k2, k3, k4

No

Numero

Coefficienti di distorsione radiale. Supportato sia per i modelli di fotocamere fisheye e a foro stenopeico.

p1, p2

No

Numero

Coefficienti di distorsione tangenziale. Supportato per i modelli di fotocamera a foro stenopeico.

skew

No

Numero

Parametro per misurare l'inclinazione di un'immagine.

position

JSONoggetto

Parametri obbligatori:

x, y e z. Immetti i numeri per questi parametri.

La posizione o l'origine del frame di riferimento della telecamera montata sul veicolo che cattura le immagini.

heading

JSONOggetto

Parametri obbligatori:

qx, qy, qz e qw. Immetti i numeri per questi parametri.

L'orientamento del fotogramma di riferimento della telecamera montata sul veicolo che cattura le immagini, misurato utilizzando quaternioni, (qx, qy, qz, qw), nel sistema di coordinate mondiali.

Limiti dei fotogrammi della nuvola di punti

È possibile includere fino a 100.000 fotogrammi della nuvola di punti nel file manifest di input. Il processo di etichettatura con nuvola di punti 3D ha tempi di pre-elaborazione più lunghi rispetto ad altri tipi di attività di Ground Truth. Per ulteriori informazioni, consulta Tempo di elaborazione preliminare di un processo.