Création d'un manifeste d'entrée de séquences de nuage de points - Amazon SageMaker

Création d'un manifeste d'entrée de séquences de nuage de points

Le manifeste est un fichier codé en UTF-8 dans lequel chaque ligne est un objet JSON complet et valide. Chaque ligne est délimitée par un saut de ligne standard, \n ou \r\n. Chaque ligne étant un objet JSON valide, elle ne peut pas comporter de caractères de saut de ligne sans échappement. Dans le fichier manifeste d'entrée de séquences de nuage de points, chaque ligne du manifeste contient une séquence de trames de nuage de points. Les données de nuage de points pour chaque trame de la séquence peuvent être stockées au format binaire ou ASCII. Pour de plus amples informations, veuillez consulter . Formats de données 3D brutes acceptés. Il s'agit du format de fichier manifeste requis pour le suivi d'objets de nuage de points 3D. Vous pouvez éventuellement fournir aussi des données de fusion de capteurs de caméra et d'attributs de points pour chaque trame de nuage de points. Lorsque vous créez un fichier manifeste d'entrée de séquences, vous devez fournir des données de fusion de capteurs de caméra vidéo et LiDAR dans un système de coordonnées mondial.

L'exemple suivant illustre la syntaxe utilisée pour un fichier manifeste d'entrée lorsque chaque ligne du manifeste est un fichier de séquence. Chaque ligne de votre fichier manifeste source doit être au format JSON Lines.

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

Les données de chaque séquence de trames de nuage de points doivent être stockées dans un objet de données JSON. Voici un exemple du format que vous utilisez pour un fichier de séquence. Les informations sur chaque trame sont incluses en tant qu'objet JSON et sont répertoriées dans la liste frames. Ceci est un exemple de fichier de séquence avec deux fichiers de trames de nuage de points, frame300.bin et frame303.bin. Le ... permet d'indiquer l'endroit où vous devez inclure les informations pour les trames supplémentaires. Ajoutez un objet JSON pour chaque trame de la séquence.

Le bloc de code suivant inclut un objet JSON pour un fichier de séquence unique. L'objet JSON a été développé pour faciliter la lecture.

{ "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":[{...}] }, ... ] }

Le tableau suivant fournit des détails sur les paramètres de niveau supérieur d'un fichier de séquence. Pour de plus amples informations sur les paramètres requis pour chaque trame dans le fichier de séquence, veuillez consulter Paramètres des trames de nuage de points individuelles.

Paramètre

Obligatoire

Valeurs acceptées

Description

seq-no

Oui

Integer

Numéro ordonné de la séquence.

prefix

Oui

Chaîne

Valeurs acceptées:

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

L'emplacement Amazon S3 où se trouvent les fichiers de séquence.

Le préfixe doit se terminer par une barre oblique: /.

number-of-frames

Oui

Integer

Nombre total de trames incluses dans le fichier de séquences. Ce nombre doit correspondre au nombre total de trames répertoriées dans le paramètre frames de la ligne suivante.

frames

Oui

Liste d'objets JSON

Liste des données de trame. La longueur de la liste doit être égal à number-of-frames. Dans l'interface utilisateur de travail, les trames d'une séquence sont identiques à l'ordre des trames dans ce tableau.

Pour de plus amples informations sur le format de chaque trame, veuillez consulter Paramètres des trames de nuage de points individuelles.

Paramètres des trames de nuage de points individuelles

Le tableau suivant présente les paramètres que vous pouvez inclure dans votre fichier manifeste d'entrée.

Paramètre

Obligatoire

Valeurs acceptées

Description

frame-no

Non

Integer

Numéro de trame. Il s'agit d'un identificateur facultatif spécifié par le client pour identifier la trame dans une séquence. Il n'est pas utilisé par Ground Truth.

unix-timestamp

Oui

Nombre

L'horodatage unix est le nombre de secondes écoulées depuis le 1er janvier 1970 jusqu'à l'heure UTC à laquelle les données ont été collectées par un capteur.

L'horodatage de chaque image doit être différent et les horodatages doivent être séquentiels, car ils sont utilisés pour l'interpolation cuboïde. Idéalement, il devrait s'agir de l'horodatage réel lorsque les données ont été collectées. Si ce n'est pas disponible, vous devez utiliser une séquence progressive d'horodatages, où la première image de votre fichier de séquence correspond au premier horodatage de la séquence.

frame

Oui

Chaîne

Exemple de format

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

Emplacement relatif, dans Amazon S3, de votre fichier de séquences. Ce chemin relatif sera ajouté au chemin que vous spécifiez dans prefix.

format

Non

Chaîne

Valeurs de chaîne acceptées: "binary/xyz", "binary/xyzi", "binary/xyzrgb", "binary/xyzirgb", "text/xyz", "text/xyzi", "text/xyzrgb", "text/xyzirgb"

Valeurs par défaut:

Lorsque le fichier identifié dans source-ref a une extension .bin, binary/xyzi

Lorsque le fichier identifié dans source-ref a une extension .txt, text/xyzi

Utilisez ce paramètre pour spécifier le format de vos données de nuage de points. Pour de plus amples informations, veuillez consulter Formats de données 3D brutes acceptés.

ego-vehicle-pose

Non

un objet JSON

Pose de l'appareil utilisé pour collecter les données du nuage de points. Pour de plus amples informations sur ce paramètre, veuillez consulter Inclusion des informations de pose de véhicule dans votre manifeste d'entrée.

