Creazione di un file manifest di input della sequenza di nuvole 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 della sequenza di nuvole di punti

Il manifest è un file con codifica UTF-8 in cui ogni riga è un oggetto JSON completo e valido. Ogni riga è delimitata da un'interruzione di riga standard, \n o \r\n. Dal momento che ogni riga deve essere un oggetto JSON valido, i caratteri di interruzione di riga senza escape non sono consentiti. Nel file manifest di input della sequenza di nuvola di punti, ogni riga del manifest contiene una sequenza di frame di nuvola di punti. I dati della nuvola di punti per ogni frame della sequenza possono essere memorizzati in formato binario o ASCII. Per ulteriori informazioni, consulta Formati dati 3D non elaborati accettati. Questa è la formattazione del file manifest necessaria per il tracciamento di oggetti nuvola di punti 3D. Facoltativamente, è anche possibile fornire dati relativi all'attributo dei punti e alla fusione dei sensori della telecamera per ogni frame della nuvola di punti. Quando crei un file manifest di input di sequenza, devi fornire i dati di fusione dei sensori e della videocamera e LiDAR in un sistema di coordinate mondiali.

Nell'esempio seguente viene illustrata la sintassi utilizzata per un file manifest di input quando ogni riga del manifest è un file di sequenza. Ogni riga del file manifest di input deve essere in formato JSON Lines.

{"source-ref": "s3://awsexamplebucket/example-folder/seq1.json"} {"source-ref": "s3://awsexamplebucket/example-folder/seq2.json"}

I dati per ogni sequenza di frame di nuvola di punti devono essere memorizzati in un oggetto dati JSON. Di seguito è riportato un esempio del formato utilizzato per un file di sequenza. Le informazioni su ogni frame sono incluse come oggetto JSON e sono elencate in frames. Questo è un esempio di file di sequenza con file di frame a due nuvole di punti, frame300.bin e frame303.bin. ... viene utilizzato per indicare dove è necessario includere informazioni per fotogrammi aggiuntivi. Aggiungi un oggetto JSON per ogni fotogramma della sequenza.

Il seguente blocco di codice include un oggetto JSON per un singolo file di sequenza. L'oggetto JSON è stato espanso per garantire la leggibilità.

{ "seq-no": 1, "prefix": "s3://awsexamplebucket/example_lidar_sequence_dataset/seq1/", "number-of-frames": 100, "frames":[ { "frame-no": 300, "unix-timestamp": 1566861644.759115, "frame": "example_lidar_frames/frame300.bin", "format": "binary/xyzi", "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 } }, "images": [ { "image-path": "example_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" }] }, { "frame-no": 303, "unix-timestamp": 1566861644.759115, "frame": "example_lidar_frames/frame303.bin", "format": "text/xyzi", "ego-vehicle-pose":{...}, "images":[{...}] }, ... ] }

La tabella seguente fornisce dettagli sui parametri di primo livello di un file di sequenza. Per informazioni dettagliate sui parametri richiesti per i singoli frame nel file di sequenza, consulta Parametri per singoli frame di nuvole di punti.

Parametro

Obbligatorio

Valori accettati

Descrizione

seq-no

Numero intero

Il numero ordinato della sequenza.

prefix

Stringa

Valori accettati:

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

Posizione Amazon S3 in cui si trovano i file di sequenza.

Il prefisso deve terminare con una barra: /.

number-of-frames

Numero intero

Numero totale di frame inclusi nel file di sequenza. Questo numero deve corrispondere al numero totale di frame elencati nel parametro frames nella riga successiva.

frames

Elenco degli oggetti JSON

Un elenco di dati frame. La lunghezza dell'elenco deve essere uguale number-of-frames. Nell'interfaccia utente di lavoro, i frame in una sequenza saranno uguali all'ordine dei frame in questo array.

Per ulteriori informazioni sul formato di ogni frame, consulta Parametri per singoli frame di nuvole di punti.

Parametri per singoli frame di nuvole di punti

La tabella seguente mostra i parametri che è possibile includere nel file manifest di input.

Parametro

Obbligatorio

Valori accettati

Descrizione

frame-no

No

Numero intero

Il numero di frame. Si tratta di un identificatore opzionale specificato dal cliente per identificare il frame all'interno di una sequenza. Non è utilizzato da Ground Truth.

unix-timestamp

Numero

Il timestamp unix è il numero di secondi dal 1° gennaio 1970 fino all'ora UTC in cui i dati sono stati raccolti da un sensore.

Il timestamp per ogni frame deve essere diverso e i timestamp devono essere sequenziali perché vengono utilizzati per l'interpolazione cuboide. Idealmente, questo dovrebbe essere il timestamp reale al momento della raccolta dei dati. Se questo non è disponibile, è necessario utilizzare una sequenza incrementale di timestamp, in cui il primo frame del file di sequenza corrisponde al primo timestamp della sequenza.

frame

Stringa

Esempio di formato

<folder-name>/<sequence-file.json>

La posizione relativa, in Amazon S3, del file di sequenza. Questo percorso relativo verrà aggiunto al percorso specificato in prefix.

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.

ego-vehicle-pose

No

Oggetto JSON

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

Elenco dei 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 telecamera 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 utilizza queste informazioni per calcolare le matrici estrinseche LiDAR.

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

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

Oggetto JSON

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

Oggetto JSON

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 telecamera nel manifest di input

Per includere i dati della telecamera a colori in un frame, utilizza i seguenti parametri per fornire informazioni su ciascuna immagine. La colonna Obbligatorio della tabella seguente si applica quando il parametro images è incluso nel file manifest di input. Non è necessario includere immagini nel file manifest di input.

Se si includono immagini della telecamera, è necessario includere informazioni sulla posizione position e sull’orientamento (heading) della telecamera utilizzata per catturare le immagini.

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 lunghezza focale (fx, fy) e il punto principale (cx, cy). Per ulteriori informazioni su questi coefficienti e immagini non distorte, consulta Camera calibration with OpenCV. 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 dell'immagine.

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 qualsiasi inclinazione nota nell'immagine.

position

Oggetto JSON

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

Oggetto JSON

Parametri obbligatori:

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

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

Limiti dei frame del file di sequenza e della nuvola di punti

È possibile includere fino a 100.000 sequenze di frame di nuvola di punti nel file manifest di input. È possibile includere fino a 500 frame di nuvola di punti in ogni file di sequenza.

Tieni presente che il processo di etichettatura con nuvola di punti 3D ha tempi di pre-elaborazione più lunghi rispetto ad altri tipi di attività Ground Truth. Per ulteriori informazioni, consulta Tempo di elaborazione preliminare di un processo.