Ausgabedaten - 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.

Ausgabedaten

Die Ausgabe eines Kennzeichnungsauftrags wird an dem Amazon S3 S3-Speicherort abgelegt, den Sie in der Konsole oder im Aufruf desCreateLabelingJobverwenden. Ausgabedaten werden an diesem Ort angezeigt, wenn die Mitarbeiter eine oder mehrere Aufgaben eingereicht haben oder wenn Aufgaben ablaufen. Beachten Sie, dass es einige Minuten dauern kann, bis Ausgabedaten in Amazon S3 angezeigt werden, nachdem der Mitarbeiter die Aufgabe übermittelt oder die Aufgabe abgelaufen ist.

Jede Zeile in der Ausgabedatendatei ist identisch mit der Manifestdatei. Zusätzlich verfügt sie jedoch über ein Attribut und einen Wert für die Bezeichnung, die dem Eingabeobjekt zugewiesen ist. Der Attributname für den Wert wird in der Konsole oder im Aufruf der CreateLabelingJob-Operation definiert. Sie können -metadata nicht im Attributnamen der Bezeichnung verwenden. Wenn Sie eine semantische Bildsegmentierung, eine semantische 3D-Punktwolkensegmentierung oder einen 3D-Punktwolken-Objektverfolgungsauftrag ausführen, muss das Bezeichnungsattribut mit -ref enden. Für jede andere Art von Auftrag darf der Attributname nicht mit -ref enden.

Die Ausgabe des Kennzeichnungsauftrags ist der Wert des Schlüssel-Wert-Paares mit der Bezeichnung. Die Bezeichnung und der Wert überschreiben alle vorhandenen JSON-Daten in der Eingabedatei mit dem neuen Wert.

Im Folgenden finden Sie die Ausgabe eines Kennzeichnungsauftrags der Bildklassifizierung, in dem die Eingabedatendateien in einem Amazon S3 gespeichert wurdenAWSDOC-EXAMPLE-BUCKETund der Name des Label-Attributs wurde alssportaus. In diesem Beispiel wird das JSON-Objekt aus Gründen der Lesbarkeit formatiert, in der tatsächlichen Ausgabedatei befindet sich das JSON-Objekt in einer einzelnen Zeile. Weitere Informationen zum Datenformat finden Sie unter JSON Lines (JSON-Zeilen).

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/image_example.png", "sport":0, "sport-metadata": { "class-name": "football", "confidence": 0.00, "type":"groundtruth/image-classification", "job-name": "identify-sport", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }

Beim Wert der Bezeichnung kann es sich um jede gültige JSON handeln. In diesem Fall ist der Wert der Bezeichnung der Index der Klasse in der Klassifizierungsliste. Andere Auftragstypen, wie z. B. Begrenzungsrahmen, verfügen über komplexere Werte.

Jedes Schlüssel-Wert-Paar in der Eingabemanifestdatei mit Ausnahme des Bezeichnungsattributs bleibt in der Ausgabedatei unverändert. Auf diese Weise können Sie Daten an Ihre Anwendung übergeben.

Die Ausgabe eines Kennzeichnungsauftrags kann als Eingabe für einen anderen Kennzeichnungsauftrag verwendet werden. Sie können dies bei der Verkettung von Kennzeichnungsaufträgen verwenden. Beispielsweise können Sie einen Kennzeichnungsauftrag senden, um den Sport zu bestimmen, der gespielt wird. Anschließend senden Sie einen anderen mit denselben Daten, um zu bestimmen, ob der Sport im Innen- oder Außenbereich gespielt wird. Durch die Verwendung der Ausgabedaten aus dem ersten Auftrag als Manifest für den zweiten Auftrag können Sie die Ergebnisse der zwei Aufträge in einer Ausgabedatei für eine einfachere Verarbeitung durch Ihre Anwendungen konsolidieren.

Die Ausgabedatendatei wird in regelmäßigen Abständen in den Ausgabespeicherort geschrieben, während der Auftrag noch ausgeführt wird. Diese Zwischendateien enthalten eine Zeile für jede Zeile in der Manifestdatei. Wenn ein Objekt gekennzeichnet ist, wird die Bezeichnung eingeschlossen. Wenn das Objekt nicht gekennzeichnet wurde, wird es in die Zwischenausgabedatei genauso wie die Manifestdatei geschrieben.

Ausgabeverzeichnisse

Ground Truth erstellt mehrere Verzeichnisse in Ihrem Amazon S3 S3-Ausgabepfad. Diese Verzeichnisse enthalten die Ergebnisse Ihres Kennzeichnungsauftrags und andere Artefakte des Auftrags. Das oberste Verzeichnis für einen Kennzeichnungsauftrag erhält den gleichen Namen wie Ihr Kennzeichnungsauftrag; Die Ausgabeverzeichnisse werden darunter platziert. Wenn Sie beispielsweise Ihre Kennzeichnungsaufgabe genannt habenfind-people, Ihre Ausgabe befindet sich in den folgenden Verzeichnissen:

s3://AWSDOC-EXAMPLE-BUCKET/find-people/activelearning s3://AWSDOC-EXAMPLE-BUCKET/find-people/annotations s3://AWSDOC-EXAMPLE-BUCKET/find-people/inference s3://AWSDOC-EXAMPLE-BUCKET/find-people/manifests s3://AWSDOC-EXAMPLE-BUCKET/find-people/training

Jedes Verzeichnis enthält die folgende Ausgabe:

Verzeichnis für aktives Lernen

Das activelearning-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Es enthält die Eingabe- und Ausgabevalidierung, die für die automatisierte Datenkennzeichnung festgelegt sind, und den Eingabe- und Ausgabeordner für automatisch gekennzeichnete Daten.

Verzeichnis für Anmerkungen

Das annotations-Verzeichnis enthält alle Anmerkungen der Arbeitskräfte. Dies sind die Antworten von einzelnen Workern, die nicht in eine einzige Bezeichnung für das Datenobjekt konsolidiert wurden.

