Erstellen eines Eingabemanifests für Punktwolkensequenzen - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen eines Eingabemanifests für Punktwolkensequenzen

Das Manifest ist eine mit UTF -8 kodierte Datei, in der jede Zeile ein vollständiges und gültiges JSON Objekt ist. Jede Zeile wird durch einen Standardzeilenumbruch getrennt, \n oder \r\n. Da es sich bei jeder Zeile um ein gültiges JSON Objekt handeln muss, sind Zeilenumbruchzeichen ohne Escape-Zeichen nicht zulässig. In der Eingabemanifestdatei der Punktwolkensequenz enthält jede Zeile im Manifest eine Sequenz von Punktwolkenframes. Die Punktwolkendaten für jedes Bild in der Sequenz können entweder im Binär- oder im ASCII Format gespeichert werden. Weitere Informationen finden Sie unter Akzeptierte 3D-Rohdatenformate. Dies ist die Manifestdateiformatierung, die für die 3D-Punktwolken-Objektverfolgung erforderlich ist. Optional können Sie auch Punktattribut- und Kamerasensorfusionsdaten für jeden Punktwolkenframe bereitstellen. Wenn Sie eine Sequenzeingabe-Manifestdatei erstellen, müssen Sie Li DAR - und Videokamerasensor-Fusionsdaten in einem Weltkoordinatensystem angeben.

Das folgende Beispiel veranschaulicht die Syntax, die für eine Eingabemanifestdatei verwendet wird, wenn jede Zeile im Manifest eine Sequenzdatei ist. Jede Zeile in Ihrer Eingabemanifestdatei muss im JSONLinienformat vorliegen.

{"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq1.json"} {"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq2.json"}

Die Daten für jede Sequenz von Punktwolkenframes müssen in einem JSON Datenobjekt gespeichert werden. Im Folgenden finden Sie ein Beispiel für das Format, das Sie für eine Sequenzdatei verwenden. Informationen zu jedem Frame sind als JSON Objekt enthalten und in der frames Liste aufgeführt. Dies ist ein Beispiel für eine Sequenzdatei mit zwei Punktwolken-Frame-Dateien, frame300.bin und frame303.bin. Das Tool ... wird verwendet, um anzugeben, wo Sie Informationen für zusätzliche Frames hinzufügen sollten. Fügt für jedes Bild in der Sequenz ein JSON Objekt hinzu.

Der folgende Codeblock enthält ein JSON Objekt für eine einzelne Sequenzdatei. Das JSON Objekt wurde aus Gründen der Lesbarkeit erweitert.

{ "seq-no": 1, "prefix": "s3://amzn-s3-demo-bucket/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":[{...}] }, ... ] }

Die folgende Tabelle enthält Einzelheiten zu den Parametern der obersten Ebene einer Sequenzdatei. Ausführliche Informationen zu den Parametern, die für einzelne Frames in der Sequenzdatei erforderlich sind, finden Sie unter Parameter für einzelne Punktwolkenframes.

Parameter

Erforderlich

Akzeptierte Werte

Beschreibung

seq-no

Ja

Ganzzahl

Die geordnete Nummer der Sequenz.

prefix

Ja

String

Akzeptierte Werte:

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

Der Amazon S3-Speicherort, an dem sich die Sequenzdateien befinden.

Das Präfix muss mit einem Schrägstrich enden: /.

number-of-frames

Ja

Ganzzahl

Die Gesamtzahl der Frames, die in der Sequenzdatei enthalten sind. Diese Zahl muss mit der Gesamtzahl der Frames übereinstimmen, die im Parameter frames in der nächsten Zeile aufgeführt sind.

frames

Ja

Liste der Objekte JSON

Eine Liste der Framedaten. Die Länge der Liste muss gleich number-of-frames sein. In der Benutzeroberfläche für Auftragnehmer sind Frames in einer Sequenz identisch mit der Reihenfolge der Frames in diesem Array.

Weitere Informationen zum Format der einzelnen Frames finden Sie unter Parameter für einzelne Punktwolkenframes.

Parameter für einzelne Punktwolkenframes

Die folgende Tabelle zeigt die Parameter, die Sie in die Eingabemanifestdatei aufnehmen können.