prefix

Non

Chaîne

Format de valeur de chaîne accepté:

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

Emplacement dans Amazon S3 où vos métadonnées, telles que les images de caméra, sont stockées pour cette trame.

Le préfixe doit se terminer par une barre oblique: /.

images

Non

Liste

Liste des paramètres décrivant les images de caméra couleur utilisées pour la fusion des capteurs. Vous pouvez inclure jusqu'à 8 images dans cette liste. Pour de plus amples informations sur les paramètres requis pour chaque image, veuillez consulter Inclusion des données de la caméra dans votre manifeste d'entrée.

Inclusion des informations de pose de véhicule dans votre manifeste d'entrée

Utilisez l'emplacement du véhicule ego pour fournir des informations sur la pose du véhicule utilisé pour capturer les données du nuage de points. Ground Truth utilise ces informations pour calculer les matrices extrinsèques LiDAR.

Ground Truth utilise des matrices extrinsèques pour projeter des étiquettes vers et depuis la scène 3D et les images 2D. Pour de plus amples informations, veuillez consulter . Fusion de capteurs.

Le tableau suivant fournit des informations supplémentaires sur les paramètres position et d'orientation (heading) qui sont requis lorsque vous fournissez des informations sur le véhicule ego.

Paramètre

Obligatoire

Valeurs acceptées

Description

position

Oui

un objet JSON

Paramètres requis:

x, y, et z. Entrez des nombres pour ces paramètres.

Vecteur de translation du véhicule ego dans le système de coordonnées mondial.

heading

Oui

Objet JSON

Paramètres requis:

qx, qy, qz, et qw. Entrez des nombres pour ces paramètres.

Orientation de la trame de référence de l'appareil ou du capteur monté sur le véhicule détectant l'environnement, mesurée en quaternions, (qx, qy, qz, qw) dans le système de coordonnées.

Inclusion des données de la caméra dans votre manifeste d'entrée

Si vous souhaitez inclure des données de caméra couleur avec une trame, utilisez les paramètres suivants pour fournir des informations sur chaque image. La colonne Obligatoire du tableau suivant s'applique lorsque le paramètre images est inclus dans le fichier manifeste d'entrée. Vous n'êtes pas obligé d'inclure des images dans votre fichier manifeste d'entrée.

Si vous incluez des images de caméra, vous devez inclure des informations sur l'élément position et sur l'orientation (heading) de la caméra utilisée pour capturer les images.

Si vos images sont déformées, Ground Truth peut corriger automatiquement cette déformation à l'aide des informations que vous fournissez sur l'image dans votre fichier manifeste source, en particulier les coefficients de distorsion (k1, k2, k3, k4, p1, p1,), le modèle de la caméra et la longueur focale (fx, fy) et le point principal (cx, cy)). Pour de plus amples informations sur ces coefficients et sur la correction de la distorsion des images, veuillez consulter Camera calibration With OpenCV. Si les coefficients de distorsion ne sont pas inclus, Ground Truth ne corrigera pas les déformations de l'image.

Paramètre

Obligatoire

Valeurs acceptées

Description

image-path

Oui

Chaîne

Exemple de format:

<folder-name>/<imagefile.png>

Emplacement relatif, dans Amazon S3, de votre fichier image. Ce chemin relatif sera ajouté au chemin que vous spécifiez dans prefix.

unix-timestamp

Oui

Nombre

Horodatage de l'image.

camera-model

Non

Chaîne :

Valeurs acceptées:

"pinhole", "fisheye"

Par défaut:

"pinhole"

Modèle de caméra utilisé pour capturer l'image. Ces informations sont utilisées pour corriger la déformation des images de la caméra.

fx, fy

Oui

Nombres

Distance focale de la caméra, dans les directions x (fx) et y (fy).

cx, cy

Oui

Nombres

Coordonnées x (cx) et y (cy) du point principal.

k1, k2, k3, k4

Non

Nombre

Coefficients de distorsion radiale. Pris en charge pour les modèles de caméras fisheye et à sténopé.

p1, p2

Non

Nombre

Coefficients de distorsion tangentielle. Pris en charge pour les modèles de caméras à sténopé.

skew

Non

Nombre

Paramètre permettant de mesurer toute inclinaison connue dans l'image.

position

Oui

un objet JSON

Paramètres requis:

x, y, et z. Entrez des nombres pour ces paramètres.

Emplacement ou origine de la trame de référence de la caméra montée sur le véhicule qui capture des images.

heading

Oui

Objet JSON

Paramètres requis:

qx, qy, qz, et qw. Entrez des nombres pour ces paramètres.

Orientation de la trame de référence de la caméra montée sur le véhicule qui capture des images, mesurée à l'aide de quaternions, (qx, qy, qw, qz).

Limites des trames du nuage de points et du fichier de séquences

Vous pouvez inclure jusqu'à 100 000 séquences de trames de nuage de points dans votre fichier manifeste d'entrée. Vous pouvez inclure jusqu'à 500 trames de nuage de points dans chaque fichier de séquences.

Gardez à l'esprit que la tâche d'étiquetage de nuage de points 3D a des temps de prétraitement plus longs que les autres types de tâches Ground Truth. Pour de plus amples informations, veuillez consulter . Temps de prétraitement de la tâche.