Es gibt drei Unterverzeichnisse im annotations-Verzeichnis.

  • Das erste, worker-response, enthält die Antworten von einzelnen Workern. Dieses enthält für jede Iteration ein Unterverzeichnis, das wiederum ein Unterverzeichnis für jedes Datenobjekt in dieser Iteration enthält. Die Workerantwortdaten für jedes Datenobjekt werden in einer JSON-Datei mit Zeitstempel gespeichert, die die von jedem Mitarbeiter für dieses Datenobjekt übermittelten Antworten enthält, und wenn Sie eine private Belegschaft verwenden, Metadaten über diese Mitarbeiter. Weitere Informationen zu diesen Metadaten finden Sie unterWorker-Metadatenaus.

  • Das zweite, consolidated-annotation, enthält die Informationen, die erforderlich sind, um die Anmerkungen im aktuellen Stapel in Bezeichnungen für Ihre Datenobjekte zu konsolidieren.

  • Die dritte, intermediate, enthält das Ausgabemanifest für den aktuellen Stapel mit allen abgeschlossenen Bezeichnungen. Diese Datei wird aktualisiert, während die Bezeichnung für jedes Datenobjekt abgeschlossen wird.

Anmerkung

Es wird empfohlen, keine Dateien zu verwenden, die in der Dokumentation nicht aufgeführt sind.

Inferenz-Verzeichnis

Das inference-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Dieses Verzeichnis enthält die Eingabe- und Ausgabedateien für die SageMaker-Stapeltransformation, die während der Kennzeichnung der Datenobjekte verwendet wurde.

Manifestverzeichnis

Das manifest-Verzeichnis enthält das Ausgabemanifest von Ihrem Kennzeichnungsauftrag. Es gibt ein Unterverzeichnis im Manifestverzeichnis, und zwar: output. Das output-Verzeichnis enthält die Ausgabemanifestdatei für Ihren Kennzeichnungsauftrag. Die Datei erhält die Bezeichnung output.manifest.

Schulungsverzeichnis

Das training-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Dieses Verzeichnis enthält die Eingabe- und Ausgabedateien, die für die Schulung des automatisierten Datenkennzeichnungsmodells verwendet werden.

Zuverlässigkeitswert

Wenn mehrere Auftragnehmer eine einzelne Aufgabe mit Anmerkungen versehen haben, ergibt sich die Bezeichnung aus der Anmerkungskonsolidierung. Ground Truth berechnet einen Zuverlässigkeitswert für jede Bezeichnung. EINVertrauenswertist eine Zahl zwischen 0 und 1, die angibt, wie zuverlässig Ground Truth in der Bezeichnung ist. Sie können den Zuverlässigkeitswert verwenden, um gekennzeichnete Datenobjekte untereinander zu vergleichen, und zur Identifizierung der unzuverlässigsten oder zuverlässigsten Bezeichnungen.

Sie sollten den Wert eines Zuverlässigkeitswertes nicht als absoluten Wert interpretieren oder Zuverlässigkeitswerte für Kennzeichnungsaufträge hinweg vergleichen. Beispiel: Wenn alle Zuverlässigkeitswerte zwischen 0,98 und 0,998 liegen, sollten Sie die Datenobjekte nur untereinander vergleichen und sich nicht auf die hohen Zuverlässigkeitswerte verlassen.

Sie sollten die Zuverlässigkeitswerte von Menschen gekennzeichneten Datenobjekten und automatisch gekennzeichneten Datenobjekten nicht vergleichen. Die Zuverlässigkeitswerte für Menschen werden unter Verwendung der Anmerkungskonsolidierungsfunktion für die Aufgabe berechnet, während die Zuverlässigkeitswerte für automatisierte Kennzeichnung unter Verwendung eines Modells berechnet werden, das Objektfunktionen enthält. Die beiden Modelle haben in der Regel unterschiedliche Skalierungen und durchschnittliche Zuverlässigkeit.

Für einen Kennzeichnungsauftrag für Begrenzungsrahmen berechnet Ground Truth einen Zuverlässigkeitswert pro Feld. Sie können Zuverlässigkeitswerte innerhalb eines Bildes oder auf mehreren Bildern für den gleichen Kennzeichnungstyp (menschlich oder automatisch) vergleichen. Sie können keine Zuverlässigkeitswerte für Kennzeichnungsaufträge vergleichen.

Wenn eine einzelne Arbeitskraft eine Aufgabe kommentiert (NumberOfHumanWorkersPerDataObjectwird auf gesetzt1oder in der Konsole geben Sie 1 fürAnzahl der Worker pro Datensatzobjekt) wird der Konfidenzwert auf0.00aus.

Worker-Metadaten