Parameter

Erforderlich

Akzeptierte Werte

Beschreibung

frame-no

Nein

Ganzzahl

Eine Framenummer. Dies ist eine optionale Kennung, die vom Kunden angegeben wird, um den Frame innerhalb einer Sequenz zu identifizieren. Diese wird von Ground Truth nicht verwendet.

unix-timestamp

Ja

Zahl

Der Unix-Zeitstempel ist die Anzahl der Sekunden seit dem 1. Januar 1970 bis zu dem UTC Zeitpunkt, an dem die Daten von einem Sensor erfasst wurden.

Der Zeitstempel für jeden Frame muss unterschiedlich sein und die Zeitstempel müssen sequentiell sein, da sie für die quaderförmige Interpolation verwendet werden. Idealerweise sollte dies der tatsächliche Zeitstempel sein, zu dem die Daten erfasst wurden. Wenn dies nicht verfügbar ist, müssen Sie eine inkrementelle Sequenz von Zeitstempeln verwenden, wobei der erste Frame in Ihrer Sequenzdatei dem ersten Zeitstempel in der Sequenz entspricht.

frame

Ja

String

Beispiel für Format

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

Der relative Speicherort Ihrer Sequenzdatei in Amazon S3. Dieser relative Pfad wird an den Pfad angehängt, den Sie in prefix angeben.

format

Nein

String

Akzeptierte Zeichenfolgenwerte: "binary/xyz", "binary/xyzi", "binary/xyzrgb", "binary/xyzirgb", "text/xyz", "text/xyzi", "text/xyzrgb", "text/xyzirgb"

Standardwerte:

Wenn die in source-ref identifizierte Datei die Erweiterung .bin aufweist, binary/xyzi

Wenn die in source-ref identifizierte Datei die Erweiterung .txt aufweist, text/xyzi

Verwenden Sie diesen Parameter, um das Format der Punktwolkendaten anzugeben. Weitere Informationen finden Sie unter Akzeptierte 3D-Rohdatenformate.

ego-vehicle-pose

Nein

JSONObjekt

Die Pose des Geräts, das zum Sammeln der Punktwolkendaten verwendet wird. Weitere Informationen zu diesem Parameter finden Sie unter Aufnehmen von Fahrzeugposeninformationen in Ihr Eingabemanifest.

prefix

Nein

String

Format für akzeptierte Zeichenfolgenwerte:

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

Der Speicherort in Amazon S3, an dem Ihre Metadaten, z. B. Kamerabilder, für dieses Frame gespeichert sind.

Das Präfix muss mit einem Schrägstrich enden: /.

images

Nein

Auflisten

Eine Liste der Parameter, die Farbkamerabilder beschreiben, die für die Sensorfusion verwendet werden. Sie können bis zu 8 Bilder in diese Liste aufnehmen. Weitere Informationen zu den für jedes Bild erforderlichen Parametern finden Sie unter Einschließen der Kameradaten in das Eingabemanifest.

Aufnehmen von Fahrzeugposeninformationen in Ihr Eingabemanifest

Verwenden Sie den Standort des Ego-Fahrzeugs, um Informationen über die Pose des Fahrzeugs zu erhalten, das zur Erfassung der Punktwolkendaten verwendet wird. Ground Truth verwendet diese Informationen, um DAR extrinsische Li-Matrizen zu berechnen.

Ground Truth verwendet extrinsische Matrizen, um Beschriftungen auf und von der 3D-Szene und den 2D-Bildern zu projizieren. Weitere Informationen finden Sie unter Sensorfusion.

In der folgenden Tabelle finden Sie weitere Informationen zu den Parametern position und Ausrichtung (heading), die erforderlich sind, wenn Sie Ego-Fahrzeuginformationen bereitstellen.

Parameter

Erforderlich

Akzeptierte Werte

Beschreibung

position

Ja

JSONObjekt

Erforderliche Parameter:

x, y und z. Geben Sie Zahlen für diese Parameter ein.

Der Translationsvektor des Ego-Fahrzeugs im Weltkoordinatensystem.

heading

Ja

JSONObjekt

Erforderliche Parameter:

qx, qy, qz und qw. Geben Sie Zahlen für diese Parameter ein.

Die Ausrichtung des Bezugsrahmens des auf dem Fahrzeug montierten Geräts oder Sensors, das bzw. der die Umgebung erfasst, gemessen in Quaternionen, (qx, qy, qz, qw), im Koordinatensystem.

Einschließen der Kameradaten in das Eingabemanifest

Wenn Sie Farbkameradaten in einen Frame einschließen möchten, verwenden Sie die folgenden Parameter, um Informationen zu den einzelnen Bildern bereitzustellen. Die Spalte Erforderlich in der folgenden Tabelle gilt, wenn der Parameter images in der Eingabemanifestdatei enthalten ist. Sie müssen keine Bilder in Ihre Eingabemanifestdatei aufnehmen.

Wenn Sie Kamerabilder einschließen, müssen Sie Informationen über die position und Ausrichtung (heading) der Kamera angeben, die für die Erfassung der Bilder verwendet wurde.

Wenn Ihre Bilder verzerrt sind, kann Ground Truth sie automatisch entzerren, indem es Informationen verwendet, die Sie über das Bild in Ihrer manifesten Eingabedatei bereitstellen, einschließlich der Verzerrungskoeffizienten (k1, k2, k3, k4, p1, p1), des Kameramodells und der Brennweite (fx, fy), und des Hauptpunkts (cx, cy). Weitere Informationen zu diesen Koeffizienten und dem Entzerren von Bildern finden Sie unter Kamerakalibrierung mit OpenCV. Wenn keine Verzeichnungskoeffizienten enthalten sind, wird ein Bild durch Ground Truth nicht unverzerrt.

Parameter

Erforderlich

Akzeptierte Werte

Beschreibung

image-path

Ja

String

Beispiel für Format:

<folder-name>/<imagefile.png>

Der relative Speicherort Ihrer Bilddatei in Amazon S3. Dieser relative Pfad wird an den Pfad angehängt, den Sie in prefix angeben.

unix-timestamp

Ja

Zahl

Der Zeitstempel des Bildes.

camera-model

Nein

Zeichenfolge:

Akzeptierte Werte:

"pinhole", "fisheye"

Standard:

"pinhole"

Das Modell der Kamera, mit der das Bild erfasst wird. Diese Informationen werden verwendet, um Kamerabilder zu entzerren.

fx, fy

Ja

Zahlen

Die Brennweite der Kamera in x (fx)- und y (fy)-Richtungen.

cx, cy

Ja

Zahlen

Die x (cx)- und y (cy)-Koordinaten des Hauptpunkts.

k1, k2, k3, k4

Nein

Zahl

Radiale Verzeichnungskoeffizienten. Unterstützt sowohl für Fischaugen- als auch Lochkameramodelle.

p1, p2

Nein

Zahl

Tangentiale Verzeichnungskoeffizienten. Unterstützt für Lochkameramodelle.

skew

Nein

Zahl

Ein Parameter, mit dem alle bekannten Neigungen im Bild gemessen werden können.

position

Ja

JSONObjekt

Erforderliche Parameter:

x, y und z. Geben Sie Zahlen für diese Parameter ein.

Die Position oder der Ursprung des Bezugsrahmens der Kamera, die auf dem Fahrzeug montiert ist und Bilder erfasst.

heading

Ja

JSONObjekt

Erforderliche Parameter:

qx, qy, qz und qw. Geben Sie Zahlen für diese Parameter ein.

Die Ausrichtung des Bezugsrahmens der auf dem Fahrzeug montierten Kamera, die Bilder erfasst, gemessen mit Quaternionen, (qx, qy, qz, qw).

Grenzwerte für Sequenzdateien und Punktwolkenframes

Sie können bis zu 100.000 Punktwolkenframesequenzen in Ihre Eingabemanifestdatei aufnehmen. Sie können bis zu 500 Punktwolkenframes in jede Sequenzdatei aufnehmen.

Beachten Sie, dass 3D-Punktwolken-Beschriftungsaufträge längere Vorverarbeitungszeiten haben als andere Ground Truth-Aufgabentypen. Weitere Informationen finden Sie unter Zeit für die Auftragsvorverarbeitung.