Ground Truth liefert Informationen, die Sie verwenden können, um einzelne Mitarbeiter in Aufgabenausgabedaten zu verfolgen. Die folgenden Daten befinden sich in den Verzeichnissen unter derworker-responsebefindet sich unterVerzeichnis für Anmerkungen:

  • DieacceptanceTimeist die Zeit, in der der Arbeiter die Aufgabe annahm. Das Format dieses Datums- und Zeitstempels lautetYYYY-MM-DDTHH:MM:SS.mmmZfür das Jahr (YYYY), Monat (MM), tag (DD), Stunde (HH), Minute (MM), zweite (SS) und Millisekunde (mmm) enthalten. Datum und Uhrzeit werden durch ein getrenntTaus.

  • DiesubmissionTimeist die Zeit, in der die Arbeitskraft seine Anmerkungen mit demEinreichen. Das Format dieses Datums- und Zeitstempels lautetYYYY-MM-DDTHH:MM:SS.mmmZfür das Jahr (YYYY), Monat (MM), tag (DD), Stunde (HH), Minute (MM), zweite (SS) und Millisekunde (mmm) enthalten. Datum und Uhrzeit werden durch ein getrenntTaus.

  • timeSpentInSecondsmeldet die Gesamtzeit in Sekunden, in der ein Arbeiter aktiv an dieser Aufgabe gearbeitet hat. Diese Metrik beinhaltet keine Zeit, in der ein Arbeiter pausierte oder eine Pause einlegte.

  • Die workerId ist für jeden Worker spezifisch.

  • Wenn Sie einprivate Arbeitskräfte, inworkerMetadata, siehst du folgendes.

    • DieidentityProviderTypeDer Service, den für die Verwaltung der privaten Worker verwendet.

    • DieissuerIst der Cognito-Benutzerpool oder Aussteller des OIDC Identity Provider (IdP), der mit dem Worker-Team verknüpft ist, das dieser Aufgabe für die menschliche Überprüfung zugeordnet ist.

    • Ein UnikatsubBezeichner bezeichnet den Worker. Wenn Sie eine Belegschaft mit Amazon Cognito erstellen, können Sie Details zu diesem Worker (z. B. Namen oder Benutzernamen) mithilfe dieser ID mithilfe dieser ID mithilfe von Amazon Cognito abrufen. Weitere Informationen erhalten Sie unterVerwalten von und Suchen nach BenutzerkonteninAmazon Cognito-Entwicklerhandbuchaus.

Im Folgenden finden Sie ein Beispiel für die Ausgabe, die Sie möglicherweise sehen, wenn Sie Amazon Cognito verwenden, um eine private Belegschaft zu erstellen. Dies ist imidentityProviderTypeaus.

"submissionTime": "2020-12-28T18:59:58.321Z", "acceptanceTime": "2020-12-28T18:59:15.191Z", "timeSpentInSeconds": 40.543, "workerId": "a12b3cdefg4h5i67", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

Es folgt ein Beispiel für denworkerMetadataSie können sehen, ob Sie Ihren eigenen OIDC-IdP verwenden, um eine private Belegschaft zu erstellen:

"workerMetadata": { "identityData": { "identityProviderType": "Oidc", "issuer": "https://example-oidc-ipd.com/adfs", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

Weitere Informationen zur Verwendung privater Worker finden Sie unter.Verwenden von privaten Arbeitskräftenaus.

Ausgabemetadaten

Die Ausgabe von jedem Auftrag enthält Metadaten über die Bezeichnung, die Datenobjekten zugewiesen ist. Diese Elemente sind für alle Aufträge mit geringfügigen Änderungen gleich. Im folgenden Beispiel werden die Metadaten-Elemente gezeigt:

"confidence": 0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256"

Die Elemente haben die folgende Bedeutung:

  • confidence— Die Zuverlässigkeit, die Ground Truth hat, dass die Kennzeichnung korrekt ist. Weitere Informationen finden Sie unter Zuverlässigkeitswert .

  • type— Die Art des Klassifizierungsauftrags. Informationen zu Auftragstypen finden Sie unter Integrierte Aufgabentypen.

  • job-name— Der Name, den Sie dem Auftrag bei seiner Erstellung zugewiesen haben.

  • human-annotated— Ob das Datenobjekt von einem Menschen gekennzeichnet wurde oder die Kennzeichnung automatisiert erfolgte. Weitere Informationen finden Sie unter Automatisieren des Daten-Labeling .

  • creation-date— Das Datum und die Uhrzeit, an denen die Kennzeichnungen erstellt wurde.

Ausgabe des Klassifizierungsauftrags

Im Folgenden sehen Sie Beispielausgaben (Ausgabemanifestdateien) aus einem Bildklassifizierungsauftrag und einem Textklassifizierungsauftrag. Diese umfassen die Bezeichnung, die Ground Truth dem Datenobjekt zugewiesen hat, den Wert für die Bezeichnung und Metadaten zur Beschreibung der Kennzeichnung.

Zusätzlich zu den standardmäßigen Metadatenelementen umfassen die Metadaten für einen Klassifizierungsauftrag den Textwert der Bezeichnungsklasse. Weitere Informationen finden Sie unter Bildklassifikationsalgorithmus .

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

{ "source-ref":"s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg", "species":"0", "species-metadata": { "class-name": "dog", "confidence": 0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }
{ "source":"The food was delicious", "mood":"1", "mood-metadata": { "class-name": "positive", "confidence": 0.8, "type": "groundtruth/text-classification", "job-name": "label-sentiment", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256" } }

Ausgabe von Multi-Label-Klassifizierungsaufträgen

Im Folgenden finden Sie Beispiel-Ausgabemanifestdateien aus einem Multi-Label-Bildklassifizierungsauftrag und einem Multi-Label-Textklassifizierungsauftrag. Diese umfassen die Kennzeichnungen, die Ground Truth dem Datenobjekt zugewiesen hat (z. B. das Bild oder Textstück), sowie Metadaten, die die Kennzeichnungen beschreiben, die dem Auftragnehmer beim Abschluss der Kennzeichnungsaufgabe angezeigt wurden.

Der Namensparameter für das Label-Attribut (z.image-label-attribute-name) enthält eine Reihe aller Kennzeichnungen, die von mindestens einem der Auftragnehmer ausgewählt wurden, die diese Aufgabe abgeschlossen haben. Dieses Array enthält Schlüssel aus Ganzzahlen (z. B. [1,0,8]), die den Kennzeichnungen in class-map entsprechen. Im Beispiel für die Multi-Label-Bildklassifizierung wurden bicycle, person und clothing von mindestens einem der Auftragnehmer ausgewählt, die die Kennzeichnungsaufgabe für das Bild exampleimage.jpg abgeschlossen haben.

Dieconfidence-mapzeigt den Zuverlässigkeitswert an, den Ground Truth jedem von einem -Worker ausgewählten Label zugewiesen hat. Weitere Informationen zu Ground Truth -Konfidenzbewertungen finden Sie unter.Zuverlässigkeitswertaus.

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für eine Multi-Label-Bildklassifizierung.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg", "image-label-attribute-name":[1,0,8], "image-label-attribute-name-metadata": { "job-name":"labeling-job/image-label-attribute-name", "class-map": { "1":"bicycle","0":"person","8":"clothing" }, "human-annotated":"yes", "creation-date":"2020-02-27T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"8":0.2 }, "type":"groundtruth/image-classification-multilabel" } }

Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für eine Multi-Label-Textklassifizierung. In diesem Beispiel wurden approving, sad und critical von mindestens einem der Auftragnehmer ausgewählt, die die Kennzeichnungsaufgabe für das in AWSDOC-EXAMPLE-BUCKET gefundene Objekt exampletext.txt abgeschlossen haben.

{ "source-ref": "AWSDOC-EXAMPLE-BUCKET/text_file.txt", "text-label-attribute-name":[1,0,4], "text-label-attribute-name-metadata": { "job-name":"labeling-job/text-label-attribute-name", "class-map": { "1":"approving","0":"sad","4":"critical" }, "human-annotated":"yes", "creation-date":"2020-02-20T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"4":0.2 }, "type":"groundtruth/text-classification-multilabel" } }

Ausgabe des Begrenzungsrahmenauftrags

Im Folgenden finden Sie eine Beispielausgabe (Ausgabemanifestdatei) aus einem Auftrag mit Begrenzungsrahmen. Für diese Aufgabe werden drei Begrenzungsrahmen zurückgegeben. Der Kennzeichnungswert enthält Informationen über die Größe des Bildes und den Speicherort der Begrenzungsrahmen.

Das class_id-Element ist der Index der Rahmenklasse in der Liste der verfügbaren Klassen für die Aufgabe. Das class-map-Metadatenelement enthält den Text der Klasse.

Die Metadaten verfügen über einen separaten Zuverlässigkeitswert für jeden Begrenzungsrahmen. Die Metadaten enthalten auch das class-map-Element, das die class_id dem Textwert der Klasse zuweist. Weitere Informationen finden Sie unter Objekterkennungsalgorithmus .

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_image.png", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" } }

Die Ausgabe eines Anpassungsauftrags für Begrenzungsrahmen sieht wie der folgende JSON aus. Beachten Sie, dass das ursprüngliche JSON intakt bleibt und zwei neue Aufträge aufgelistet werden, deren ursprünglichen Attributsnamen jeweils „adjust-“ vorangestellt wird.

{ "source-ref": "S3 bucket location", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "adjusted-bounding-box": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 110, "top": 135, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 10, "top": 10, "width": 30, "height": 30} ] }, "adjusted-bounding-box-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-bounding-boxes-on-dogs-and-toys", "adjustment-status": "adjusted" } }

In dieser Ausgabe ändert sich zwar der type des Auftrags nicht, es wird jedoch ein adjustment-status-Feld hinzugefügt. Dieses Feld weist den Wert adjusted oder unadjusted auf. Wenn mehrere Worker das Objekt überprüft haben und mindestens einer die Kennzeichnung angepasst hat, lautet der Status adjusted.

Named Entity Recognition

Im Folgenden finden Sie eine Beispielausgabemanifestdatei für eine Kennzeichnungsaufgabe der benannten Entitätserkennung (NER). Für diese Aufgabe siebenentitieswerden zurückgegeben.

Im Ausgabemanifest das JSON-Objektannotationsenthält eine Liste derlabels(Label-Kategorien), die Sie angegeben haben.

Die Antworten der Mitarbeiter befinden sich in einer Liste mit dem Namenentitiesaus. Jede Entität in dieser Liste ist ein JSON-Objekt, das einlabelWert, der mit einem imlabelslist, eine GanzzahlstartOffsetWert für den beginnenden Unicode-Offset der beschrifteten Span und eine GanzzahlendOffsetWert für den endenden Unicode-Offset.

Die Metadaten verfügen über einen separaten Zuverlässigkeitswert für jede Entität. Wenn ein einzelner Worker jedes Datenobjekt beschriftet hat, ist der Konfidenzwert für jede Entität Null.

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von der Kennzeichnung der Auftragseingaben und Auftragnehmer ab.

{ "source": "Amazon SageMaker is a cloud machine-learning platform that was launched in November 2017. SageMaker enables developers to create, train, and deploy machine-learning (ML) models in the cloud. SageMaker also enables developers to deploy ML models on embedded systems and edge-devices", "ner-labeling-job-attribute-name": { "annotations": { "labels": [ { "label": "Date", "shortDisplayName": "dt" }, { "label": "Verb", "shortDisplayName": "vb" }, { "label": "Thing", "shortDisplayName": "tng" }, { "label": "People", "shortDisplayName": "ppl" } ], "entities": [ { "label": "Thing", "startOffset": 22, "endOffset": 53 }, { "label": "Thing", "startOffset": 269, "endOffset": 281 }, { "label": "Verb", "startOffset": 63, "endOffset": 71 }, { "label": "Verb", "startOffset": 228, "endOffset": 234 }, { "label": "Date", "startOffset": 75, "endOffset": 88 }, { "label": "People", "startOffset": 108, "endOffset": 118 }, { "label": "People", "startOffset": 214, "endOffset": 224 } ] } }, "ner-labeling-job-attribute-name-metadata": { "job-name": "labeling-job/example-ner-labeling-job", "type": "groundtruth/text-span", "creation-date": "2020-10-29T00:40:39.398470", "human-annotated": "yes", "entities": [ { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 } ] } }

Ausgabe des Auftrags zur Bezeichnungsverifizierung

Die Ausgabe (Ausgabemanifestdatei) eines Verifizierungsauftrags für Begrenzungsrahmen unterschiedet sich anders als die Ausgabe eines Anmerkungsauftrags für Begrenzungsrahmen. Das liegt daran, dass die Worker eine andere Art von Aufgabe haben. Sie kennzeichnen keine Objekte, sondern bewerten die Genauigkeit der vorherigen Kennzeichnung, beurteilen diese und geben daraufhin dieses Urteil sowie vielleicht einige Kommentare ab.

Wenn menschliche Auftragnehmer vorherige Begrenzungsrahmen überprüfen oder anpassen, sieht die Ausgabe eines Verifizierungsauftrags wie die folgende JSON aus. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

{ "source-ref":"s3://AWSDOC-EXAMPLE-BUCKET/image_example.png", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "verify-bounding-box-attribute-name":"1", "verify-bounding-box-attribute-name-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "worker-feedback": [ {"comment": "The bounding box on the bird is too wide on the right side."}, {"comment": "The bird on the upper right is not labeled."} ] } }

Obwohl der type der ursprünglichen Begrenzungsrahmenausgabe groundtruth/object-detection war, lautet der neue type groundtruth/label-verification. Beachten Sie auch, dass das worker-feedback-Array Worker-Kommentare bereitstellt. Wenn der Worker keine Kommentare bereitstellt, werden die leeren Felder während der Konsolidierung ausgeschlossen.

Ausgabe des semantischen Segmentierungsauftrags

Es folgt die Ausgabemanifestdatei für einen semantischen Segmentierungskennzeichnungsauftrag. Der Wert der Bezeichnung für diesen Auftrag ist ein Verweis auf eine PNG-Datei in einem Amazon S3 S3-Bucket.

Zusätzlich zu den Standardelementen enthalten die Metadaten für die Bezeichnung eine Farbkarte, die definiert, welche Farbe für die Kennzeichnung des Bildes verwendet wird, den Klassennamen, der mit der Farbe verknüpft ist, und den Zuverlässigkeitswert für jede Farbe. Weitere Informationen finden Sie unter Semantischer Segmentierungsalgorithm .

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "verify-city-streets-ref":"1", "verify-city-streets-ref-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-city-streets", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "worker-feedback": [ {"comment": "The mask on the leftmost building is assigned the wrong side of the road."}, {"comment": "The curb of the road is not labeled but the instructions say otherwise."} ] } }

Die Vertrauensstellung wird pro Abbild bewertet. Die Vertrauenswerte sind für alle Klassen in einem Abbild gleich.

Die Ausgabe eines semantischen Segmentierung-Anpassungsauftrags sollte dem folgenden JSON ähnlich sehen.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "adjusted-city-streets-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "adjusted-city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-label-city-streets", } }

Ausgabe der Video-Frame-Objekterkennung

Im Folgenden wird die Ausgabemanifestdatei für einen Kennzeichnungsauftrag der Videomrahmenobjekterkennung dargestellt. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Sequenz enthält. Die Metadaten umfassen auchjob-namewelches ist der Name, den Sie dem Etikettierauftrag zugewiesen haben. Wenn ein oder mehrere Begrenzungsrahmen geändert wurden, gibt es einenadjustment-status-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjustedaus.

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectDetection-ref": "s3://AWSDOC-EXAMPLE-BUCKET/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectDetection-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-detection" } }

Ground Truth erstellt eine Ausgabesequenzdatei für jede Sequenz von Videobildern, die beschriftet wurde. Jede Ausgabespequenzdatei enthält Folgendes:

  • Alle Anmerkungen für alle Frames in einer Sequenz imdetection-annotationsEine Liste von JSON-Objekten.

  • Für jeden Frame, der von einem Worker kommentiert wurde, wird der Name der Frame-Datei (frame), Zahl (frame-no), eine Liste von JSON-Objekten, die Anmerkungen (annotations) und falls zutreffend,frame-attributesaus. Der Name dieser Liste wird durch den Task-Typ definiert, den Sie verwenden:polylines,polygons,keypointsund für Begrenzungsboxenannotationsaus.

    Jedes JSON-Objekt enthält Informationen über eine einzelne Anmerkung und ein zugehöriges Label. In der folgenden Tabelle werden die Parameter beschrieben, die Sie für jeden Video-Frame-Aufgabentyp sehen werden.

    Aufgabentyp Parameter

    Bounding Box

    Maße der Box:heightundwidth

    Feld oben, Pixelposition der linken Ecke:topundleft

    Keypoint

    Keypoint-Vertices:{ "x": int, "y": int }

    Polygon

    Eine Liste von Polygonscheitelpunkten:vertices

    Polygonscheitelpunkte:{ "x": int, "y": int }

    Ein Polygon ist eine geschlossene Form und daher stellt der erste Punkt auch den letzten Punkt dar.

    Polyline

    Eine Liste von Polylinienscheitelpunkten:vertices

    Polylinienscheitelpunkte:{ "x": int, "y": int }

    Zusätzlich zu den aufgabentypspezifischen Werten sehen Sie in jedem JSON-Objekt Folgendes:

    • Werte von irgendwelchenlabel-category-attributesdie für dieses Label angegeben wurden.

    • Dieclass-idvon der Box. Verwenden derclass-mapin der Ausgabemanifestdatei, um zu sehen, welcher Labelkategorie diese ID zugeordnet ist.

Es folgt ein Beispiel für einSeqLabel.jsonDatei aus einem Beschriftungsauftrag zur Erkennung eines Begrenzungsrahmens für Video-Frame-Objekte. Diese Datei befindet sich unters3://your-output-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/

{ "detection-annotations": [ { "annotations": [ { "height": 41, "width": 53, "top": 152, "left": 339, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" } }, { "height": 24, "width": 37, "top": 148, "left": 183, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no": "0", "frame": "frame_0000.jpeg", "frame-attributes": {name: value, name: value} }, { "annotations": [ { "height": 41, "width": 53, "top": 152, "left": 341, "class-id": "0", "label-category-attributes": {} }, { "height": 24, "width": 37, "top": 141, "left": 177, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no": "1", "frame": "frame_0001.jpeg", "frame-attributes": {name: value, name: value} } ] }

Ausgabe der Videorahmen-Objektverfolgung

Im Folgenden wird die Ausgabemanifestdatei für einen Kennzeichnungsauftrag für Videomrahmenobjekte dargestellt. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Bildsequenz enthält. Die Metadaten umfassen auchjob-namewelches ist der Name, den Sie dem Etikettierauftrag zugewiesen haben. Wenn ein oder mehrere Begrenzungsrahmen geändert wurden, gibt es einenadjustment-status-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjustedaus.

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectTracking-ref": "s3://AWSDOC-EXAMPLE-BUCKET/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectTracking-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-tracking" } }

Ground Truth erstellt eine Ausgabesequenzdatei für jede Sequenz von Videobildern, die beschriftet wurde. Jede Ausgabespequenzdatei enthält Folgendes:

  • Alle Anmerkungen für alle Frames in einer Sequenz imtracking-annotationsEine Liste von JSON-Objekten.

  • Für jeden Frame, der von einem Worker kommentiert wurde, ist der Rahmen (frame), Zahl (frame-no), eine Liste von JSON-Objekten, die Anmerkungen (annotations) und falls zutreffend Frame-Attribute (frame-attributes) enthalten. Der Name dieser Liste wird durch den Task-Typ definiert, den Sie verwenden:polylines,polygons,keypointsund für Begrenzungsboxenannotationsaus.

    Jedes JSON-Objekt enthält Informationen über eine einzelne Anmerkung und ein zugehöriges Label. In der folgenden Tabelle werden die Parameter beschrieben, die Sie für jeden Video-Frame-Aufgabentyp sehen werden.

    Aufgabentyp Parameter

    Bounding Box

    Maße der Box:heightundwidth

    Feld oben, Pixelposition der linken Ecke:topundleft

    Keypoint

    Keypoint-Vertices:{ "x": int, "y": int }

    Polygon

    Eine Liste von Polygonscheitelpunkten:vertices

    Polygonscheitelpunkte:{ "x": int, "y": int }

    Ein Polygon ist eine geschlossene Form und daher stellt der erste Punkt auch den letzten Punkt dar.

    Polyline

    Eine Liste von Polylinienscheitelpunkten:vertices

    Polylinienscheitelpunkte:{ "x": int, "y": int }

    Zusätzlich zu den aufgabentypspezifischen Werten sehen Sie in jedem JSON-Objekt Folgendes:

    • Werte von irgendwelchenlabel-category-attributesdie für dieses Label angegeben wurden.

    • Dieclass-idvon der Box. Verwenden derclass-mapin der Ausgabemanifestdatei, um zu sehen, welcher Beschriftungskategorie diese ID zugeordnet ist.

    • Importieren in &S3;object-idwas eine Instanz eines Labels identifiziert. Diese ID ist über Frames hinweg dieselbe, wenn ein Worker dieselbe Instanz eines Objekts in mehreren Frames identifiziert hat. Wenn beispielsweise ein Auto in mehreren Frames erscheint, werden alle Begrenzungsboxen verwendet, um zu identifizieren, dass das Auto dasselbe hätteobject-idaus.

    • Dieobject-namewas ist die Instanz-ID dieser Anmerkung.

Es folgt ein Beispiel für einSeqLabel.json-Datei aus einem Kennzeichnungsauftrag für Begrenzungsrahmen. Diese Datei befindet sich unters3://your-output-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/

{ "tracking-annotations": [ { "annotations": [ { "height": 36, "width": 46, "top": 178, "left": 315, "class-id": "0", "label-category-attributes": { "occluded": "no" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no": "0", "frame": "frame_0001.jpeg", "frame-attributes": {} }, { "annotations": [ { "height": 30, "width": 47, "top": 163, "left": 344, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" }, "object-id": "98f2b0b0-c0ca-11ea-961f-a9b1c5c97972", "object-name": "bus:1" }, { "height": 28, "width": 33, "top": 150, "left": 192, "class-id": "0", "label-category-attributes": { "occluded": "partially" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no": "1", "frame": "frame_0002.jpeg", "frame-attributes": {name: value, name: value} } ] }

Semantische 3D-Punktwolkensegmentierung

Im Folgenden finden Sie die Ausgabemanifestdatei für einen semantischen 3D-Punktwolken-Segmentierungskennzeichnungsauftrag.

Zusätzlich zu den Standardelementen enthalten die Metadaten für die Bezeichnung eine Farbkarte, die definiert, welche Farbe für die Kennzeichnung des Bildes verwendet wird, den Klassennamen, der mit der Farbe verknüpft ist, und den Zuverlässigkeitswert für jede Farbe. Darüber hinaus gibt es eineadjustment-status-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjustedwenn die Farbmaske geändert wird. Wenn Sie einen oder mehrere hinzugefügt habenframeAttributeszu Ihrer Label-Kategorie-Konfigurationsdatei befinden sich Workerantworten für Frame-Attribute im JSON-Objekt,dataset-object-attributesaus.

Der Parameter your-label-attribute-ref enthält den Speicherort einer komprimierten Datei mit der Erweiterung .zlib. Wenn Sie diese Datei dekomprimieren, enthält sie ein Array. Jeder Index im Array entspricht dem Index eines kommentierten Punktes in der Eingabepunktwolke. Der Wert des Arrays bei einem bestimmten Index gibt die Klasse des Punktes am gleichen Index in der Punktwolke an, basierend auf der semantischen Farbzuordnung in dercolor-map-Parameter desmetadataaus.

Sie können Python-Code ähnlich wie folgt verwenden, um eine ZLIB-Datei zu dekomprimieren:

import zlib from array import array # read the label file compressed_binary_file = open(zlib_file_path/file.zlib, 'rb').read() # uncompress the label file binary_content = zlib.decompress(compressed_binary_file) # load labels to an array my_int_array_data = array('B', binary_content); print(my_int_array_data)

Der obige Codeblock erzeugt eine Ausgabe, die der folgenden ähnelt: Jedes Element des gedruckten Arrays enthält die Klasse eines Punktes an diesem Index in der Punktwolke. Beispiel,my_int_array_data[0] = 1bedeutetpoint[0]in der Eingabepunktwolke hat eine Klasse1aus. Im folgenden Beispiel für eine Ausgabemanifestdatei ist die Klasse0entspricht"Background",1mitCar, und2mitPedestrianaus.

>> array('B', [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

Im Folgenden finden Sie ein Beispiel für eine semantische Segmentierungsmanifestdatei für 3D-Punktwolken-Beschriftungsauftrag. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp": 1566861644.759115, "ego-vehicle-pose":{...}, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET/lidar_singleframe_dataset/prefix", "images": [{...}] }, "lidar-ss-label-attribute-ref": "s3://your-output-bucket/labeling-job-name/annotations/consolidated-annotation/output/dataset-object-id/filename.zlib", "lidar-ss-label-attribute-ref-metadata": { 'color-map': { "0": { "class-name": "Background", "hex-color": "#ffffff", "confidence": 0.00 }, "1": { "class-name": "Car", "hex-color": "#2ca02c", "confidence": 0.00 }, "2": { "class-name": "Pedestrian", "hex-color": "#1f77b4", "confidence": 0.00 }, "3": { "class-name": "Tree", "hex-color": "#ff7f0e", "confidence": 0.00 } }, 'type': 'groundtruth/point_cloud_single_frame_semantic_segmentation', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'labeling-job-name', //only present for adjustment audit workflow "adjustment-status": "adjusted", // "adjusted" means the label was adjusted "dataset-object-attributes": {name: value, name: value} } }

3D-Punktwolken-Objekterkennung

Im Folgenden finden Sie eine Beispielausgabe von einem 3D-Punktwolken-Objekterkennungsauftrag. Für diesen Aufgabentyp werden die Daten zu 3D-Quadern im Parameter 3d-bounding-box in einer Liste mit dem Namen annotations zurückgegeben. In dieser Liste wird jeder 3D-Quader anhand der folgenden Informationen beschrieben.

  • Jede Klasse oder Beschriftungskategorie, die Sie in Ihrem Eingabemanifest angeben, ist mit einer verknüpftclass-idaus. Verwenden Sie die class-map, um die Klasse zu identifizieren, die jeder Klassen-ID zugeordnet ist.

  • Diese Klassen werden verwendet, um jedem 3D-Quader einen object-name im Format <class>:<integer> zu geben, wobei integer eine eindeutige Nummer ist, um diesen Quader im Frame zu identifizieren.

  • center-x,center-y, undcenter-zsind die Koordinaten der Mitte des Quader, im selben Koordinatensystem wie die Eingabedaten der 3D-Punktwolke, die in Ihrem Etikettierauftrag verwendet werden.

  • length,width, undheightBeschreiben Sie die Abmessungen des Quaders.

  • yawwird verwendet, um die Ausrichtung (Fahrkurs) des Quaders in Bogenmaß zu beschreiben.

    DieyawDie Messung in den Ausgangsdaten beträgt 180 Grad oder Pi im Bogenmaß minusyawim rechtshändigen Weltkoordinatensystem beim Blick auf den Quader. Mit anderen Worten, wenn man einen Quader von oben nach unten betrachtet,yaw_in_output_dataist im Uhrzeigersinn positiv (im Gegensatz zum Rechtshänder-Weltkoordinatensystem, bei dem die Ansicht von oben nach unten mit einer positiven Rotation gegen den Uhrzeigersinn verbunden ist). Wenn man vom Quader nach oben schaut,yaw_in_output_dataist gegen den Uhrzeigersinn positiv.

    So konvertieren Sieyaw_in_output_dataUm die gebräuchlichere Ausrichtung des rechtshändigen Weltkoordinatensystems zu erreichen, verwenden Sie Folgendes (alle Einheiten sind im Bogenmaß):

    yaw_right_handed_cartesian_system = pi - yaw_in_output_data
  • Wenn Sie einen Kennzeichnungsauftrag für die 3D-Punktwolkenanpassung erstellt haben undpitchundrollin der Eingabe-Manifestdatei das gleichepitchundrollDie Messungen werden in der Ausgabemanifestdatei angezeigt. Ansonstenpitchundroleist immer 0.

  • Wenn Sie Beschriftungsattribute in Ihre Eingabemanifestdatei für eine bestimmte Klasse aufgenommen haben, wird einlabel-category-attributes-Parameter ist für alle Quader enthalten, für die Arbeiter Beschriftungsattribute ausgewählt haben.

Wenn ein oder mehrere Quader geändert wurden, gibt es in den Metadaten für Prüfungs-Workflows einen adjustment-status-Parameter, der auf adjusted festgelegt ist. Wenn Sie einen oder mehrere hinzugefügt habenframeAttributeszu Ihrer Label-Kategorie-Konfigurationsdatei befinden sich Workerantworten für Frame-Attribute im JSON-Objekt,dataset-object-attributesaus.

Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab. Die Ellipsen (...) bezeichnen eine Fortsetzung dieser Liste, in der zusätzliche Objekte mit dem gleichen Format wie das fortlaufende Objekt angezeigt werden können.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.txt", "source-ref-metadata":{ "format": "text/xyzi", "unix-timestamp": 1566861644.759115, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET/lidar_singleframe_dataset/prefix", "ego-vehicle-pose": { "heading": { "qx": -0.02111296123795955, "qy": -0.006495469416730261, "qz": -0.008024565904865688, "qw": 0.9997181192298087 }, "position": { "x": -2.7161461413869947, "y": 116.25822288149078, "z": 1.8348751887989483 } }, "images": [ { "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, "unix-timestamp": 1566861644.759115, "image-path": "images/frame_0_camera_0.jpg", "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" } ] }, "3d-bounding-box": { "annotations": [ { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.616382013657516, "center-y": 125.04149850484193, "center-z": 0.311272296465834, "length": 2.993000265181146, "width": 1.8355260519692056, "height": 1.3233490884304047, "roll": 0, "pitch": 0, "yaw": 1.6479308313703527 }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.188984560617168, "center-y": 99.7954483288783, "center-z": 0.2226435567445657, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.6243170732068055 } ] }, "3d-bounding-box-metadata": { "objects": [], "class_map": { "0": "Car", }, "type": "groundtruth/point_cloud_object_detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-3d-objects", "adjustment-status": "adjusted", "dataset-object-attributes": {name: value, name: value} } }

3D-Punktwolken-Objektverfolgung

Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für einen Kennzeichnungsauftrag der 3D-Punktwolkenobjekt-Verfolgung. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab. Die Ellipsen (...) bezeichnen eine Fortsetzung dieser Liste, in der zusätzliche Objekte mit dem gleichen Format wie das fortlaufende Objekt angezeigt werden können.

Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Sequenz enthält. Wenn ein oder mehrere Quader geändert wurden, gibt es in den Metadaten für Prüfungs-Workflows einen adjustment-status-Parameter, der auf adjusted festgelegt ist.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/myfolder/seq1.json", "lidar-label-attribute-ref": "s3://<CustomerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json", "lidar-label-attribute-ref-metadata": { "objects": [ { "frame-no": 300, "confidence": [] }, { "frame-no": 301, "confidence": [] }, ... ], 'class-map': {'0': 'Car', '1': 'Person'}, 'type': 'groundtruth/point_cloud_object_tracking', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'identify-3d-objects', "adjustment-status": "adjusted" } }

Im obigen Beispiel werden die Quaderdaten für jeden Frame inseq1.jsonist inSeqLabel.jsonam Amazon S3 S3-Speicherorts3://<customerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.jsonaus. Im Folgenden wird ein Beispiel für diese Bezeichnungssequenzdatei dargestellt.

Für jeden Frame in der Sequenz wirdframe-number,frame-name, falls zutreffend,frame-attributesund eine Listeannotationsaus. Diese Liste enthält 3D-Quadern, die für diesen Frame gezeichnet wurden. Jede Anmerkung enthält die folgenden Informationen:

  • Importieren in &S3;object-nameim Format<class>:<integer>woherclassidentifiziert die Label-Kategorie undintegerist eine eindeutige ID im gesamten Datensatz.

  • Wenn Auftragnehmer einen Quader zeichnen, wird er mit einer eindeutigen object-id verknüpft, die allen Quadern zugeordnet ist, die dasselbe Objekt über mehrere Frames hinweg identifizieren.

  • Jede Klasse oder Beschriftungskategorie, die Sie in Ihrem Eingabemanifest angegeben haben, ist mit einer class-id verknüpft. Verwenden Sie die class-map, um die Klasse zu identifizieren, die jeder Klassen-ID zugeordnet ist.

  • center-x,center-y, undcenter-zsind die Koordinaten der Mitte des Quader, im selben Koordinatensystem wie die Eingabedaten der 3D-Punktwolke, die in Ihrem Etikettierauftrag verwendet werden.

  • length,width, undheightBeschreiben Sie die Abmessungen des Quaders.

  • yawwird verwendet, um die Ausrichtung (Fahrkurs) des Quaders in Bogenmaß zu beschreiben.

    DieyawDie Messung in den Ausgangsdaten beträgt 180 Grad oder Pi im Bogenmaß minusyawim rechtshändigen Weltkoordinatensystem beim Blick auf den Quader. Mit anderen Worten, wenn man einen Quader von oben nach unten betrachtet,yaw_in_output_dataist im Uhrzeigersinn positiv (im Gegensatz zum Rechtshänder-Weltkoordinatensystem, bei dem die Ansicht von oben nach unten mit einer positiven Rotation gegen den Uhrzeigersinn verbunden ist). Wenn man vom Quader nach oben schaut,yaw_in_output_dataist gegen den Uhrzeigersinn positiv.

    So konvertieren Sieyaw_in_output_dataUm die gebräuchlichere Ausrichtung des rechtshändigen Weltkoordinatensystems zu erreichen, verwenden Sie Folgendes (alle Einheiten sind im Bogenmaß):

    yaw_right_handed_cartesian_system = pi - yaw_in_output_data
  • Wenn Sie einen Kennzeichnungsauftrag für die 3D-Punktwolkenanpassung erstellt haben undpitchundrollin der Eingabe-Manifestdatei das gleichepitchundrollDie Messungen werden in der Ausgabemanifestdatei angezeigt. Ansonstenpitchundroleist immer 0.

  • Wenn Sie Beschriftungsattribute in Ihre Eingabemanifestdatei für eine bestimmte Klasse aufgenommen haben, wird einlabel-category-attributes-Parameter ist für alle Quader enthalten, für die Arbeiter Beschriftungsattribute ausgewählt haben.

{ "tracking-annotations": [ { "frame-number": 0, "frame-name": "0.txt.pcd", "frame-attributes": {name: value, name: value}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": -2.2906369208300674, "center-y": 103.73924823843463, "center-z": 0.37634114027023313, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.6451293634707413, "center-y": 124.9534455706848, "center-z": 0.5020834081743839, "length": 4, "width": 2, "height": 2.080488827301309, "roll": 0, "pitch": 0, "yaw": -1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.205611313118477, "center-y": 99.91731932137061, "center-z": 0.22917217081212138, "length": 3.8747142207671956, "width": 1.9999999999999918, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] }, { "frame-number": 1, "frame-name": "1.txt.pcd", "frame-attributes": {}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": -2.2906369208300674, "center-y": 103.73924823843463, "center-z": 0.37634114027023313, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.6451293634707413, "center-y": 124.9534455706848, "center-z": 0.5020834081743839, "length": 4, "width": 2, "height": 2.080488827301309, "roll": 0, "pitch": 0, "yaw": -1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.221311072916759, "center-y": 100.4639841045424, "center-z": 0.22917217081212138, "length": 3.8747142207671956, "width": 1.9999999999999918, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] } ] }